«Статус Success в CRM, но клиент говорит, что ничего не получил» - это не глюк и не единственный сценарий. Причин у «исчезнувшего» сообщения как минимум пять, и блокировка - лишь одна из них. После этой статьи вы будете знать, что именно диагностировать и в какой последовательности, чтобы не списывать всё на мифический бан.
Начнём с того, что разделим понятия, которые в нише часто смешивают:
Лог со статусом «Success» в CRM или сером инструменте - это пункт 1, а не пункт 5. Инструмент фиксирует, что команда была принята WhatsApp Web. Всё остальное - вне его зоны контроля. Meta не предоставляет внешним системам подтверждение о расшифровке сообщения на устройстве получателя.
Классический сценарий. Сервер Meta принимает сообщение, присваивает ему статус одной серой галочки и прекращает передачу. Содержимое уничтожается. Даже если получатель позже вас разблокирует - всё, что было отправлено в период блокировки, не восстанавливается и не «досылается».
Диагностика: открой этот чат вручную на смартфоне. Если одна галочка держится и аватар контакта отсутствует (серая иконка по умолчанию) - высокая вероятность блокировки со стороны получателя. Подробнее о том, когда одна галочка - не блокировка, - в отдельной статье.
Менее очевидный кейс. Если ты когда-то добавил номер в чёрный список на телефоне, а потом через серый API пытаешься отправить ему триггерное сообщение - ничего не дойдёт. CRM напишет «Success», телефон отправит, сервер не пропустит.
Диагностика: открой чат вручную на смартфоне. Если WhatsApp выдаёт поп-ап «Разблокировать этот контакт для отправки сообщения?» - ты сам его заблокировал.
Мини-кейс. Оператор заблокировал надоедливого клиента через интерфейс смартфона. Через неделю тот же клиент оставил заявку на сайте - CRM автоматически отправила триггерное сообщение через API. Статус в панели: успешно. Клиент не получил ничего. Проверка вручную сразу показала: номер в чёрном списке на самом телефоне оператора. 0 сообщений дошло, пока блокировка не была снята.
Одна галочка - не обязательно блокировка. Выключенный телефон, отсутствие интернета, удалённое приложение, смена SIM без переноса аккаунта дают идентичный визуальный результат. Особенно актуально для холодных баз, собранных несколько месяцев назад.
Диагностика: выжди 24–48 часов. Если за это время статус не сменился с одной галочки на две - проблема устойчивая, причину нужно искать дальше.
WhatsApp использует сквозное шифрование на базе Signal Protocol. При смене сессии, переподключении WhatsApp Web или обновлении Multi-Device может произойти рассинхронизация криптографических ключей. В этом случае сообщение физически доходит до телефона получателя, но устройство не может его расшифровать.
Что видит получатель: системная плашка «Ожидание сообщения. Это может занять некоторое время» («Waiting for this message. This may take a while»). Отправитель при этом видит нормальные статусы - две галочки.
Такое состояние может длиться до 24–48 часов, пока устройства не обменяются новыми ключами. Это не бан и не блокировка - это технический артефакт синхронизации.
Мини-кейс. Маркетолог запустил рассылку сразу после перепривязки QR-кода. Первые 200 получателей увидели пустые диалоги с плашкой «Ожидание сообщения». В логах софта - две галочки, «доставлено». Текст на устройствах клиентов отсутствовал.
Неофициальные API и интеграции могут некорректно парсить внутренние ошибки WhatsApp, подменяя их зелёным статусом «Отправлено» в интерфейсе. Тяжёлые медиафайлы и нестабильные Web-соединения создают расхождения между логами и реальностью.
В WABA ситуация прозрачнее: если шаблон был заблокирован или приостановлен Meta во время рассылки, сообщение получает статус Failed в Webhooks с конкретным кодом ошибки. Но в CRM-интерфейсе менеджер всё равно может видеть чат как «отправленный» - если интеграция не настроена на обработку этих кодов.
Порядок проверки при симптоме «контакт есть, а сообщение не пришло»:
Шаг 1. Открой чат с проблемным контактом на физическом смартфоне.
Шаг 2. Попробуй вручную написать сообщение:
Шаг 3. Проверь логи интеграции. Если инструмент показывает Success, но у тебя одна галочка - инструмент фиксирует только передачу команды, а не доставку.
Шаг 4. Для WABA: проверь Webhooks на наличие кодов ошибок (Undeliverable, Failed, Structure Unavailable). Это надёжнее, чем смотреть на интерфейс CRM.
Шаг 5. Проверь, не обновлялась ли сессия WhatsApp Web перед рассылкой. Если да - возможна массовая рассинхронизация ключей.
Хорошая система аналитики рассылки считает не просто «отправлено», а минимум четыре статуса:
| Статус | Что означает | Действие |
|---|---|---|
| Sent | Принято сервером WhatsApp | Ждём доставки |
| Delivered | Доставлено на устройство | Ок |
| Read | Прочитано | Ок |
| Undelivered | Одна галочка 24–72 ч | Диагностика → Suspected Blocked |
| Error / Failed | Код ошибки от API/WABA | Проверить шаблон, сессию, интеграцию |
Контакты со статусом Undelivered не удаляются сразу - часть из них вернётся в рабочее состояние. Их выносят в отдельный сегмент, проверяют через 7–14 дней и только потом принимают решение об исключении. Логику трёхуровневой маркировки разбираем отдельно.
Success доказательством доставки.Возьми несколько последних чатов, где клиент жаловался на недоставку, и пройди по алгоритму из Шага 1–5. Это займёт 5–10 минут, но сразу покажет: системная ли проблема, локальный сбой сессии или просто один контакт с выключенным телефоном.
Практическое правило:
«Отправлено» в логах - это не «получено» у клиента. Между ними пять уровней, и упасть сообщение может на любом.