Разработка чат-бота для Битрикс24
Стандартные автоответы в открытых линиях закрывают только один сценарий — «написали вне рабочего времени, подождите». Полноценный чат-бот обрабатывает входящие обращения: квалифицирует лид, отвечает на типовые вопросы, создаёт сделки в CRM и передаёт оператору только тех клиентов, которых не смог обработать сам.
Архитектура чат-бота в Битрикс24
Битрикс24 предоставляет два механизма для чат-ботов:
1. Встроенный Bot Framework — регистрация бота через REST API метод imbot.register. Бот работает внутри Битрикс24: отвечает в чатах, открытых линиях, внутренних разговорах. События приходят на webhook-URL вашего сервера.
2. Открытые линии + внешний обработчик — все сообщения из подключённых каналов (Telegram, WhatsApp, сайт) проходят через открытую линию. Внешний сервис подписывается на события через imopenlines.bot.session.message и отвечает через imbot.message.add.
Для большинства задач используют комбинацию: внешний сервис (Python/Node.js) + Bot Framework Битрикс24 + интеграция с CRM через REST.
Регистрация и жизненный цикл бота
POST /rest/imbot.register
{
"CODE": "support_bot",
"EVENT_HANDLER": "https://your-server.com/bot/handler",
"EVENT_MESSAGE_ADD": "https://your-server.com/bot/message",
"OPENLINE": "Y",
"PROPERTIES": {"NAME": "Поддержка", "COLOR": "AZURE"}
}
После регистрации Битрикс24 присваивает боту BOT_ID. Все входящие сообщения клиентов в открытых линиях, подключённых к этому боту, поступают на EVENT_MESSAGE_ADD в виде POST-запроса с полями: BOT_ID, DIALOG_ID, MESSAGE, USER_ID.
Бот отвечает через:
POST /rest/imbot.message.add
{
"BOT_ID": 123,
"DIALOG_ID": "chat456",
"MESSAGE": "Привет! По какому вопросу обращаетесь?"
}
Для передачи чата оператору — imopenlines.session.transfer с указанием USER_ID оператора или ID очереди.
Логика диалога: FSM vs. NLP
Сценарный бот (FSM — конечный автомат) — самый предсказуемый вариант. Каждый диалог — дерево состояний. Пользователь выбирает из кнопок, бот переходит в следующее состояние.
Кнопки в Битрикс24 реализуются через KEYBOARD в imbot.message.add:
"KEYBOARD": {
"BUTTONS": [
[{"TEXT": "Статус заказа", "COMMAND": "order_status"}],
[{"TEXT": "Вернуть товар", "COMMAND": "return"}],
[{"TEXT": "Связаться с оператором", "COMMAND": "transfer"}]
]
}
NLP-бот — понимает произвольный текст. Требует подключения языковой модели (Dialogflow, Rasa, OpenAI API). Обработка: сообщение → NLP-сервис → intent → обработчик intent → ответ. Точность на русском языке у Rasa сильно зависит от качества обучающей выборки. OpenAI GPT-4 работает без обучения, но стоит дороже при высоких нагрузках.
На практике используют гибрид: структурированные кнопки + NLP для свободного ввода с фолбэком на оператора при низкой уверенности (confidence < 0.7).
Интеграция с CRM
Ключевой момент — всё, что бот узнал о клиенте, должно попасть в CRM. Типовой сценарий:
- Клиент написал → бот создал лид:
crm.lead.addс источникомSOURCE_ID = 'CHAT'. - Бот задал квалификационные вопросы: имя, телефон, суть запроса.
- Ответы записываются в поля лида:
crm.lead.updateс заполненнымиNAME,PHONE,COMMENTS. - Если клиент ввёл телефон — бот ищет его в CRM:
crm.contact.listс фильтром поPHONE. Нашёл — обновляет, не нашёл — создаёт. - При передаче оператору — лид уже заполнен, оператор видит историю переписки в карточке.
Событие создания/обновления CRM-сущности автоматически появляется в таймлайне — это стандартное поведение модуля crm.
Реальный кейс: бот для онлайн-магазина
Задача: интернет-магазин бытовой техники, ~500 обращений в день в Telegram. 70% вопросов — «где мой заказ?», «можно ли вернуть?», «есть ли в наличии модель X?».
Архитектура: Node.js сервер на VPS + Битрикс24 Bot Framework + интеграция с 1С через REST.
Сценарии:
- «Где заказ» → бот запрашивает номер заказа → делает запрос в 1С (через REST-сервис 1С) → возвращает статус клиенту. Без оператора.
- «Наличие товара» → поиск по каталогу Битрикс (
iblock.element.list) → выдача текущего остатка. - «Возврат» → FSM: дата покупки → причина → фото товара (принимает через
disk.folder.uploadfile) → создаёт задачу менеджеру. - Всё остальное → перевод на оператора с пометкой темы.
Результат через месяц: операторы обрабатывают 35% от исходного объёма. Оставшиеся 65% закрывает бот. Среднее время ответа на типовой вопрос сократилось с 8 минут до 15 секунд.
Узкое место: обработка фотографий от клиентов. Битрикс24 передаёт файлы через временные ссылки с коротким TTL — сервер бота должен скачивать их в течение 30-60 секунд, иначе ссылка протухает.
Что влияет на трудозатраты
| Компонент | Трудозатраты |
|---|---|
| Базовый FSM-бот (3-5 сценариев) | 16-40 ч |
| Интеграция с CRM (лиды, контакты) | 8-16 ч |
| NLP на OpenAI/Dialogflow | 16-40 ч |
| Интеграция с внешними системами (1С, ERP) | 16-40 ч |
| Тесты, деплой, мониторинг | 8-16 ч |
Минимальный рабочий бот с 3-4 сценариями и CRM-интеграцией — от 40 часов. Сложный мультисценарный бот с NLP и внешними интеграциями — 80-120 часов.







