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 ways this earns its place.
Capability, not customer outcomes - we have none to report yet.
Per-customer channel + send-time
Recovery does not have to be email-only. The engine infers a channel preference and a send window per customer, then routes across email, WhatsApp, SMS and ads. Whether that beats your current single-channel flow is an A/B question on your own list - which is how we would rather you tested it than on someone else's number.
Discounting to the level that converts
A flat recovery discount over-pays every customer who would have converted for less. The Bayesian learner builds a per-segment posterior on the discount actually needed and proposes a floor per segment. How much margin that returns depends on how blunt your current flat rate is.
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.