Онлайн-чат без 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' => 'https://yoursite.ru/icon.png',
'ENDPOINT' => 'https://yoursite.ru/local/api/chat-send.php',
'HANDLER' => 'https://yoursite.ru/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 можно найти в официальной документации.







