SMS Sent, Delivered or Read? What Each Message Status Proves

A customer says they missed an update. Your messaging dashboard says “delivered.” Both can be true. The status describes what the messaging system…

Violet message envelope with a delivery check inside an outlined phone, separated by a dotted gap from an eye in a speech bubble representing a possible read receipt.

A customer says they missed an update. Your messaging dashboard says “delivered.” Both can be true. The status describes what the messaging system observed; it does not establish that the customer noticed, understood or acted on the message. That distinction matters when deciding whether to wait, investigate or follow up.

Ordinary SMS can report delivery, but it does not provide the read receipt available in some RCS and app conversations. Even where a “read” event exists, it records a channel event, not attention or agreement. Interpret each status alongside the channel, the message record and any customer response.

Follow the message from queue to outcome

Status names vary by provider. A message may be accepted, queued, sent and then reported as delivered or undelivered; it may fail before sending. A read event is possible only on a supporting channel. Twilio’s outbound status guide documents these transitions and notes that RCS and WhatsApp can report reads when the recipient has read receipts enabled.

  1. Queued: the provider has a message awaiting its next sending step. Delivery is not established. Some systems show an earlier “accepted” or “scheduled” state, so check the provider’s definitions.
  2. Sent: the message has passed the provider’s sending stage. This is progress, not a receipt from the destination. An API request that creates a queued message should not be logged as customer delivery.
  3. Delivered: the channel has reported delivery under its own rules. For SMS, this is delivery evidence from the messaging route, often involving a carrier receipt. It says nothing about who saw the screen.
  4. Failed or undelivered: the message did not complete a sending or delivery stage. Inspect the provider’s error information before correcting the destination, waiting or retrying.
  5. Read: a supporting channel reported a read event. Its absence on ordinary SMS is expected. On a receipt-capable channel, absence alone does not show that the customer ignored the message.

A message can remain sent while a delivery report is pending. Callbacks can also arrive out of order: Twilio’s status-tracking guide warns that their arrival order is not guaranteed. Preserve event identifiers and timestamps instead of assuming the most recent webhook received describes the most recent event.

What each event can establish

  • Accepted or queued: the provider has a message record. Sending, delivery and any customer action remain unconfirmed.
  • Sent: the provider reports that the sending stage passed. Destination receipt remains unconfirmed.
  • SMS delivered: a delivery result was reported for that message and destination. It does not establish that the intended person had the device or saw the text.
  • Failed or undelivered: the attempt did not complete successfully. The cause and prospects for another attempt require the error details.
  • RCS or app read receipt: the channel reported a read event, subject to its settings. Understanding, consent and task completion remain unconfirmed.
  • Customer reply or completed action: a separate response or action can be checked against the request. Record its exact scope: “I’ll check” is not confirmation that a change is accepted.

For a consequential update, decide what evidence the organisation needs from the customer. A delivery receipt cannot stand in for acceptance of a changed appointment, a reply to a question or completion of a task. Likewise, a click on a message link may leave the underlying task unfinished.

Record the status in terms that match the evidence. “SMS delivered to the recorded number” describes the delivery result. “Customer accepted the revised time” requires a separate reply or other confirmation that actually says so. If several updates concern the same visit, identify which message each status belongs to; a delivery result for the first notice cannot establish receipt of a later correction. This distinction makes a support history easier to interpret when a customer calls after plans have changed.

SMS, RCS and app receipts differ

Ordinary SMS has no usual read event in its status trail. A delivery report helps locate a failed route, but cannot tell a support agent that the customer opened the text. It is network evidence, not an observation of the person.

RCS can add read receipts when the conversation uses RCS and the relevant features are active. Google Messages explains its receipt features and says everyone in a Google Messages conversation must have RCS chats turned on to use them. Check the message record or conversation indicator rather than inferring the channel from the phone’s texting app. If a conversation falls back to SMS, an RCS read receipt is no longer an appropriate expectation.

App-based chat has its own indicators and privacy settings. Signal distinguishes a message sent to its service from one delivered to the recipient’s device, and shows a read status only when both participants have read receipts enabled. Consult the relevant app’s documentation before interpreting its symbols.

A read receipt still has a narrow meaning. Someone may open a conversation while distracted or leave the requested action for later. A missing receipt may reflect settings or channel capability. In a support record, “read event reported at 09:07” and “no read event available” are more accurate than claims about what a person definitely saw.

Record a missed update without guessing

Suppose a customer reports at 09:30 that they missed a change to a service visit. This illustrative sequence shows how to record observable events and the next step; it is not an actual incident.

  1. 09:00, SMS queued: record the internal message ID and check the intended customer record and approved destination. Do not mark the update delivered.
  2. 09:01, sent callback: retain the event while awaiting a delivery result. Avoid an immediate duplicate message.
  3. 09:03, delivered callback: record its timestamp. Leave “read” and “customer confirmed” unset.
  4. 09:30, support conversation: the customer says the update was missed. Check the wording, destination and timing with them. Their report is new evidence.
  5. 09:35, customer acknowledgement: record the details they confirmed and any further action required. Close the issue against that outcome.

If the 09:03 event had been “undelivered,” inspect the error details and verify the destination before choosing a retry or agreed alternative. If the result remained “sent,” check whether a delivery report is pending. Repeating the message without checking can confuse the customer, particularly if the service details have changed.

Retain the message ID, channel, destination reference, timestamps and status history so each callback can be matched to the right update. Keep sensitive details in the appropriate support record and limit access to staff handling the case. Distinguish the time an event was reported from the time your system received it; a delayed callback should not overwrite a better account of the sequence.

When a customer disputes a status, check the message body as well as the transport record. The text may have omitted a changed time, referred to an outdated location or asked for a reply without saying how to give one. A technically delivered message with incomplete instructions still needs a clear correction. Note the corrected wording and the customer's actual response separately from the original delivery event.

Choose a follow-up based on the missing evidence

If delivery failed, establish a usable route. If SMS shows delivered but the customer reports missing it, confirm the destination and repeat the essential information through a suitable, agreed channel. If a read-capable channel reports “read” but the required response has not arrived, ask for that response plainly. State the action needed and give the customer a way to correct the record.

For example: “We sent an update about your service visit, but have not confirmed that the new details work for you. Please reply with your preferred option.” This separates sending from confirmation without blaming the customer. For a time-sensitive change, route the unresolved case to a person who can choose the next contact step under the organisation’s normal process.

Apply this topic to the secure messaging checklist →