All articles
ReferenceCampaigns

Understanding Enrollments

How enrollments work, their statuses, and the workflow behind them.

1 min read 7 sections 5 tags

An enrollment represents a single contact's journey through a campaign. Each enrollment has its own workflow that executes the cadence steps independently.

Enrollment Status Lifecycle

StatusDescription
PENDINGEnrollment created, workflow not yet started.
RUNNINGWorkflow is actively executing cadence steps.
PAUSEDWorkflow is paused (via campaign pause or individual pause).
COMPLETEDAll steps executed successfully.
STOPPEDManually stopped by user.
FAILEDWorkflow encountered an unrecoverable error.
REPLIEDContact replied to an email — workflow typically stops.

How It Works Behind the Scenes

  • When a campaign starts, a Temporal workflow is created for each enrollment.
  • The workflow loads the cadence steps from the published version's flowJson.
  • It executes each step sequentially: sends emails, waits for timers, creates tasks, records goals.
  • The workflow responds to signals: pause, resume, and cancel.
  • Progress is tracked via the 'currentNodeId' field on the enrollment.

Individual Enrollment Control

  • You can pause, resume, or stop individual enrollments independently from the campaign.
  • This is useful when you want to halt outreach to a specific contact without affecting others.
  • Stopping an enrollment cancels its Temporal workflow — this cannot be undone.
enrollmentlifecyclestatusworkflowtemporal