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
| Status | Description |
|---|---|
| PENDING | Enrollment created, workflow not yet started. |
| RUNNING | Workflow is actively executing cadence steps. |
| PAUSED | Workflow is paused (via campaign pause or individual pause). |
| COMPLETED | All steps executed successfully. |
| STOPPED | Manually stopped by user. |
| FAILED | Workflow encountered an unrecoverable error. |
| REPLIED | Contact 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
Related Articles
Guide
Creating a Campaign
Step-by-step guide to creating a new outreach campaign using the 5-step wizard.
Reference
Understanding Campaign Statuses
Learn what each campaign status means and how campaigns transition between states.
Guide
Pausing, Resuming, and Stopping Campaigns
How to control an active campaign — pause sending, resume, or stop entirely.
Guide
Cloning a Campaign
Quickly create a new campaign based on an existing one.