WhatsApp в n8n: ИИ-ответы и сложные цепочки через вебхук и HTTP Request
Обновлено
n8n выбирают, когда сценарий не помещается в «одно событие — одно действие»: нужно сходить в базу, спросить ИИ, проверить условие и только потом ответить. wapi.kz даёт n8n то, чего ему не хватает для WhatsApp, — номер компании с REST API и вебхуками. Отдельный узел не нужен: хватает стандартных Webhook и HTTP Request.
Страница для тех, кто держит n8n на своём сервере или в облаке n8n и собирает цепочки сам: интеграторов, технических маркетологов, разработчиков ИИ-ботов.
- Триггер n8n: расписание, база, форма
- узел HTTP Request
- POST /messages/send
- клиент в WhatsApp
- Клиент пишет в WhatsApp
- вебхук wapi.kz
- узел Webhook
- ИИ-агент, CRM или база
- ответ клиенту
Что можно автоматизировать
- ИИ-ответ с оглядкой на человека. Входящее → проверка последних сообщений чата → если менеджер уже отвечал с телефона (
source: "phone"), бот молчит, иначе отвечает ИИ-узел. - Передача менеджеру. Клиент просит человека или ИИ не уверен — цепочка отправляет сводку в рабочий чат Telegram и выключает бота для этого клиента.
- Ответ по данным. «Где мой заказ?» → поиск в Postgres или CRM по телефону → ответ со статусом и сроком.
- Напоминания из базы. Schedule Trigger → SQL-запрос записей на завтра → Loop Over Items → HTTP Request → Wait на секунду.
- Мониторинг. Раз в час
GET /status: номер не вWORKINGили баланса осталось на 3 дня — тревога администратору. - Архив переписки. Ночью
GET /exportза сутки — в своё хранилище или BI.
Как это устроено
Со стороны n8n:
- Webhook — принимает события wapi.kz. На выходе узла данные лежат в
body, параметры адреса — вquery. - HTTP Request — вызывает API wapi.kz. Ключ удобно хранить в учётных данных типа Header Auth: имя
Authorization, значениеBearer ВАШ_КЛЮЧ. - IF / Switch, Code, AI Agent — логика, проверки и ИИ-модель с инструментами.
Со стороны wapi.kz — POST /messages/send и чтение истории (документация), вебхуки с событиями message, message.out, message.ack, session.status (документация).
Если n8n стоит на вашем сервере, ему нужен публичный https-адрес: за обратным прокси задайте переменную WEBHOOK_URL, иначе n8n покажет в узле внутренний адрес. Тестовый URL Webhook работает, только пока открыт редактор; в кабинет wapi.kz ставьте Production URL и активируйте workflow.
Настройка по шагам
- Подключите номер в wapi.kz (инструкция) и возьмите API-ключ в разделе «API и MCP» или ключ номера в его карточке.
- В n8n создайте учётные данные Header Auth с ключом.
- Добавьте узел Webhook: метод POST, путь
wapi, ответ — Immediately. - Скопируйте Production URL, допишите
?token=СЕКРЕТи укажите этот адрес вебхуком номера в кабинете. - Соберите цепочку из примера ниже и активируйте workflow.
- Напишите на номер с другого телефона и проверьте выполнение в списке Executions.
Пример настройки
ИИ-ответ на входящие, который не перебивает живого менеджера.
| Узел | Настройка |
|---|---|
| Webhook | POST, путь wapi, Respond: Immediately |
| IF «Наше событие» | {{ $json.query.token }} равно секрету; {{ $json.body.event }} равно message; {{ $json.body.payload.from }} не содержит @g.us |
| HTTP Request «История» | GET https://wapi.kz/api/v1/messages, query: from, chat (телефон клиента), limit = 10, Header Auth |
| Code «Ведёт человек?» | возвращает human: true, если среди сообщений есть source: "phone" |
| IF «Бот молчит» | {{ $json.human }} равно true — ветка заканчивается |
| AI Agent | модель на ваш выбор, вход — текст клиента, системный промпт с правилами и ценами |
| HTTP Request «Ответ» | POST https://wapi.kz/api/v1/messages/send, Body: JSON, Header Auth |
Код узла «Ведёт человек?» (режим Run Once for All Items):
const messages = $input.first().json.messages || [];
return [{ json: { human: messages.some((m) => m.source === "phone") } }];Тело узла «Ответ» — JSON с выражениями n8n. JSON.stringify экранирует кавычки и переносы в ответе модели:
{
"to": "{{ $('Webhook').item.json.body.payload.from.split('@')[0] }}",
"text": {{ JSON.stringify($json.output) }},
"from": {{ $('Webhook').item.json.body.wapi.number_id }}
}На выходе получится обычный запрос к API:
{ "to": "77011234567", "text": "Здравствуйте! Заказ №1042 передан курьеру, будет сегодня до 18:00.", "from": 1 }Поле с ответом модели у AI Agent обычно называется output — проверьте на выходе узла в своей версии n8n. Как устроить промпт, память и передачу человеку, разобрано в гайде ИИ-бот для WhatsApp.
Ограничения
- Готового узла wapi.kz в n8n нет — работаем через HTTP Request, это стабильнее любого стороннего узла.
- Вебхуки не повторяются. Упал n8n — события за это время не придут; добавьте по расписанию сверку через
GET /messages?since=…. - Отвечайте на вебхук сразу (Respond: Immediately): ИИ-узел может думать дольше 10 секунд.
- Входящие фото, документы и голосовые в событии не приходят — там
hasMedia: true. Файл сохраняется у нас и через несколько секунд доступен по ссылкеmedia.urlвGET /messages/{id}: скачайте его узлом HTTP Request и передайте ИИ-узлу, если модель умеет с ним работать. - Лимиты номера: 1 сообщение в секунду, отдельный потолок первых сообщений новым людям (лимиты). В циклах ставьте Wait, отправку в группы API не поддерживает.
Если собирать цепочку некогда — зарегистрируйтесь, подключите номер и оставьте заявку из кабинета: поможем настроить. Номер — 9 900 ₸ в месяц, сообщения и вызовы API бесплатны (цены).
Частые вопросы
Что выбрать для ИИ-агента: n8n или MCP?
MCP удобен, когда агент сам решает, что делать, — например, в Claude или Cursor. n8n — когда логика жёсткая и её нужно видеть схемой. Про MCP — в гайде ИИ-агент и MCP.
Работает ли это в облачной версии n8n?
Да. Облачный n8n сразу даёт публичный https-адрес для узла Webhook — его и указывайте в кабинете wapi.kz.
Как бот поймёт, что менеджер уже ответил?
Два способа: событие message.out в вебхуке (человек написал с телефона) и поле source: "phone" в истории чата. Пример выше использует историю.
Какой ключ ставить в n8n?
Если workflow работает с одним номером — ключ номера: он не даёт доступа к балансу и другим номерам. Для мониторинга всех номеров нужен ключ аккаунта.
Подключите WhatsApp к n8n
9 900 ₸ в месяц за номер, без платы за сообщения. Сервер в Казахстане, оплата Kaspi или счётом на ТОО/ИП. Подключение — около 5 минут.