sent-routing-strategist
Decides how a Sent message should reach the recipient — automatic routing versus a pinned channel, what the channel array actually does, how fallback and reroute work, and why a message ended as FAILED, FILTERED, BLOCKED, or channel "auto". Use when choosing the channel field, expecting WhatsApp-to-SMS fallback, debugging an unexpected route or duplicate charges from multiple channels, or interpreting message status and activity evidence.
Security Assessment
About sent-routing-strategist
The Sent Routing Strategist is a decision-and-diagnosis reference for how messages sent through the Sent platform reach their recipients. It exists to dispel the most expensive misconception in the API: that the `channel` field is an ordered fallback preference. In reality the `channel` array is a broadcast list, so a value like `["whatsapp", "sms"]` sent to two recipients creates four messages and four charges. The skill teaches that automatic routing (omitting `channel` or sending `["sent"]`) is the actual fallback mechanism, letting the platform select and reroute across up to three distinct channel-and-provider pairs.
The guidance covers when to pin a specific channel versus rely on automatic routing, what pinning gives up (no cross-channel fallback; a `FAILED` outcome if no route matches), and how to read message outcomes from evidence rather than the initial `202` response. It documents the route-selection pipeline, reroute triggers, and terminal-status interpretation for `FAILED`, `FILTERED`, `BLOCKED`, and `SCHEDULED`, including why a `FILTERED` message must never be retried (it is a policy or consent gate). Supporting reference files map observable status-and-channel combinations back to root causes, since Sent records internal reason codes but does not return them in API responses or webhooks.
It targets developers and support engineers integrating with Sent who need to choose the channel field correctly, debug unexpected routes or duplicate charges, expect WhatsApp-to-SMS fallback, or interpret message status and activity evidence. It is a documentation and diagnostic skill grounded in Sent's v3 messaging semantics, not an executable tool.
FAQ
Does the channel array act as an ordered fallback list?
No. The array is a broadcast list, not a preference order. Listing multiple channels sends the same content on each, creating one message and one charge per channel-and-recipient pair. To get fallback behavior, omit the channel field or send ["sent"] to enable automatic routing.
How do I get 'try RCS, fall back to SMS' behavior?
Use automatic routing by omitting the channel field or sending ["sent"]. The platform performs the fallback across candidate routes; an ordered array would instead broadcast to every listed channel and duplicate delivery and cost.
Why did my message end as FILTERED, and should I retry it?
FILTERED means a policy gate, most often a consent block or route denial. It must never be retried blindly; retrying reproduces the same outcome and risks a compliance violation. BLOCKED (an account precondition like balance or template approval) should be fixed and then re-sent.
Can I read the resolved route from the 202 send response?
No. For automatic routing the echoed per-recipient channel is not a resolved route and is never updated. Resolve the truth from the message.routed event, from GET /v3/messages/{id} after routing, or from the activity history.
How many times will a failed message reroute?
Reroute happens only for route or carrier failures (undeliverable, provider unavailable, timeout, transport error), never for invalid content, consent blocks, or account preconditions. It reuses the same message_id and stops at a ceiling of three distinct channel-and-provider pairs across the initial send and all reroutes.
Install sent-routing-strategist
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
sentdm/sent-plugin