Разработка 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, etc.)
Получение входящих сообщений:
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 ч |







