Skip to main content
Understanding the message lifecycle helps you troubleshoot issues and optimize performance.

Lifecycle Stages

Created → Queued → Sent → Delivered/Failed

1. Created

A message is created when:
  • A campaign triggers
  • A journey step executes
  • An API call is made
At this stage:
  • Contact is selected from audience
  • Creative is chosen (manual or ML)
  • Placeholders are resolved
  • Short links are generated

2. Queued

Message enters the queue:
  • QueuedTextMessage record created
  • Scheduled for immediate or future send
  • Assigned to sending list
Status: queued

3. Sent

Message executor processes the queue:
  • Picks up messages due for sending
  • Submits to SMS provider (Infobip, etc.)
  • Records submission
Status: sent

4. Delivered/Failed

Provider confirms delivery:
  • Webhook received with status
  • MessageSent record updated
  • Metrics calculated
Status: delivered or failed

Detailed Flow

1

Campaign Trigger

Schedule reaches send time
2

Audience Evaluation

Query matching contacts from selected audiences
3

Filtering

Apply frequency caps, exclude unsubscribed
4

Creative Selection

Choose variant (blast split or ML selection)
5

Message Construction

Resolve placeholders, generate short links
6

Queue Insertion

Bulk insert into message queue
7

Executor Pickup

Worker pulls messages from queue
8

Provider Submission

Send via Infobip/Twilio/CM API
9

Delivery Confirmation

Provider sends webhook with status
10

Status Update

Record final status, update metrics

Message Statuses

StatusMeaning
queuedWaiting to be sent
sentSubmitted to provider
deliveredConfirmed delivery to handset
failedDelivery failed
expiredMessage expired before delivery
rejectedCarrier rejected message

Failure Reasons

CodeMeaning
invalid_phonePhone number is invalid
unsubscribedContact opted out
carrier_rejectedCarrier blocked message
spam_detectedFlagged as spam
timeoutProvider timeout
unknownUnknown error

Timing

Typical Flow

StageDuration
Queue → SentSeconds to minutes
Sent → DeliveredSeconds
Failed detectionImmediate to minutes

Delays

Messages may be delayed by:
  • Large queue volume
  • Provider rate limits
  • Network issues
  • Carrier congestion
When a message has tracked links:
  1. Original URLs replaced with short URLs
  2. MessageShortLink records created
  3. On click, redirect service logs event
  4. User redirected to destination

Monitoring

Dashboard

View message status in:
  • Schedule detail view
  • Contact lookup
  • Reports

Discord Alerts

Get notified of:
  • Delivery failures
  • High failure rates
  • Spam complaints

Troubleshooting

Check:
  • Is the message executor running?
  • Are there provider issues?
  • Is the queue backlogged?
Common causes:
  • Invalid phone numbers
  • Carrier blocks
  • Spam filtering
  • Rate limiting
Possible reasons:
  • Provider congestion
  • Rate limits hit
  • Large campaign ahead in queue

Next Steps