Розробка чат-бота для Бітрікс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 годин.







