Campaign Runs
A campaign run is a single execution of a campaign. Messages belong to a run rather than to the campaign, so one campaign can be sent many times, each send with its own messages, status and history. This page covers what a run holds, how runs are created, and what the run page shows.
What a Run Is
A run keeps its own copy of everything it needs to send independently:
- The template, including the sender for SMS under Sender Selection
- The contact source the campaign was set to, whether that is all contacts, a segment or an uploaded file
- The messages, once they exist
Because the run holds its own copy, editing the campaign afterwards does not change runs that already exist. Historical runs stay a record of what was actually sent.
Dynamic Audiences
When and how a run's messages come into existence depends on the campaign's contact source:
| Contact source | When messages are built |
|---|---|
| File | When the run is created. The run spends a short time in Preparing while they are built, then moves to Ready to Run |
| All Contacts or a Segment | When the run starts, from the most recent contact data |
A run against a dynamic source does not build its messages up front, so the recipients are worked out at the moment of sending. A contact added, corrected or removed between creating the run and starting it is reflected in what sends. The trade-off is that the exact recipient list is not known in advance, only estimated.
The Runs List
Opening a campaign shows its runs. Each row includes:
| Column | Description |
|---|---|
| Run Name | The run's own name. The run description sits in an info tooltip beside it |
| Messages | The number of messages in the run |
| Status | The run's current status |
| Created | When the run was created |
| Created By | The user who created the run, or System Scheduled for automatically created runs |
| Completed | When the run finished, or - if it has not |
A New Campaign Run button creates a run, and each row has an action menu whose options depend on the run's status.
Run Statuses
Runs move through a richer set of states than the campaign itself: Preparing, Scheduled, Ready to Run, Warming Up, In Progress, Complete, Some Errors, Setup Failed, and, for email, Active Retries. Each one is defined, with the transitions between them, in Run Statuses.
How Runs Are Created
There are three ways a run comes into existence.
Manually, from the campaign
Select New Campaign Run on the campaign. A modal asks for:
- Name: the run's own name, so runs of the same campaign can be told apart, for example "Q2 Follow-up - May 2026".
- Description (optional): context for this particular run.
It also previews the template that will be sent, including the sender, subject, body and any attachments for email. Creating the run takes you straight to it, so it can be reviewed and then started now or later.
Under Sender Selection, a run can be created whether or not its sender is currently available. The sender is checked twice around starting instead, once when start is selected and again when sending is due to begin, so a temporary sender problem never stops you preparing work. See Sender validation.
A missing sender is a different matter. Where the campaign's template has no sender at all, which happens when a brand that supplied one has since had it cleared, the run cannot be created. See A template with no sender.
Automatically, on a Repeat schedule
When a campaign has a Repeat schedule, runs are created and started automatically at each occurrence. Automatic runs:
- Are named
{Campaign Name} - Runand inherit the campaign's description, so they are identifiable without any manual input. - Show System Scheduled as the creator rather than a user, so scheduled sends can be told apart from manual ones.
- Respect the campaign's selected timezone, for Repeat schedules and for runs started later alike.
An automatic run is created as normal even if the campaign's sender is no longer available. If the sender is still missing when sending is due to begin, the run moves to Setup Failed and an email goes to the campaign owner, so a broken schedule never fails silently.
By duplicating an existing run
A past run can be duplicated to send again using that run's own copy of the template and its values, rather than the current campaign definition. This repeats a previous send even if the campaign has been edited since.
Duplicating prompts for a name (required) and a description, defaulted to {Campaign Name} - Run Copy and the campaign's description. The template and values can be reviewed before confirming.
The Run Page
Opening a run shows what it will send, or has sent.
The audience summary
For a run against all contacts or a segment, an audience summary sits at the top:
| Figure | What it counts |
|---|---|
| Total Contacts | Every contact the source covers |
| SMS Reachable | Contacts holding a phone number identifier value |
| Email Reachable | Contacts holding an email identifier value |
| Estimated recipients | The reachable figure for the campaign's own channel |
Alongside these, last refreshed tells you how current the figures are, and a Refresh now link recalculates them. The figures are a forecast of the send rather than the recipient list itself, so refresh them when the number is the thing you are checking.
A run against a segment recalculates that segment before it works out who to send to, so the send itself is built from current membership even when the figures on screen are older. See Refreshing a Segment.
Messages
Until a dynamic run starts, the messages area explains that messages are generated at run start from the most recent contacts, so there is nothing to list yet.
Once messages exist, the run page shows:
- A progress panel with grouped count panels (Total, Queued / Sending, Sent / Delivered, Failed / Opted Out) and a progress bar. It can be collapsed, and a Refresh button pulls the latest status.
- A messages table listing every message with its recipient, last change, status, priority, values and date. Messages can be searched, filtered, sorted, retried and exported.
See Monitoring and Messages for the full run view, and Starting a Run for starting one.
The Audience Page
A view audience link on the run page opens the run's Audience page, which lists the contacts behind the run. It is available to every role that can see the campaign, so a Campaigner can open it as readily as a Campaign Manager.
The link appears for the two dynamic sources only. A run built from an uploaded file has no audience page, because its recipients are the rows of the file and they are listed in the messages table instead.
Message Priority
Messages within a run are Normal or High priority. Priority is set per row in an uploaded contact file and mapped on the audience step, so it belongs to campaigns whose contact source is a file. When a run starts, its high-priority messages are dispatched ahead of normal-priority messages in other active runs.
Priority is not supported for the two dynamic sources. Every message in a run against All Contacts or a segment sends at Normal, the default.
See Message Priorities for what priority does and does not change, and how to filter, sort and export a run's messages by it.
Cancelling Runs
- A run in Scheduled can be cancelled. It reverts to Ready to Run rather than being deleted, so the prepared run is kept and can be started manually later.
- A run in Warming Up can be cancelled, returning it to Ready to Run with no messages sent, so a mistake caught early costs nothing.
Next Steps
- Starting a Run. Start a run now or schedule it for later
- Monitoring and Messages. The run progress panel and messages table
- Campaign and Message Statuses. Every run and message status defined