Win-back campaigner
A small system that works out who has actually lapsed rather than who is merely between purchases, checks each one’s history before contacting them at all, sends one message that leads with the reason rather than the discount, and counts the result in a way that survives contact with the margin. Seven posts on the same system, one diagram at a time, with a cost breakdown and an engineering reference at the end.
- 01
A win-back campaigner on AWS for a few dollars a month
The whole system on one page — define lapsed, check the history, send one message — and the check that removes about a third of the list.
- 02
How lapsed gets defined
Why a single lapse threshold fails, how a per-customer per-product interval is derived, seasonal buying, and what to do about customers with too little history.
- 03
How the suppression check works
The five suppression categories, why the check runs before segmentation rather than after, the bereavement and business-closure cases, and how a suppression is recorded.
- 04
How the offer is decided
The four rungs of the offer ladder, why a reminder converts a surprising share, what a discount actually costs, and why every reply goes to a person.
- 05
How a win-back is honestly counted
Why a raw recovery rate overstates, how to separate recovered revenue from margin given away, the attribution window, and what a good result looks like.
- 06
What the win-back campaigner costs
About $2 a month. One Bedrock read per lapsed customer is the only line that grows; the queue, the table, the mail and the storage are rounding errors. Plus the three ways the bill could surprise you.
- 07
Engineering reference: the win-back campaigner architecture
Same system, drawn purely for engineers. Service names, region, Lambda inventory, IAM scopes, the schemas and the exact model id.
Frequently asked questions
- What is a win-back campaigner?
- A small serverless system that identifies customers who have genuinely stopped buying, excludes the ones who should not be contacted, and sends a single message with an offer chosen for the situation rather than a blanket discount.
- How is lapsed defined?
- Per product, from that customer’s own buying interval — not a global ninety days. Somebody who buys once a year is not lapsed at four months, and somebody who bought weekly is lapsed at six.
- Who does it refuse to contact?
- Anyone with an unresolved complaint, a recent refund, a closed business, a bereavement marker, or a withdrawal on record. The post on this is the important one.
- Does it lead with a discount?
- No. A discount is the last option, and the measurement post explains why: most of it goes to people who were coming back anyway.
- What does it cost to run?
- A couple of dollars a month. See part six.