SMS (SMPP) Campaign Delivery Status Notifications

Outbound campaign SMS now get a delivery status (Sent, Delivered, Failed, or Bounced) so campaign operators know whether a whether a message was accepted, reported as delivered, rejected at submit time, or returned as undeliverable.

What this feature does

When a campaign sends an SMS through the SMPP connector, the system tracks what happened after the send attempt and records one of the following outcomes: the SMSC accepted the message, a later delivery receipt said it reached the handset, the submit failed before acceptance, or a later receipt/error showed the number was undeliverable.

Statuses are posted as delivery notifications for campaign reporting. They are scoped to the campaign customer MSISDN (the To address of that SMS).

Multipart SMS is treated as one logical campaign message: Sent is recorded once after all parts are accepted; Delivered only after all parts report delivered; the first terminal part failure is the outcome for the whole message.

Delivery statuses

Status

What it means

Sent

The SMSC accepted the message for routing (submit_sm success). This does not mean the handset received the SMS.

Delivered

The SMSC later reported a final delivery receipt with state DELIVRD. This is the network’s delivery result; it does not mean the person read the SMS.

Failed

The message could not be submitted, or a later receipt reported a terminal failure (for example UNDELIV, REJECTD, EXPIRED) that is not configured as a bounce.

Bounced

A terminal SMSC error that is on the configured bounce list (for example a permanent invalid-number code such as 901 when that code is set on the connector).

Not tracked for this channel: Read/opened. Standard SMS over SMPP has no read receipt.

Intermediate receipts such as ACCEPTD or ENROUTE are acknowledged and are not shown as Sent, Delivered, Failed, or Bounced.

Inbound customer SMS (MO) still works as before and can be used for reply/engagement reporting. Those inbound messages are not re-labeled as delivery statuses

Where the campaign operators see this

These statuses appear in the Non Voice Campaign Summary Gold report (columns such as Sent, Delivered, Failed and Bounced for the SMS / SMPP channel).

This work is for campaign reporting only. What agents see in Agent Desk stays the same. There is no new Sent / Failed / Bounced categorization in Agent Desk conversations.

What this means for campaign operators

  • Visibility into which campaign SMS were accepted by the SMSC, delivered, failed, or bounced

  • Regular inbound SMS still work as before in Agent Desk

  • This tracking is for outbound campaign sends (and the DLR/reply signals used for reporting)

What's not included in this release

  • No Read / open tracking.

  • No automatic retry of failed or bounced sends from this feature.

  • No new alerting on failures beyond recording the status for reporting.

  • Bounce detection only uses SMSC error codes listed in SMPP_BOUNCE_ERROR_CODES. Codes that are not listed are Failed, even if they look like a bounce.

  • Delivery-receipt matching uses an in-memory store on the connector (lost on restart; not shared across multiple replicas). Late DLRs after a restart may not update the campaign row.

FAQ

Does Sent mean the customer received the SMS?
No. Sent means the SMSC accepted the submit. Delivered is recorded only when a DELIVRD receipt arrives.

Does a Bounced status affect the customer’s subscription?
No. Bounced is a reporting outcome only in this release. It does not automatically opt the customer out or change subscription/consent.

Why did a known invalid number show Failed instead of Bounced?
Bounced is used only when that SMSC error code is configured on the connector (for example SMPP_BOUNCE_ERROR_CODES=901). Ask operations to add the provider’s permanent-failure codes if they should appear as Bounced.

Do we get Read for SMS?
No. SMPP does not provide a recipient read event. Replies from the customer are inbound messages, not Read.