Twilio or Sendora — pick the trade-off, not the marketing.
Twilio is the SMS wire. Sendora's SMS module is a thin wrapper over Twilio (only — no MessageBird / Sinch adapter today) that adds CTIA-compliant STOP-keyword handling, a 60s recipient-dedup window matching Email's posture, per-org suppression list + rate limit, and emits canonical `sms.*` events into the same bus the rest of Sendora reads. Honest about scope: no single-call audience send, no Deep Links auto-wrap on outbound bodies, STOP suppresses this-org SMS only (not cross-channel), no `sms.replied` event, no per-region cost caps, no Twilio Verify integration. Keep paying Twilio; add the small platform layer Sendora ships.
SMS / Voice / Verify infrastructure. Powerful, raw — and you build the lifecycle layer yourself.
BYOP Twilio adapter with CTIA STOP-keyword handling + recipient-dedup + `sms.*` events. Honest about what's not yet wrapped.
Side-by-side
| Capability | Twilio | Sendora |
|---|---|---|
| SMS send + delivery receipts | ✅ the wire | ✅ via Twilio BYOP — Twilio is the only provider today |
| Number pool management | ✅ | ✅ — your Twilio account |
| MessageBird / Sinch adapter | Separate vendors | ❌ — not built today |
| STOP / HELP / UNSUB compliance | Per-account | ✅ CTIA-compliant keyword set; **sms-only + per-org suppression** — does NOT propagate to email/push |
| Audience-targeted single-call send | ❌ DIY | ❌ — fan-out via Automation workflow |
| Short link auto-wrap + click tracking | ❌ | ❌ — Deep Links module exists but no auto-wrap on outbound SMS bodies |
| Recipient-dedup at dispatch | ❌ | ✅ 60s window on (orgId, recipient, body) |
| Workflow triggers off `sms.sent / .delivered / .failed` | Webhooks (DIY) | ✅ first-class events |
| Two-way SMS — `sms.replied` event | Webhooks (DIY) | ❌ — inbound non-keyword messages not surfaced as event |
| Per-region cost controls (international spend caps) | Manual | ❌ — not built |
| Verify API for OTP | ✅ Twilio Verify | ❌ — use Auth Service email OTP instead |
| Pricing model | Per-segment + tier discount (~$0.0083/segment US) | Bundle (Twilio costs separate; you pay Twilio directly) |
Why teams switch to Sendora
- You already pay Twilio for the wire. Sendora adds CTIA STOP keyword handling + 60s recipient-dedup + `sms.*` events on the same bus the rest of Sendora reads — without you building those pieces.
- Recipient-dedup window matches Email's posture — same `(orgId, recipient, body)` within 60s is suppressed.
- STOP keyword set is CTIA-compliant (STOP / STOPALL / UNSUBSCRIBE / CANCEL / END / QUIT) + matching re-subscribe (START / UNSTOP / YES).
When Twilio is the right call
- You need MessageBird or Sinch as your SMS provider — Sendora is Twilio-only today.
- You need single-call audience send — Sendora fans out via Automation workflow, one send per recipient.
- You need automatic short-link wrap on outbound SMS for click-attribution — not built; Deep Links module is separate.
- You need cross-channel STOP suppression (one STOP suppresses email + push + SMS for that recipient) — Sendora's suppression is SMS-only + per-org.
- You need `sms.replied` first-class event for two-way SMS journeys — not built; inbound non-keyword messages aren't surfaced as an event.
- You need Twilio Verify for OTP — Sendora doesn't integrate; use Auth Service email OTP instead.
- You only need raw SMS wire access, never lifecycle messaging on top.
- You're a Twilio shop with deep custom dashboards built on Twilio's APIs.
SMS
Twilio BYOP SMS with CTIA STOP-keyword handling + recipient-dedup + `sms.*` events. Honest about what's not built yet.
Twilio is a wire. Customer.io SMS is a thin wrapper. Sendora SMS is also a thin wrapper — leaner than the others — that shares the same recipient-dedup window as Email (no double-send post-signin) and emits canonical `sms.sent / .delivered / .failed` events into the same bus as every other module. Honest about scope: today this is a Twilio-only adapter (no MessageBird / Sinch yet), with one-recipient-at-a-time send (audience fan-out via Automation workflow), CTIA-compliant STOP keyword set that suppresses **this org's SMS** (not all channels), and no Deep Links auto-wrap on outbound bodies.
Switch from Twilio. Keep your weekend.
Free plan covers real product use, no credit card. Bulk hash import for auth, CSV import for profiles, schema-validated event import for analytics — Data Sync module handles the migration in a day.