The e-commerce playbook. Built in the builder, decided by your order system.
Ten journeys, each drawn below as it runs. The decision comes from your order system or criteria you set; the journey carries it. Aims are targets to agree in the pilot, not results.
Confirm the cash order before the courier is booked.
A cash-on-delivery order not confirmed within your window sends one WhatsApp with Confirm or Cancel; a tap books the courier or releases the stock in your order system, and silence escalates to SMS, then a call with a keypad answer.
- Decides
- your confirmation window and your order system.
- Aim
- fewer parcels sent to a doorstep that will refuse them.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- fewer parcels sent to a doorstep that will refuse them.
- Trigger
- COD order placed, not confirmed
- Events and identifiers
- COD order placed, not confirmed. The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- confirm: your system books the courier · cancel: stock released · outcome to your order system. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- fewer parcels sent to a doorstep that will refuse them. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Recover the checkout that stalled, once.
A session that reaches checkout and ends unpaid starts a consent-checked journey that waits an hour, checks for a purchase first, sends one WhatsApp with a Finish order button, and falls back to one SMS.
- Decides
- a session rule you set, and your cap per shopper.
- Aim
- recovered checkouts, once per shopper.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- recovered checkouts, once per shopper.
- Trigger
- checkout, not paid (session rule)
- Events and identifiers
- checkout, not paid (session rule). Captured by the SDK or web tracker as the session runs, tied to the identified contact. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- None beyond the platform's own records: the contact, its consent, and the delivery record.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- bought? stop. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- recovered checkouts, once per shopper. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Ask for prepayment after the second refusal.
A shopper who refused cash on delivery twice in ninety days enters a segment; your order system is set to prepaid-only for them, one message says so with a payment link, and a prepaid order within thirty days restores the option.
- Decides
- your refusal window and your payment policy.
- Aim
- the return-to-origin bill cut without losing the honest shopper.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- the return-to-origin bill cut without losing the honest shopper.
- Trigger
- segment entry: refused COD twice
- Events and identifiers
- segment entry: refused COD twice. Segment membership is recomputed from the contact's own events on the window you set; the identifier is the contact record. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- prepaid-only flag (your order system) · yes: restore cash on delivery. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- no: stays prepaid. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- the return-to-origin bill cut without losing the honest shopper. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Offer the reorder the week the pack runs out.
A thirty-day pack delivered starts a wait until the run-out date your order holds; your system confirms stock and that they have not reordered, then one WhatsApp asks Reorder or Not now, and a tap places the order.
- Decides
- the run-out date your order holds and your stock.
- Aim
- repeat orders before the shopper searches elsewhere.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- repeat orders before the shopper searches elsewhere.
- Trigger
- thirty-day pack delivered
- Events and identifiers
- thirty-day pack delivered. The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- in stock? reordered? (your system) · your system places the order. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- no tap: silence. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- repeat orders before the shopper searches elsewhere. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Sell the bundle after the delivery, not with the ad.
Ten days after running shoes are delivered, your system confirms the bundle is in stock and not already bought, and one WhatsApp offers it with a tap that creates the order.
- Decides
- your product pairs and your stock.
- Aim
- a higher order value from shoppers who already trust the delivery.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- a higher order value from shoppers who already trust the delivery.
- Trigger
- running shoes delivered
- Events and identifiers
- running shoes delivered. The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- bundle in stock? bought? (your system) · your system creates the order. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- no tap: the journey ends. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- a higher order value from shoppers who already trust the delivery. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Open the category they browse and never buy.
A shopper who browses a category every week and has never ordered from it gets one Story on it, on your domain or in the app, and one offer only if they read it to the end.
- Decides
- your segment definition.
- Aim
- a second category per customer.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- a second category per customer.
- Trigger
- segment entry: browsed weekly, never bought
- Events and identifiers
- segment entry: browsed weekly, never bought. Segment membership is recomputed from the contact's own events on the window you set; the identifier is the contact record. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- None beyond the platform's own records: the contact, its consent, and the delivery record.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- not read: stop. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- a second category per customer. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Turn the third monthly order into a subscription.
A third order of the same item in ninety days asks your system whether a subscription is already in place, then sends one WhatsApp with Subscribe monthly or Not now; a tap creates the subscription in your system.
- Decides
- your subscription rules.
- Aim
- predictable repeat revenue without a monthly reminder.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- predictable repeat revenue without a monthly reminder.
- Trigger
- third order of the same item in 90 days
- Events and identifiers
- third order of the same item in 90 days. The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- already subscribed? (your system) · your system creates the subscription. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- no tap: silence. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- predictable repeat revenue without a monthly reminder. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Turn the return into an exchange.
A return started for size asks your system whether the next size is in stock, then offers Exchange or Refund on WhatsApp; a tap books the exchange pickup and delivery, or processes the refund.
- Decides
- your stock and your returns policy.
- Aim
- returns kept as sales.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- returns kept as sales.
- Trigger
- return started, reason: size
- Events and identifiers
- return started, reason: size. The trigger arrives from your system by API with your customer identifier and the fields named in the trigger. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- next size in stock? (your system) · exchange: your system books it · refund: your system processes it. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Per-channel consent on the contact record is checked before any send.
- Stops when
- The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- returns kept as sales. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Nudge the product viewed three times, once the stock is checked.
A session rule for the same product viewed three times with nothing added to the cart checks consent and stock, checks they have not added it since, and sends one WhatsApp with a link back to the product. No second nudge.
- Decides
- a session rule you set and your stock.
- Aim
- browse to buy, without a coupon.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- browse to buy, without a coupon.
- Trigger
- session rule: viewed 3 times, no add to cart
- Events and identifiers
- session rule: viewed 3 times, no add to cart. Captured by the SDK or web tracker as the session runs, tied to the identified contact. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- in stock in their size? (your system). Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- no tap: silence · added since? stop. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- browse to buy, without a coupon. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Reach the customer who stopped ordering, before they are Lost.
Two orders and none in sixty days moves the shopper to At Risk on your RFM windows; one message from the store, not a discount, goes on the channel they answer; a reply reaches your support desk, and silence waits and checks again.
- Decides
- your RFM windows and your win-back rule.
- Aim
- the third order that did not come, caught before the customer is gone.
Drawn as it would run in the builder. Thresholds, windows and channel order are the ones you set; the decision at each API step comes from your system.
- Intended outcome
- the third order that did not come, caught before the customer is gone.
- Trigger
- RFM At Risk: two orders, none in 60 days
- Events and identifiers
- RFM At Risk: two orders, none in 60 days · RFM Lost: your win-back rule. Segment membership is recomputed from the contact's own events on the window you set; the identifier is the contact record. Example inputs; map them to your own event names and identifiers at setup. Every event carries your customer identifier.
- Your systems in the loop
- yes: to your support desk. Your system validates and executes each of these; the journey sends the request and branches on the answer.
- Consent
- Checked inside the journey at the step shown, and per channel before any send.
- Stops when
- ordered since? stop. The customer completes the step the journey waits for, the deadline on a wait passes, or the branch drawn for silence ends.
- If a channel fails or nobody answers
- A channel that reports failure advances the fallback order on that carrier signal; silence takes the path drawn for it, with the deadline you set. Delivery callbacks that arrive late update the record when they arrive. An API step that answers no, or fails, takes the branch drawn for it; the platform does not act on your system's behalf beyond that request.
- Success metric
- the third order that did not come, caught before the customer is gone. Population: contacts who entered the journey in the window. Compared with the baseline window agreed before the pilot, on the conversion events you define. A before-and-after difference is a comparison, not proof of cause.
Where a step says your system decides, the journey calls your system and branches on its answer. xNotify carries the journey; it does not become the model.