Онлайн-чат без CRM — просто інструмент спілкування. З CRM — джерело лідів, історія контакту, воронка угод. Розрив між чатом і CRM коштує грошей: менеджер закрив діалог, дані ніде не збереглися, через тиждень клієнт зателефонував знову і почав спочатку. Інтеграція це виключає. Ми реалізуємо зв'язку чату з Бітрікс24 під ключ — від налаштування готового конектора до розробки кастомного обробника з дедуплікацією та сповіщеннями. За нашими даними, інтеграція підвищує конверсію в угоду на 30–50% завдяки збереженню історії та автоматичному призначенню відповідального.
Типова проблема: клієнт оформив замовлення через чат, менеджер витратив 15 хвилин на переписку, а після закриття діалогу дані загубилися. Через місяць той самий клієнт телефонує з іншим питанням — і все повторюється. Інтеграція вирішує це автоматично: кожне звернення фіксується в CRM, прикріплюється до контакту і потрапляє у воронку продажів.
Як вибрати спосіб інтеграції?
Способів зв'язати онлайн-консультант з Бітрікс24 кілька, вибір залежить від платформи чату та необхідної функціональності. Розглянемо кожен варіант з позиції складності та кінцевого результату.
Нативні інтеграції. Деякі чати (JivoSite, LiveChat, Callibri) мають готові конектори до Бітрікс24 — через маркетплейс Бітрікс24 або налаштування самого чату. Це найшвидший шлях, але з обмеженими можливостями кастомізації. Наприклад, ви не зможете додати свою логіку дедуплікації або кастомні сповіщення.
Відкриті лінії Бітрікс24. Механізм, що дозволяє підключити зовнішній чат-канал до CRM Бітрікс24. Повідомлення з чату з'являються в інтерфейсі Відкритих ліній, оператор відповідає з Бітрікс24, відповідь надсилається клієнту в чат на сайті. Вимагає реалізації Webhook в обидві сторони. Це найбільш повний варіант, але й найбільш трудомісткий.
REST API Бітрікс24 + Webhook чату. Чат надсилає Webhook при завершенні діалогу, обробник створює лід/контакт/угоду через crm.lead.add або crm.contact.add. Підходить, коли глибока переписка не потрібна — достатньо фіксації факту звернення. Економить час менеджерів — їм не потрібно вручну вносити дані.
| Метод | Складність | Глибина інтеграції | Термін реалізації |
|---|---|---|---|
| Нативний конектор | Низька | Середня (ліди, але без історії діалогу) | 1–2 години |
| REST API + Webhook | Середня | Базова (лід/угода без діалогу) | 2–3 дні |
| Відкриті лінії | Висока | Повна (діалог у CRM, відповідь з CRM) | 2–3 тижні |
Як інтеграція через Відкриті лінії вирішує проблему втрати даних?
Відкриті лінії — найбільш глибокий варіант інтеграції. Оператор бачить всю переписку в CRM, а клієнт отримує відповідь у чаті на сайті. Повноцінний діалог у CRM збільшує конверсію в угоду вдвічі порівняно з простим створенням ліда. Реалізація вимагає розробки конектора.
Крок 1. Реєстрація конектора в Бітрікс24:
$result = callBitrix24Rest('imopenlines.connector.register', [
'ID' => 'my_chat_connector',
'NAME' => 'Онлайн-чат сайту',
'ICON_FILE' => '/path/to/icon.png',
'ENDPOINT' => '/local/api/chat-send.php',
'HANDLER' => '/local/api/chat-handler.php',
]);
Крок 2. Передача повідомлення з чату в Бітрікс24:
function sendMessageToBitrix24(string $userId, string $message, string $userName): void
{
callBitrix24Rest('imopenlines.message.add', [
'CONNECTOR' => 'my_chat_connector',
'LINE' => OPENLINE_ID,
'MESSAGES' => [[
'user' => [
'id' => 'chat-user-' . $userId,
'name' => $userName,
'avatar' => '',
],
'message' => ['text' => $message],
'timestamp' => time(),
]],
]);
}
Крок 3. Отримання відповіді оператора з Бітрікс24:
Бітрікс24 викликає ENDPOINT при відповіді оператора:
$payload = json_decode(file_get_contents('php://input'), true);
$chatUserId = $payload['data']['USER']['ID'];
$message = $payload['data']['MESSAGES'][0]['text'];
ChatService::sendToUser(extractUserId($chatUserId), $message);
http_response_code(200);
echo json_encode(['RESULT' => 'OK']);
Чому дедуплікація критична для CRM?
Без перевірки дублікатів кожен повторний контакт створює новий лід, засмічуючи воронку. Ми реалізуємо пошук існуючого контакту за email або телефоном перед створенням ліда. Якщо контакт знайдено, створюємо угоду, прив'язану до нього. Це запобігає задвоєнню та покращує аналітику.
function findExistingContact(string $email, string $phone): ?int
{
if ($email) {
$result = callBitrix24Rest('crm.contact.list', [
'filter' => ['EMAIL' => $email],
'select' => ['ID'],
]);
if (!empty($result['result'][0]['ID'])) return (int)$result['result'][0]['ID'];
}
if ($phone) {
$result = callBitrix24Rest('crm.contact.list', [
'filter' => ['PHONE' => $phone],
'select' => ['ID'],
]);
if (!empty($result['result'][0]['ID'])) return (int)$result['result'][0]['ID'];
}
return null;
}
Як створити лід через REST API?
Якщо повноцінний діалог не потрібен — достатньо створювати лід при завершенні чату. Код обробника:
function createLeadFromChat(array $visitorData, string $transcript): int
{
$response = callBitrix24Rest('crm.lead.add', [
'fields' => [
'TITLE' => 'Чат: ' . ($visitorData['name'] ?: $visitorData['email'] ?: 'Гість'),
'NAME' => $visitorData['name'] ?? '',
'EMAIL' => [['VALUE' => $visitorData['email'] ?? '', 'VALUE_TYPE' => 'WORK']],
'PHONE' => [['VALUE' => $visitorData['phone'] ?? '', 'VALUE_TYPE' => 'WORK']],
'COMMENTS' => htmlspecialchars($transcript),
'SOURCE_ID' => 'WEB',
'STATUS_ID' => 'NEW',
'ASSIGNED_BY_ID' => getResponsibleManagerId(),
],
'params' => ['REGISTER_SONET_EVENT' => 'N'],
]);
return (int)($response['result'] ?? 0);
}
Призначення відповідального та сповіщення
Автоматично призначаємо менеджера за ротацією або правилом, після створення ліда надсилаємо сповіщення.
function getResponsibleManagerId(): int
{
$managers = [15, 23, 41];
return $managers[array_rand($managers)];
}
callBitrix24Rest('im.notify.system.add', [
'USER_ID' => $responsibleId,
'MESSAGE' => 'Нове звернення через чат. Лід #' . $leadId . ' створено.',
]);
Що входить в роботу
- Аудит поточного чату та CRM: вибір оптимальної архітектури.
- Розробка та налаштування конектора (Відкриті лінії або Webhook).
- Реалізація логіки дедуплікації контактів.
- Налаштування призначення відповідального та сповіщень.
- Тестування всіх сценаріїв: новий клієнт, повторний, з пустими даними.
- Документація: схема інтеграції, опис ендпоінтів, інструкція для операторів.
- Підтримка після запуску: гарантія 30 днів на виявлені помилки.
Типові помилки при інтеграції та їх вирішення
| Помилка | Наслідок | Вирішення |
|---|---|---|
| Відсутність дедуплікації | Дублікати лідів, засмічення CRM | Впровадити перевірку за email/телефоном |
| Невірний endpoint для вебхуків | Повідомлення не доходять до CRM | Перевірити доступність та логіку обробки |
| Ігнорування timeout'ів | Втрата повідомлень при високому навантаженні | Використовувати чергу повідомлень |
Зв'яжіться з нами для безкоштовної оцінки вашого проєкту — ми підберемо оптимальний варіант інтеграції.
Терміни
- Інтеграція через Webhook зі створенням ліда — 2–3 дні.
- Повна інтеграція через Відкриті лінії — 2–3 тижні.
Точні терміни залежать від складності чату та обсягів кастомізації. Оцінимо проєкт безкоштовно — напишіть на пошту або у форму зворотного зв'язку.
Замовте інтеграцію — отримайте готове рішення з документацією та гарантією. Детальну інформацію про REST API Бітрікс24 можна знайти в офіційній документації.







