Skip to content
Sendora Cloud
Create account
2026-05-31 · Platform

Messaging — single-call audience send across Email + Push + SMS

  • `POST /orgs/:orgId/email/send-to-audience` resolves audience → member profiles with non-null email → fan-out one `sendEmail` per recipient. Each per-recipient call enforces consent/suppression/dedup/probation unchanged.
  • `POST /orgs/:orgId/push/send-to-audience` joins audience profiles → active `push_tokens` via `externalId === userId` → fans out via existing `dispatchTokens` pipeline. Per-token consent gate / frequency cap / quiet hours / Critical Alerts / Web Push / APNs / FCM dispatch all apply.
  • `POST /orgs/:orgId/sms/send-to-audience` reads `traits.phone` from member profiles → fans out queued `smsSends` rows with consent gate / TCPA suppression / 60s recent-duplicate dedup / fire-and-forget `dispatchSms`.
  • Shared `batch_id` + `audience_id` stamped into every per-recipient row's metadata for operator correlation. Per-recipient errors caught + logged so one bad recipient doesn't abort the batch.
  • Quota reserved upfront against `estimateAudienceSize`. Cap 5000 recipients per call (predictable memory + quota math); beyond that → background-job version (post-roadmap).
  • Sequential fan-out (not Promise.all) — keeps per-org burst limiter sane on a 5K send.