Campaign and Message Statuses
Outreach tracks status at three levels: the campaign, each run, and each individual message. Understanding these statuses helps you monitor progress, diagnose issues, and know when action is needed.
Campaign Statuses
At the campaign level, status simply reflects whether a run is currently active:
| Status | Meaning |
|---|---|
| Ready to Run | No run is currently active. The campaign is idle and available to run. |
| Run In Progress | At least one of the campaign's runs is currently active (preparing, warming up, or sending). |
A campaign only ever has these two statuses. Outcomes such as Complete or Some Errors belong to a run, not to the campaign.
Run Statuses
Each run moves through its own lifecycle:
| Status | Meaning |
|---|---|
| Preparing | Messages are being created for the run. |
| Scheduled | The run is waiting for its scheduled start date and time. Its messages were created when the run was created. |
| Ready to Run | All messages have been created and the run has not been started yet. |
| Warming Up | The 5-minute window after a run is started now, before messages begin sending. Runs that start at a scheduled time skip this state. |
| In Progress | One or more messages are queued, sending, or sent. |
| Complete | All messages reached a final state and none failed. |
| Some Errors | All messages reached a final state, but one or more failed. |
| Setup Failed | The run could not be set up or could not begin sending. Either its messages failed to create, or its sender was no longer available when sending was due to begin. |
| Active Retries (Email only) | The primary send is complete, but one or more messages are in a deferred/retrying state. |
Cancelling a run in Scheduled or Warming Up returns it to Ready to Run; nothing is deleted and no messages are sent.
Message Statuses
Individual messages move through a lifecycle of statuses as they are processed. The exact statuses differ slightly between SMS and Email.
SMS
| Status | Meaning | Final state? |
|---|---|---|
| Queued (Run Ready) | The message belongs to a run that is Ready to Run but has not been started yet. | No |
| Queued (Run In Progress) | The run is active and the message is in the sending queue, waiting to be transmitted. | No |
| Sending | The message has been submitted to Twilio and is being processed. | No |
| Sent | Twilio has handed the message off to the recipient's carrier. No delivery confirmation has been received yet, so this is not proof the message reached the handset. | No |
| Delivered | The carrier returned a delivery confirmation to Twilio, which normally means the message reached the recipient's handset. | Yes |
| Assumed Delivered | The message was sent but no delivery confirmation was received within 10 minutes. Not all carriers report delivery. | Yes |
| Failed | The message could not be delivered. A failure reason is provided (e.g. invalid number, carrier rejection, timed out). | Yes |
| Opted Out | The recipient has opted out of receiving messages. | Yes |
Email
| Status | Meaning | Final state? |
|---|---|---|
| Queued (Run Ready) | The message belongs to a run that is Ready to Run but has not been started yet. | No |
| Queued (Run In Progress) | The run is active and the message is in the sending queue, waiting to be transmitted. | No |
| Sending | The message has been submitted to SendGrid and is being processed. | No |
| Delivered | SendGrid confirmed the message was delivered. | Yes |
| Delivered (Assumed) | The message was sent but no delivery confirmation was received within the timeout window. | Yes |
| Deferred | The message was temporarily deferred by the receiving server. SendGrid is automatically retrying delivery for up to 72 hours. See Retrying (Deferred) explained. | No |
| Failed | The message could not be delivered. A failure reason is provided (e.g. bounced, blocked, invalid address). | Yes |
| Opted Out | The recipient clicked the unsubscribe link in the email. | Yes |
Message Priority
Independently of status, each message has a priority of Normal (default) or High, taken from the priority column mapped from your contact file. Priority affects the order messages are dispatched in, not the statuses they pass through. See Message Priorities.
Retrying (Deferred) Explained
The Deferred status applies to email messages only and corresponds to the deferred state in SendGrid. A message enters this state when the recipient's email server temporarily refuses to accept the email. Common reasons include:
- The recipient's server is temporarily unavailable or overloaded
- The recipient's server is rate-limiting or throttling incoming connections
- Transient DNS or network issues on the recipient's side
When a message is deferred, SendGrid automatically retries delivery for up to 72 hours, spacing the retries further apart over time. You do not need to take any action for these retries to occur.
You cannot cancel, stop, or manually intervene with a deferred message. The retry process is handled entirely by SendGrid and will continue for up to 72 hours from the initial deferral.
After 72 hours, if the message still has not been accepted by the recipient's server, it is marked as Failed with a blocked/expired reason.
While a run has one or more messages in the deferred state, the run status shows as Active Retries. This indicates that the primary send is complete but delivery is still pending for some recipients.
For more technical detail on how SendGrid handles deferred emails, see the SendGrid Deferrals documentation.
Status Lifecycle Diagrams
SMS
Email
Timeout Rules
| Rule | Channel | Detail |
|---|---|---|
| Assumed Delivered | SMS | A message in "Sent" status for more than 10 minutes without a delivery confirmation is moved to "Assumed Delivered". If a confirmation arrives later, the status is updated to "Delivered". |
| Timed Out | SMS | A message in "Sending" status for more than 10 minutes is moved to "Failed" with reason "Timed Out". If delivery is subsequently confirmed, the status is updated and the failure reason removed. |
Automatic Retry Behavior
Messages that fail due to pre-send errors are automatically retried up to 3 times. After 3 failed attempts, the message is marked as Failed.
Pre-send errors are failures that occur before the message reaches the delivery provider. Examples include:
- The destination number is geo-blocked by your Twilio account configuration (for example, sending to a country your Messaging Service does not permit).
- The destination number is malformed or fails E.164 validation at submission.
- The message could not be handed to Twilio or SendGrid on the first attempt, for example because of a temporary connection problem or throttling.
This automatic retry is different from manual retry (which you trigger from the run view for post-send failures).
Next Steps
- Monitoring and Messages. How to track and manage messages.
- Campaign Runs. The run lifecycle in detail.
- Starting a Run. What happens during a run.