Skip to main content
Campaign lifecycle calls are state transitions. Keep the campaign in draft until its audience, workflow, channels, and send windows have been reviewed.
  1. Create a campaign with POST /api/v1/public/campaigns.
  2. Configure the workflow with the campaign update endpoint.
  3. Enroll a small test list or individual test lead.
  4. Run POST /campaigns/{campaign_id}/preflight and resolve every blocking issue.
  5. Launch only after confirming the campaign ID, audience, channel connections, and schedule.
  6. Monitor campaign analytics and lead activity.

Enrollment

Use POST /campaigns/{campaign_id}/leads with either explicit lead_ids or a lead_list_id, as documented by the request schema. A 202 response means enrollment work has been accepted; persist the returned job or operation identifier when present. Duplicate enrollment should be treated as a business result, not as permission to retry blindly. Inspect the response and campaign lead list before resubmitting.

Lifecycle safety

  • preflight does not launch a campaign; it validates readiness.
  • launch can create real outbound activity.
  • pause prevents future work but does not undo messages or calls already sent.
  • resume can restart future work.
  • stop is a terminal or highly destructive transition; require explicit confirmation.
  • After a timeout, read the campaign state before repeating a transition.