1
3 Comments

Before fixing your onboarding emails, fix this first

Many SaaS founders have had this experience.

Hours spent writing onboarding emails.

Subject lines optimized.
Clear calls-to-action.
Clean structure.

And yet the results are disappointing.

  • Low open rates.
  • Low engagement.
  • Users disappearing after signup.

The natural assumption is that the copy is the problem.

But that’s often not the real issue.

Recently, during a conversation with an email deliverability specialist, an interesting example came up.

One SaaS company had:

"28,000 contacts - 1.2% open rate - Almost half of their spam complaints coming from that list"

The insight was simple but powerful:

Most founders assume the problem is copy.
In many cases, the real problem is the list itself.

Over time, SaaS products accumulate subscribers who:

  • signed up but never cared
  • forgot they subscribed
  • have subscribed inadvertently

When good emails are sent to the wrong audience, the system starts working against you.

Low engagement → weaker sender reputation → worse inbox placement → even lower engagement.

And the cycle continues.

What surprised me most was this:

If the inactive part of the list is removed and emails are sent only to engaged users, inbox reputation can start improving within just a few sends.

But many founders hesitate to do it.

It feels counterintuitive to delete thousands of contacts, even when those contacts are hurting deliverability.

That conversation changed how I think about onboarding systems.

Instead of focusing only on writing emails, the stack should look something like this:

Layer 1 — Clean, engaged list
Layer 2 — Thoughtful onboarding sequence (Behavior/activation based)
Layer 3 — Automation

Once the list quality problem is addressed, writing the actual onboarding emails becomes much easier.

In fact, that Layer 2 realization is what led me to build a system that helps generate onboarding sequences much faster. Instead of spending hours writing emails from scratch, founders can generate and customize a structured onboarding sequence in about 45 minutes.

(7-email framework + Python automation)

For anyone curious, here is my earlier post :

https://www.indiehackers.com/post/i-spent-6-hours-writing-12-mediocre-onboarding-emails-so-i-built-a-system-that-does-it-in-45-minutes-a17ea39578

And if you're interested in the deliverability side of this problem, the insight above came from Yanna, who runs ReviewMyEmails (https://reviewmyemails.com/) and the Email Almanac.

Her work focuses on the part most founders ignore:

List health and reputation.

Because in email, great writing alone isn’t enough.

A healthy list comes first.

on March 9, 2026
  1. 1

    This matches what we see at Selzy pretty much daily. Copy gets blamed because it's the visible part, but a 1.2% open rate with spam complaints clustered in one segment is almost always a list-health and reputation problem.

    A couple of things I'd add:

    The deliverability math has gotten stricter. With the Gmail/Yahoo bulk-sender rules (and Microsoft enforcing similar ones now), you really want spam complaints under 0.3%, ideally under 0.1%. A list like that 28k example breaches it and drags placement down for your engaged users too, not just the dead weight.

    And on the "scary to delete thousands of contacts" part — you don't have to hard-delete. We usually steer people toward a sunset policy instead: auto-segment anyone with no opens or clicks in ~90 days, send them one last re-engagement campaign in small batches, then suppress (not delete) the non-responders. You keep the few who come back, stop the rest from hurting your reputation, and it's all reversible if you ever want to audit it later.

    Your layer order is exactly right — clean list first, sequence second. Most of the deliverability wins we see come from Layer 1, before anyone corrects the copy.

  2. 1

    Great post — onboarding emails are often a symptom of a deeper retention gap. One area that gets missed even after nailing onboarding: failed payment recovery. If users drop off involuntarily (expired card, insufficient funds), no onboarding email saves them. RecoverKit auto-sends a Day1/3/7 recovery sequence the moment a Stripe payment fails — beta is free, I can set it up with you: tryrecoverkit.com/connect

  3. 1

    For founders who want the onboarding framework + automation mentioned above:
    https://khanfalah.gumroad.com/l/ytsay