Как настроить переотправку уведомлений с Viber на SMS

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

Какие сообщения стоит переводить в SMS-резерв?

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

Промоакции и подборки товаров лучше не смешивать с транзакционными сообщениями в одной очереди. При сбое или задержке приоритет получает код подтверждения, а рекламное сообщение ждёт. Такое разделение особенно заметно в небольшом e-commerce, где один поток сообщений обслуживает и заказы, и личный кабинет.

Тип сообщения Первый канал Когда включать SMS Что оставить в тексте
Код подтверждения Viber Нет подтверждения доставки или канал недоступен Код и короткое пояснение
Изменение статуса заказа Viber Сообщение не принято первым каналом Номер заказа и новый статус
Напоминание о записи Viber Нет финального статуса доставки Дата, время и способ связи
Акция или подборка Отдельная очередь По собственной логике кампании Краткое предложение и ссылка при необходимости

Как выглядит fallback-маршрут в технической схеме?

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

Главное правило здесь — не отправлять SMS сразу после передачи сообщения в мессенджер. Передача в канал ещё не означает, что адресат увидел текст. При этом слишком долгое ожидание тоже мешает: код или напоминание теряют смысл. Время ожидания задают отдельно для каждого типа уведомлений и проверяют на тестовых сценариях.

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

Какие статусы нужны для решения о переотправке?

Нельзя строить резервный маршрут только по признаку «сообщение отправлено». Этот статус часто означает, что платформа приняла задачу, но ещё не сообщает о результате на телефоне получателя. В правилах нужно отдельно описать статусы, после которых SMS не нужна, и статусы, после которых она обязательна.

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

Для транзакционных SMS важны прямые каналы связи, понятный API и работа с отчётами о доставке. Эти критерии выделены при сравнении платформ для массовых SMS-рассылок на период 2025–2026 годов (IBZ Source). Отчёты DLR помогают отделить принятие сообщения шлюзом от подтверждённого результата; подробнее их можно разобрать в статье как читать DLR-отчёт SMPP-шлюза.

Как исключить дубли, если первый канал ответил с задержкой?

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

После запуска SMS система помечает цепочку как «резервный канал использован». Поздний статус от Viber сохраняется в журнале, но уже не создаёт новую отправку. Если сайт повторно прислал событие, интеграция сверяет ключ цепочки и не запускает отправку заново. Отдельно стоит предусмотреть отмену: если заказ отменили до fallback, SMS о доставке не должна попасть в очередь.

Когда бизнес работает через нескольких поставщиков SMS, ту же логику полезно применять и внутри резервного канала. Материал о failover между SMPP-провайдерами поможет разделить сбой первого канала и проблему на маршруте SMS.

Типичные ошибки при переотправке с Viber на SMS

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

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

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