Comms and calendar

Draft templated email, preview recipients, send via outbox, and attach calendar invites.

Where comms live

Open Admin → Comms. Templates define subject and body with program fields. Preview builds a recipient set and rendered bodies without sending. Send enqueues outbox work for asynchronous drain — the request path does not call the email provider directly.

Draft and preview

Choose a template, set audience filters, and run preview. Inspect missing fields before any send. Fix person or session data when required tokens are blank. Calendar invites (ICS) attach when the template and event data support them.

  1. Open Admin → Comms and select a template.
  2. Configure audience and event context.
  3. Run preview and read recipients, bodies, and missingFields.
  4. Repair data or template tokens until missing fields are acceptable.
  5. Only then send with the appropriate role and confirmation.

Scopes and CLI

comms:draft allows preview automation. comms:send is default-deny on new API keys and required for send. Agents should draft and show humans a preview before any key with send is used in production.

speakerops comms templates --event <eventId> --json
speakerops comms draft --template <templateId> --preview --json
speakerops comms send --preview-id <previewId> --json

Delivery backends

Local and many dev paths use sandbox provider behavior. Demo uses Cloudflare Email Sending. Other environments may use Resend when EMAIL_PROVIDER=resend and secrets are set. Operators should know which provider the current host uses before debugging inbox issues.