WhatsApp
9 мин·

Интеграция WhatsApp Web через QR: пошаговый разбор

Как подключить WhatsApp Web через QR-код, хранить сессию и стабильно отправлять сообщения через единый API.

Зачем WhatsApp Web через API

WhatsApp остаётся одним из самых конверсионных каналов клиентских уведомлений. Интеграция через WhatsApp Web позволяет быстро подключить рабочий аккаунт и запустить коммуникации без отдельного бот-процесса. В Релая такой канал работает в общей модели с MAX, Telegram и VK.

QR-флоу авторизации

Базовый поток выглядит так: создать сессию, запросить QR, подтвердить авторизацию в мобильном WhatsApp и отслеживать статус до authorized. После этого можно запускать синхронизацию чатов и отправку сообщений.

  • Создание QR: GET /auth/qr
  • Проверка статуса: GET /auth/qr?trackId=...
  • Состояние профиля: GET /status

Хранение и восстановление сессии

Ключевая часть — устойчивое хранение идентификатора сессии и её состояния. При рестартах сервиса важно поднимать сессию автоматически, а при деавторизации — корректно очищать состояние и просить пользователя пройти QR повторно.

Отправка сообщений

После авторизации отправка работает через тот же endpoint, что и другие каналы. Это позволяет переиспользовать очереди, дедупликацию clientId и общую историю inbox.

Reply/Forward/Edit/Delete

В production-профиле обычно мало просто отправлять текст. Нужны базовые операторские действия: ответить на конкретное сообщение, переслать кейс в другой чат, поправить опечатку и удалить ошибочно отправленный текст. В Relaya эти операции доступны в том же API-контуре WhatsApp, поэтому фронт и бизнес-логика не разъезжаются по каналам.

  • POST /messages/reply — ответ на сообщение по messageId
  • POST /messages/forward — пересылка между чатами
  • POST /messages/edit — редактирование текста
  • POST /messages/delete — удаление одного или нескольких сообщений

После каждой операции статус синхронизируется в inbox и дублируется в webhook-события, чтобы внутренние системы и операторский интерфейс видели одинаковую картину.

Надёжность и fallback

Для production-сценариев обычно включают fallback-цепочки: сначала WhatsApp, затем MAX или Telegram. Такой подход повышает итоговую доставку и снижает влияние временных ограничений одного канала.

Рабочий минимум перед запуском: мониторинг статуса сессии, idempotency через clientId, алерты на рост ошибок и резервный маршрут по каналам. Это даёт предсказуемый SLA даже в пиковые часы.

Создайте бесплатный MAX-профиль

Если хочется не просто читать, а сразу проверить сценарий руками: подключите MAX, отправьте себе тестовое сообщение и уже потом решайте, нужны ли другие каналы.