Сообщение ушло, но не пришло: диагностика в WhatsApp шаг за шагом
AndySendy academy
← Все посты

🔍 Контакт есть, сообщение ушло - а клиент ничего не видит. Почему

«Статус Success в CRM, но клиент говорит, что ничего не получил» - это не глюк и не единственный сценарий. Причин у «исчезнувшего» сообщения как минимум пять, и блокировка - лишь одна из них. После этой статьи вы будете знать, что именно диагностировать и в какой последовательности, чтобы не списывать всё на мифический бан.


Главная ошибка в восприятии проблемы

Начнём с того, что разделим понятия, которые в нише часто смешивают:

  1. Сообщение принято CRM или серым софтом - команда ушла из вашего инструмента.
  2. Сообщение принято сервером WhatsApp - одна галочка.
  3. Сообщение доставлено на устройство получателя - две галочки.
  4. Сообщение прочитано - синие галочки (если не отключены).
  5. Сообщение отображено и расшифровано - то, что клиент реально увидел на экране.

Лог со статусом «Success» в CRM или сером инструменте - это пункт 1, а не пункт 5. Инструмент фиксирует, что команда была принята WhatsApp Web. Всё остальное - вне его зоны контроля. Meta не предоставляет внешним системам подтверждение о расшифровке сообщения на устройстве получателя.


Пять причин, почему сообщение не дошло

1. Получатель заблокировал ваш номер

Классический сценарий. Сервер Meta принимает сообщение, присваивает ему статус одной серой галочки и прекращает передачу. Содержимое уничтожается. Даже если получатель позже вас разблокирует - всё, что было отправлено в период блокировки, не восстанавливается и не «досылается».

Диагностика: открой этот чат вручную на смартфоне. Если одна галочка держится и аватар контакта отсутствует (серая иконка по умолчанию) - высокая вероятность блокировки со стороны получателя. Подробнее о том, когда одна галочка - не блокировка, - в отдельной статье.

2. Ты сам заблокировал этот контакт

Менее очевидный кейс. Если ты когда-то добавил номер в чёрный список на телефоне, а потом через серый API пытаешься отправить ему триггерное сообщение - ничего не дойдёт. CRM напишет «Success», телефон отправит, сервер не пропустит.

Диагностика: открой чат вручную на смартфоне. Если WhatsApp выдаёт поп-ап «Разблокировать этот контакт для отправки сообщения?» - ты сам его заблокировал.

Мини-кейс. Оператор заблокировал надоедливого клиента через интерфейс смартфона. Через неделю тот же клиент оставил заявку на сайте - CRM автоматически отправила триггерное сообщение через API. Статус в панели: успешно. Клиент не получил ничего. Проверка вручную сразу показала: номер в чёрном списке на самом телефоне оператора. 0 сообщений дошло, пока блокировка не была снята.

3. Проблема на стороне получателя: нет сети, нет приложения

Одна галочка - не обязательно блокировка. Выключенный телефон, отсутствие интернета, удалённое приложение, смена SIM без переноса аккаунта дают идентичный визуальный результат. Особенно актуально для холодных баз, собранных несколько месяцев назад.

Диагностика: выжди 24–48 часов. Если за это время статус не сменился с одной галочки на две - проблема устойчивая, причину нужно искать дальше.

4. Сбой синхронизации ключей шифрования

WhatsApp использует сквозное шифрование на базе Signal Protocol. При смене сессии, переподключении WhatsApp Web или обновлении Multi-Device может произойти рассинхронизация криптографических ключей. В этом случае сообщение физически доходит до телефона получателя, но устройство не может его расшифровать.

Что видит получатель: системная плашка «Ожидание сообщения. Это может занять некоторое время» («Waiting for this message. This may take a while»). Отправитель при этом видит нормальные статусы - две галочки.

Такое состояние может длиться до 24–48 часов, пока устройства не обменяются новыми ключами. Это не бан и не блокировка - это технический артефакт синхронизации.

Мини-кейс. Маркетолог запустил рассылку сразу после перепривязки QR-кода. Первые 200 получателей увидели пустые диалоги с плашкой «Ожидание сообщения». В логах софта - две галочки, «доставлено». Текст на устройствах клиентов отсутствовал.

5. Ошибки серой интеграции или WABA

Неофициальные 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 дней и только потом принимают решение об исключении. Логику трёхуровневой маркировки разбираем отдельно.


Что точно нельзя делать


🎯 Следующий шаг

Возьми несколько последних чатов, где клиент жаловался на недоставку, и пройди по алгоритму из Шага 1–5. Это займёт 5–10 минут, но сразу покажет: системная ли проблема, локальный сбой сессии или просто один контакт с выключенным телефоном.

Вывод

Практическое правило:

«Отправлено» в логах - это не «получено» у клиента. Между ними пять уровней, и упасть сообщение может на любом.