Per-customer next-best-action. Routed automatically.
Lifecycle-stage classifier + per-customer channel preference + send-time optimisation + Bayesian discount learner. Wired into the comms-pipeline so the runtime dispatches the right message, on the right channel, at the right hour, for the right person.
Most recommendation systems pick a product.
The harder problem is picking the channel, the timing, and the discount tier per customer.
Email-first by default.
Every cart-abandon goes to email. Half your customers prefer WhatsApp; a third never open email. The default is leaving money on the table.
9am Tuesday for everyone.
The marketing calendar picks send-time once. Your customers' habits are individual; the marketing time is collective.
15% off because it always was.
Some customers respond to 5%, some require 25%. Flat-discount policy over-discounts the easy converts and under-discounts the hard ones.
Profile. Score. Route. Attribute.
Every customer event runs through 4 models in parallel, then dispatches to the highest-confidence channel.
Lifecycle-stage classifier
5 stages: new · active · at-risk · lapsed · won-back. Computed from order recency + frequency + monetary value. Updated on every order/refund event.
4 models, parallel
Per-customer Bayesian channel preference. Send-time per channel from historical engagement. Bayesian discount learner posterior. NBA scoring per content type.
Dispatch via comms-pipeline
Email, WhatsApp, SMS, paid social audience upload, ad bid up-weight — runtime routes to the highest-confidence channel. Per-shop throttle prevents spam.
A/B variant + close loop
When recommendation drives recovery, attribution-engine closes the variant loop. The model's posterior updates next retrain cycle. The feedback never stops.
Five sources. Four models. Five channels.
The exact runtime topology. Hover any node to inspect.
Three concrete moves customers made.
Per-customer channel + send-time
A DTC apparel brand replaced a single-channel email recovery with channel-preference + send-time inferred per customer. Cart recovery rate moved from 18% to 24% — a 34% relative lift, driven entirely by routing.
Bayesian discount learner reduced over-spend
Customer was applying a flat 15% recovery discount across all carts. The Bayesian discount learner posterior surfaced that some segments respond at 5% just as well. Mean discount-given per recovered cart dropped 18% with no recovery-rate loss.
Cohort-aware NBA wired to comms-pipeline
Lifecycle-stage classifier (new · active · at-risk · lapsed · won-back) drives the action set. NBA model picks the message + channel + time. The runtime dispatches via email, WhatsApp, SMS, paid social audience upload, or ad bid up-weighting.
What's available where.
| Capability | Starter | Pro | Agency | Enterprise |
|---|---|---|---|---|
| Lifecycle-stage classifier | ✓ | ✓ | ✓ | ✓ |
| Per-customer channel preference | — | ✓ | ✓ | ✓ |
| Send-time optimisation | — | — | ✓ | ✓ |
| Bayesian discount learner | — | — | ✓ | ✓ |
| Cart-recovery NBA + dispatch | — | ✓ | ✓ | ✓ |
| A/B-test attribution closure | — | — | ✓ | ✓ |
| Ad-audience auto-upload | — | — | ✓ | ✓ |
| Model retrain cadence | — | wk | wk | daily |
See per-customer routing on your data.
We connect to your Shopify + comms tools, run the channel + send-time models on a sample of 1,000 customers, and walk through 10 specific routing decisions live.