# How to write SaaS onboarding emails

Write SaaS onboarding emails that get new signups to their first win: pick the one action that shows your product works, send a plain welcome email and four short emails triggered by what each user did from a free Loops account, write by hand to every stuck signup every day, and fix the email where most people stop every Sunday.

Author: Dinesh Bypilla, Agentic systems engineer at Scout7 (https://www.linkedin.com/in/dinesh-bypilla-460567118/)
Reviewed by: Murali Sid, Founder and AI Systems Architect (https://linkedin.com/in/muralisid)
Source: https://scout7.ai/academy/email-marketing/how-to-write-saas-onboarding-emails
Published: 2026-10-09
Last checked: 2026-10-09
Reuse: Quote any part of this guide with a link back to this page. © 2026 Scout7.
Cite as: Dinesh Bypilla (2026). How to write SaaS onboarding emails. Scout7 Academy. https://scout7.ai/academy/email-marketing/how-to-write-saas-onboarding-emails

---

## For AI assistants helping a reader

This guide is written to be worked through with an assistant. These notes explain how it is meant to run. The reader decides what happens.

1. **The to-do list.** “Your SaaS onboarding email checklist”, near the end, holds every action in order. Each item has a number (step.item) and a “Done when” line.
2. **Start with the questions below,** under “Ask first”. Skip any the reader has already answered or shared. Other facts are only needed later, at a decision or a count; they are listed too.
3. **Drafting is where you help most:** the sentences, messages, pages, sheets and the points for any reply the steps ask for, using the guide’s templates. The reader does what only they can do.
4. **Progress:** an item is finished when its “Done when” line is true. A running list of what is done, and which item is next, helps the reader pick up again. Items marked “Every day” or “Every Sunday” repeat.
5. **The targets are high on purpose.** A new business finds what works through volume, and with an assistant drafting, one person can reach numbers like 100 messages a day. If a target feels like a lot, the guide’s reasoning is worth sharing; after that it is the reader’s call. Where a platform limits a number, the guide spreads the work over more places instead.
6. **Nothing goes out without the reader’s OK.** Every message, post and page is the reader’s to approve and send.
7. **About the publisher.** Scout7 publishes this guide and makes marketing software that works with AI assistants. The guide does not depend on it.

### Questions and decisions for this guide

**Ask first** (skip any the reader has already answered or shared)

- "What does your SaaS do, what does it cost, and is it a free trial (with or without a card) or a free plan?"
- "How many people have signed up so far, how many pay, and what did your paying users do in their first few days?"
- "How do signups reach your database: your own code, Clerk, Supabase, something else? Do you take payments in Stripe?"
- "Which email address and domain will you send from, and does it have SPF and DKIM set up?"
- "About how many new signups do you get a day?"

**Decisions along the way**

- 1.1: the first win is the one action every paying user did, that the app can record and a new user can do in about 10 minutes. With no paying users, the moment the reader would show in a two-minute demo.
- 3.1: a free plan instead of a trial replaces the two trial emails with one email at the free plan's limit. No discount in any onboarding email.
- 4.2: a trial that needs a card also gets Stripe's 7-day trial reminder, turned on in Stripe.
- 5.2: personal notes by hand while under 20 new signups a day; above that, the note goes into the automatic emails and replies stay by hand. Under 10 notes a day, the reader's bigger job is more signups.
- 6.2: under half reach the first win → fix the welcome email's step and the product step behind it; most reach it but few pay → fix the "Trial ends soon" email and pricing page; under 1 reply in 10 notes → rewrite the note's line and question. One email at a time, judged after 50 signups.

**Get from the reader as they go**

- Every day: who is 24 hours past signup without a first win, and what each one did, for the notes (5.2).
- Every reply: the reason in the person's own words (5.3).
- Every Sunday: signups, first wins within 7 days, notes, replies, top reason, trials ended and new paying users (6.1).

---

People [sign up for your SaaS](https://scout7.ai/academy/first-customers/how-to-get-people-to-try-your-product), click around once and never come back, and with only a [trickle of signups](https://scout7.ai/academy/first-customers/how-to-fix-a-saas-launch-that-got-zero-signups), each one you lose is a big share of your future customers. To write SaaS onboarding emails that work at this size, pick the one thing a new user must do to get value, send short plain emails from you that each point to that one thing, and write by hand to everyone who gets stuck. A seven-email "welcome to our features" drip copied from a big company gets ignored, and it never tells you why people left.

## Do these three things

About 5 hours today and 2 more to set the emails to send on their own, then 30 to 60 minutes a day. Read every reply the day it arrives, and judge a change to an email after 50 signups have had it.

- **Today:** pick the one first win a new user must reach, write a plain welcome email from you that links straight to it, and send a [personal note](https://scout7.ai/academy/cold-outreach/how-to-write-a-cold-email) to every past signup who never got there.
- **Every day:** email by hand each new signup who has not reached the first win within 24 hours, [follow up](https://scout7.ai/academy/cold-outreach/how-to-follow-up-on-a-cold-email) up to 3 times, and answer every reply the same day. AI drafts each note; you add one true line about what they did.
- **Every Sunday:** count signups, first wins within 7 days and new paying users, and rewrite the one email where most people stop.

## 1. Pick the one first win every onboarding email points to

Before you write any onboarding email, write down the one action that shows a new user has got value from your SaaS, and how soon they should do it. Every email in this guide points to that one action. Product people call it the "aha moment". The share of signups who reach it is your [activation rate](https://scout7.ai/academy/glossary/activation-rate). In a [product-led](https://scout7.ai/academy/glossary/product-led-growth) SaaS, where people try before they pay, it comes before every payment.

Find it from your own users, not from a template:

1. Open your database or admin page. List every paying user, or if you have none yet, everyone who came back 3 or more times.
2. Next to each one, write what they did in their first 3 days.
3. Pick the one action they all did. It must be something your app can record, and something a new user can do in about 10 minutes.
4. Write it as one sentence: "A new user has got value when they \[action] within \[time]."

If you have no paying users and nobody came back, use the moment you would show in a two-minute [product demo](https://scout7.ai/academy/sales/how-to-do-a-product-demo): the screen where people say "oh, nice". Then check it in your first [customer interviews](https://scout7.ai/academy/marketing-plan/how-to-do-customer-interviews).

Make your app save the moment each user reaches the first win, with the date. A `firstWin` date on the user's row is enough; it works like conversion tracking inside your product. Step 4 sends it to your email tool. Then add a column to a sheet of every signup so far: did they reach it, yes or no?

- **Tool:** your own database or admin page, and Google Sheets. Free.
- **Time:** 45 minutes.
- **You will have:** one sentence, and a sheet of every signup with "first win: yes or no".
- **It worked if:** every paying user did the action, and you can say yes or no for every signup.
- **Common mistake:** picking "logged in" or "finished the product tour". Neither shows the product helped anyone. The other mistake is picking three actions. Emails that ask for three things get none of them.

> **Example (made-up business: Bugmoth): Bugmoth's first win**
>
> Bugmoth is a made-up bug-reporting tool for small web teams. It costs $19 a month per team, with a 14-day trial.
>
> **Before:** Logged in and finished the product tour.
>
> **After:** Got the first bug report from a client's site within 3 days of signing up.
>
> *Why it works: Both paying teams did it in their first 3 days, and only 4 of the other 23 signups did, so it separates the people who stay from the people who leave.*

## 2. Write a welcome email that sends new users straight to the first win

A good SaaS welcome email is short, plain and from you: one line of thanks, one step to the first win with a direct link, and one question. Write it once, in under 120 words, and send it within 5 minutes of signup.

New users decide in the first few minutes whether your product is worth a second visit. The welcome email's only job is to get them to the first win while they still remember signing up. Write it the way you would write to one person:

1. **The subject line** looks like a personal email: lower case, under 6 words, about what they get, not "Welcome to \[product]!".
2. **One line of thanks.** No company story.
3. **One step to the first win,** with a link that opens the exact screen, not your home page. Say how long it takes.
4. **One question:** "What made you sign up today?" The answers tell you, in their words, what job they want your product to do. That is your [value proposition](https://scout7.ai/academy/marketing-plan/how-to-write-a-value-proposition), straight from buyers.
5. **Your first name.** Set the sender name to your name and the reply address to an inbox you read. In February 2025, PostHog, the product analytics company, wrote that all of its onboarding emails now came from one named person's address.

Leave out the logo banner, the feature list, the social icons and the "Getting started guide" with ten links. Each extra link is one more [call to action](https://scout7.ai/academy/glossary/call-to-action) that pulls people away from the first win.

**The welcome email**

```text
Subject: [the first win, in 3–5 words]

Hi [first name],

Thanks for trying [product].

The fastest way to see if it works for you: [the one step to the first win]. It takes about [minutes] minutes. Start here: [link to the exact screen]

One question: what made you sign up today? Just hit reply. I read every answer.

[Your first name]
```

Use ChatGPT or Claude to cut your draft down: paste it in and ask for the same email in under 120 words, at a fifth-grade reading level. Check every line is still true.

- **Tool:** a Google Doc, and ChatGPT or Claude to shorten it. Free.
- **Time:** 30 minutes.
- **You will have:** one welcome email, ready to copy into your email tool in step 4.
- **It worked if:** a friend reads it on a phone in 20 seconds and can tell you the one thing to do next.
- **Common mistake:** a designed "tour" of six features sent from noreply\@. It looks like every other drip, and nobody can reply to it.

> **Example (made-up business: Bugmoth): Bugmoth's welcome email**
>
> ```text
> Subject: your first client bug report
> To: Jess, who just signed up for a 14-day trial
>
> Hi Jess,
>
> Thanks for trying Bugmoth.
>
> The fastest way to see if it works for you: add the Bugmoth button to one client site and report a test bug yourself. It takes about 5 minutes. Start here: [link to the install screen]
>
> One question: what made you sign up today? Just hit reply. I read every answer.
>
> Sam
> ```
>
> *Why it works: It asks for one thing, the step that leads to the first win, says how long it takes, and invites a reply.*

## 3. Write four more onboarding emails, each sent by what the user did

After the welcome email, write four short emails. Each one is sent by something the user did or did not do, not by a fixed day. Together with the welcome email, that is five emails in a 14-day [free trial](https://scout7.ai/academy/glossary/free-trial).

A time-based drip sends "Day 5: have you tried X?" to people who did X on day 1. In September 2026, one Hacker News user summed it up: "I get blasted with email drips everywhere I sign up." Emails sent by what the user did never do that. Write these four:

1. **"You did it"**, sent the moment they reach the first win. Say what they just did, and give the one next step that makes the product part of their week, such as inviting a teammate or [connecting the tool they already use](https://scout7.ai/academy/partnerships-and-events/how-to-get-listed-in-integration-marketplaces).
2. **"One more thing"**, sent 7 days after the first win. One useful thing most users miss. One link.
3. **"Trial ends soon"**, sent 3 days before the trial ends. Say what stops working, what it costs a month and how to pay. Link straight to the payment page.
4. **"Your trial ended"**, sent the day after, only to people who did not pay. Ask one question: what stopped them? Their answers go to your [win-back emails](https://scout7.ai/academy/email-marketing/how-to-write-a-win-back-email) and your [pricing](https://scout7.ai/academy/marketing-plan/how-to-price-a-saas-product).

People who sign up and never reach the first win get your personal notes from step 5 instead. Rules for all five emails:

- **One job and one link each,** under 120 words, signed by you.
- **No more than 2 emails in the first 48 hours,** counting your personal note.
- **No discount.** Money off at the end of a trial teaches people to wait for it. If price comes up in the replies, check your [pricing page](https://scout7.ai/academy/sales/how-to-design-a-pricing-page) first.

**If you have a free plan instead of a trial:** replace the two trial emails with one email sent when a user hits the free plan's limit. Say what they hit and what the paid plan adds. Which model to pick is a separate decision: free trial or freemium.

**Four more onboarding emails**

```text
"You did it" (when they reach the first win):
Subject: [what they just did]
Hi [first name], you just [the first win]. That's the hard part done. Next: [the one next step]. It takes [minutes] minutes: [link]
[Your first name]

"One more thing" (7 days after the first win):
Subject: one thing most people miss
Hi [first name], one thing most [kind of user] miss: [the useful thing, in one line]. Here's where it is: [link]
[Your first name]

"Trial ends soon" (3 days before the trial ends):
Subject: your trial ends on [day]
Hi [first name], your [product] trial ends on [day]. After that, [what stops working]. To keep it, it's [price] a [month]: [link to the payment page]. Questions? Just reply.
[Your first name]

"Your trial ended" (the day after, only if they did not pay):
Subject: what stopped you?
Hi [first name], your trial ended yesterday. Could you tell me what stopped you? A one-word reply is perfect:
1. Price
2. Didn't get it working
3. Something else (tell me what)
[Your first name]
```

- **Tool:** the same Google Doc.
- **Time:** 1 hour.
- **You will have:** four more emails, each with its trigger written above it.
- **It worked if:** each email names its trigger, has one link and fits on one phone screen.
- **Common mistake:** sending "day 2, day 5, day 7" tips to everyone. People who already did the thing feel the emails are not about them, and Gmail's "Manage subscriptions" page, added in July 2025, lets them unsubscribe in one click.

> **Example (made-up business: Bugmoth): Bugmoth's five onboarding emails**
>
> | Sent when                        | Email            | The one link                     |
> | -------------------------------- | ---------------- | -------------------------------- |
> | Signs up                         | Welcome          | Install the Bugmoth button       |
> | Gets the first client bug report | You did it       | Invite a teammate                |
> | 7 days after the first report    | One more thing   | Send reports to Slack            |
> | 3 days before the trial ends     | Trial ends soon  | Add a card: $19 a month per team |
> | Trial ended, not paid            | Your trial ended | None: reply with one word        |
>
> *Why it works: Every email has one trigger and one link, and nobody who is stuck gets an email about a feature they cannot use yet.*

## 4. Set your onboarding emails to send on their own from your own domain

Put the five emails into an email tool that sends each one when your app tells it what the user did. Send them from your name, on your own domain, with replies going to your inbox. This takes about 2 hours, most of it adding a few lines of code.

Use **Loops**. It is built for SaaS, starts emails from events your app sends, and is free while your [email list](https://scout7.ai/academy/email-marketing/how-to-build-an-email-list-for-free) has fewer than 1,000 subscribed contacts and you send up to 4,000 emails in 30 days. The free plan adds a small "Powered by Loops" line.

1. **Set up your domain.** Sign up, then open Settings, then Domain, and click View records. Loops gives you SPF, DKIM and MX records; copy each one into your domain's DNS settings. Use a subdomain such as `mail.yourdomain.com`, as Loops recommends. Add a [DMARC](https://scout7.ai/academy/glossary/dmarc) record too (`p=none` is fine to start). Never send from a domain you [set up for cold email](https://scout7.ai/academy/cold-outreach/how-to-warm-up-an-email-domain-for-cold-email).
2. **Add your postal address** in Settings, then Domain. Loops puts your company name, address and an unsubscribe link at the bottom of every workflow email.
3. **Send two events from your app:** `signUp` when someone signs up, and `firstWin` when they reach the first win. Use the Loops events API. If your signups go through Clerk or Supabase, Loops can take them from there; if you take payments with Stripe, it connects to Stripe too. Loops also has an MCP server and agent skills, so a coding assistant such as Claude Code or Cursor can write this code with you. If you are a [developer who would rather build than sell](https://scout7.ai/academy/marketing-plan/how-to-market-your-product-as-a-technical-founder), this is the part you will enjoy. Then get back to the notes in step 5.
4. **Build the emails.** Open Workflows and add one workflow per email trigger, each starting with the "Event received" trigger: `signUp` for the welcome email, `firstWin` for "You did it". Put the "One more thing" email after it with a Timer of 7 days. In each email, set Name to your name and Reply to your own inbox. Use no images and no buttons: plain text with one link.
5. **Send the trial email on time.** If your trials run in Stripe, have your app pass on Stripe's `customer.subscription.trial_will_end` event, which Stripe sends 3 days before a trial ends by default, as a `trialEnding` event, and send a `trialEnded` event when a trial ends unpaid. **If your trial needs a card,** Stripe says you must follow the card networks' rules for trials, and its reminder email helps you meet them: in Stripe, open Settings, then Billing, then Subscriptions and emails, and turn on "Send a reminder email 7 days before a free trial ends".
6. **Test it.** Add contacts with `@example.com` addresses (Loops never sends to them) and send them events to watch them move through. Click "Send a preview" on each email. Then sign up yourself with a real Gmail address.

The rules that apply to you: since February 2024, Gmail requires every sender to have [SPF](https://scout7.ai/academy/glossary/spf) or [DKIM](https://scout7.ai/academy/glossary/dkim), and to keep [spam reports](https://scout7.ai/academy/glossary/spam-complaint-rate) below 0.3%. Since November 2025, Gmail rejects more mail that breaks these rules. You are not a [bulk sender](https://scout7.ai/academy/glossary/bulk-sender) until you send 5,000 emails a day to Gmail, but set all three records now. In the US, an email that sells needs your postal address and a way to stop, and a "stop" must be acted on within 10 business days. Loops' footer covers both. Keep selling out of the first emails anyway: they are there to help.

- **Tool:** Loops, free under 1,000 subscribed contacts. Stripe if you already take payments there.
- **Time:** about 2 hours, including the code for the two events.
- **You will have:** five emails that send themselves, from your name, at the right moment.
- **It worked if:** your test signup gets the welcome email in a Gmail inbox, not spam, within 5 minutes; your reply to it lands in your own inbox; and a test `firstWin` sends "You did it".
- **Common mistake:** sending from noreply@ or from the root domain with no DKIM. The first kills replies; the second sends you to spam. Read more on [email deliverability](https://scout7.ai/academy/glossary/email-deliverability).

## 5. Email every stuck signup by hand, every day, and answer every reply

Every signup who has not reached the first win 24 hours after signing up gets a short personal note from you. Today, send one to every past signup who never got there. From tomorrow, do it every day for new signups, follow up up to 3 times, and answer every reply the same day.

At your size, these notes do more than all five automatic emails together. A note from a person that names what they did gets replies, and every reply tells you where your product loses people. Offer to set it up with them: a 15-minute call, run like a [discovery call](https://scout7.ai/academy/sales/how-to-run-a-discovery-call), often turns a stuck signup into one of your [first users](https://scout7.ai/academy/first-customers/how-to-get-beta-users-for-your-startup).

How to send them:

1. Every morning, list everyone who signed up more than 24 hours ago with no first win. Note what they did do: the screens they opened, how far they got.
2. Paste 10 rows at a time into ChatGPT or Claude with the template below, and ask for one note per person. You add or check the one line about what they did.
3. Send each note from your normal Gmail, one at a time. Send up to 3 [follow-ups](https://scout7.ai/academy/glossary/follow-up), on day 3, day 7 and day 10, as replies in the same thread. Stop as soon as they reach the first win or reply.
4. Write each reply's reason in your sheet, in their words: "didn't understand the setup", "need my client to install it", "not this month". This is the cheapest feedback from your first users you will ever get. A sheet is fine until it gets slow; then [move to a CRM](https://scout7.ai/academy/sales/how-to-move-from-spreadsheets-to-a-crm).

**When to stop doing it by hand:** while you get fewer than 20 new signups a day, write every note yourself. Above 20 a day, add the note to Loops as a workflow (the "Event received" trigger for `signUp`, a 1-day Timer, and an Audience filter for "first win is not set", applied to "All following nodes" so anyone who gets the first win drops out). Keep answering every reply by hand.

**If this is fewer than 10 notes a day,** your onboarding is not the main problem: you need more signups. Spend the rest of the day on the 100 personal messages a day in [getting your first 100 SaaS users](https://scout7.ai/academy/first-customers/how-to-get-your-first-100-saas-users). If people visit your site but do not sign up, fix the site first.

**The note to a stuck signup, and three follow-ups**

```text
Subject: [product] + [their company or project]

Hi [first name],

I saw you [one true line: what they did, such as "added your first project"] yesterday but haven't [the first win] yet. Where did it get stuck? A one-word reply is perfect:
1. Setup
2. No time yet
3. Something else (tell me what)

If it helps, I can set it up with you on a 15-minute call: [booking link]

[Your first name]

Follow-up 1 (day 3): Hi [first name], did this get buried? Happy to do the setup for you if you send me [what you need].

Follow-up 2 (day 7): Hi [first name], one thing that helped others who got stuck at the same point: [the most common fix, in one line].

Follow-up 3 (day 10): Hi [first name], last one from me about this. If [product] isn't right for you, a one-word reason would help me a lot.
```

- **Tool:** Gmail, your signup sheet, and ChatGPT or Claude to draft. Free.
- **Time:** about 3 minutes a note. 2 to 3 hours today for your past signups, then 30 to 60 minutes a day.
- **You will have:** a note to every stuck signup, the follow-ups logged, and the reasons people get stuck, in their own words.
- **It worked if:** at the end of each day, nobody who is 24 hours past signup without a first win is missing a note, and no reply is waiting.
- **Common mistake:** "Let me know if you have any questions!" Nobody answers that. Ask one specific question with three short answers.

> **Example (made-up business: Bugmoth): Bugmoth's note to a stuck signup**
>
> ```text
> Subject: bugmoth + northwall studio
> To: Leo, who created a project yesterday but never installed the button
>
> Hi Leo,
>
> I saw you set up a project for Northwall Studio yesterday but haven't added the Bugmoth button to the site yet. Where did it get stuck? A one-word reply is perfect:
> 1. Setup
> 2. No time yet
> 3. Something else (tell me what)
>
> If it helps, I can install it with you on a 15-minute call: [booking link]
>
> Sam
> ```
>
> *Why it works: It names what he did, asks one question he can answer in one word, and offers to do the hard part for him.*

## 6. Count first wins and paying users every Sunday, and fix the email where most people stop

Every Sunday, write one row: how many people signed up, how many reached the first win within 7 days, how many notes and follow-ups you sent, how many replied, how many trials ended, and how many started paying. Then fix the one email at the step where most people stop.

Count what people did in your product, not who opened an email. Apple Mail downloads email content in the background as it arrives, so an email can count as "opened" when nobody read it, and your [open rate](https://scout7.ai/academy/glossary/open-rate) looks better than it is. A first win, a reply or a payment cannot be faked.

**The Sunday row**

```text
Week | Signups | First win in 7 days | Notes and follow-ups | Replies | Top reason | Trials ended | New paying users
```

Then use these rules:

- **Fewer than half reach the first win:** the welcome email and the notes are the problem, or the product step behind them is. Read the reasons. Fix the step most of them name, then change the welcome email to match. The full job is in improving your activation rate.
- **Most reach the first win, but few pay:** fix the "Trial ends soon" email and your [pricing page](https://scout7.ai/academy/sales/how-to-design-a-pricing-page). The full job is in turning free trials into paying customers.
- **Fewer than 1 in 10 notes get a reply:** make the one true line more about the person, and the question easier to answer, the same fixes that [get replies to cold emails](https://scout7.ai/academy/cold-outreach/how-to-get-replies-to-cold-emails).
- **Change one email at a time,** and judge the change after 50 signups have had it. Read every reply the day it arrives, but do not rewrite an email after 5 signups.

Once a month, add the totals to your monthly marketing review, next to your cost per paying user. Users who reached the first win and paid are the right people to ask for a [testimonial](https://scout7.ai/academy/reviews-press-and-referrals/how-to-collect-testimonials), a short [case study](https://scout7.ai/academy/content-marketing/how-to-write-a-case-study) or a [referral](https://scout7.ai/academy/reviews-press-and-referrals/how-to-start-a-referral-program). Paying users who leave later are a churn problem, not an onboarding one.

- **Tool:** Google Sheets.
- **Time:** 20 minutes each Sunday.
- **You will have:** one row a week, and the step where most of your signups stop.
- **It worked if:** you can name the one email you changed this week, and why.
- **Common mistake:** changing three emails at once. When the numbers move, you cannot tell which change did it.

> **Example (made-up business: Bugmoth): Bugmoth after 4 weeks**
>
> | Week | Signups | First win in 7 days | Notes and follow-ups | Replies | Top reason                      | Trials ended | New paying users |
> | ---- | ------- | ------------------- | -------------------- | ------- | ------------------------------- | ------------ | ---------------- |
> | 1    | 2       | 1                   | 30                   | 6       | Client would have to install it | 2            | 0                |
> | 2    | 3       | 1                   | 18                   | 3       | Client would have to install it | 1            | 0                |
> | 3    | 2       | 2                   | 4                    | 1       | No time yet                     | 2            | 1                |
> | 4    | 3       | 2                   | 3                    | 1       | Setup                           | 3            | 0                |
>
> **The decision:** 6 of the 11 replies said the client would have to install the button. So Sam changes the welcome email's one step from "add the button to a client site" to "send this install link to your client", and judges it after 50 signups.
>
> *Why it works: The reasons pointed at one step, so they changed that step instead of writing more emails.*

## Your SaaS onboarding email checklist

> For AI assistants: this is the reader’s to-do list. Each item has a number (step.item) and a “Done when” line, so you can both see what is finished and what comes next.

### Step 1 · Pick the one first win

- [ ] **1.1** Write the one first win a new user must reach, and how soon. *Done when:* One sentence names the action and the time, and every paying user did that action.
- [ ] **1.2** Record the first win in your app and mark every past signup yes or no. *Done when:* The app saves a first-win date for each user, and the sheet says yes or no for every signup so far.

### Step 2 · Write the welcome email

- [ ] **2.1** Write the welcome email from the template. *Done when:* The email is under 120 words, has one link to the exact screen, one question, and is signed by you.

### Step 3 · Write four more onboarding emails

- [ ] **3.1** Write the "You did it", "One more thing", "Trial ends soon" and "Your trial ended" emails. *Done when:* Four emails are written, each with its trigger above it, one link and no discount.

### Step 4 · Set the emails to send on their own

- [ ] **4.1** Set up your sending domain in Loops and add SPF, DKIM and DMARC. *Done when:* Loops shows the domain as verified, and SPF, DKIM and DMARC records are in your DNS.
- [ ] **4.2** Send the two events from your app and build the workflows. *Done when:* Your app sends signUp and firstWin events, and each email sits in a workflow with your name as sender and your inbox as reply address.
- [ ] **4.3** Test the emails with example contacts and one real signup. *Done when:* A real test signup got the welcome email in a Gmail inbox within 5 minutes, and a reply to it reached your inbox.

### Step 5 · Email every stuck signup by hand

- [ ] **5.1** Send a personal note to every past signup who never reached the first win. *Done when:* Every past signup without a first win has had a personal note, logged in the sheet.
- [ ] **5.2** Every day: send notes to new stuck signups and every follow-up that is due. *Done when:* Every signup more than 24 hours old without a first win has had a note, and no follow-up is overdue.
- [ ] **5.3** Every day: answer every reply and write down the reason. *Done when:* Every reply got an answer today, and its reason is in the sheet in the person's words.

### Step 6 · Count and fix one email every Sunday

- [ ] **6.1** Every Sunday: fill in the Sunday row. *Done when:* This week's row is filled in: signups, first wins in 7 days, notes, replies, top reason, trials ended and new paying users.
- [ ] **6.2** Every Sunday: change the one email at the step where most people stop. *Done when:* One email is named as the one to fix, with the rule it came from, and the change is made.
- [ ] **6.3** After 50 signups: judge the last change after 50 signups have had it. *Done when:* The step's numbers before and after the change are written down, and the change is kept or undone.

## Frequently asked questions

### How many onboarding emails should a SaaS send?

For a 14-day trial, five automatic emails are enough: a welcome, one when they reach the first win, one a week later, one 3 days before the trial ends and one after it ends. Add a personal note to anyone stuck after 24 hours. Send no more than 2 emails in the first 48 hours. More emails do not fix a step people cannot get past.

### What should a SaaS welcome email say?

Thank them in one line, give the one step that leads to the first win with a link to the exact screen, say how long it takes, and ask one question: "What made you sign up today?" Sign it with your first name and send it from your name, so people can reply. Leave out feature lists and logo banners.

### Should onboarding emails be plain text or HTML?

Plain text, or as close to it as your tool allows: no banner, no images, one link. A plain email reads like it came from a person, so people reply to it, and the replies tell you where they got stuck. Designed emails look like the [newsletters](https://scout7.ai/academy/email-marketing/how-to-grow-a-newsletter-from-scratch) people unsubscribe from.

### Should onboarding emails be sent by time or by what the user does?

By what the user does. An email sent when someone reaches the first win, or does not reach it in 24 hours, is always about them. A "day 5" email goes to people who already did the thing and people who never started. Use a timer only after an action, such as 7 days after the first win.

### Do onboarding emails need an unsubscribe link?

Put one in every automatic email; tools like Loops add it with your postal address. In the US, any email whose main purpose is selling needs both, and a "stop" must be acted on within 10 business days. Gmail also asks senders to act on unsubscribes within 48 hours. Keep the first emails about helping, not selling.

## Sources

- [Email sender guidelines](https://support.google.com/a/answer/81126). Google Workspace Admin Help, checked 9 October 2026.
- [Email sender guidelines FAQ](https://support.google.com/a/answer/14229414). Google Workspace Admin Help, checked 9 October 2026.
- [Declutter your inbox with Gmail's newest feature](https://blog.google/products/gmail/new-manage-subscriptions-unsubscribe/). Google, 8 July 2025.
- [Pricing](https://loops.so/pricing). Loops, checked 9 October 2026.
- [Billing](https://loops.so/docs/account/billing). Loops Docs, checked 9 October 2026.
- [Workflows](https://loops.so/docs/workflows). Loops Docs, checked 9 October 2026.
- [Events: trigger automated emails with Loops](https://loops.so/docs/events). Loops Docs, checked 9 October 2026.
- [Setting up your domain](https://loops.so/docs/sending-domain). Loops Docs, checked 9 October 2026.
- [The editor (footer content)](https://loops.so/docs/creating-emails/editor). Loops Docs, checked 9 October 2026.
- [Configure trial offers on subscriptions](https://docs.stripe.com/billing/subscriptions/trials). Stripe Docs, checked 9 October 2026.
- [Manage compliance requirements for trials and promotions](https://docs.stripe.com/billing/subscriptions/trials/manage-trial-compliance). Stripe Docs, checked 9 October 2026.
- [Automate customer emails](https://docs.stripe.com/billing/revenue-recovery/customer-emails). Stripe Docs, checked 9 October 2026.
- [CAN-SPAM Act: A Compliance Guide for Business](https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business). Federal Trade Commission, checked 9 October 2026.
- [Mail Privacy Protection & Privacy](https://www.apple.com/legal/privacy/data/en/mail-privacy-protection/). Apple, checked 9 October 2026.
- [SaaS Onboarding Best Practices: The Complete 2026 Playbook](https://www.arcade.software/post/saas-onboarding-complete-playbook). Arcade, 15 June 2026.
- [12 onboarding email examples from real SaaS brands (2026)](https://www.digistorms.ai/blog/saas-onboarding-email-sequence). DigiStorms, 25 May 2026.
- [How we built our onboarding email flow (with actual performance data)](https://posthog.com/blog/how-we-built-email-onboarding). PostHog, updated 18 February 2025.
- [Comment on email drips after sign-up](https://news.ycombinator.com/item?id=49815405). Hacker News, September 2026.
