Інтеграція Бітрікс24 з 3CX

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

Інтеграція Бітрікс24 з 3CX

3CX — комерційна IP-АТС із продуманим веб-інтерфейсом і власною екосистемою клієнтських застосунків. На відміну від Asterisk, 3CX надає структурований API для інтеграцій — це спрощує завдання, але водночас накладає обмеження на архітектурні рішення.

Два офіційних способи інтеграції

Вбудована CRM-інтеграція 3CX. У 3CX є розділ Settings → CRM Integration, де можна налаштувати передачу подій дзвінків у зовнішні CRM. Бітрікс24 не входить до списку попередньо встановлених CRM у 3CX за замовчуванням, але підтримується через Custom CRM — механізм шаблонів HTTP-запитів.

3CX Call Flow Designer (CFD) + Webhooks. CFD — візуальний дизайнер call-flow у 3CX, який дозволяє надсилати HTTP-запити при певних подіях дзвінка. Гнучкіший за CRM-інтеграцію і підходить для нестандартних сценаріїв.

Налаштування через Custom CRM Integration

У консолі 3CX Management Console → CRM Integration → Custom CRM:

URL дзвінка (Call Answered):

https://ваш_портал.bitrix24.ua/rest/КЛЮЧ/telephony.externalcall.register/

Параметри запиту передаються в тілі POST:

{
  "USER_PHONE_INNER": "%Ext%",
  "PHONE_NUMBER": "%CallerNumber%",
  "CALL_START_DATE": "%CallStarted%",
  "CRM_CREATE": "Y",
  "TYPE": "%Direction%"
}

3CX підтримує змінні-плейсхолдери: %Ext% — внутрішній номер, %CallerNumber% — номер того, хто телефонує, %Direction% — напрямок (1=вхідний, 2=вихідний). Повний список змінних наведено в документації 3CX.

URL завершення дзвінка (Call Ended):

https://ваш_портал.bitrix24.ua/rest/КЛЮЧ/telephony.externalcall.finish/

Параметри:

{
  "CALL_ID": "%call_id_saved%",
  "DURATION": "%TalkDuration%",
  "STATUS_CODE": "200"
}

Проблема: Custom CRM Integration у 3CX не надає механізму зберігання стану (неможливо зберегти CALL_ID з відповіді Бітрікс24 і передати його при завершенні). Це ключове обмеження — для повноцінної інтеграції зі збереженням CALL_ID потрібен проміжний сервер.

Проміжний сервер: вирішення проблеми CALL_ID

Архітектура з проміжним обробником:

3CX → webhook → PHP/Node.js обробник
                     ↓
              Bitrix24 REST API → отримуємо CALL_ID
                     ↓
              Зберігаємо CALL_ID в Redis/БД з ключем = UNIQUEID дзвінка
                     ↓
3CX → webhook завершення → обробник
                     ↓
              Дістаємо CALL_ID з Redis
                     ↓
              telephony.externalcall.finish
                     ↓
              Прикріплюємо запис

Це додає компонент інфраструктури, але дає повний контроль над інтеграцією.

Запис дзвінків у 3CX

3CX зберігає записи в директорії сервера або в хмарному сховищі (залежить від версії та налаштувань). Доступ до файлів через 3CX Recording Storage API або безпосередньо до файлової системи.

Для передачі в Бітрікс24 — скрипт після завершення дзвінка звертається до 3CX API, отримує посилання на запис і завантажує його через telephony.externalCall.attachRecord.

3CX повертає посилання на запис через API дзвінків:

GET /api/recordings?callId={callId}

Авторизація через JWT-токен (3CX версії 18+): Authorization: Bearer <token>.

3CX SBC і проблема NAT

3CX часто розгортається з SBC (Session Border Controller) для NAT-traversal. При інтеграції з Бітрікс24 через SIP-транк необхідно переконатися, що зовнішній IP SBC вказаний у налаштуваннях SIP-транку Бітрікс24. Інакше — одностороннє аудіо під час дзвінків від Бітрікс24 до 3CX.

Кейс: розподілена команда, 3CX у хмарі

IT-компанія з офісами в двох містах використовувала 3CX Hosted (хмарна версія). Вимога: коли клієнт телефонує на московський номер і потрапляє до петербурзького менеджера, у Бітрікс24 дзвінок має створюватися у петербурзького менеджера з прив'язкою до московського вхідного номера.

3CX Custom CRM Integration не підтримує маппінг внутрішніх номерів на користувачів Бітрікс24. Вирішили через проміжний обробник із таблицею відповідностей: внутрішній номер 3CX → ID користувача Бітрікс24. При реєстрації дзвінка обробник звертається до таблиці і підставляє USER_ID потрібного користувача.

Термін налаштування: 5–7 робочих днів.