Оркестрация каналов доставляет одно логическое сообщение по нескольким каналам каскадом: проверить возможности, попробовать предпочтительный насыщенный канал (RCS или WhatsApp) и откатиться на SMS при отсутствии возможности, сбое или тайм-ауте. Маршрутизация балансирует наименьшую стоимость и наилучший опыт, правила повторов и тайм-аутов ограничивают каждый шаг, а единый DLR сверяет статус по каналам.
- Пользователь запрашивает кодВход, оплата или регистрация
- Ваше приложение вызывает API верификацииОдин запрос на один код
- BroadNet доставляет кодПо лучшему доступному каналуРезервный канал в случае недоставкиSMSWhatsAppГолос
- Пользователь вводит кодПроверка на соответствие выданному коду
- ПодтвержденоДоступ разрешен
Зачем нужна оркестрация
Ни один канал не достигает всех, и у каждого разные стоимость, насыщенность и характеристики доставки — поэтому бизнес, которому нужны и охват, и опыт, должен использовать несколько каналов для одного логического сообщения. Омниканальная оркестрация — это логика, которая превращает одно намерение («сообщить этому клиенту, что его заказ отправлен») в правильную последовательность попыток по каналам для этого конкретного получателя: попробовать самый насыщенный, самый брендированный канал, который устройство может принять, и откатываться через постепенно более простые каналы, пока один не доставит. Оркестратор скрывает эту сложность за единой отправкой, поэтому отправитель выражает намерение и политику, а платформа берёт на себя возможности, маршрутизацию, повторы и сверку.
Каскад: проверка возможностей, затем откат
Каскад — это упорядоченный список каналов с правилом перехода к следующему. Он начинается с проверки возможностей — достижимо ли это устройство по RCS, дал ли этот пользователь opt-in для WhatsApp — потому что отправка на недостижимый канал лишь тратит шаг. Оркестратор пробует первый подходящий канал и переходит к следующему по заданному триггеру: канал недоступен, отправка отклонена или доставка не подтверждена в течение тайм-аута. Распространённые каскады — RCS→SMS (сначала насыщенный брендированный, универсальный текст как опора), WhatsApp→SMS (сначала канал приложения с opt-in, иначе SMS) и RCS→WhatsApp→SMS. SMS почти всегда стоит внизу, потому что это универсальная, всегда достижимая опора.
deliver(order_shipped, +15551234567):
if rcsCapable(msisdn):
send RCS rich card; await DLR up to T_rcs
if delivered: DONE
if whatsappOptedIn(msisdn):
send WhatsApp template; await status up to T_wa
if delivered/read: DONE
send SMS (universal fallback); await DLR up to T_sms
record final status on the unified message idМаршрутизация: наименьшая стоимость против наилучшего опыта
Выбор порядка каскадирования — это решение по маршрутизации, где сталкиваются две цели. Маршрутизация с минимальной стоимостью отдает предпочтение самому дешевому каналу и маршруту, который обеспечит доставку — это полезно для высокообъемного трафика с низкой срочностью, где выигрывает плата за разговор в RCS, плата за сообщение в WhatsApp или более дешевый маршрут SMS. Маршрутизация с лучшим клиентским опытом отдает предпочтение самому насыщенному, брендированному и надежному каналу, который может получить получатель — это полезно там, где вовлеченность, брендинг или интерактивность важнее стоимости единицы сообщения. Большинство политик сочетают оба подхода в зависимости от класса сообщений: транзакционные чеки могут оптимизироваться по опыту и брендингу, а массовые уведомления — по стоимости. Оркестратор применяет политику вместе с возможностями каналов и правилами конкретного рынка (регистрация ID отправителя, категории WhatsApp, доступность RCS), чтобы выбрать фактический первый шаг.
| Цель | Предпочтительно | Лучший вариант для |
|---|---|---|
| Минимальная стоимость | Самый дешёвый подходящий канал/маршрут | Уведомления большого объема, но низкой срочности |
| Лучший пользовательский опыт | Самый функциональный верифицированный поддерживаемый канал | Фирменные, интерактивные, ориентированные на вовлечение аудитории сообщения |
| Приоритет надежности | Канал с наивысшей гарантией доставки | OTP, критически важные/срочные оповещения |
| С соблюдением комплаенса | Только каналы, разрешённые на рынке | Регулируемые адреса назначения, правила идентификации отправителя |
Повторы, тайм-ауты и дедупликация
Каждому шагу каскада нужно ограниченное поведение, чтобы вся доставка была детерминированной и никогда не тарифицировала получателя дважды. Тайм-аут по каналу определяет, как долго ждать подтверждения перед переходом — достаточно долго для легитимной доставки, достаточно коротко, чтобы откат ещё пришёл с пользой (OTP, пришедший часом позже, бесполезен). Повторы внутри канала обрабатывают временные сбои, но должны отличать постоянный отказ (немедленно перейти дальше) от временного (повторить, затем перейти). А поскольку сообщение могло быть отправлено по насыщенному каналу, пока срабатывает откат, оркестратор дедуплицирует по единому логическому идентификатору сообщения, чтобы клиент не получил одно и то же уведомление дважды. Ключи идемпотентности при отправке делают повторы безопасными.
Единые отчёты о доставке по всем каналам
Каждый канал сообщает о доставке по-своему — SMS возвращает отчёт о доставке SS7/SMPP, WhatsApp отправляет webhook sent/delivered/read/failed, RCS выдаёт события доставки и прочтения, — поэтому оркестрированной отправке нужен единый DLR, который отображает их все в одну модель статуса по логическому идентификатору сообщения. Это позволяет отправителю задать единственный вопрос — «дошло ли это до клиента и как» — и получить один ответ, называющий канал, который в итоге доставил, каналы, которые были опробованы и пропущены, и сигнал прочтения/вовлечённости там, где канал его предоставляет. Единое представление также питает аналитику маршрутизации — какие каскады доставляют, по какой стоимости, на каких рынках — замыкая цикл от политики к результату.
| Канал | Собственный статус канала | Единый статус |
|---|---|---|
| SMS | Отчёт о доставке SMPP / SS7 | отправлено / доставлено / не доставлено |
| RCS | События доставки + прочтения | отправлено / доставлено / прочитано / не удалось |
| webhook: отправлено / доставлено / прочитано / сбой | отправлено / доставлено / прочитано / не удалось | |
| Результат каскада | (составной) | delivered-via-<channel> / exhausted |
Часто задаваемые вопросы
Что такое откат каналов?
Откат каналов доставляет одно логическое сообщение, пробуя каналы по порядку и переходя дальше, когда один недоступен или не подтверждает доставку. Типичный каскад — RCS→SMS или WhatsApp→SMS: сначала попробовать насыщенный брендированный канал и откатиться на SMS — универсальную опору — при отсутствии возможности, отклонении или тайм-ауте.
Как оркестратор решает, какой канал попробовать первым?
Он сочетает проверку возможностей (достижимо ли устройство по RCS, дал ли пользователь opt-in для WhatsApp) с политикой маршрутизации. Маршрутизация по наименьшей стоимости предпочитает самый дешёвый подходящий канал; по наилучшему опыту — самый насыщенный верифицированный; по надёжности — гарантированную доставку. Правила конкретного рынка, такие как регистрация sender ID и категории WhatsApp, дополнительно ограничивают подходящие каналы.
Что такое маршрутизация по наименьшей стоимости против наилучшего опыта?
Маршрутизация по наименьшей стоимости выбирает самый дешёвый канал и маршрут, который доставит, подходит для высокообъёмного, малосрочного трафика. Маршрутизация по наилучшему опыту выбирает самый насыщенный, брендированный, доверенный канал, который получатель может принять, подходит для сообщений, ведомых вовлечённостью. Большинство политик сочетают обе по классу сообщения — квитанции под опыт, массовые оповещения под стоимость.
Как откат избегает отправки одного и того же сообщения дважды?
Привязывая каждый шаг к одному логическому идентификатору сообщения и дедуплицируя по нему, с тайм-аутами по каналам и ключами идемпотентности, чтобы повторы были безопасны. Постоянный отказ немедленно переходит к следующему каналу; временный сбой повторяется перед переходом. Получатель видит уведомление один раз, по тому каналу, который в итоге доставил.
Какой тайм-аут должен использовать каждый шаг канала?
Достаточно долгий, чтобы допустить легитимное подтверждение доставки, достаточно короткий, чтобы откат ещё пришёл с пользой. Одноразовый код, пришедший часом позже, бесполезен, поэтому его пошаговые тайм-ауты коротки; несрочное уведомление может дольше ждать на насыщенном канале, прежде чем откатиться на SMS.
Что такое единый DLR?
Единый отчёт о доставке отображает нативный статус каждого канала — отчёты о доставке SMS, webhook sent/delivered/read/failed WhatsApp, события доставки и прочтения RCS — в одну модель статуса по логическому идентификатору сообщения. Он позволяет отправителю задать единственный вопрос о том, дошло ли и как сообщение до клиента, и питает аналитику маршрутизации.
Технические характеристики источника
На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)