All guides

Campaigns

Send a template to a segment — now or on a schedule — with server-enforced safety gates.

A campaign is a one-to-many send: a template (content) + a segment (audience) + a from-address on a verified domain, sent immediately or scheduled. Campaigns are the end of the contacts → segments → campaigns pipeline.

Send-readiness gates

Before a campaign sends, every one of these must hold — and they're enforced on the server, so they apply equally to the dashboard and a direct API call:

  • The from-domain is verified and sending-allowed (re-checked at send, not just at create).
  • There's a non-empty subject (from the campaign or the template default).
  • The template is a publishable marketing template — not transactional, not an archived/draft template.
  • The segment is not archived and has at least one subscribed member.
  • Any schedule is within bounds — not in the past, and no further than 90 days out.

When a send is blocked, the validation dialog lists exactly which gate failed and how to fix it, rather than failing opaquely. The API returns the same reasons as a structured 409/422.

Lifecycle & archiving

A campaign moves through draft → scheduled → sending → sent (or canceled/failed). Terminal campaigns (sent, canceled, failed) can be archived directly; a non-terminal campaign must be canceled before it can be archived, so you never archive a send that's still in flight. As with segments, archived campaigns are restorable and auto-pruned after ~30 days.

Scheduling semantics

A schedule in the past is treated as "send now"; a schedule beyond 90 days is rejected at both create and send time. These bounds are consistent across the dashboard and the v1 API.