2026-05-30 · Docs
SMS — MessageBird/Sinch / audience send / link auto-wrap / cross-channel STOP / replied event / region caps retracted
- Audit of `sms/routes.ts` + `sms/suppression.ts` surfaced 6 over-claims on the SMS module — largest single-module retract in the sweep. (1) "BYOP — Twilio, MessageBird, Sinch" — only Twilio in code; `provider: 'twilio'` hardcoded on send. (2) Audience-targeted single-call send — takes one `to: string`. (3) Short link auto-wrap via Deep Links — no wrap code anywhere. (4) STOP opt-outs suppress every Sendora channel — `sms_suppressions` is SMS-only + per-org. (5) `sms.replied` first-class event — not emitted; inbound non-keyword messages aren't surfaced. (6) Per-region cost controls (international spend caps) — not built.
- Real shape: Twilio BYOP (`POST /orgs/:orgId/sms/send` + signed webhook URL `POST /sms/webhooks/twilio/:orgId`), CTIA-compliant STOP keyword set (STOP/STOPALL/UNSUBSCRIBE/CANCEL/END/QUIT + START/UNSTOP/YES re-subscribe) writing to `sms_suppressions`, pre-send suppression check + recipient-dedup 60s window, per-org quota meter via `reserveQuota`, `sms.sent / .delivered / .failed` events, audit log per send.
- Twilio comparison rewritten honest. 7 new rows enumerate the gaps (MessageBird/Sinch adapter, audience send, link auto-wrap, two-way `sms.replied`, region caps, Verify integration, cross-channel STOP). whyStay LEADS with all 6 missing features. Pricing column adds Twilio's ~$0.0083/segment US.