Recipe
Win-back campaign
Re-engaging users who have stopped opening / using your product. High risk to your sender reputation if done wrong — these are exactly the recipients most likely to mark you as spam.
The 80/20 rule for win-back
80% of users who haven't opened in 90 days will neverre-engage. Sending them more emails just generates spam reports. The 20% you can recover are recoverable with ONE precisely-timed message — usually some combination of:
- A clear product change ("We rebuilt X")
- A real promotion (not "we miss you" — actual value)
- A friction-free unsubscribe path
Define your "inactive" window
By industry:
| Industry | Inactive threshold |
|---|---|
| SaaS tool | 60-90 days no app open + no email open |
| Newsletter | 30-60 days no email open |
| E-commerce | 120-180 days no purchase |
| Marketplace | 30-60 days no listing or order |
Use the contacts API + events stream to identify the cohort:
SELECT c.id, c.email FROM contacts c LEFT JOIN events e ON e.contact_id = c.id AND e.event_type = 'open' AND e.created_at > NOW() - INTERVAL '90 days' WHERE c.tenant_id = $1 AND c.status = 'active' AND e.id IS NULL -- no open in 90 days AND c.last_send_at < NOW() - INTERVAL '30 days' -- and we haven't bothered them recently
The single email
Don't send a series. ONE email. If they don't engage, suppress them and move on.
Subject patterns that work
- "{first_name}, should we keep emailing you?" (engagement check)
- "Quick question about {your_product}" (curiosity)
- "What we rebuilt in {your_product} since you last logged in" (product update)
- "Closing your {your_product} account in 14 days" (only if true)
Subject patterns that DON'T work
- ❌ "We miss you" — sounds clingy
- ❌ "Come back!" — desperate
- ❌ "Big news!" — generic, doesn't respect their attention
- ❌ Any subject with three exclamation marks
Body
- 50 words or fewer. They aren't reading long emails from you
- One CTA — either "here's what changed" or "keep me subscribed"
- Make unsubscribe obvious. Put it BEFORE the CTA. Reduces spam reports
- Plain HTML or even plain text. No banners or images
Cap the volume
If you have 50,000 inactive contacts, do NOT send to all of them at once. Even at a 3% complaint rate (low for win-back), that's 1,500 spam complaints in a day — guaranteed Gmail-bulk-sender-pause.
Recommended pace:
- Day 1: 5% of cohort
- Day 2: another 5%
- Days 3-20: 5% per day
- Stop if complaint rate exceeds 0.1% on any day's slice
SendBolt's warmup gate enforces tier caps automatically. If you try to send 5,000 win-back at once on a tier-3 domain (500/day), the gate will defer the rest.
After the win-back send
For recipients who:
- Opened or clicked → leave them on your list, resume normal sends
- Did nothing after 14 days → auto-suppress them. This is the most important step. The 14-day-no-engagement cohort is pure deliverability damage
- Unsubscribed → respect immediately (SendBolt handles)
- Marked spam → SendBolt auto-suppresses on the complaint feedback loop
Send the auto-suppression as a bulk operation via /dashboard/suppressions → Import CSV. Mark reason as winback_no_engage for the audit log.
Honest take
Most win-back campaigns are net-negative for deliverability. The only time they're worth it is when:
- You have a CONCRETE product change to announce (not vibes)
- You're prepared to mass-suppress non-responders within 14 days
- Your sender reputation can absorb the temporary complaint-rate bump
If you can't check all three boxes, skip the win-back. Just suppress the inactive cohort directly. Your reputation will thank you and your active subscribers will see fewer caps from SendBolt's gate.