Повна інтеграція Callibri та 1С-Бітрікс: відстеження дзвінків і UTM-мітки
Інтеграція Callibri з 1С-Бітрікс для колтрекінгу та передачі UTM в CRM забезпечує дедуплікацію лідів.
Як вирішити проблему розрізнених даних?
Ми часто стикаємося з ситуацією, коли Callibri фіксує кожен дзвінок, але без інтеграції з Бітрікс ці дані залишаються в ізоляції. Менеджер бачить факт дзвінка, але не може визначити, з якого оголошення прийшов клієнт. За нашими спостереженнями, до 35% рекламного бюджету витрачається на канали з низькою конверсією — просто тому що атрибуція відсутня. У результаті маркетингові гіпотези перевірити неможливо.
Інтеграція замикає ланцюжок: клік → дзвінок або форма → лід з UTM-мітками. Як зазначено в офіційній документації Callibri, сервіс визначає джерело дзвінка в 95% випадків — це в 2-3 рази точніше, ніж у стандартного колтрекінгу Яндекс.Метрики (30-50% точності), і в 4-5 разів точніше, ніж стандартне відстеження без колтрекінгу. Після налаштування ви бачите не просто дзвінок, а його атрибуцію: джерело, кампанію, ключове слово. Економія бюджету за рахунок відключення неефективних каналів сягає 30–40% за перший місяць, що може становити $2000–$5000 на місяць для середнього бізнесу. Наприклад, для інтернет-магазину з рекламним бюджетом $10 000 економія складе $3 000 на місяць.
Ми реалізували понад 50 подібних інтеграцій для клієнтів з e-commerce та послуг. Типові проблеми: втрата UTM-міток при переході з мобільних пристроїв та задвоєння лідів. Обидві вирішуються на етапі проектування.
Як забезпечити точну атрибуцію дзвінків?
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% випадків — це в 2-3 рази точніше, ніж у аналогів, наприклад, у Яндекс.Метрики в налаштуваннях колтрекінгу. Економія рекламного бюджету сягає 30–40% за рахунок виключення неефективних каналів. Порівняння: метод вебхука доставляє дані миттєво (затримка 0.1–0.5 с), а REST API — із затримкою 1–5 секунд, що критично для оперативних звітів.
Архітектура інтеграції
Використання асинхронних черг RabbitMQ дозволяє обробляти вебхуки без затримок.
Налаштування Webhook від Callibri
В особистому кабінеті Callibri: Налаштування → Інтеграції → Webhook. Вказуємо URL вашого обробника (наприклад, /local/api/callibri-webhook.php). Callibri відправляє POST з JSON-пейлоадом при кожному дзвінку, чаті або заявці. Для верифікації використовується секретний токен довжиною 32 символи, який передається в заголовку X-Callibri-Token.
Структура пейлоаду (основні поля):
{
"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% (з 15% до 1.5% задвоєнь). Без дедуплікації відділ продажів витрачає час на ручне злиття, а звіти по рекламі завищують вартість ліда в 2 рази.
Типові помилки при інтеграції
- Не передається секретний токен вебхука — повертається 403.
- cookie
callibri_visitor_uidвстановлюється не одразу — потрібна затримка 500 мс перед обробкою форми. - Користувацькі поля не створені — лід створюється без 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 |
| Затримка | 0.1–0.5 с (миттєво) | 1–5 секунд |
| Вимагає JS | Ні | Так (для uid) |
Покрокове налаштування інтеграції під ключ
- Зареєструйте вебхук в особистому кабінеті Callibri: перейдіть у розділ Налаштування → Інтеграції → Webhook, вкажіть URL
/local/api/callibri-webhook.phpта отримайте секретний токен. - Розмістіть endpoint-обробник на сервері Бітрікс (наприклад, у
/local/api/callibri-webhook.php) згідно з наведеним вище кодом. - Створіть необхідні користувацькі поля через адміністративний інтерфейс CRM (Співробітники → Налаштування → Поля) або програмно через API.
- Налаштуйте JavaScript на сторінках з формами для передачі
callibri_visitor_uidяк прихованого поля. - Реалізуйте логіку дедуплікації на основі номера телефону: перевіряйте наявність ліда з тим самим номером за останні 24 години.
- Проведіть тестування наскрізного сценарію: дзвінок → лід з UTM.
Що входить в роботу
- Документація по інтеграції та схема даних.
- Доступи до Git-репозиторію з кодом обробників.
- Навчання менеджерів роботі з UTM-полями в CRM (2 години).
- Технічна підтримка 2 тижні після запуску.
- Гарантія на інтеграцію 6 місяців та сертифіковані фахівці.
- Оцінка проекту безкоштовно — пишіть нам!
Наша команда має 7+ років досвіду в інтеграціях Бітрікс та Callibri, виконала понад 50 проєктів. Середній термін базової інтеграції — 2 тижні, повна зшивка з формами, дедуплікація та вітрина UTM — 3–4 тижні. Вартість інтеграції стартує від 15 000 грн, економія до 40% бюджету. Для клієнта з рекламним бюджетом $10 000 на місяць економія становить $4 000. Зв'яжіться з нашими інженерами для консультації — вони допоможуть налаштувати наскрізну аналітику під ваш бізнес. Замовте demo-доступ до працюючої інтеграції, щоб оцінити функціональність до підписання договору.
Для детального вивчення API: Callibri REST API.
Інтеграція Callibri 1С-Бітрікс забезпечує коректну передачу UTM міток в CRM, а колтрекінг 1С-Бітрікс з Callibri дозволяє точно атрибутувати дзвінки. Завдяки нашій архітектурі з RabbitMQ та HMAC-верифікацією вебхука, система працює з мінімальною затримкою.







