Проблема разрозненных данных
Callibri фиксирует каждый звонок, но без интеграции с Битрикс эти данные остаются в изоляции. Менеджер видит факт звонка, но не может определить, с какого объявления пришёл клиент. По нашим наблюдениям, до 35% рекламного бюджета тратится на каналы с низкой конверсией — просто потому что атрибуция отсутствует. В результате маркетинговые гипотезы проверять невозможно.
Интеграция замыкает цепочку: клик → звонок или форма → лид с UTM-метками. Как указано в официальной документации Callibri, сервис определяет источник звонка в 95% случаев — это на 30–50% точнее, чем у стандартного коллтрекинга Яндекс.Метрики. После настройки вы видите не просто звонок, а его атрибуцию: источник, кампанию, ключевое слово. Экономия бюджета за счёт отключения неэффективных каналов достигает 30–40% за первый месяц.
Мы реализовали свыше 50 подобных интеграций для клиентов из e-commerce и услуг. Типовые проблемы: потеря UTM-меток при переходе с мобильных устройств и задвоение лидов. Обе решаются на этапе проектирования.
Как Callibri связать с 1С-Битрикс?
Callibri предоставляет два механизма: JavaScript API для клиентской стороны и REST API для серверного взаимодействия. Для полноценной интеграции с Битрикс нужны оба.
Схема потока данных для звонков:
Посетитель → Callibri JS подменяет номер → Звонок фиксируется в Callibri → Webhook от Callibri (POST на ваш endpoint) → Битрикс-обработчик → Создание лида/сделки в CRM Битрикс → Привязка UTM-меток к сделке Для форм — схема аналогична, но инициируется отправкой формы: JavaScript считывает callibri_visitor_uid из cookie, передаёт его вместе с данными формы на сервер, где выполняется запрос к REST API Callibri для получения деталей визита.
Почему важно передавать UTM-метки в CRM?
Стандартный Google Analytics показывает только общую статистику. Без сшивки вы не узнаете, какой канал привёл целевой звонок. Callibri определяет источник в 95% случаев — это на 30–50% точнее, чем у аналогов, например, у Яндекс.Метрики в настройках коллтрекинга. Экономия рекламного бюджета достигает 30–40% за счёт исключения неэффективных каналов. Сравнение: метод вебхука доставляет данные мгновенно, а REST API — с задержкой 1–5 секунд, что критично для оперативных отчётов.
Архитектура интеграции
Настройка Webhook от Callibri
В личном кабинете Callibri: Настройки → Интеграции → Webhook. Указываем URL вашего обработчика. Callibri отправляет POST с JSON-пейлоадом при каждом звонке, чате или заявке.
Структура пейлоада (основные поля):
{ "call_id": "98765432", "call_type": "call", "caller_number": "+79161234567", "call_date": "2024-03-15 14:23:11", "utm_source": "yandex", "utm_medium": "cpc", "utm_campaign": "brand_kw", "duration": 145, "is_target": true, "visitor_id": "callibri_abc123" } Обработчик в Битрикс — отдельный компонент или /local/api/callibri-webhook.php. Он принимает данные, верифицирует через секретный токен и создаёт лид. Пример кода (объединённый с созданием лида):
<?php require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'); $rawInput = file_get_contents('php://input'); $data = json_decode($rawInput, true); if (empty($data) || empty($data['caller_number'])) { http_response_code(400); exit; } $token = $_SERVER['HTTP_X_CALLIBRI_TOKEN'] ?? ''; if ($token !== \Bitrix\Main\Config\Option::get('local.callibri', 'webhook_secret')) { http_response_code(403); exit; } // Создание лида $fields = [ 'TITLE' => 'Звонок Callibri: ' . $data['caller_number'], 'PHONE' => [['VALUE' => $data['caller_number'], 'VALUE_TYPE' => 'WORK']], 'SOURCE_ID' => 'CALL', 'STATUS_ID' => 'NEW', 'ASSIGNED_BY_ID' => 1, // упрощённо; в реальном проекте — распределение 'UF_CALLIBRI_ID' => $data['call_id'], 'UF_UTM_SOURCE' => $data['utm_source'] ?? '', 'UF_UTM_MEDIUM' => $data['utm_medium'] ?? '', 'UF_UTM_CAMPAIGN'=> $data['utm_campaign'] ?? '', 'UF_CALL_DURATION' => (int)($data['duration'] ?? 0), ]; $lead = new \CCrmLead(false); $leadId = $lead->Add($fields, true, ['DISABLE_USER_FIELD_CHECK' => false]); if (!$leadId) { \CEventLog::Add([ 'SEVERITY' => 'ERROR', 'AUDIT_TYPE_ID' => 'CALLIBRI_LEAD_FAIL', 'MODULE_ID' => 'local.callibri', 'DESCRIPTION' => $lead->LAST_ERROR, ]); } http_response_code(200); echo json_encode(['status' => 'ok', 'lead_id' => $leadId]); Привязка визита к форме Битрикс
Callibri устанавливает cookie callibri_visitor_uid на стороне клиента. Нужно перехватить отправку формы и добавить uid как скрытое поле.
JavaScript на странице с формой:
document.addEventListener('DOMContentLoaded', function () { const forms = document.querySelectorAll('form.bx-form, form[data-bitrix-form]'); forms.forEach(function (form) { const uid = getCookie('callibri_visitor_uid'); if (uid) { const input = document.createElement('input'); input.type = 'hidden'; input.name = 'callibri_uid'; input.value = uid; form.appendChild(input); } }); }); function getCookie(name) { const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); return match ? match[2] : null; } На сервере в обработчике формы (OnBeforeIBlockElementAdd или кастомный обработчик):
$callibriUid = htmlspecialchars($_POST['callibri_uid'] ?? ''); if ($callibriUid) { $leadFields['UF_CALLIBRI_UID'] = $callibriUid; $visitData = (new \Local\Callibri\ApiClient())->getVisitByUid($callibriUid); if ($visitData) { $leadFields['UF_UTM_SOURCE'] = $visitData['utm_source'] ?? ''; $leadFields['UF_UTM_CAMPAIGN'] = $visitData['utm_campaign'] ?? ''; } } Что даёт дедупликация лидов?
Типичная проблема: клиент позвонил и потом заполнил форму. Два отдельных лида для одного контакта. Мы решаем это через проверку по номеру телефона: если за последние 24 часа уже есть лид со статусом NEW и тем же номером, обновляем его UTM-поля, а не создаём новый. Такой подход снижает дубли на 90%. Без дедупликации отдел продаж тратит время на ручное слияние, а отчёты по рекламе завышают стоимость лида в 2 раза.
Типичные ошибки при интеграции
- Не передаётся секретный токен вебхука — возвращается 403.
- cookie
callibri_visitor_uidустанавливается не сразу — нужна задержка перед обработкой формы. - Пользовательские поля не созданы — лид создаётся без UTM.
Пользовательские поля для UTM в CRM
Поля создаются через CUserTypeEntity или через административный интерфейс CRM. Рекомендуемый набор:
| Код поля | Тип | Назначение |
|---|---|---|
| UF_CALLIBRI_ID | string | ID звонка/чата в Callibri |
| UF_CALLIBRI_UID | string | Visitor UID для сшивки с формой |
| UF_UTM_SOURCE | string | utm_source |
| UF_UTM_MEDIUM | string | utm_medium |
| UF_UTM_CAMPAIGN | string | utm_campaign |
| UF_UTM_TERM | string | utm_term |
| UF_CALL_DURATION | integer | Длительность звонка, сек |
| UF_IS_TARGET_CALL | boolean | Целевой звонок |
Сравнение методов интеграции
| Критерий | Webhook (звонки) | REST API (формы) |
|---|---|---|
| Тип данных | Звонки, чаты | Визиты, история |
| Инициация | Callibri → ваш сервер | Ваш сервер → Callibri |
| Задержка | Мгновенно | 1–5 секунд |
| Требует JS | Нет | Да (для uid) |
Пошаговая настройка интеграции
- Зарегистрируйте вебхук в личном кабинете Callibri.
- Разместите endpoint-обработчик на сервере Битрикс.
- Создайте необходимые пользовательские поля через административный интерфейс или API.
- Настройте JavaScript на страницах с формами для передачи
callibri_visitor_uid. - Реализуйте логику дедупликации на основе номера телефона.
- Проведите тестирование сквозного сценария: звонок → лид с UTM.
Что входит в работу
- Документация по интеграции и схема данных.
- Доступы к Git-репозиторию с кодом обработчиков.
- Обучение менеджеров работе с UTM-полями в CRM.
- Техническая поддержка 2 недели после запуска.
Наша команда имеет 7+ лет опыта в интеграциях Битрикс и Callibri, выполнила более 50 проектов. Средний срок базовой интеграции — 2 недели, полная сшивка с формами, дедупликация и витрина UTM — 3–4 недели. Свяжитесь с нашими инженерами для консультации — они помогут настроить сквозную аналитику под ваш бизнес. Закажите demo-доступ к работающей интеграции, чтобы оценить функциональность до подписания договора.
Для детального изучения API: Callibri REST API.







