Інтеграція 1С-Бітрікс з CRM Бітрікс24

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Інтеграція 1С-Бітрікс з CRM Бітрікс24
Середня
~1-2 тижні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Інтеграція 1С-Бітрікс з CRM Бітрікс24

Типова точка болю: інтернет-магазин на 1С-Бітрікс приймає замовлення, а відділ продажів працює в Бітрікс24 CRM. Менеджери вручну переносять дані між системами — втрачають замовлення, дублюють контакти, не бачать історію клієнта. Готове рішення — REST API + вебхуки між двома продуктами одного вендора, але налаштувати це правильно складніше, ніж здається.

Архітектура зв'язки

Бітрікс24 надає REST API через OAuth 2.0 або вхідні вебхуки. 1С-Бітрікс спілкується з ним через модуль bitrix24connector (якщо встановлений) або напряму через \Bitrix\Main\Web\HttpClient.

Ключові методи REST, задіяні в інтеграції:

Метод Бітрікс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.product.*), важливо синхронізувати його з каталогом сайту. Інакше в угоді будуть «ручні» позиції без прив'язки до номенклатури. Метод crm.deal.productrows.set приймає масив позицій з PRODUCT_ID — ID товару в каталозі Бітрікс24.

Стратегія: при створенні товару на сайті через подію OnAfterIBlockElementAdd автоматично створюємо/оновлюємо запис у Бітрікс24 через crm.product.add. XML_ID зберігається як зовнішній ідентифікатор для дедублікації.

Обробка помилок та черга

REST API Бітрікс24 має rate limit: 2 запити на секунду на хмарному тарифі. При сплеску замовлень прямий синхронний виклик впреться в ліміт. Правильна архітектура — черга:

  1. Подія на сайті (OnSaleOrderSaved) розміщує завдання в таблицю черги.
  2. Агент Бітрікса кожні 30 секунд обробляє чергу порціями по 2 запити/с.
  3. При помилці запис залишається в черзі зі збільшеним лічильником спроб (max 5).
Етап інтеграції Трудовитрати
Налаштування OAuth / вебхуків 2–4 год
Мепінг полів і статусів 4–6 год
Розробка обробників подій 8–12 год
Реалізація черги та обробки помилок 6–10 год
Двостороння синхронізація статусів 6–10 год
Тестування та налагодження 8–12 год