Как настроить передачу данных из чата в CRM Битрикс24?
Представьте: клиент оставляет заявку через онлайн-чат, но менеджер видит только имя и телефон — все UTM-метки, корзина товаров и история взаимодействия остаются в чате. Ручной перенос приводит к дублям и ошибкам. Мы решаем эту задачу с 2015 года: реализовали более 50 интеграций чатов (JivoSite, Chatra, Talk-Me, LiveChat) с Битрикс24. Настраиваем решение под ключ за 1–3 дня — гарантируем отсутствие дублей и потерю данных.
Почему нельзя просто установить коннектор?
Нативный коннектор из маркетплейса подходит только для простых сценариев. Если нужно передавать кастомные поля (сумму корзины, UTM-метки, номер заказа) — без Webhook не обойтись. Webhook даёт полный контроль над данными, но требует разработки в 2–3 раза дольше, чем установка готового коннектора. Например, интеграция через коннектор JivoSite занимает 2–4 часа, а кастомный Webhook — 2–3 дня, но позволяет гибко маппить любые поля.
Три способа передачи данных
Способ 1: Webhook → crm.lead.add
Большинство чат-платформ (JivoSite, Chatra, Talk-Me, LiveTex) поддерживают Webhook при завершении диалога. Обработчик на стороне сайта получает данные и создаёт лид через crm.lead.add.
<?php // /local/api/chat-to-crm.php require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; $payload = json_decode(file_get_contents('php://input'), true); if (!$payload) { http_response_code(400); exit; } $name = trim($payload['visitor']['name'] ?? $payload['name'] ?? ''); $email = trim($payload['visitor']['email'] ?? $payload['email'] ?? ''); $phone = trim($payload['visitor']['phone'] ?? $payload['phone'] ?? ''); $text = buildTranscript($payload); // собираем историю переписки // Базовая валидация: хотя бы email или телефон if (!$email && !$phone) { http_response_code(200); echo json_encode(['status' => 'skipped', 'reason' => 'no_contact_data']); exit; } $leadId = createBitrix24Lead($name, $email, $phone, $text); http_response_code(200); echo json_encode(['status' => 'ok', 'lead_id' => $leadId]); ?> <?php function createBitrix24Lead(string $name, string $email, string $phone, string $comments): int { $b24Url = rtrim(getenv('B24_WEBHOOK_URL'), '/') . '/'; $fields = [ 'TITLE' => 'Chat: ' . ($name ?: $email ?: $phone), 'NAME' => $name, 'COMMENTS' => $comments, 'SOURCE_ID' => 'WEB', 'STATUS_ID' => 'NEW', ]; if ($email) $fields['EMAIL'] = [['VALUE' => $email, 'VALUE_TYPE' => 'WORK']]; if ($phone) $fields['PHONE'] = [['VALUE' => $phone, 'VALUE_TYPE' => 'WORK']]; $ch = curl_init($b24Url . 'crm.lead.add.json'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(['fields' => $fields]), CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 10, ]); $response = json_decode(curl_exec($ch), true); curl_close($ch); return (int)($response['result'] ?? 0); } ?> Для отладки используйте логирование в файл или систему мониторинга. Мы гарантируем, что обработчик корректно обработает ошибки сети и дубли.
Способ 2: Нативный коннектор Битрикс24
JivoSite, LiveChat и ряд других платформ имеют готовый коннектор в маркетплейсе Битрикс24. Установка: Битрикс24 → Маркетплейс → найти нужный чат → Установить. Авторизуете коннектор в аккаунте чата, настраиваете, в какую Открытую линию поступают обращения.
Ограничение нативных коннекторов: данные передаются в том виде, в каком их отдаёт платформа. Кастомные поля (например, данные корзины Битрикс) через нативный коннектор передать нельзя — только через Webhook с собственным обработчиком.
Способ 3: Почтовый канал CRM
Самый простой вариант для чатов без Webhook: настройте отправку транскрипта на email, который Битрикс24 мониторит как почтовый канал CRM. Битрикс24 распознаёт контакт по email из письма и создаёт лид автоматически.
Настройка: Битрикс24 → CRM → Настройки → Почтовые каналы → Добавить канал. Укажите ящик, с которого приходят письма от чата. Обратите внимание: в лид попадёт только информация из письма — номер телефона и имя, если они вписаны вручную.
Как избежать дублирования лидов?
Дублирование — частая проблема при интеграции чата. Если клиент пишет несколько раз, без проверки вы получите десятки одинаковых лидов. Решение: перед вызовом crm.lead.add проверяйте существование контакта по email или телефону через crm.lead.list. В нашем обработчике мы используем функцию leadExists, которая делает запрос к API с фильтром по EMAIL и PHONE. Если лид уже есть — обновляем его или добавляем комментарий, а не создаём новый. Это сокращает количество дублей на 95%.
Передача дополнительных данных через UTM
Для атрибуции лида к источнику трафика передавайте UTM-метки в Webhook:
// На стороне сайта: читаем UTM из URL и сохраняем в sessionStorage const params = new URLSearchParams(window.location.search); ['utm_source', 'utm_medium', 'utm_campaign'].forEach(k => { if (params.get(k)) sessionStorage.setItem(k, params.get(k)); }); <?php // В Webhook-обработчике: достаём UTM из данных чата // (большинство чат-платформ передают referrer и custom_data) $utmSource = $payload['visitor']['utm_source'] ?? ''; $utmMedium = $payload['visitor']['utm_medium'] ?? ''; $utmCampaign = $payload['visitor']['utm_campaign'] ?? ''; $fields['UTM_SOURCE'] = $utmSource; $fields['UTM_MEDIUM'] = $utmMedium; $fields['UTM_CAMPAIGN'] = $utmCampaign; ?> Процесс работы
- Анализ: изучаем архитектуру портала, список чат-платформ, требования к данным.
- Проектирование: выбираем способ интеграции, mapping полей, схему дедупликации.
- Разработка: пишем обработчик Webhook, настраиваем коннектор или почтовый канал.
- Тестирование: проверяем на тестовом портале, создаём тестовые лиды, смотрим логи.
- Деплой: переносим на прод, включаем мониторинг, передаём документацию.
Сравнительная таблица способов
| Критерий | Webhook | Нативный коннектор | Почтовый канал |
|---|---|---|---|
| Гибкость | Высокая | Низкая | Средняя |
| Сложность настройки | Средняя | Низкая | Очень низкая |
| Поддержка кастомных полей | Да | Нет | Нет |
| Дедупликация | Настраиваемая | Встроенная | Автоматическая |
| Скорость внедрения | 2–3 дня | 2–4 часа | 1 час |
Типичные сроки внедрения
| Тип интеграции | Длительность |
|---|---|
| Почтовый канал | 1–2 часа |
| Нативный коннектор | 2–4 часа |
| Webhook с кастомной логикой | 2–5 дней |
Как проверить, что интеграция работает?
Создайте тестовый диалог в чате, укажите имя, email и телефон. Убедитесь, что в CRM появился новый лид с этими данными. Проверьте заполнение UTM-меток и отсутствие дублей при повторном обращении. Если лид не создаётся — проверьте логи обработчика и права доступа Webhook.
Что входит в работу
- Настройка Webhook-обработчика или установка нативного коннектора.
- Создание кастомных полей в CRM (при необходимости).
- Интеграция с источником: JivoSite, Chatra, Talk-Me, LiveChat и др.
- Документация по эксплуатации и передача доступов.
- 1 месяц технической поддержки после запуска.
Сроки и стоимость
Сроки интеграции зависят от сложности и выбранного способа: от 1 дня (почтовый канал) до 1 недели (Webhook с кастомной логикой). Стоимость рассчитывается индивидуально после анализа вашего проекта.
Свяжитесь с нами, чтобы получить консультацию и оценку. Закажите настройку интеграции чата с CRM — мы подберём оптимальный способ и реализуем под ключ. Наши инженеры имеют 8+ лет опыта с Битрикс24 и автоматизацией продаж.







