Skip to main content

Delivery, replies and opt-out

Delivery and retries​

A message moves through these statuses:

StatusMeaning
queuedHanded to Twilio
sentTwilio handed it to the carrier or WhatsApp
deliveredReached the phone
readRead (WhatsApp); may arrive later and update the read time

The first final status of a message decides what happens to the lead:

Final statusLead
delivered, readdone
expired: no receipt 48 h after sendingdone (treated as sent)
failed, undeliveredRetried after messageRetry.delayMin (60 min) inside the sending window; after messageRetry.max failures (1 retry by default) the lead is excluded
Unreachable, or not on WhatsAppexcluded, reason invalid_number
canceledready, attempt not counted

The campaign's live view shows the funnel (queued, sent, delivered, read, replied, plus failed and opted out) for a chosen time window and for all time, the number of batches still tracked, and the time of the last batch. The leads table shows each lead's latest message status.

A reply becomes a Flex chat​

Replies reach Flex through the sender's normal inbound routing, not through the dialer:

  • SMS numbers need a Conversations address configuration (type sms, autocreate, pointing at a Studio flow with "Send to Flex").
  • WhatsApp senders need the same address configuration (type whatsapp).
  • The WhatsApp sandbox cannot have an address configuration, because its number is shared by all accounts. Its "When a message comes in" webhook has to go to a bridge function that creates the conversation and attaches the same Studio flow.

The agent sees a campaign badge on the chat: which campaign the customer received, what it said and when (the latest campaign message to that address in the last 30 days).

Two-way SMS

For the customer to be able to reply, the sender must be local to the recipient's country. In testing, a US number sending to a European mobile was rewritten by the carrier to an alphanumeric sender, which cannot be replied to.

Opt-out​

The Bulk API does not handle opt-outs; the dialer does. When a reply consists of a keyword alone (case, punctuation, emoji and Hebrew vowel points are ignored), the number goes to the global "SMS opt-out" or "WhatsApp opt-out" list (created on first use) and the lead is excluded. An SMS opt-out stops SMS from every campaign, but not calls.

Default keywords: STOP, UNSUBSCRIBE, הסר, הסרה, ביטול (the last three are the Hebrew "remove", "removal" and "cancel"). Each campaign can set its own list (optOutKeywords).

Twilio's own carrier-level STOP handling on long codes may additionally block the number.