Розробка бота-помічника для CRM Бітрікс24
Менеджери з продажів витрачають до 30% робочого часу не на продажі, а на рутину в CRM: заповнення карток, створення завдань за підсумками дзвінків, пошук потрібної інформації по клієнту перед переговорами. Бот-помічник для CRM бере цю рутину на себе — працює всередині CRM-карток, реагує на події угод і контактів, підказує менеджерам наступний крок.
Де живе CRM-бот
На відміну від чат-бота для клієнтів, CRM-бот працює в двох місцях одночасно:
-
Внутрішній чат Бітрікс24 — команди та сповіщення через модуль
im. -
Вбудований у CRM-картку віджет — через механізм CRM-елементів (застосунок з типом
CRM_DETAIL_ACTIVITY), який відображається прямо всередині картки угоди або контакту.
Другий варіант потужніший: менеджер не виходить з картки, бот показує дані та приймає команди прямо там. Реалізується через Бітрікс24 REST-застосунок з розміщенням у CRM_DETAIL_ACTIVITY або CRM_SIDEBAR.
Типові функції CRM-бота
Автозаповнення картки. Після дзвінка транскрибація повертає текст → бот парсить текст, витягує: ім'я клієнта, телефон, суть запиту, наступний крок → записує в поля угоди через crm.deal.update. Використовує NLP або прості регулярні вирази для структурованих форматів.
Наступна дія. На основі поточної стадії угоди та історії активностей бот рекомендує наступний крок: «Останній контакт 5 днів тому, клієнт на стадії КП — час подзвонити». Реалізується як сповіщення в чаті через imbot.message.add + кнопка «Створити завдання».
Збагачення даних. За ІПН або доменом компанії бот робить запит у зовнішні сервіси (СПАРК, DaData, Clearbit) → додає в картку компанії: галузь, виручку, кількість співробітників, директора. Дані записуються в користувацькі поля UF_CRM_* через crm.company.update.
Суммаризація історії. Менеджер відкриває картку нового для нього клієнта → бот читає всі активності через crm.activity.list + листування в чаті → через OpenAI API формує коротке резюме: «Клієнт звертався 3 рази, цікавився продуктом X, востаннє запитував знижку 15%».
Інтеграція з подіями CRM
CRM-бот підписується на події через event.bind або обробляє вебхуки:
crm.deal.onUpdate — угода змінена (зміна стадії, відповідального)
crm.deal.onAdd — нова угода
crm.activity.onAdd — нова активність (дзвінок, лист, зустріч)
crm.lead.onAdd — новий лід
Приклад логіки на зміну стадії:
def on_deal_update(event_data):
deal_id = event_data['data']['FIELDS']['ID']
deal = bitrix.call('crm.deal.get', {'id': deal_id})
if deal['STAGE_ID'] == 'C2:PREPARATION': # стадія "Підготовка КП"
# Створюємо завдання на підготовку КП
bitrix.call('tasks.task.add', {
'fields': {
'TITLE': f'Підготувати КП для {deal["COMPANY_TITLE"]}',
'RESPONSIBLE_ID': deal['ASSIGNED_BY_ID'],
'DEADLINE': '+3 days',
'UF_CRM_TASK': [f'D_{deal_id}']
}
})
Кейс: бот-асистент для B2B продажів
Контекст: виробнича компанія, 8 менеджерів, середній цикл угоди 45 днів, багато етапів погодження. Проблема: менеджери забувають оновлювати CRM, втрачають нитку переговорів після повернення з відпустки.
Що зробили:
Бот підписався на події crm.deal.onUpdate та crm.activity.onAdd. При кожній зміні угоди — оновлює внутрішній state діалогу (зберігається в Redis: ключ = deal_{ID}, значення = JSON з історією взаємодій).
«Брифінг» перед дзвінком. Менеджер натискає «Подзвонити» в картці → за 30 секунд до з'єднання бот надсилає в чат повідомлення: останні 3 активності, поточні домовленості, відкриті питання від клієнта, динаміка угоди за останні 2 тижні.
Автопротокол зустрічі. Після зустрічі менеджер пише боту короткі тези → бот форматує в протокол зустрічі та прикріплює до угоди як коментар + створює завдання по пунктах «наступних кроків».
Тригер втрати. Якщо в угоді немає активностей 7 днів — бот пише менеджеру: «Угода з компанією X не оновлювалась 7 днів, ризик втрати». Кнопки: «Подзвонити», «Написати», «Перевести в архів».
Підсумок: заповненість карток зросла з 40% до 85% за перший місяць. Кількість «забутих» угод скоротилася в 4 рази.
Технічний стек та трудовитрати
Бот реалізується як окремий мікросервіс (Python/Node.js) з постійним з'єднанням з Бітрікс24 через вебхуки + REST API. Для зберігання стану діалогів — Redis або PostgreSQL.
| Компонент | Трудовитрати |
|---|---|
| Підписка на події CRM і базова логіка | 16–24 год |
| NLP/OpenAI інтеграція для суммаризації | 16–32 год |
| Віджет всередині CRM-картки | 16–24 год |
| Збагачення даних із зовнішніх API | 8–16 год |
| Стан діалогів, Redis | 8–16 год |
| Деплой і моніторинг | 8–16 год |







