Как настроить SMS-фолбэк при сбое push-уведомления

Как настроить SMS-фолбэк при сбое push-уведомления

Если push-уведомление не дошло до клиента, резервное SMS помогает передать важный статус заказа, записи, оплаты или заявки другим каналом. В статье разберём рабочую схему фолбэка для малого бизнеса: какие события отслеживать, когда отправлять SMS, как избежать дублей и что проверить до запуска. В результате можно собрать понятный сценарий между сайтом или CRM, push-сервисом и платформой транзакционных SMS.

Когда push нужно дублировать SMS?

Push подходит для приложения, в котором клиент уже авторизован и разрешил уведомления. Сообщение появляется быстро, может содержать кнопку и вести пользователя на нужный экран. Но доставка зависит от подключения к интернету, настроек телефона, разрешения на уведомления и состояния самого приложения.

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

Для каждого события заранее задайте приоритет. Код подтверждения и уведомление о критическом изменении заказа требуют более строгого контроля. Напоминание о записи тоже может дублироваться, если клиент не открыл push в установленный срок. Для второстепенных статусов резервная отправка иногда только увеличит число сообщений и запутает получателя.

Событие Основной канал Когда подключать SMS
Код подтверждения Push Если push не подтверждён за короткий заданный интервал
Изменение статуса заказа Push Если доставка не подтверждена или клиент не открыл сообщение
Перенос записи Push Если клиент не получил уведомление до установленного времени
Сбой оплаты Push Если клиенту нужно повторить действие или связаться с бизнесом

Для контроля доставки сервисных сообщений полезно заранее определить, какие статусы считаются успехом. Сам факт передачи сообщения поставщику ещё не означает, что клиент его получил. В разборе этой темы помогает материал как контролировать доставку сервисных SMS.

Как работает схема SMS-фолбэка?

Сценарий начинается с события в вашей системе. Клиент оформил заказ, запросил код, записался на услугу или получил новое время доставки. Сайт, CRM или внутреннее приложение передаёт событие в модуль уведомлений. Модуль отправляет push и сохраняет идентификатор попытки, время отправки и канал.

Дальше система ждёт результат. Вариантов несколько: push доставлен, push открыт, push не доставлен, статус неизвестен. Для фолбэка нужен именно понятный критерий перехода к SMS. Если отправлять SMS при любом неизвестном статусе, часть клиентов получит два одинаковых уведомления.

  1. Создайте событие с уникальным идентификатором, например номером заказа или операции.
  2. Отправьте push и сохраните время попытки.
  3. Получите статус доставки или открытия, если push-платформа его передаёт.
  4. Проверьте, не отправлялось ли SMS по этому событию раньше.
  5. При выполнении условия отправьте короткое SMS через API.
  6. Запишите результат SMS в журнал уведомлений.

Уведомление лучше строить вокруг действия. В нём должны быть название события, понятный статус и следующий шаг. Для заказа это может быть информация о готовности и способе получения. Для оплаты, причина сбоя и инструкция по повторной попытке. Для записи, новая дата и способ подтвердить её.

Ссылка в SMS должна вести на страницу, где клиент сразу видит нужную информацию. Длинный адрес увеличивает размер сообщения и сложнее читается. Если бизнес использует сокращённые ссылки, перед запуском проверьте, как система считает переходы и не меняет ли ссылка назначение после создания сообщения.

Какие данные передавать между push-сервисом и SMS API?

Для простой интеграции достаточно передать номер клиента, тип события, текст или шаблон сообщения и уникальный ключ операции. В CRM обычно добавляют поле канала и статус последней попытки. Отдельно полезно хранить время отправки push, результат доставки и причину перехода к SMS.

Поле Зачем оно нужно
Идентификатор события Защищает от повторной отправки одного уведомления
Номер телефона Определяет получателя резервного SMS
Тип уведомления Позволяет выбрать нужный шаблон и правило фолбэка
Время push Помогает рассчитать интервал ожидания
Статус push Показывает, нужно ли переходить к SMS
Статус SMS Позволяет проверить результат резервной отправки

Связь между системами обычно строят через API или вебхук. Например, CRM передаёт событие в сервис уведомлений, а сервис возвращает результат отправки. Вебхук удобен, когда нужно автоматически сообщить сайту или CRM о новом статусе, а не проверять его вручную через равные промежутки времени. Практический разбор такой связки есть в материале как настроить вебхуки для SMS между магазином, CRM и доставкой.

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

Как выбрать задержку перед резервной SMS?

Универсального интервала для всех уведомлений нет. Он зависит от цены ошибки и срока актуальности сообщения. Для кода подтверждения ожидание должно быть коротким, иначе пользователь успеет закрыть форму. Для изменения доставки допустим больший интервал, если клиенту важно получить итоговое время.

Определите три значения: срок ожидания push, момент отправки SMS и максимальное число попыток. Обычно для одного события достаточно одной резервной SMS. Повторная отправка нужна только при конкретном техническом условии, например временной ошибке API. Если причина связана с неверным номером, повтор не поможет.

Текст сообщения должен отличаться от push хотя бы по форме, но сохранять тот же смысл. Иначе клиент не поймёт, какое уведомление актуально. В системе задайте приоритет последнего статуса: если после отправки SMS заказ снова изменился, новый статус должен получить отдельный идентификатор.

Перед запуском полезно проверить задержки и повторные попытки на тестовых номерах. Отдельно проверьте сценарий, в котором push приходит с опозданием уже после SMS. В таком случае приложение должно показать актуальный статус, а не вернуть клиента к старой операции.

Какие ошибки чаще всего ломают SMS-фолбэк?

  • Переход к SMS по таймеру без проверки статуса. Push может прийти через несколько секунд, а клиент получит два сообщения. Используйте статус доставки или открытия, когда платформа его предоставляет.
  • Отсутствие уникального ключа события. При повторном запросе API система не понимает, что уведомление уже отправлялось. Добавьте идентификатор операции и проверку перед каждой попыткой.
  • Повторная отправка после любой ошибки. Ошибка авторизации, неверный номер и временная недоступность сервиса требуют разных действий. Разделите ошибки на повторяемые и окончательные.
  • Одинаковые тексты для разных статусов. Клиент видит «заказ обновлён», но не понимает, что именно изменилось. Передавайте в шаблон конкретное действие и следующий шаг.
  • Отсутствие журнала. Без истории сложно установить, какой канал сработал и почему ушло SMS. Сохраняйте время, событие, канал и финальный статус.
  • Тестирование только успешного сценария. Проверьте отключённые push, отсутствие интернета, позднюю доставку и повторный запрос пользователя.

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

3 шага, которые можно сделать на этой неделе:

  1. Выберите одно событие, где потеря уведомления создаёт проблему, и опишите ожидаемый результат для клиента.
  2. Зафиксируйте поля события, статусы push и правило перехода к SMS, включая защиту от дублей.
  3. Проведите тест на нескольких сценариях и подключите журнал доставки, чтобы видеть результат каждой попытки.