Интеграция · через API и вебхуки

WhatsApp в n8n: ИИ-ответы и сложные цепочки через вебхук и HTTP Request

Обновлено

n8n выбирают, когда сценарий не помещается в «одно событие — одно действие»: нужно сходить в базу, спросить ИИ, проверить условие и только потом ответить. wapi.kz даёт n8n то, чего ему не хватает для WhatsApp, — номер компании с REST API и вебхуками. Отдельный узел не нужен: хватает стандартных Webhook и HTTP Request.

Страница для тех, кто держит n8n на своём сервере или в облаке n8n и собирает цепочки сам: интеграторов, технических маркетологов, разработчиков ИИ-ботов.

Из n8n в WhatsApp
  1. Триггер n8n: расписание, база, форма
  2. узел HTTP Request
  3. POST /messages/send
  4. клиент в WhatsApp
Из WhatsApp в n8n
  1. Клиент пишет в WhatsApp
  2. вебхук wapi.kz
  3. узел Webhook
  4. ИИ-агент, CRM или база
  5. ответ клиенту

Что можно автоматизировать

  • ИИ-ответ с оглядкой на человека. Входящее → проверка последних сообщений чата → если менеджер уже отвечал с телефона (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.

Настройка по шагам

  1. Подключите номер в wapi.kz (инструкция) и возьмите API-ключ в разделе «API и MCP» или ключ номера в его карточке.
  2. В n8n создайте учётные данные Header Auth с ключом.
  3. Добавьте узел Webhook: метод POST, путь wapi, ответ — Immediately.
  4. Скопируйте Production URL, допишите ?token=СЕКРЕТ и укажите этот адрес вебхуком номера в кабинете.
  5. Соберите цепочку из примера ниже и активируйте workflow.
  6. Напишите на номер с другого телефона и проверьте выполнение в списке Executions.

Пример настройки

ИИ-ответ на входящие, который не перебивает живого менеджера.

УзелНастройка
WebhookPOST, путь 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):

JavaScript
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:

JSON
{ "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 минут.

Гайды по теме

Другие интеграции