How a lapsing regular gets nudged
Maria used to come in three times a week. It’s been five weeks since her last visit. Maybe she’s on holiday, maybe she’s found another cafe, maybe life just got busy. A weekly sweep notices regulars like Maria and puts them on a short list. The question is what to do about each one — and the honest answer is “it depends.” This post walks through the three things the shop can do about a lapsing regular — nudge, bonus, rest — and how the member record, the email log, and the audit trail all stay in sync.
Key takeaways
- A weekly sweep finds members whose last visit is older than the lapsing window in the rules doc.
- Three actions per lapsing member: nudge (a gentle email), bonus (a points top-up), rest (stop the emails).
- Each action updates the member record and writes an audit row.
- Nudges are bounded — a member only gets so many before they’re rested automatically.
- Every email respects quiet hours and the unsubscribe link.
Three actions on a lapsing regular
Finding the lapsing regulars
Once a week, an EventBridge Scheduler rule fires a small sweep Lambda. It reads the member store and the rules doc, where the owner has set a lapsing window — say 60 days. For each member, it compares the last-seen date against that window. A member who’s past it, and who was a genuine regular (more than a handful of visits, so a one-time tourist doesn’t clutter the list), goes onto the lapsing list. The list is the input for everything below.
The sweep itself just builds the list and stamps each member as lapsing; it doesn’t email anyone on its own. What happens next is a choice — either the owner reviews the list and picks an action per member, or the rules doc says “auto-nudge once, then wait,” and the sweep applies the gentle default. Either way, the three actions are the same.
Action 1: nudge (the gentle reminder)
The most common action. Nudge sends a warm, short come-back email from the voice template: “We’ve missed you — you’ve still got 108 points waiting, that’s a free coffee and then some.” It goes out through SES, respects the quiet-hours setting (no marketing email late at night), and always includes the unsubscribe link. The member record is stamped with the nudge date.
Nudges are bounded. The rules doc has a max_nudges setting (default two). After that many nudges with no visit, the member is rested automatically — the shop stops emailing someone who’s clearly not coming back, which is both kinder and keeps the shop’s email reputation clean. A loyalty program that keeps pestering people who’ve moved on isn’t loyalty; it’s spam.
Action 2: bonus (the win-back gift)
For a regular worth fighting for — someone whose lifetime spend says they were a real fixture — a gentle reminder might not be enough. Bonus adds a one-time points top-up (default 50) and sends the matching email: “Here’s 50 points on us — come grab a coffee.” The top-up goes onto the balance with the same safe one-at-a-time write the earn engine uses, and it’s written to the points ledger as a reason: win-back-bonus row, so the gift is recorded just like an earned point.
The bonus is a deliberate cost, so it’s the action the owner usually takes by hand rather than letting the sweep do it automatically. The audit row names who granted it, so at the end of the month the owner can see exactly how many points were given away as win-back gifts and whether those customers came back.
Action 3: rest (the “leave them be”)
Sometimes the right move is to stop. The member moved out of town. They asked to be left alone. They’ve been nudged the maximum number of times and didn’t bite. Rest marks the member inactive and stops the lapsing emails entirely. They keep every point they earned — resting touches the emails, not the balance. If they ever walk back in and make a purchase, the next sale finds their record, un-rests them, and they’re a regular again with their points intact.
A rested member also drops off future lapsing lists, so the owner’s weekly review stays focused on people who might actually come back. The list never fills up with the same long-gone names week after week.
Every action is logged, every action is reversible
The loy-audit table records every nudge, bonus, and rest with who took the action, the timestamp, and a snapshot of the member before and after. If a bonus goes to the wrong person, or someone is rested by mistake, an admin can reverse it — add the points back, or flip the member active again — and the undo is itself an audit row, so the trail stays clean.
This kind of reversibility matters because win-back is the one place the program spends real money on a guess. Being able to look back and say “we gave 1,200 points in win-back bonuses last quarter and 40% of those customers returned” is what turns a nice gesture into a decision you can actually judge.
Next post: the cost breakdown. The whole program above runs in coffee-money territory at small-shop volume; Part 6 explains exactly where the dollars go.
All posts