WhatsApp API для бизнеса: интеграция, уведомления, чат-боты
Клиенты пишут в WhatsApp, а вы отвечаете днями — или не отвечаете вовсе. Заказы теряются, поддержка перегружена. По статистике, до 60% пользователей предпочитают мессенджеры для связи с бизнесом, а среднее время ответа в WhatsApp — менее 5 минут. Мы решаем эту проблему: интегрируем WhatsApp Business API с вашим сайтом так, чтобы уведомления о статусах заказа, ответы на вопросы и чат-бот работали без сбоев. Наш опыт — более 5 лет в разработке решений для коммуникаций, десятки успешных проектов, в том числе для интернет-магазинов с большим оборотом. Внедрение окупается в среднем за 2–3 месяца, а нагрузка на поддержку снижается на 40%.
Какие проблемы решает WhatsApp Business API?
Типичные ошибки при самостоятельной интеграции:
- Верификация шаблонов: без правильно оформленных шаблонов нельзя отправлять исходящие уведомления. Мы готовим шаблоны, проходящие модерацию Meta с первого раза. 30% проектов застревают именно на этом этапе.
- 24-часовое окно: многие забывают, что произвольные сообщения можно отправлять только в пределах сессии. Игнорирование этого приводит к блокировке номера на 24 часа. Мы настраиваем корректное управление сессиями.
- Webhook и очереди: входящие сообщения нужно обрабатывать асинхронно, иначе API блокирует запросы. Используем очереди Laravel или Nest.js для надёжной обработки.
Как подключить WhatsApp Business API к сайту?
Выбор способа подключения:
| Критерий | Meta Cloud API (прямой) | BSP-провайдер (Twilio, 360dialog) |
|---|---|---|
| Стоимость | Бесплатно (только за сообщения) | Плата за сообщение выше |
| Сложность подключения | Требуется верификация Business Manager | Регистрация за 1 день |
| Гибкость | Полный контроль | Ограничения провайдера |
| Поддержка | Только документация Meta | Техподдержка провайдера |
Для большинства проектов мы рекомендуем прямой Cloud API — он дешевле и гибче. Прямое подключение позволяет экономить до 70% на сообщениях по сравнению с BSP. BSP подходит, если нужно быстро запуститься без глубокой технической настройки.
Как мы это делаем
Используем PHP 8.3+ с Laravel 11, а для высоконагруженных проектов — Nest.js (Node.js). Пример отправки шаблонного сообщения через Cloud API:
Пример отправки шаблонного сообщения
$response = Http::withToken(env('WHATSAPP_ACCESS_TOKEN'))
->post("https://graph.facebook.com/v19.0/{$phoneNumberId}/messages", [
'messaging_product' => 'whatsapp',
'to' => $phone,
'type' => 'template',
'template' => [
'name' => 'order_confirmation',
'language' => ['code' => 'ru'],
'components' => [
[
'type' => 'body',
'parameters' => [
['type' => 'text', 'text' => $orderId],
['type' => 'text', 'text' => $orderTotal . ' ₽']
]
]
]
]
]);
Шаблоны сообщений. Для исходящих уведомлений обязательно использовать предварительно одобренные шаблоны. Шаблон создаётся в Meta Business Manager и проходит проверку (обычно 24–48 часов). Произвольный текст в исходящих сообщениях нельзя отправлять — только в рамках 24-часового окна сессии.
24-часовое окно и сессионные сообщения. Если пользователь написал боту первым или ответил на шаблонное сообщение — открывается 24-часовое окно, в которое можно отправлять произвольные сообщения. Это используется для поддержки и диалогов:
Http::withToken($token)->post($url, [
'messaging_product' => 'whatsapp',
'to' => $phone,
'type' => 'text',
'text' => ['body' => "Ваш заказ отправлен, трек-номер: {$trackNumber}"]
]);
Webhook для входящих. Верификация и обработка:
if ($request->has('hub_challenge')) {
if ($request->hub_verify_token === env('WHATSAPP_VERIFY_TOKEN')) {
return response($request->hub_challenge);
}
}
$body = $request->json()->all();
foreach ($body['entry'] as $entry) {
foreach ($entry['changes'] as $change) {
$messages = $change['value']['messages'] ?? [];
foreach ($messages as $message) {
dispatch(new ProcessWhatsAppMessageJob($message));
}
}
}
Интерактивные кнопки. Позволяют получать подтверждения от клиента без ввода текста:
[
'type' => 'interactive',
'interactive' => [
'type' => 'button',
'body' => ['text' => 'Ваш заказ готов к выдаче. Подтвердите получение:'],
'action' => [
'buttons' => [
['type' => 'reply', 'reply' => ['id' => "confirm_{$orderId}", 'title' => 'Получил ✓']],
['type' => 'reply', 'reply' => ['id' => "problem_{$orderId}", 'title' => 'Проблема']]
]
]
]
]
Как проходит процесс интеграции?
- Аналитика — изучаем текущие бизнес-процессы, определяем сценарии уведомлений.
- Проектирование — разрабатываем архитектуру: вебхуки, очереди, шаблоны.
- Реализация — настраиваем Cloud API или BSP, пишем интеграционный код.
- Тестирование — проверяем отправку, приём, обработку ошибок.
- Деплой — запускаем на продакшен, мониторим первые дни.
Что входит в работу
- Настройка WhatsApp Business API (прямой или через BSP).
- Создание шаблонов сообщений для заказов, оплат, статусов.
- Реализация вебхука для обработки входящих сообщений.
- Интеграция с вашей CRM или сайтом.
- Документация по API и инструкция для администраторов.
- Обучение сотрудников работе с системой.
- Поддержка в течение 30 дней после запуска.
Сроки
Базовая интеграция (уведомления + входящие) — от 3 до 5 дней. Полный проект с чат-ботом и кастомными сценариями — от 7 до 14 дней. Стоимость рассчитывается индивидуально — напишите нам для оценки.
Типичные ошибки при интеграции WhatsApp Business
- Использование номера, уже привязанного к личному WhatsApp. Нужен новый номер.
- Неправильная конфигурация вебхука — не указан verify token.
- Отправка неподтверждённых шаблонов в исходящих.
- Игнорирование ограничения скорости API (rate limits).
- Отсутствие обработки ошибок (например, при недоступности API Meta).
Сравнение типов сообщений
| Тип сообщения | Когда используется | Требуется шаблон |
|---|---|---|
| Шаблонное | Исходящее уведомление (заказ, оплата) | Да |
| Сессионное | Внутри 24-часового окна (поддержка) | Нет |
| Интерактивное | Подтверждение действия (кнопки) | Нет, но можно в шаблоне |
Получите бесплатную консультацию по вашему проекту — оценим задачу и предложим оптимальное решение. Закажите интеграцию, и мы свяжемся в течение часа.
Подробнее о возможностях API читайте в официальной документации WhatsApp Business API.







