New message
New message · draft
Ad-hoc operator outreach
Draft
Recipients
Pick one customer, a list, or a segment. Same segments power the Promote sheet from the Dashboard.
Audience type
Selected (47)
Mike Carlson
Sarah Park
James Henderson
Laura Lopez
… 43 more
Channel
Deliverability per channel for the 47 selected. Recipients without consent or contact are excluded automatically.
Start from a template
Drop in a saved template body and customize. Or write from scratch.
Compose
SMS sub-card uses plain text + variables. Email gets rich HTML. Both rendered from the same body w/ template substitution.
180 chars · 2 SMS segments
2 segments = 2× SMS cost
Send window
Now lands immediately. Scheduled lets you compose at any time but deliver at the right moment (e.g. 9 AM for morning promotions).
When
Suppression + opt-outs
Live counts. Updates as recipients opt out (replies STOP to SMS or unsubscribe from email). Numbers below reflect the moment of send.
Selected segment
47
− Opted out of SMS
3
− No phone on file
2
Will reach via SMS (others get email)
42
Will reach via email
47
Total unique recipients (deduped)
47
How ad-hoc messages work
POST /operator/messages creates an outbound_campaign row + queues per-recipient message_send rows. Same delivery pipeline as the Promote sheet (cluster 1.1) — uses Twilio for SMS + SendGrid for email + falls back to email when SMS fails. Suppression rules check consent_log at send-time, not draft-time, so opt-outs after this point are honored. Replies thread back into Messaging inbox via customer_thread rows linked to the originating campaign.
Cohort
Premium members · active 7d (47)
-
Mike Carlson · Premium Active 2d ago · SMS ✓ · Email ✓Remove
-
Sarah Park · Premium Active 4d ago · SMS ✗ (opted out) · Email ✓Remove
-
James Henderson · Premium Active 1d ago · SMS ✓ · Email ✓Remove
-
Laura Lopez · Premium Active 6d ago · SMS ✓ · Email ✓Remove
-
… 43 more recipients View full list · export CSVExport