Messages
Captured outbox
Everything this sandbox would have sent, exactly as written. It stays in this browser until you reset the sandbox.
Capture mode: nothing leaves this browser
Every send here goes through the sandbox stand-in for @church/outbound with OUTBOUND_MODE=capture, so it lands in the captured outbox instead of reaching anyone. In production the same messages go out through @church/outbound in live mode: email through Amazon SES and texts through Twilio, on separate senders for announcements and for operational traffic. Non-production environments only ever hold sandbox credentials.
The captured outbox is empty
Send something from the composer, text STOP from a person's consent page, or submit a form on the website preview. It lands here, and nothing leaves this browser.
How live sending works
Not built in this demo; this is the path the composer will use in production.
- A send writes one outbox row per contact point, with a unique key on message, contact point and channel, so a retry never sends twice (COM-025).
- The relay in
packages/jobsre-checks consent and quiet hours just before dispatch, then calls@church/outbound. @church/outboundsends email through Amazon SES and texts through Twilio, or captures them when the environment is not production. It refuses live credentials anywhere else.- Delivery receipts and STOP replies come back through signed webhooks and write to the consent record within a minute (COM-014, COM-024).