Перейти к содержанию

WhatsApp Business и n8n: как подключить сообщения, шаблоны, CRM и AI-support через Cloud API или Twilio без дублей и нарушений правил

Обновлено: 2026-05-29

Открыть мой план

Короткий ответ

WhatsApp в n8n можно строить через WhatsApp Business Cloud node/Trigger, через Twilio node или через HTTP Request к провайдеру. Production-сценарий должен учитывать opt-in, шаблонные сообщения, 24-hour customer care window, media, idempotency, CRM mapping, human handoff и запрет на бесконтрольные AI-ответы. Главная цель — не просто отправить сообщение, а безопасно вести диалог: понять клиента, сохранить контекст, обновить CRM и не нарушить политику канала.

Как выбрать путь: Cloud API, Twilio или провайдер

Есть три практических пути. Первый — WhatsApp Business Cloud node/Trigger в n8n, если вам подходит прямой сценарий с Meta WhatsApp Business. Второй — Twilio node, если ваша коммуникация уже идёт через Twilio и вы хотите единый слой для SMS/WhatsApp. Третий — HTTP Request к стороннему провайдеру, если у вас локальная специфика, готовые шаблоны и договорённости с BSP.

Выбор зависит от владения номером, шаблонов, верификации, стоимости, поддержки media, compliance, webhooks и того, где уже живёт CRM. В статье важно не смешивать эти пути: Twilio WhatsApp и Meta Cloud API имеют разные credentials, webhooks, ошибки и ограничения. n8n может быть orchestration layer в обоих случаях.

Что умеют WhatsApp/Twilio nodes в n8n

n8n документирует WhatsApp Business Cloud node для отправки сообщений и работы с media, а WhatsApp Trigger — для событий account, message и phone number. Twilio node поддерживает отправку SMS/MMS и WhatsApp messages, а Twilio Trigger умеет реагировать на события вроде новых SMS и calls. Поэтому страницу нужно строить не только вокруг “send message”, но и вокруг inbound/outbound lifecycle.

Production-процесс обычно такой: входящее сообщение → нормализация → определение клиента → CRM/ticket update → AI или rule-based ответ → шаблон/свободное сообщение → лог → handoff. Для исходящих уведомлений важно понимать, можно ли отправить свободный текст или нужен approved template. Если workflow ошибётся, сообщение может не уйти или аккаунт получит проблемы с качеством.

Архитектура диалога

Схема: WhatsApp webhook/trigger → Verify payload → Normalize contact → Load conversation state → Classify intent → Decide automation/human → Send response/template → Update CRM → Save audit. Нормализованный объект: wa_message_id, phone, contact_id, direction, message_type, text, media_id, timestamp, conversation_id, source_provider, correlation_id.

Состояние диалога храните отдельно: crm_contact_id, last_inbound_at, assigned_agent, open_ticket_id, language, consent_status, last_template_name, handoff_status, blocked. Нельзя строить WhatsApp-support только на executions n8n: история нужна для handoff, повторной доставки, отчётов и восстановления после сбоя.

Templates, opt-in и окно поддержки

WhatsApp Business требует аккуратного отношения к шаблонным и пользовательским сообщениям. Если пользователь написал первым, у вас есть окно для обычного customer care ответа. Если вы инициируете диалог или окно закрыто, часто нужен approved template. Поэтому n8n workflow должен знать: кто инициатор, когда был последний inbound, какой template разрешён, какие переменные передаются и есть ли согласие.

В данных template не передавайте лишнюю персональную информацию. Перед отправкой проверяйте, что все placeholders заполнены, язык соответствует пользователю, template_name существует у провайдера, а fallback описан. Если template failed, не пытайтесь бесконечно отправлять его заново. Создайте task менеджеру или отправьте альтернативный канал, если он разрешён.

AI-support в WhatsApp

AI может классифицировать намерение, предложить ответ, найти статью в базе знаний, собрать данные лида, перевести диалог менеджеру и сделать summary. Но WhatsApp — личный канал, поэтому ошибки воспринимаются болезненнее, чем в внутреннем чате. Для AI-ответов нужен policy layer: запрещённые темы, PII, финансовые обещания, юридические советы, скидки, angry customer, low confidence, request for human.

Пример JSON output:

{
  "intent": "pricing_question",
  "reply_type": "draft",
  "safe_reply": "Можем подсказать стоимость после уточнения CRM и каналов. Напишите, какая система используется сейчас.",
  "requires_human": false,
  "lead_score": 58,
  "risk_flags": []
}

Для high-risk сообщений AI готовит draft и summary, а отправляет человек. Для low-risk FAQ можно автоответить, если источник ответа найден в базе знаний.

Media, attachments и документы

WhatsApp часто содержит голосовые, изображения, документы и скриншоты. n8n workflow должен различать message_type. Для media: скачать файл, проверить тип/размер, сохранить в S3/Drive, привязать к CRM/ticket, не отправлять в LLM без необходимости. Для голосовых можно добавить transcription, но обязательно пометить confidence и оригинал.

Не храните sensitive media в публичных ссылках. Если менеджер должен посмотреть файл, используйте защищённое storage и срок жизни ссылки. В audit log храните media_id, storage_key, hash, size, content_type, но не обязательно сам файл.

Idempotency, retries и провайдерские webhooks

Провайдеры могут доставлять webhooks повторно. Используйте wa_message_id/provider event id как dedupe key. Входящее сообщение должно обрабатываться один раз, а повторное событие только обновляет status. Для исходящих сообщений храните provider message id, status, template, phone, correlation_id. Если API вернул retryable error, повторяйте с тем же business key, чтобы не отправить два одинаковых уведомления.

Статусы delivered/read/failed не должны создавать новые CRM events как отдельные лиды. Это updates к тому же conversation. Для массовых рассылок добавьте rate limiting, quiet hours, consent check и unsubscribe/stop handling.

Тестирование и rollout

Тест-кейсы: новый inbound, повторный webhook, template send, closed customer window, missing placeholder, media message, blocked user, invalid phone, Twilio/Meta API error, AI low confidence, human handoff, manager reply, CRM недоступна, retry, unsubscribe. Rollout: сначала sandbox/test number, затем внутренние пользователи, затем одна категория диалогов, потом полный канал.

Метрики: first response time, automation rate, handoff rate, AI correction rate, template failure rate, duplicate messages, blocked users, opt-out rate, CRM match rate, unresolved conversations, cost per conversation. Если растёт количество handoff или жалоб, не расширяйте автоматизацию — сначала улучшите knowledge base и policy layer.

FAQ

Что выбрать: WhatsApp Cloud API или Twilio?

Cloud API лучше для прямого сценария Meta WhatsApp Business, Twilio удобен, если SMS/WhatsApp/calls уже централизованы в Twilio. n8n может оркестрировать оба пути.

Можно ли отвечать AI автоматически?

Да для низкорисковых FAQ и понятных сценариев. Для денег, жалоб, юридических тем, персональных данных и low confidence нужен human review.

Как избежать дублей?

Используйте provider message id/event id для входящих webhook и business idempotency key для исходящих сообщений. Сохраняйте conversation state вне executions.

Что делать с шаблонами?

Храните allowlist шаблонов, проверяйте placeholders, язык, consent и customer care window. При ошибке создавайте task, а не делайте бесконечные retry.

Нужно ли хранить историю диалога?

Да. Храните conversation state, CRM contact, ticket, last inbound, status и audit. Но чувствительные данные и media храните с минимизацией и контролем доступа.