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:

IndustryInactive threshold
SaaS tool60-90 days no app open + no email open
Newsletter30-60 days no email open
E-commerce120-180 days no purchase
Marketplace30-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:

  1. You have a CONCRETE product change to announce (not vibes)
  2. You're prepared to mass-suppress non-responders within 14 days
  3. 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.