Skip to main content
← Back to glossary
Messaging infrastructure

Message routing

Qu'est-ce que Message routing?

Cette entrée n'est actuellement disponible qu'en anglais.

Message routing is the layer that decides which sender and which channel each message takes. It resolves a sender through the from → sender pool → messaging service chain, advances along the org capability chain when a channel cannot reach the recipient — falling back across RCS, SMS, or WhatsApp — and keeps two-way conversations attached to the sender the recipient already replies to, so reach-back stays point-to-point.

More detail

Sender resolution is a fixed precedence chain: a direct `from` on the send wins, a named `sender_pool_id` picks from the pool's members, and a `messaging_service_id` fills in only when neither was passed. Pool members rotate under per-sender throughput caps, so one degraded sender shifts traffic to the rest of the pool instead of stalling messages.

Channel routing is recipient reachability-driven: the org capability chain advances to the next channel when the current channel cannot reach the recipient at all — for example, a recipient who is not reachable on RCS — and the message-level cascade advances on a terminal delivery receipt when the channel could reach them but the handset turned the message down.

Every hop re-enters the canonical send pipeline, so tenant-owned gates — opt-outs, quiet hours, consent — re-apply per hop and each hop emits its own delivery receipt event; a notify waterfall call composes the whole chain per recipient and returns one composed receipt.

Questions fréquentes

Which wins: from, sender_pool_id, or messaging_service_id?
The chain checks from first, then sender_pool_id, then messaging_service_id — a direct sender named on the message wins, and a messaging service supplies a sender only when neither a direct sender nor a pool was passed.
Does routing pick the channel once and stick with it?
No. The org capability chain re-evaluates reachability per send — a recipient who moved from RCS to plain SMS gets routed over SMS — and the message-level cascade re-routes across channels whenever a terminal receipt says the previous hop failed.
Why did my SMS hop get blocked when RCS was fine?
Each hop re-enters the send pipeline, so per-channel recipient consent and your tenant-owned opt-out and quiet-hour controls are re-checked on every hop — an SMS opt-out blocks the SMS hop even if the recipient accepted the RCS primary.

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.