My SaaS sends plenty of email. Why does none of it move revenue?
Usually because every email is doing the same job. Most programs I audit are a stack of announcements wearing different subject lines. A lifecycle sequence only works when each message has one job that no other message is doing, and when that job maps to a decision the reader is actually making that week.
The test I apply is blunt. Pick any email in your sequence and ask what the reader can now do that they could not do before it arrived. If the honest answer is "know about a feature", that email is a newsletter, not lifecycle. Newsletters are fine. They just do not move anyone from signup to paid.
This piece walks through what each stage is for, which numbers are worth watching, and the places these programs reliably fall apart.
What is a lifecycle email sequence, really?
It is a set of messages triggered by what someone did or failed to do, rather than by the calendar. That is the whole distinction. A campaign goes out on Tuesday to a list. A lifecycle email goes out because a specific person signed up, invited nobody, connected no data, and is now three days from losing interest.
The practical consequence is that lifecycle email is a product problem disguised as a marketing problem. You cannot write a useful day-three email without knowing what a successful day three looks like in your product. If nobody on your team can define activation in one sentence, the sequence will stay generic no matter how good the copy is.
So the first deliverable is not an email. It is a written definition of the two or three actions that separate accounts that stick from accounts that vanish. Everything after that is just prompting those actions in a human voice.
What should the first week after signup actually do?
Get one real thing working. Not a tour, not a feature list, not a welcome from the founder that asks for nothing. The first week has a single job, which is to move the account from empty to useful, because an account with real data in it is a different account from one that is still a blank screen.
I sequence that week around friction, not around features. Email one removes the single biggest blocker to getting data in. Email two is sent only to people who did not get data in, and it offers a smaller version of the same step. Email three goes to people who did, and it shows them the next thing their data now makes possible.
Notice that two of those three are conditional. A first week that sends the same three emails to everyone wastes its best asset, which is that you already know who is stuck and who is not. I went deeper on the mechanics of this in my piece on onboarding email sequences for B2B trial users.
Are open rates still worth tracking?
Barely, and not as a success measure. HubSpot's 2025 email benchmark roundup, which compiles figures from providers including Klaviyo, Campaign Monitor and Brevo, puts the average open rate across industries at 42.35% and the SaaS figure at 38.14%. Those numbers are useful for sanity, not for decisions.
The reason is mechanical. Open tracking depends on the reader's mail client loading a tiny image, and clients increasingly load images on the reader's behalf before a human has seen anything. Check your own provider's documentation for exactly how it counts an open, because that definition has moved and it varies.
The engagement figures in that same roundup are more honest. It puts the SaaS click-through rate at 1.19% and SaaS click-to-open at 6.81%, against 2.21% click-through and 5.63% click-to-open for B2B Services, with an all-industry click-to-open average of 5.3%. A click is a person choosing to act, which is at least a real signal.
Even then I would not optimize toward it. The number that matters for lifecycle email is whether the account did the thing, not whether it clicked the link. Clicks are a proxy. Activation is the event.
Which single email earns its keep most reliably?
The one sent to an account that did the setup work and then stopped. That person has already paid the hardest cost, which was getting started, and something specific stopped them. They are the cheapest possible win and almost nobody writes to them properly, because the sequence was designed around new signups.
What makes it work is that you can be concrete. You know what they connected, what they built, and where they stalled. That lets you write one sentence no generic email can write, which is a description of their actual situation. People reply to that. They do not reply to a line about not having been back lately.
It does not matter much whether you send it from Customer.io, Intercom, ActiveCampaign, Mailchimp or HubSpot. The tool is not the variable. The second most valuable is the one that goes out before a trial ends, to someone who used the product properly. Not a discount. A short, factual summary of what they did with it, and what happens to that work if they stop. Loss aversion does the arguing for you, and you have not had to exaggerate anything.
How many emails belong in a sequence?
Fewer than you have. I have never once looked at a lifecycle program and concluded the problem was insufficient volume. The failure is almost always that eight mediocre emails exist where three sharp ones would do, and the mediocre ones train people to ignore your sending domain.
A useful constraint is that every email must survive the question "what breaks if I delete this". If nothing breaks, delete it. Running that pass over an existing program usually cuts it by half and improves every number that matters, which tells you something about how these programs accumulate.
The exception is conditional branches. Those multiply the count on paper while reducing the number any one person receives, which is the right direction. Three emails with two conditions beats six emails sent to everybody.
What should a lifecycle email never do?
Ask for a decision the reader has no basis to make. The classic version is an email on day two pushing a demo call to someone who has not yet seen the product do anything. You are asking them to spend thirty minutes defending a budget for a thing they cannot describe. Of course they do not book.
The second thing it should never do is lie about why it arrived. "I was just thinking about your account" from a no-reply address insults the reader's intelligence and costs you the one thing lifecycle email runs on, which is the assumption that your messages are relevant. If it is automated, let it read as automated and useful.
Third, it should not require the reader to remember context from a previous email. People read one of your messages, not your sequence. Each one has to stand alone, which is also why a sequence that tells a continuous story usually underperforms a set of independent, useful notes.
How do you decide what to write next?
Look at where accounts stop, and write to that. The ranked list of drop-off points in your own product is a better content brief than any template, and it is sitting in your data already. Pull the three most common places an account goes quiet, and write one email for each. That is your next sprint.
Support tickets are the second source, and the better one for language. The words people use when they are confused are the words that should appear in your subject lines, because they are the words already in the reader's head. I have found more usable copy in a support inbox than in any keyword tool.
What I would not do is survey your way into it. Asking customers which emails they would like produces polite fiction. Watching where they stall produces a list of real problems, and those are the same problems that make good retention content more broadly, which I wrote about in retention content that reduces B2B churn.
Where do SaaS lifecycle programs break?
At the handoff between product events and the email tool. The sequence is correct, the copy is good, and the trigger never fires because an event name changed in a release and nobody told marketing. The emails do not error. They simply stop, and because nothing failed loudly, the gap can run for months.
Whether those events arrive through Segment, a Zapier workflow or a direct API call, the pattern is identical. The second break is ownership. Lifecycle email sits between product, marketing and support, which in practice means it belongs to nobody once the person who built it moves on. A program with no owner does not degrade dramatically. It just stops reflecting the product, until it is describing a version of the app that no longer exists.
The third is pricing drift. Your emails reference a plan structure, that structure changes, and the sequence keeps describing the old one to every new signup. If your pricing moves, your lifecycle copy is part of that change, in the same way your pricing page is.
What should you do next?
Write down your activation definition in one sentence, then read every email in your current sequence against it and delete the ones that do not serve it. That audit takes an afternoon and will do more for your numbers than any amount of new copy, because the problem is almost never that you are sending too little.
While you are in there, check your sending domain's authentication records too, since a list-hygiene tool like ZeroBounce or MailerLite's own reporting will tell you nothing if your mail is landing in spam. Then build exactly one new email, for accounts that set things up and stalled. Measure whether those accounts activate, not whether they opened. If it works, you have found the pattern for everything else, and if it does not, you have learned something real for the price of one message.
I build these sites on Webflow as a Certified Webflow Partner, and the sequence and the site are the same argument delivered in two places. If you are rebuilding a SaaS site and want the lifecycle sequence and the pages to actually say the same thing, reach out. They fail together more often than either fails alone.
Get found, cited and the back office automated
Let's make your site the source AI engines quote and wire up the systems behind it.
Read more blogs
Let's get your website found and cited by AI
Tell me what you're working on, whether AI search is skipping your product, your back office is buried in manual work, or you need a build that does both.