Интеграция 1С-Битрикс с CRM Битрикс24
Мы сталкиваемся с этим каждый день: интернет-магазин на 1С-Битрикс принимает заказы, а отдел продаж работает в Битрикс24 CRM. Менеджеры вручную переносят данные между системами — теряют заказы, дублируют контакты, не видят историю клиента. Готовое решение — REST API + вебхуки между двумя продуктами одного вендора, но настроить его правильно сложнее, чем кажется. Наш опыт показывает: автоматизация через REST API в 10 раз сокращает время на ручной перенос данных и исключает ошибки. Экономия на ручном труде достигает 80% — для магазина с 500 заказами в месяц это эквивалентно 30 часам работы менеджера. В этой статье разберём ключевые технические аспекты: выбор методов, маппинг статусов, обработку конфликтов и масштабирование через очередь.
Какие методы REST API нужны для интеграции?
Битрикс24 предоставляет REST API через OAuth 2.0 или входящие вебхуки. 1С-Битрикс общается с ним через модуль bitrix24connector (если установлен) или напрямую через \Bitrix\Main\Web\HttpClient. Ключевые методы:
| Метод Битрикс24 | Назначение |
|---|---|
crm.lead.add |
Создание лида из формы сайта |
crm.contact.add / crm.contact.update |
Создание/обновление контакта |
crm.deal.add / crm.deal.update |
Создание/обновление сделки из заказа |
crm.deal.productrows.set |
Привязка товарных позиций к сделке |
crm.company.add |
Создание компании (для B2B) |
crm.activity.add |
Добавление активности (звонок, письмо) |
Как настроить двустороннюю синхронизацию без конфликтов?
Односторонняя передача (сайт → CRM) реализуется быстро. Проблемы начинаются при двусторонней: менеджер меняет статус сделки в Битрикс24 → сайт должен обновить статус заказа. Одновременно клиент на сайте может изменить заказ → CRM должна обновить сделку.
Кейс. Интернет-магазин стройматериалов, 200–300 заказов в сутки. После запуска двусторонней синхронизации через 3 дня выяснилось: статусы заказов «гуляют» — заказ, оплаченный на сайте, возвращался в статус «новый» из CRM. Причина: вебхук из Битрикс24 приходил позже события на сайте, перезаписывал статус без проверки приоритета.
Решение — 'поле-источник правды' (source_system) в маппинге статусов:
// При получении вебхука из Б24 — проверяем метку времени
$localOrder = CSaleOrder::GetByID($orderId);
$localUpdated = strtotime($localOrder['DATE_UPDATE']);
$b24Updated = strtotime($webhook['data']['FIELDS']['DATE_MODIFY']);
if ($b24Updated > $localUpdated) {
// Обновляем заказ на сайте
CSaleOrder::StatusOrder($orderId, $newStatus);
}
Что такое маппинг статусов и почему он важен?
Статусы заказов в 1С-Битрикс хранятся в b_sale_status, статусы сделок Битрикс24 — в стадиях воронки (crm.status.list). Маппинг — не взаимно однозначный: в Битрикс24 может быть 10 стадий, на сайте — 5 статусов. Создаём таблицу соответствия, которая хранится в пользовательской таблице или в настройках модуля.
| Статус заказа (сайт) | Стадия сделки (Б24) |
|---|---|
| N (новый) | NEW |
| P (оплачен) | WON |
| F (доставлен) | WON |
| C (отменён) | LOSE |
| D (доставляется) | EXECUTING |
Если у вас кастомные статусы, например "ожидает комплектации" или "резерв", их нужно добавить как дополнительные стадии в воронку Битрикс24. Мы используем метод crm.status.add для создания новых статусов, после чего связываем их через маппинг.
Почему очередь запросов критична для надёжности?
REST API Битрикс24 имеет rate limit: 2 запроса в секунду на облачный тариф. При всплеске заказов прямой синхронный вызов упрётся в лимит. Использование очереди в 5 раз снижает количество ошибок по сравнению с синхронными вызовами. Правильная архитектура — очередь:
- Событие на сайте (
OnSaleOrderSaved) помещает задачу в таблицу очереди. - Агент Битрикса каждые 30 секунд обрабатывает очередь порциями по 2 запроса/сек.
- При ошибке запись остаётся в очереди с увеличенным счётчиком попыток (max 5).
Дополнительно, мы интегрируем мониторинг: если очередь забивается более чем на 1000 элементов, срабатывает алерт. Это позволяет вовремя заметить проблемы с сетью или API.
Как выполняется интеграция 1С-Битрикс с CRM Битрикс24?
Разберём процесс по шагам. Сначала анализируем текущие бизнес-процессы: какие сущности нужно синхронизировать, какие статусы используются, какой объём данных. Затем проектируем архитектуру — выбираем методы REST API, определяем маппинг полей. Реализуем обработчики событий на сайте и настраиваем вебхуки в Битрикс24. После этого настраиваем очередь и механизм повторных попыток. Тестирование включает сценарии конфликтов, превышения лимитов и отказов. В завершение — документация и обучение.
| Этап интеграции | Трудозатраты |
|---|---|
| Настройка OAuth / вебхуков | 2–4 ч |
| Маппинг полей и статусов | 4–6 ч |
| Разработка обработчиков событий | 8–12 ч |
| Реализация очереди и обработки ошибок | 6–10 ч |
| Двусторонняя синхронизация статусов | 6–10 ч |
| Тестирование и отладка | 8–12 ч |
Синхронизация товарного каталога
Если в Битрикс24 используется каталог (crm.product.*), важно синхронизировать его с каталогом сайта. Иначе в сделке будут «ручные» позиции без привязки к номенклатуре. Метод crm.deal.productrows.set принимает массив позиций с PRODUCT_ID — ID товара в каталоге Битрикс24.
Стратегия: при создании товара на сайте через событие OnAfterIBlockElementAdd автоматически создаём/обновляем запись в Битрикс24 через crm.product.add. XML_ID хранится как внешний идентификатор для дедупликации. Так вы избегаете дублирования номенклатуры.
Что входит в работу и когда окупается
Мы предоставляем полный комплект: детальная документация по архитектуре интеграции, настроенные доступы к REST API и вебхукам, обучение менеджеров работе с обновлённой CRM, а также гарантийная поддержка в течение 30 дней после сдачи. Все работы выполняют сертифицированные специалисты с опытом более 10 лет.
Интеграция окупается за 1–2 месяца за счёт сокращения ручного труда. Оценим ваш проект за 2 часа — свяжитесь с нами для консультации. Получите консультацию по вашему проекту прямо сейчас.
Подробнее о REST API Битрикс24 читайте в официальной документации.







