Order notifications ledger
An order notification is a machine-triggered transactional message — an order confirmation, a shipping update, a delivery alert — fired when your commerce or order-management system emits an event at a fulfillment stage (placed, confirmed, shipped, out for delivery, delivered, plus the exception branches: delayed, failed delivery attempt, refunded, cancelled). The Insights → Order notifications ledger is the first-class reading surface for those flows, separate from campaign send reports. Use it when the question is “how are my order-triggered sends doing — which channel carries them, how fast do they attempt, where do they fail?” — not “how did last week’s promotion perform.”1. What an order-notification event is, and how it enters the ledger
Every entry in the ledger is one event-driven send: your storefront or order-management system emits a webhook at a stage transition, a platform flow or API call turns it into a templated outbound message, and the message row lands in the ledger tagged as machine-triggered transactional traffic. The stage name (order.confirmation, order.shipped, order.out-for-delivery, order.delivered, order.exception) rides on the send so the ledger can group by it.
The ledger is distinct from campaign reports because the traffic class is distinct:
- Campaign sends are one-to-many promotional pushes on your platform’s campaign rails, with quiet hours, frequency caps, and unsubscribe handling.
- Order notifications are one-to-one transactional sends where the customer’s purchase establishes the consent. Because each message references a real order it classifies as transactional, and reply-silence plus per-stage triggers keep it out of the conversational surfaces.
2. The Insights reading — what the dashboard surfaces
The ledger header computes four metrics over the window you pick:- Delivery rate — delivered (plus read, where the channel returns it) over terminal sends, with in-flight rows excluded.
- Time-to-first-attempt — the send-to-first-delivery-signal lag per stage and channel; the number that tells you whether a delay belongs to your sender config or the carrier.
- Channel mix — which channel actually carried each stage’s sends (SMS, WhatsApp, email) against the intended first-choice channel.
- Failure breakdown — rejected, undelivered, and failed rows grouped by rejection code, so you can tell recipient-side hygiene (
undelivered) apart from dispatch/configuration faults (rejected).
3. Filter and export
The ledger page carries the standard Insights date filter (24h, 7d, 30d, 90d, 12m, custom calendar range), and a channel filter that narrows the whole page to SMS, WhatsApp, or email. Filters persist in the URL so a teammate opening your link sees the same range. Two export paths:- CSV — every visible section flattened to one file, using the same Export button pattern as the Analytics console.
- Streaming — the
/api/v1/analytics/messagesfamily with the channel and stage filters applied, so scheduled BI pulls and webhook-driven downstream consumers read the same rows the page renders.
4. Linkage to the commerce spine
Order notifications usually originate from one of two backbones:- The commerce spine (Commerce checkout spine) — the cart and checkout state machine emits a stage transition (
browsing → cart_active → checkout_initiated → awaiting_payment → paid → fulfilled), and the ledger reads the transactional message your flow fired at that transition. The commerce-checkout channel (Conversational commerce checkout) is exactly one of those emitters. - Direct fulfillment hooks — your own order-management system POSTs to
POST /api/v1/messages(or a flow trigger) at each stage, with the stage tagged.
5. Guardrails — what counts as anomalous
Two anomaly classes matter here, and both are tenant-owned rules you configure on the alerting surfaces:- Sudden channel failure spikes — a rejection-code the carrier returns new, or a stage’s delivery rate dropping off its baseline. Wire a rule on the Usage & delivery anomaly alert rules surface; the transport-side tripwires there already watch delivery rate and outbound volume for exactly this.
- Experience KPIs — if a commerce confirmation flow’s failure translates into conversational fallout (a rebound to inbound support), the KPI alerts surface watches the customer-experience and AI-cost metrics that usage alerts do not cover.
6. Comparison to campaign sends
The ledger’s invariant is: machine-triggered transactional flows only, never marketing campaigns. If you send a promotional blast to a list, that volume appears in the cross-channel Insights → Analytics rollup and in campaign reports — the order-notifications ledger still reads zero. Confusion between the two surfaces is the common support ticket; the reading rule is this page isolates one-to-one event-driven commerce sends, and campaign isolation is deliberate. The inverse is also true: a notification you accidentally templated with marketing copy gets reclassified by the carrier/content-moderation layer into promotional traffic, and it stops appearing in the ledger as transactional. Keep the content strictly about the order and the class stays clean.See also
- Insights → Analytics console — the cross-channel volume and funnel rollup
- Commerce checkout spine — the cart/checkout architecture behind commerce-originated sends
- Message status transition rules — the merge contract every message row follows
- Keep one-time codes out of the Inbox — the transactional no-inbox gate
- Usage & delivery anomaly alert rules — transport-side tripwires
- KPI alerts — experience-grade alerting