Omnichannel messaging
What is Omnichannel messaging?
Omnichannel messaging is the delivery-side counterpart of omnichannel routing: one logical send becomes a first-class message on whichever channel actually reaches the recipient, cascading across channels — RCS first, then SMS, then WhatsApp, for example — instead of the caller picking one channel up front. Every hop is its own message with its own status and delivery receipt, bound to one message_group_id so the whole chain reads as a single logical message.
More detail
On Orbit the chain resolves at send time from up to three sources in a fixed precedence — a raw metadata.fallback_channels field, then the typed cascade field on the send body, then the org default policy — and the escalation engine advances to the next channel only when a terminal failed, undelivered, or rejected receipt lands inside the fallback window.
All hops of one cascade carry the same message_group_id, and the cascade groups endpoint returns each leg oldest-first with fallback_of and fallback_reason filled in, so a reconciled run shows 'the SMS send that followed the failed RCS send' instead of disconnected messages.
Each hop re-enters the canonical send pipeline, so tenant-owned controls — recipient opt-outs, quiet hours, consent gates — are re-applied per hop rather than copied from the original send, and each hop emits its own delivery receipt (DLR) webhook event. The notify composer's waterfall mode composes the same per-recipient chain in a single call with one composed receipt.
Frequently asked
- How is omnichannel messaging different from omnichannel routing?
- Omnichannel routing is the contact-center concept — every inbound interaction feeds one shared queue and agent pool. Omnichannel messaging is the SENDING concept — one logical outbound message escalates across channels until one of them delivers. They complement each other: routing picks the agent, messaging picks the channel.
- Does every cascade hop bill separately?
- Yes — each hop is a first-class message on its own channel with its own delivery receipt, and bills on that channel. There is no separate cascade fee class.
- How do I read a whole cascade back as one message?
- Every hop carries the same message_group_id, so the cascade groups endpoint returns every leg in send order with a fallback reason per hop. In the dashboard, the Messages view groups those legs primary-first on one envelope, so operators see one logical message rather than several disconnected sends.
See also
Build it on Orbit
Voice, messaging, email, video, and AI agents on one platform and one pay-as-you-go bill. Start free — no credit card required.