Nobody quits a loyalty program. There is no cancellation, no goodbye, no signal at all. A member simply has a last visit, and neither of you knows it was the last one. By the time an exported report shows the decline, the members in it have been gone for months, and the win-back email goes to an inbox they stopped reading around the same time.
This is why win-back is usually the weakest motion in loyalty: it depends on noticing an absence, through a channel the absent member has already tuned out. Both halves of that are fixable.
Noticing: inactivity as a trigger, not a report
The first fix is to make absence an event. Instead of quarterly list pulls, define the threshold once: no engagement for 45 days, or 60, or whatever fits your natural visit cycle. A grocery program might act at three weeks; a fashion retailer at three months. The right number is a multiple of your median visit interval, not an industry benchmark.
In Engage, Stell's messaging module, inactivity is one of the built-in automation triggers. When a member crosses the threshold, the win-back message sends itself, to that one member, on the day it becomes true. Every member is caught at the same point in their drift, which is the earliest point, where win-back actually works. It is the same machinery behind every other engagement motion in the program.
Reaching: the channel that survives the drift
The second fix is the channel. A drifting member has usually drifted from everything at once: opens no email, has no app, walks past the store. What they have not done is remove your pass from their wallet. The pass survives because it costs nothing to keep; it does not nag, it takes no storage worth noticing, and deleting it feels like losing the points.
That surviving pass is the win-back asset. A pass notification lands on the lock screen, not in a filtered inbox, and it carries no per-message cost, so recovering one member does not have to be weighed against an SMS budget. The member who is one good reason away from returning can still be handed the reason.
What to send
Win-back messages fail when they sound like the brand missing its revenue. They work when they give the member a concrete stake:
- Lead with what they hold. "You still have 340 points" reminds the member the relationship has a balance, and that walking away has a price. Naming their own numbers is what separates this from a broadcast, and for most programs it is the strongest single line available.
- Expiry is honest urgency. If points or a voucher genuinely lapse, say when. A real deadline respects the member more than an invented one.
- A reason, not a discount reflex. A modest, time-bound offer works; a desperate one teaches members that leaving is how you get deals.
- One message, then patience. If the first win-back does not land, a second sent a week later will not either. Let the frequency cap enforce the patience, and let the pass go back to being quietly present.
Conditions make it surgical
Not every inactive member deserves the same effort. Automation conditions narrow the trigger: gold members gone quiet might warrant a stronger gesture than a member who visited twice; members with an unused voucher might simply be reminded it exists. Layering a points condition on the inactivity trigger turns one blunt campaign into a few precise ones, each written for the situation it addresses.
Retention is a system, not a save
The best win-back program is one that fires rarely, because welcome messages, milestone nudges and a pass that updates itself keep most members from drifting at all. That is everyday retention work, and win-back is what catches whoever it misses. But some always will, and the difference between a program that shrinks and one that compounds is what happens in that window when the member is gone but not yet lost.
With a pass in the wallet and a trigger watching the calendar, that window stops closing silently. Book a demo and set your first inactivity threshold on a real program.





