Розробка WhatsApp-бота з інтеграцією Бітрікс24
WhatsApp — закрита платформа. Офіційний доступ до API для бізнесу можливий лише через WhatsApp Business API (Meta), причому отримати його напряму складно: потрібен верифікований бізнес-акаунт Meta та схвалений провайдер. Все інше — неофіційні бібліотеки з ризиком блокування. Це перше, що потрібно зрозуміти перед розробкою бота.
Варіанти підключення WhatsApp до Бітрікс24
Офіційний шлях — через BSP-провайдера: Meta не роздає доступ до WhatsApp Business API напряму. Працюють через Business Solution Providers (BSP): 360dialog, Twilio, MessageBird, WABA.cloud та інші. Провайдер реєструє ваш номер у WhatsApp Business, надає API-ключі.
Популярні варіанти:
- Green API — провайдер із швидкою реєстрацією, є готовий модуль для Бітрікс24.
- Wazzup — нативна інтеграція з Бітрікс24, офіційний застосунок у маркетплейсі.
- Chat2Desk — омніканальний сервіс з підтримкою WhatsApp та Бітрікс24.
Пряма інтеграція через Green API + самописний бот: Green API надає REST-інтерфейс до WhatsApp, оминаючи Meta напряму (через веб-клієнт). Технічно — не офіційний шлях, номери періодично вимагають повторної авторизації. Але для середнього бізнесу — робочий варіант.
Архітектура бота через Green API + Бітрікс24
Клієнт у WhatsApp
↓
Green API (webhook instanceId + apiTokenInstance)
↓
Сервер бота
↓ ↓
Логіка Бітрікс24 REST API
бота (crm.lead.add, crm.contact.list, тощо)
Отримання вхідних повідомлень:
GET https://api.green-api.com/waInstance{instanceId}/receiveNotification/{apiTokenInstance}
Відповідь у WhatsApp:
POST https://api.green-api.com/waInstance{instanceId}/sendMessage/{apiTokenInstance}
{
"chatId": "[email protected]",
"message": "Привіт! Чим можу допомогти?"
}
Інтеграція з Бітрікс24 ідентична Telegram-боту: пошук контакту за номером телефону, створення ліда, запис активностей у таймлайн.
Ключові відмінності від Telegram
Форматування. WhatsApp підтримує обмежений набір: курсив, жирний, закреслений, моноширинний. Жодних HTML-тегів, кнопок-Reply (лише кнопки через офіційний API Templates).
Кнопки. У неофіційних API (Green API) кнопки недоступні — лише текстове меню: «Напишіть 1 — статус замовлення, 2 — зв'язок з оператором». Через офіційний WhatsApp Business API доступні Interactive Messages з кнопками, але лише в рамках затверджених шаблонів.
Шаблони повідомлень. Перше повідомлення від бота клієнту (не відповідь на вхідне) має бути через затверджений Template Message. Шаблони проходять модерацію Meta — 24–72 години. Довільний текст у вихідних — лише у відповідь на вхідне повідомлення протягом 24 годин.
Медіа. WhatsApp добре передає зображення, документи, голосові. Бот може приймати фото (наприклад, для заявки на повернення) і зберігати на Диск Бітрікс24 через disk.folder.uploadfile.
Інтеграція через готовий модуль Wazzup
Якщо немає завдання реалізовувати складну логіку бота — простіше використовувати Wazzup або аналогічний сервіс із готовою інтеграцією:
- Реєстрація у Wazzup, підключення номера WhatsApp.
- Встановлення застосунку Wazzup з маркетплейсу Бітрікс24.
- Налаштування маппінгу: вхідні повідомлення WhatsApp → відкрита лінія → лід/угода в CRM.
- Оператори відповідають прямо з Бітрікс24, клієнт отримує відповідь у WhatsApp.
Обмеження: немає кастомної логіки бота. Лише маршрутизація до операторів.
Кейс: бот для сповіщень про статус доставки
Завдання: інтернет-магазин, 200–400 замовлень на день. Клієнти завалюють підтримку питаннями «де моє замовлення». Потрібна автоматична відповідь.
Рішення: при зміні статусу замовлення в CRM (стадія угоди) → вебхук → сервер бота → надсилання сповіщення у WhatsApp через Green API.
def on_deal_stage_change(deal_id, new_stage):
deal = bitrix.get_deal(deal_id)
phone = deal['CONTACT_PHONE']
whatsapp_id = f"{phone.replace('+', '')}@c.us"
messages = {
'ACCEPTED': 'Замовлення прийнято в обробку. Номер замовлення: {order_num}',
'SHIPPED': 'Замовлення відправлено. Трек-номер: {track}',
'DELIVERED': 'Замовлення доставлено. Дякуємо за покупку!'
}
if new_stage in messages:
green_api.send_message(whatsapp_id, messages[new_stage].format(**deal))
Додатково: бот приймає вхідну відповідь «трек» → відповідає посиланням на відстеження. «Оператор» → переводить у чергу підтримки.
Результат: звернення до підтримки по статусу доставки скоротилися на 60% за перші два тижні.
| Компонент | Трудовитрати |
|---|---|
| Підключення Green API / Wazzup | 4–8 год |
| Базовий бот (текстові команди) | 16–24 год |
| Інтеграція з CRM Бітрікс24 | 8–16 год |
| Вихідні сповіщення по подіях CRM | 8–16 год |
| Прийом медіа та завантаження на Диск | 4–8 год |
| Деплой і моніторинг | 4–8 год |







