Running the gate and resolving the audience…
Preview mode.Supabase isn't connected, so sign-in is disabled. Set NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY to enable it. Data sources —dashboard: sample data · campaigns & approvals: sample data.
Running the gate and resolving the audience…
Preview mode. No database is connected, so this screen is backed by the in-app mock that conforms to the SendOne contract. Set DATABASE_URL (and run db:migrate + db:seed) to review real campaigns through the live compliance gate. No messages are sent.
Campaign approval
Nothing is blocked. Some recipients are held for quiet hours and send automatically later.
1 · Message preview
SendOne: your August update is live — faster dry-runs and clearer approvals. See what's new: sndone.ai/aug. Reply STOP to opt out.
3 · Estimated cost
2 · Audience
No one was excluded for compliance — every recipient cleared the consent, suppression, and opt-out checks.
4 · Gate status
7 passing · 1 deferred · 1 not evaluated · 1 n/a
All 12,410 messageable recipients have a recorded opt-in.
No recipients are on an org, campaign, or global suppression list.
520 recipients are in an overnight quiet-hours window. They are held until it closes — not dropped.
Next: No action needed. These messages send automatically when quiet hours end.
Automated content scanning is not enabled for this account yet, so this check did not run.
Next: Review the message body above yourself before approving.
Brand and campaign are registered with the carrier.
This screen records the approval. It is evaluated again at send time.
Projected send rate is within the account's throughput limit.
Projected spend $98.04 is within the $200.00 daily cap.
No recipients have an active STOP on record.
12,410 of the brand's 50,000 daily message cap.