Как отправлять сообщения в WhatsApp из любой системы по вебхуку
Ваш магазин, CRM или сервис записи уже знают, когда оформлен заказ, не прошла оплата или клиент записался на приём. Вебхук может превратить каждое такое событие в сообщение в WhatsApp, без кода с вашей стороны. Рассказываем, как это спланировать, защитить и протестировать.
Команда MonoChat Обновлено: 7 мин чтения
На этой странице
Чтобы отправить сообщение в WhatsApp, когда что-то происходит в другой системе, направьте вебхук этой системы на получателя, который находит клиента по номеру телефона и отправляет одобренный шаблон WhatsApp. Ваш магазин, CRM или сервис записи уже отправляют вебхуки о заказах, оплатах и записях; вся работа в том, чтобы выбрать события, которые заслуживают сообщения, написать шаблоны, защитить URL и протестировать всё на реальных запросах до того, как клиенты что-то увидят.
В этом руководстве — план, правила WhatsApp, которые на него влияют, и то, как собрать всё в MonoChat в сценарии, который запускается со своего собственного URL вебхука.
Что такое вебхук и чем он не является
Вебхук — это HTTP-запрос, который одна система отправляет на указанный вами URL, когда происходит событие. Shopify может отправить его при создании заказа, WooCommerce — при изменении заказа, CRM — когда сделка переходит на другой этап, сервис записи — когда клиент записался. Запрос содержит детали события, обычно в формате JSON: номер заказа, сумму, имя клиента и, что важнее всего для WhatsApp, номер телефона.
Сам по себе вебхук ничего клиенту не отправляет. Кто-то должен принять запрос, решить, что с ним делать, и вызвать WhatsApp Business API. Этот «кто-то» — либо код, который вы пишете и размещаете сами, либо платформа автоматизации, которая выдаёт URL вебхука и позволяет собрать остальное без кода.
Какие события заслуживают сообщения в WhatsApp
Не каждое событие стоит сообщения. Клиент, получивший пять уведомлений об одном заказе, начинает игнорировать их все. Выбирайте моменты, которых клиент действительно ждёт:
| Событие | Сообщение | Категория шаблона |
|---|---|---|
| Заказ создан или оплачен | Подтверждение с номером заказа и следующими шагами | Служебная |
| Оплата не прошла или ожидается | Короткое сообщение и способ оплатить повторно | Служебная |
| Заказ отправлен | Служба доставки и ссылка для отслеживания | Служебная |
| Создан заказ с оплатой при получении | Вопрос: подтвердить заказ, изменить адрес или отменить | Служебная |
| Запись создана, изменена или назначена на завтра | Дата, время, место и способ перенести запись | Служебная |
| Сделка выиграна или проиграна в CRM | Передача менеджеру по работе с клиентом или вопрос для обратной связи | Служебная или маркетинговая, в зависимости от текста |
| Брошенная корзина | Напоминание, возможно с предложением | Маркетинговая |
Категорию Meta определяет по содержанию шаблона, а не по выбранной вами метке. Сообщение о конкретном заказе, оплате или записи — служебное; всё, что продвигает, предлагает или пытается убедить, — маркетинговое и требует согласия на маркетинговые сообщения. В наших примерах шаблонов WhatsApp есть формулировки для служебных случаев из таблицы.
Какие правила WhatsApp действуют
Большинству сообщений по вебхуку нужен шаблон
Окно обслуживания клиента открывается, когда клиент пишет или звонит вам, и длится 24 часа с его последнего сообщения. Внутри окна можно отвечать свободно; вне его можно отправлять только заранее одобренные шаблоны сообщений. События магазина и CRM редко попадают в это окно, поэтому планируйте каждое сообщение по вебхуку как шаблон и отправьте шаблоны на проверку до того, как что-либо включать.
Номер телефона должен быть рабочим
Вебхук должен передавать номер телефона, до которого WhatsApp может достучаться: в международном формате, с кодом страны. Многие магазины позволяют клиентам вводить номер как угодно, поэтому проверьте несколько реальных заказов. Номер без кода страны — самая частая причина, по которой тест работает, а боевой режим нет.
С 1 октября 2026 года изменились цены
Meta берёт плату за каждое доставленное сообщение с 1 июля 2025 года. С 1 октября 2026 года служебные шаблоны, отправленные внутри открытого окна обслуживания клиента, снова платные после периода, когда они были бесплатными, а каждый бизнес-номер получает 1 000 бесплатных сервисных сообщений в месяц. Тарифы зависят от категории и страны клиента. На практике это значит: подтверждение заказа стоит денег независимо от того, писал ли вам клиент недавно, поэтому отправляйте важные сообщения и отказывайтесь от лишних. Тарифную сетку разбираем в руководстве по ценам WhatsApp API.
Защитите URL вебхука
Любой, кто знает URL вебхука, может его вызвать. Если этот URL отправляет сообщения в WhatsApp, утечка означает, что кто-то другой сможет писать вашим клиентам от вашего имени или раздуть ваш счёт. Это предотвращают три привычки:
- Требуйте секрет. Отправляющая система добавляет секрет в заголовок или подписывает им тело запроса (HMAC-SHA256), чтобы получатель мог проверить, что запрос не изменили по пути. Запросы без действительного секрета или подписи отклоняются.
- Один URL — одна задача. У сценария для заказов и сценария для записей должны быть разные URL и секреты, чтобы один можно было сменить, не трогая другой.
- Следите за ошибками на стороне отправителя. WooCommerce отключает вебхук после более чем пяти неудачных доставок подряд, а Shopify удаляет подписку на вебхук, если адрес назначения раз за разом возвращает ответ, отличный от 200. Выключенный или неправильно настроенный получатель может незаметно остановить ваши уведомления.
Где создать вебхук в Shopify и WooCommerce
- Shopify: Settings › Notifications › Webhooks, затем Create webhook. Выберите одно событие (Order creation, Order payment, Fulfillment creation и многие другие), формат JSON и URL с
https://. После создания вебхука событие изменить нельзя, поэтому делайте отдельный вебхук на каждое событие. Кнопка Send test проверяет, что запрос доходит до URL. - WooCommerce: WooCommerce › Settings › Advanced › Webhooks, затем Add webhook. Выберите тему (события заказов, клиентов, купонов или товаров), укажите URL доставки и секрет; WooCommerce добавляет в заголовки запроса хеш тела, созданный с этим секретом.
- CRM или сервис записи: ищите разделы «вебхуки», «автоматизации» или «исходящие интеграции». Если доступен только фиксированный формат, до начала работы проверьте, в каком поле лежит телефон клиента.
Тестируйте на реальных запросах до запуска
Тела вебхуков длинные, и каждая платформа называет поля по-своему: телефон может лежать в phone, billing.phone или customer.default_address.phone. Не угадывайте. Отправьте реальный тестовый запрос, посмотрите, что пришло, и сопоставьте поля по нему. Затем проверьте пограничные случаи:
- заказ без номера телефона или с номером без кода страны;
- одно и то же событие, доставленное дважды, — так бывает, когда платформа повторяет отправку;
- заказ, оформленный в 3 часа ночи, если вы хотите, чтобы сообщение подождало до утра;
- клиент, который отвечает на уведомление, — чтобы сотрудник или ИИ-ассистент был готов ответить.
Как это сделать в MonoChat
MonoChat — официальный Meta Business Partner. Начиная с версии 3.8.37 (октябрь 2026 года), сценарий может запускаться по вебхуку, поэтому ваш магазин или CRM могут отправлять сообщения в WhatsApp без кода с вашей стороны.
1. Начните сценарий с узла Получен вебхук. Добавьте его из узлов событий. У него есть собственный URL вебхука и секрет. Выберите канал, например ваш номер WhatsApp, и Путь к идентификатору — место в запросе, где находится номер телефона клиента (по умолчанию request.body.phone). MonoChat находит клиента в этом канале или создаёт его и запускает для него сценарий. Узел отвечает отправителю кодом 202, когда сценарий поставлен в очередь, и понятной ошибкой, если канал или номер телефона не найден.
2. Включите Требовать секрет. Отправитель может передать секрет в заголовке токена (по умолчанию Authorization, сам по себе или как Bearer <secret>) или отправить подпись HMAC-SHA256 необработанного тела запроса в заголовке подписи (по умолчанию X-Signature). Названия обоих заголовков можно изменить под отправляющую систему.
3. Поймайте реальный запрос. Добавьте /test в конец URL вебхука и направьте на него тестовый вебхук магазина. Пока открыты настройки узла, запрос появляется в разделе Полученный запрос с телом, параметрами query и заголовками, и сценарий при этом не запускается. По нему найдите нужные пути и сохраните их как переменные сценария, например request.body.orderId как orderId.
4. Отправьте сообщение. Добавьте узел Отправить шаблонное сообщение с одобренным шаблоном и заполните его переменные из переменных сценария: номер заказа, сумму, ссылку для отслеживания. С помощью условий отправляйте разные шаблоны для разных статусов.
5. При необходимости сделайте обратный вызов. Узел HTTP-запрос может получить дополнительные данные из вашей системы или записать в неё ответ клиента, например «подтверждено» для заказа с оплатой при получении. При успешном вызове он продолжает по выходу Выход, при неудаче — по При ошибке, так что можно отправить запасное сообщение или назначить диалог сотруднику.
Когда клиент отвечает, диалог попадает в те же общие входящие MonoChat, что и остальные ваши чаты из WhatsApp, Instagram и Messenger, где его может подхватить команда или ИИ-ассистент. О сборке сценариев читайте на странице автоматизации сценариев.
Есть ещё два пути — в зависимости от того, кто будет делать работу:
- Ваши разработчики уже работают с API. Приложение WhatsApp Template API отправляет одобренный шаблон одним вызовом API, а ответы попадают во входящие.
- У вас Shopify, и вы хотите видеть данные заказа в чате. Автоматизация чатов для Shopify синхронизирует товары и заказы, чтобы команда и ИИ-ассистент могли отвечать на вопросы о заказах.
Чтобы начать, создайте бесплатный аккаунт на app.monochat.ai, подключите свой номер WhatsApp и сравните тарифы на странице тарифов.
Источники
- Meta for Developers: отправка сообщений и окно обслуживания клиента
- Meta for Developers: цены на платформе WhatsApp Business
- Meta for Developers: категоризация шаблонов
- Справочный центр Shopify: вебхуки
- Документация WooCommerce: вебхуки
- Справочный центр MonoChat: сценарии, узлы «Получен вебхук» и «HTTP-запрос»
Применяйте это на практике с MonoChat