Programmable Messaging API  ·  View 05 of 22  ·  People and journeys

Journey — First Send, First Complaint

The developer's trough is a customer complaint they cannot answer.

Editable source SVG draw.io All views
App developer first integration, no telecom background Goal — Send a message, then account for one that did not arrive Trigger — A product requirement to send order confirmations Done when — Shipped, and able to answer support without a ticket to us 1 · Read the docs 2 · First send 3 · It says accepted 4 · Customer says nothing came ◆ moment of truth 5 · Find out why ◆ moment of truth 6 · Ship What they do Picks a sender identity POSTs one message Logs the message id Searches by their own id Reads the attempt trail Adds the callback What the platform does Dry-run shows route and price Rejects unroutable at submit Accepted is a promise, not a delivery Lookup by client reference Route, attempts, receipts, reason Signed callback with DLQ How it feels Confident Uneasy Blaming us Where it hurts Sender rules differ by country Accepted reads as delivered No answer sounds like no system Carrier reason codes are jargon What the architecture owes it Rules are data, not support lore Fast, specific rejections Status vocabulary says accepted Unknown is a named answer Reason mapped to plain words Pull reconstructs what push missed Journey — Developer Sends One Message, Then Has To Explain One The trough is a customer complaint the developer cannot answer; everything in act 5 exists to move it. v 1.0 · owner Integration Platform Architecture

Decisions

  • Status is queryable by the tenant's own client reference, not only by the platform's message id, because that is the only identifier the tenant's support desk has.
  • The word "accepted" is used deliberately and never "sent": the vocabulary is part of the product, not documentation.
  • Carrier reason codes are mapped into plain language with the raw code retained, so the developer can act and the SRE can diagnose.

Assumptions

  • A first integration takes under an hour; a dry-run that shows route, segment count and price removes most of the guesswork.
  • Most tenants will miss some callbacks, so pull must be able to reconstruct final state entirely.

Risks

  • Self-service diagnosis is the difference between a support organisation and a platform; if the attempt trail is unreadable, every unknown becomes a ticket.