---
title: "SaaS Onboarding Email Sequence Template | Utkarsh Panwar"
description: "A behaviour-triggered SaaS onboarding email sequence template: a trigger map with conditions and stop rules, plus copy-ready emails for each step."
url: https://www.utkarshdesign.com/templates/onboarding-email-sequence
author: Utkarsh Dhairya Panwar
updated: 2026-10-08
---

# SaaS onboarding email sequence template

Template · 7 min read · By [Utkarsh Dhairya Panwar](https://www.utkarshdesign.com/about) · Updated 8 Oct 2026

![A Welcome to CodeAnt AI onboarding email with a Connect your repository button, beside an email automation workflow with send email, branch, audience filter and timer nodes](https://www.utkarshdesign.com/images/8T5p851tLoDrFZ6JlJEthbMj9V0.webp)

**A good SaaS onboarding sequence sends emails based on what each user has or hasn't done, instead of a fixed drip on days 1, 3 and 7. I give every email a trigger, a condition checked at send time, one call to action and a rule for leaving the sequence.**

## Drip or behaviour: the difference in one table

|  | Time-based drip | Behaviour-triggered sequence |
| --- | --- | --- |
| Sends when | Day 1, 3, 7, 14 after sign-up | A user does something, or doesn't, within a window |
| Same email for everyone? | Yes | No. Users who finished setup never get the setup nudge |
| Knows about blockers | No | Yes, if the product fires an event when someone gets stuck |
| Stops | When the list runs out | When the user reaches the activation event |
| Effort to set up | An afternoon | Needs product events wired to your email tool |

A drip is better than nothing. But a reminder to connect the repo, sent the day after someone connected it, teaches them to ignore you. Most of the effort goes into the events. The copy is the easy part.

## The trigger map

Copy this into a sheet and swap in your own events. 'Activation event' means the first moment of real value: first repo scanned, first report shared, first invoice sent.

| # | Trigger | Send only if | The email's one job | CTA | Leaves sequence when |
| --- | --- | --- | --- | --- | --- |
| 1 | Sign-up | Always, within minutes | Confirm the one thing to do first | Do the setup step | Never; it's one email |
| 2 | 24 hours after sign-up | Setup step not done | Remove the most common reason people stall | Finish setup | Setup done |
| 3 | Setup blocked event (permission, admin, missing data) | Still blocked after 1 hour | Give them a way past the blocker, including asking someone else | Send request to admin | Blocker cleared |
| 4 | Teammate requested access | Admin hasn't acted | Tell the admin who asked, what the product is, what approving does | Approve | Admin approves |
| 5 | Activation event | First time only | Show what they got, then point to the next feature worth trying | Try feature two | Sent once |
| 6 | Active, but one main feature unused after 3 days | Feature still unused | Explain that feature through their own data | Open feature | Feature used |
| 7 | Solo user active for 3 days | No teammates invited | Show what changes when the team joins | Invite a teammate | First invite sent |
| 8 | Trial ends in 3 days | Branch: activated or not | Activated: what they keep. Not activated: offer help or an extension | Upgrade, or book help | Upgraded |
| 9 | No login for 7 days during trial | Not activated | One honest question: what got in the way? | Reply to this email | Logs in or replies |

The delays are starting points. Shorten them for products people set up in minutes, and lengthen them where setup needs a meeting with IT.

## Copy-ready emails

Keep them plain text or close to it, sent from a person rather than 'noreply', with one link each. Replace the brackets.

- Email 1, Welcome. Subject: Your first step in [Product]. Body: "Hi [first name], thanks for trying [Product]. The one thing to do first: [setup step], which takes about [time]. Once that's done you'll see [specific first result]. If anything stops you, reply here and a real person will read it. [Name]" CTA: [Do the setup step].
- Email 2, Setup nudge. Subject: Stuck on [setup step]? Body: "Most people who pause here are missing [the common blocker, e.g. admin access, an API key]. The two-minute version: [one-line instruction or short video]. If [blocker] is the issue, you can [workaround] without leaving the page." CTA: Finish setup.
- Email 3, Blocked. Subject: Getting [Product] past your admin. Body: "Connecting [integration] needs approval from someone with admin rights. You don't have to explain it yourself: send them a request from [Product] and they'll get a short email with what it does and one button to approve. Or copy the invite link and drop it in your team chat." CTA: Send request to admin.
- Email 4, To the admin. Subject: [Teammate name] wants to use [Product] on [org name]. Body: "[Teammate] asked to connect [Product] to [org]. It [does what, in one sentence]. Approving gives it [exact permission, e.g. read access to selected repositories]. You can choose which [resources] and revoke it any time." CTA: Review and approve.
- Email 8, Trial ending, not activated. Subject: Your trial ends on [date]. Body: "You signed up but haven't [activation event] yet, so you haven't seen [Product] do its job. If something got in the way, reply and tell me what. I can extend your trial while I help you sort it out." CTA: Reply.

## Wire the events before writing copy

Every trigger in the map is a product event. If the product can't send "setup blocked" or "activation event" to your email tool, those rows can't fire. Five to eight events between sign-up and first value is plenty.

Emails 3 and 4 come from CodeAnt AI, where connecting a repo needed an org admin, and the person signing up usually wasn't one. A generic "connect your repo" reminder is useless to someone who can't. So email 3 points back to the in-product request, and email 4 is written for an admin who has never heard of the product.

Email and in-product nudges should run on the same rules. If the user is in the product, nudge them there; if they've left, email. At CodeAnt someone who only used reviews saw a pointer to security or quality the next time they logged in, and someone who had already set things up saw nothing. Read events from one source, share one suppression list, and use the same words in both places.

[Doubling trial-to-paid at CodeAnt](https://www.utkarshdesign.com/guides/how-we-doubled-trial-to-paid): Where these emails fit alongside the admin hand-off, the guided setup and the Get Started screen.

## How to tell if an email is working

Open rate tells you the subject line worked and very little about onboarding. For each email, measure the share of recipients who completed its target event within a few days, against a small holdout who didn't get it. If the holdout catches up on its own, the email can go.

Watch unsubscribes from trial users too. A spike usually means a branch is firing for the wrong people, most often activated users still getting setup reminders.

## Rules that keep it from turning into noise

- One email per day at most. If two trigger together, send the one closer to activation.
- Suppress the email if the user already saw the same nudge in the product.
- Check every exit condition at send time, when the email goes out, not when it was scheduled.
- Send from a named person and read the replies. Replies to email 9 are some of the best research you'll get.
- Review the map whenever onboarding changes. An email describing an old flow is worse than no email.

If you'd like the whole path from sign-up to first value reviewed, emails included, that's my SaaS onboarding audit.

## Questions people ask

### How many emails should a SaaS onboarding sequence have?

Most users should only receive three to five, even if the map has nine. Each user gets the emails that match where they are, and stops once they activate.

### Should the admin get onboarding emails too?

Only one, when a teammate asks them to approve something. They didn't sign up, so say who asked, what the product does and what approving gives it access to, with one button. Don't add them to the trial sequence.

### What should a SaaS welcome email say?

The one thing to do first, how long it takes, what they'll see when it's done, and that replies reach a person. Skip the feature tour.

### What tools do I need for behaviour-based onboarding emails?

Product events sent to an email tool that can branch on them, such as Customer.io, Loops, HubSpot or an n8n or Zapier workflow. The events matter more than the tool.

## Sources

1. [Triggers, filters, and frequencies](https://docs.customer.io/messaging/send/automations/triggers/), Customer.io Documentation
2. [Holdout tests](https://docs.customer.io/messaging/send/workflows/holdout-test/), Customer.io Documentation

## Working on this?

Tell me what you're building and where it's stuck: [book a 30-minute call](https://cal.com/utkarsh-design/30min), email [work@utkarshdesign.com](mailto:work@utkarshdesign.com) or [send a brief](https://www.utkarshdesign.com/contact).

## Related

- [How we doubled trial-to-paid at CodeAnt](https://www.utkarshdesign.com/guides/how-we-doubled-trial-to-paid)
- [Team invite and admin approval flows for B2B products](https://www.utkarshdesign.com/guides/team-invite-flow)
- [SaaS onboarding and activation UX audit](https://www.utkarshdesign.com/services/saas-onboarding-audit)
- [How to define an activation metric](https://www.utkarshdesign.com/guides/activation-metric)

---

Utkarsh Dhairya Panwar, Founding Product Designer and Design Engineer (IIT Roorkee; Founding Designer at CodeAnt AI, YC W24). Email: work@utkarshdesign.com · Book a call: https://cal.com/utkarsh-design/30min · Hire: https://www.utkarshdesign.com/hire · About: https://www.utkarshdesign.com/llms.txt
