Signal
No order for 52 days
Tomas usually orders every 24 days. Today he passes twice his expected gap. The last thing he did was view the Trail Runner in size 43, which was out of stock.
The engine
One profile. One decision at a time.
Every module writes to the same customer record, and the retention engine decides what happens next.
Recover
Turn saved items and sold-out stock into orders.
Retain
Keep customers with subscriptions, flows, segments and proof.
Built on Shopify's native primitives. No theme hacks, no ScriptTags.
By outcome
Same engine, same price. Each solution shows the loop pointed at one outcome.
Loyalty & referrals
Subscriptions & pre-order
Dated, sourced comparisons. Free migration from any of these during private beta.
Solution · Winback
Ayra runs Shopify customer winback from the customer's own rhythm, not a fixed day-30 timer. When a customer is overdue against their usual gap between orders, the engine opens a winback opportunity, checks what they last wanted, picks one action and records the reason. A customer who already came back on their own is left alone.
Private beta. Free migration from the apps Ayra replaces. Pricing
Winback
| Customer | Usual gap | Since | State |
|---|---|---|---|
| Tomas | 24d | 52d | Lapsed |
| Aisha | 90d | 61d | On track |
| Ben | 30d | 47d | Lapsed |
| Yuki | 365d | 340d | Due soon |
Next best action
01 The merchant problem
A fixed timer treats a weekly buyer and a yearly buyer the same. It fires at customers who were already coming back, and it fires too late for the ones who left.
Someone who orders every three weeks is lapsed at day 40. Someone who orders every quarter is not lapsed at day 60. A store-wide timer gets both wrong.
Loyalty sends 'we miss you', the email tool sends 15% off, the subscription app sends 'reactivate'. Same week, same customer, no one in charge.
A customer who left after a late delivery gets a discount. One who left because their size sold out hears nothing when it restocks.
Every app claims the returning order, so winback looks like it works three times over.
What to measure
No benchmarks. Ayra compares your store to itself, by cohort and segment.
02 How Ayra solves it
An expected reorder date is computed per customer from their order history. The winback opportunity opens when they pass a multiple of it, not on a store-wide day 30.
Saved wishlist items and restocked variants first, store credit from the Smart Wallet second, a discount last and only once. Incentive Guard stops a second discount on top of the first.
Journey Guard holds winback while a support ticket or refund is open, and for customers who have hit their frequency cap. Every hold is logged with its reason.
A subscriber who skipped twice is routed to Save Engine with a pause or a swap, not into the winback flow.
The returning order is attributed to the winback action that triggered it, so you can see whether winback pays for itself.
03 The workflow
Tomas, 6 orders · lapsed. Signal to outcome, one decision, every reason recorded.
Tomas
6 orders · lapsed
Signal
Tomas usually orders every 24 days. Today he passes twice his expected gap. The last thing he did was view the Trail Runner in size 43, which was out of stock.
Customer
Gold tier, $612 lifetime value, no credit, no open tickets, SMS preferred. Last order delivered on time. His size restocked yesterday.
Opportunity
Evidence: lapsed at twice his gap, and the variant he wanted is back in stock. Priority is raised because the restock answers the reason he stopped.
Action
The next best action is the back-in-stock alert for size 43, by SMS. The 15% winback discount in the flow is held by Incentive Guard as a second step, only if he does not order within five days.
Outcome
He orders the same day. The opportunity closes, the discount step is cancelled, and the order is credited to Winback through Back in Stock.
04 Use cases
Ayra decides
Winback is held by Trust Recovery until the refund is resolved, then released a few days later. The timeline shows the hold.
Ayra decides
The order signal closes the opportunity. Nothing is sent, and the order is not counted as a winback.
Ayra decides
Their expected gap is a year. They are not lapsed in March, and they get a single reminder ahead of their usual window.
The modules behind it
All featuresEmail, SMS and WhatsApp journeys that respect the customer's timeline.
Restock alerts prioritised by who's actually likely to buy.
Points, store credit and VIP tiers that know who the customer is.
Subscriptions on Shopify's own contracts, with retention built in.
Switching?
Dated, sourced comparisons against the apps Ayra replaces. Migration is free during private beta.
05 FAQ
From their own gap between orders, not a store-wide timer. A customer is lapsed when they pass a multiple of their usual gap, and that multiple is a rule you can read and edit.
No. The order is: what they wanted (a restock, a wishlisted item, a price drop), then store credit they already have, then a discount, once. Incentive Guard prevents stacking.
Trust Recovery holds outbound retention while a ticket or refund is open, and releases it a set number of days after resolution.
Yes. Ayra exposes its lapse and winback signals as Shopify Flow triggers and its actions as Flow actions. Integrations for external email tools follow after private beta.
Once. The returning order is credited to the action that triggered it. A customer who ordered before the winback action went out is not counted.
06 Related solutions
Read churn as signals and answer with a save, not a discount.
Turn deliveries, wishlists and balances into second and tenth orders.
One loop that decides per customer instead of a stack of triggers.
Every solution runs the same loop. How it works
Private beta
In private beta, Ayra computes expected reorder dates from your order history and shows you the winback list before anything is sent.