Welcome email best practices: how to write one that gets read
By Rasket TeamLast updated 15 min read
Written for beginners, small business owners and email marketers
The short answer
Send it within minutes of signup, from the address later mail will use, and in under a hundred words say what you will send and how often, give one next step and an easy way out. Protect the signup form from bots before you polish the copy, and judge the email by actions and clicks per form, not opens.
What a welcome email should say, line by line
This email does everything in the short answer in under a hundred words. Copy its shape and change the words; the notes under it say why each line is there.
From: Acme Changelog <news@acme.example>
Subject: Welcome to the Acme changelog
Preview text: One email every Tuesday. Start with the five features teams set up first.
Hi Maya,
Thanks for subscribing with maya@example.com.
Every Tuesday you'll get one short email: what shipped in Acme
that week and one tip for using it. Never more than once a week.
Want only the big releases? Choose here:
https://acme.example/preferences
Start here: the five features most teams set up first
https://acme.example/start
Reply to this email if you have a question. A person reads it.
Acme, 1 Example Street, Springfield
Unsubscribe: https://acme.example/u/7f3a9cMost of the notes cite M3AAWG’s Sender Best Common Practices. M3AAWG is the industry group where mailbox providers and large senders agree shared rules, so its advice tracks what inboxes check. It is advice, not law.
- The address that signed up, so someone whose address was typed in by mistake can see why the email came.[1] A person who mistyped their own address never gets the welcome, so show the address on the page after the form too, where they can spot the mistake.
- One sentence on what and how often, concrete enough to keep. Yahoo asks you to set this expectation at signup too.[1][2]
- A link to choose less, right after the promise: how often, and what kind of mail.[1] Someone who can choose less does not have to choose nothing, or press the spam button.
- One main link. One request makes the next step obvious. Put everything else in the footer.
- A reply that reaches a person, a postal address and an unsubscribe link. M3AAWG’s own definition of a welcome email includes the unsubscribe link.[1]
The same email for an online store
A store’s welcome leads with what the signup form promised, usually a code, in live text near the top rather than inside a picture. The other lines stay.
From: Northside Tea <hello@northside-tea.example>
Subject: Here's your 10% code
Preview text: 10% off your first order, until 31 October.
Hi Sam,
Thanks for joining with sam@example.com. As promised:
WELCOME-7Q4K 10% off your first order, until 31 October
Shop now: https://northside-tea.example/shop
From us you'll get new teas on Thursdays and a sale a few
times a year. Only want the sales? Choose here:
https://northside-tea.example/preferences
Questions about an order? Just reply.
Northside Tea, 4 Mill Lane, Leeds
Unsubscribe: https://northside-tea.example/u/2b81e0For a local service business
A clinic, salon or garage rarely needs more than this one email. Its one action is a booking, and it says a person reads replies, because for a local business a reply is often the booking.
From: Northside Physio <hello@northside-physio.example>
Subject: Thanks for joining Northside Physio
Preview text: One email a month: free slots and a stretching tip.
Hi Alex,
Thanks for joining with alex@example.com.
Once a month you'll get one email: the free appointment slots
for the coming weeks and one stretching tip. Nothing else.
Book a first appointment: https://northside-physio.example/book
Rather talk to us? Reply to this email or call 0113 496 0000.
Open Monday to Saturday, 8am to 6pm.
Northside Physio, 12 Park Row, Leeds
Unsubscribe: https://northside-physio.example/u/5c2d91Keep a booking confirmation and a newsletter welcome as two emails. The confirmation goes to everyone who books, whether or not they want news, and should carry nothing to sell. The welcome goes only to people who asked for news, and it carries an unsubscribe link. Merged, the confirmation becomes marketing that people never asked for.
What is required, and what is only recommended
- Send it within minutes (recommended). M3AAWG’s window is “immediately following an end user’s submitting their address to a list, or as soon as possible thereafter (within 24 hours)”.[1] That means an automation started by the signup, not a weekly batch. Without code, use a newsletter tool (also sold as email marketing software): its signup form starts the welcome by itself, in a feature usually called a welcome flow or autoresponder. A sending service with an API is for when your own app or store’s code sends the mail, as in the last section.
- Confirm the address (recommended). Google and Yahoo both ask senders to confirm a subscriber’s address.[4][2] M3AAWG calls confirmed opt-in “the highest standard” because it stops “a typo or a maliciously submitted address” joining the list.[1] If you use it, the first message is a confirmation that “should be simple and free of advertising”, and the welcome follows the click. A store should put the promised code in that welcome, not in the confirmation, and say on the form “confirm your email to get your code”: the code is the reason to click. See how double opt-in works.
- Use the From address later mail will use (recommended), “so recipients may add it to their address book”.[1] Google asks for one From address per kind of mail.[4]
- Make it easy to leave (required). In the US, CAN-SPAM requires a working way to opt out in every commercial email, whatever your volume, and the opt-out must be honoured within 10 business days.[6] Google adds a rule for bulk senders, those sending more than 5,000 messages a day to Gmail: marketing mail must support one-click unsubscribe and show a visible link in the body.[4] Yahoo asks bulk senders to honour an unsubscribe within 2 days, far sooner than the law.[2] The sender requirements guide has the rest of that list.
- An honest subject and a postal address (required in the US). CAN-SPAM requires both in commercial email.[6] In the UK and the EU the rule that matters comes earlier: marketing email to a person usually needs their consent before the first message, and a pre-ticked box is not consent. The soft opt-in for existing customers is the main exception.[7][8] So say on the form what they will get, and leave the box unticked. Canada and the details are in the rules by region.
Protect the signup form from bots first
Protect the form before you polish the copy. In list bombing, a script fills in hundreds of signup forms with one victim’s address, so every site’s confirmation and welcome email floods that inbox at once.[1] The victim reports the mail as spam, and your welcome is part of the flood. M3AAWG recommends several defences together.[1] The ones most forms can add (if you use a form builder, ask which it already does):
- A CAPTCHA the form will not submit without.
- A limit on how often one IP address can submit the form.
- A hidden field a person never sees. A bot fills it in, so reject any submission that has it.
- A minimum fill time. Your server puts a signed timestamp in the form when the page loads, and rejects a submission that comes back faster than a person could type, or without one.
- Watching for the same address joining several of your forms at once.
A form tool or store theme may already do some of this; a Rasket sign-up form has the hidden field and limits on repeat and bulk sign-ups built in. Confirmed opt-in limits the damage when a bot gets through: the victim gets one plain confirmation, not your marketing. The signs of an attack are a sudden rise in signups, the same address signing up again and again, and spam complaints on the welcome from people who never signed up. Pause the welcome until you know which form is being abused.
Where else a welcome flow costs you deliverability
- Volume follows signups. A launch or a giveaway can send hundreds of welcomes in an hour from a domain that usually sends a few. M3AAWG recommends warming up a new sending domain (raising volume over weeks), and a new subdomain such as
news.yourshop.com“even if the organizational level domain already has an established reputation”.[1] A few welcomes a day need no plan. If a launch could send hundreds from a new subdomain, plan it around a warm-up: see an example warm-up schedule. - Giveaway and download signups need plainer expectations. A giveaway or a free download brings in people who wanted the prize, not your mail. Say in the subject and first line that the download comes with a weekly email, put the unsubscribe link next to the download, and use double opt-in on those forms if you can. Treat a pop-up shown to people from a paid ad the same way: they met you seconds ago, so name your brand and what they asked for in the subject. Then compare complaints per form (see the measuring section below).
- New addresses bounce more than old ones. A welcome is the first mail to an address nobody has tested. A mistyped one usually hard-bounces (the receiving server says the mailbox does not exist), but it can also reach a stranger, who reports you, or a spam trap, an address a blocklist keeps to catch mail nobody asked for. Confirmed opt-in keeps those addresses off your list, because nobody clicks the link.
- Publish your sending records before the first welcome. Gmail requires every sender to set up SPF or DKIM, records in your domain’s DNS (the settings page where your domain’s records live, usually at the company you bought it from) that prove the mail is yours.[4] Your sending service lists the records. Copy each one into your domain’s settings, or send the list to whoever manages your domain, with one warning: a domain may have only one SPF record, so a new service is added to the existing one, never published as a second.[5] The rest is in DKIM, SPF and DMARC explained.
- Send the welcome from the domain the newsletter uses. The welcome is marketing, so it goes from wherever your newsletter goes, and the reputation it earns carries over. That can be a marketing subdomain while receipts stay on another (see the marketing subdomain guide).
Subject line, preview text and the Promotions tab
The subject line and the preview text (also called the preheader) are what a reader sees before opening. In a welcome email both do one job: the reader should recognise the form they just filled in. Name the thing they signed up for, and put the promise in the subject if there is one. We know of no independent study showing that emoji, word counts or a first name in a welcome subject change results; if you test them, compare clicks.
| Signup | Subject line | Preview text |
|---|---|---|
| Newsletter | Welcome to the Acme changelog | One email every Tuesday. Start with the five features teams set up first. |
| Software trial | Your Acme workspace is ready | One step left: connect your domain. |
| Store signup | Here’s your 10% code | 10% off your first order, until 31 October. |
| Local service | Thanks for joining Northside Physio | One email a month: free slots and a stretching tip. |
Setting the preview text
Most email tools have a field called Preview text or Preheader beside the subject line. Check for it before you send: if it is empty, Litmus says inboxes fill the space from “the first lines of copy in your email”, which can be image alt text or a “View this email in your browser” line. Litmus recommends “keeping the preview text under 90 characters”.[9] If you write the HTML by hand, Litmus puts the text in a hidden block straight after the opening <body> tag.[9] Then send yourself a test and look at it in the inboxes your readers use.
Should the welcome ask Gmail readers to move you?
Once at most, and only if your readers want every issue. Promotions is still the inbox. On a computer, a reader can drag the email onto the Primary tab, and Google says moving mail “helps Gmail learn your preferences”.[11] One line is enough: “Using Gmail? Drag this email to Primary to see every issue.” Treat it as a courtesy, not a fix. The only published measurement we know of is from 2013: of 65,507 emails sent by retailers running “move me to Primary” campaigns, 61 landed in Primary, about 1 in 1,000. Gmail has changed since, so read it as “few”, not as a rate.[10] The Promotions tab guide has the other ways a reader can move you.
When to send more than one email
A short series lets each email do one job. Start with the three emails below over five days, then test a version with one fewer: the timings are a starting point to test. Two rules apply to every series. Stop it the moment the person does what it asks. And start the regular newsletter only after it ends, so nobody gets three emails in one day.
A software product
| When | Its one job | |
|---|---|---|
| 1. Welcome | At signup | Confirm they are in, say what arrives and how often, link the setup. |
| 2. The first win | Two days later, only if setup is not finished | Show the one action that makes the product useful, with a short example. |
| 3. The best of | Five days after signup | Point to the two or three things existing users value most. |
Email 1 can be the transactional account notice if it sells nothing. Emails 2 and 3 are marketing and carry an unsubscribe link.
An online store
| When | Its one job | |
|---|---|---|
| 1. Welcome and code | At signup | Give the code the form promised, with its end date (the example above). |
| 2. Bestsellers | Two days later, only if they have not ordered | Three or four bestsellers, or the category they signed up from. Repeat the code and its date. |
| 3. Why people buy here | Five days after signup, only if they have not ordered | Two or three short reviews, delivery times and the returns policy. Last reminder before the code ends. |
The tactics that matter more than the copy:
- Leave out people who subscribed at checkout. They are already buying. A first-order code that arrives after the first order is a promise you cannot keep.
- Give the code an end date about a week after the last reminder, such as 14 days after signup for the series above, and print the date in every email. With no date there is no reason to act now. A date before the last reminder turns it into a broken promise.
- Use a unique, single-use code per subscriber. One shared code can be posted on coupon sites.
- Recommend by browsing only once there is browsing. Someone who joins from a pop-up on a first visit has seen a page or two, so bestsellers or the category they signed up from fit the first emails better than “picked for you”.
- Pick the offer you can afford for everyone. It goes to every new subscriber, including people who would have bought anyway. A default to start from: 10% off the first order, no minimum spend, sale items excluded so two discounts never stack. Whatever you choose, state the conditions on the form, because the code has to do what the form promised.
How to measure a welcome email without opens
Opens cannot tell you who read the email: Apple Mail can load every image for its users, read or not, which counts as an open (the list-cleaning guide has the detail). Measure these instead:
- The action it asks for, within a week. Setup finished, first order, first booking. Count it per signup form, because the form an address came from predicts its quality better than anything in the email does.
- Clicks against your own campaigns. In GetResponse’s 2024 report (4.4 billion messages its customers sent in 2023), welcome emails had a 16.60% click-through rate, against 3.25% for all emails, the average its summary gives. The report does not say how it counts a click-through, so compare the gap with your own, not the numbers.[3] A welcome goes to people who signed up minutes ago, so yours should beat your newsletter clearly. If it is close, rewrite its subject line and main link first. Some company mail filters click every link to scan it, so leave out clicks that arrive seconds after delivery (the list-cleaning guide shows how to spot them).
- Complaints and hard bounces per form. One form with far more of either than the others is either misleading people or being filled in by bots. Across the whole flow, keep complaints under the limits in the spam complaint rate guide.
- A holdout, if you want proof. Hold the welcome back from a random 10% of new signups, then compare their first-order or activation rate with everyone else’s. If the form promised a code, send that group the code alone and hold back only the rest. It is the only way to know whether the welcome causes the result, or just goes to people who were going to act anyway. It needs thousands of signups before the result means anything: telling a 20% first-order rate from 25% takes about 600 people in the held-back group, so about 6,000 signups (standard sample-size arithmetic, at 95% confidence and 80% power). Run it until you get there; with fewer, rely on the measures above.
Which onboarding emails are transactional?
An account notice is transactional: verify your address, the login link, set a password, an order or booking confirmation. A newsletter welcome, a discount and a welcome series are marketing. The FTC decides a mixed message by its primary purpose, judged partly by the subject line and by whether the account content comes first.[6] An activation nudge (“connect your domain to finish setup”) sits on the line. Once it mentions an upgrade or an offer, treat it as marketing. When in doubt, send it as marketing with an unsubscribe: a lost nudge costs less than a misfiled one. The full test is in transactional vs marketing email.
Building the welcome in Rasket
If all you send is a monthly newsletter, the welcome built into your newsletter tool is enough. This section is for teams whose product or store already sends mail through Rasket. In Rasket the welcome is an automation: a trigger, then send, delay and condition steps.[12] Its emails carry the unsubscribe header for you, as campaigns do.[13] Without code, publish a Rasket sign-up form, through the app embed on Shopify or one pasted script tag elsewhere,[20] and start the automation on Topic subscribed, which a form signup sets off.
For a Shopify store
Connect the store and add the ready-made flow Welcome with a discount, which greets a new subscriber to the store’s newsletter with a discount. In the email editor, the Discount block creates a unique code in your store for each person, and the Recommended block shows your best sellers. It can show what that person looked at instead, but on a first visit that is little, so the flow starts on best sellers.[19] The flow skips anyone who has already ordered or is in the middle of a checkout, and an order ends it, so a checkout signup never gets a first-order code. It is added turned off with draft emails: read them and check the offer, then turn it on.
For developers: from your own signup code
The safest trigger is Contact created. When your signup code adds the contact with POST /contacts, a repeat call for the same address updates the contact instead of creating a second one, so a retried request cannot welcome anyone twice. The flip side: someone who is already a contact, such as a customer who subscribes later, fires contact.updated instead and gets no welcome. If that can happen, start the welcome on Topic subscribed.[14] An import sends no contact.created event, so importing a list welcomes nobody.[15] The API refuses a request with no User-Agent header, so name your app in it.
curl -X POST https://api.rasket.com/contacts \
-H "Authorization: Bearer $RASKET_API_KEY" \
-H "User-Agent: acme-signup/1.0" \
-H "Content-Type: application/json" \
-d '{"email": "maya@example.com", "first_name": "Maya", "properties": {"setup_complete": false}}'A custom event, such as user.signed_up through POST /events/send, works too. It takes no idempotency key, so two calls are two events and two welcomes.[16] Retry it only when the connection failed before the request was sent; a call that timed out may already have counted. Code that retries on timeouts should use the Contact created trigger above instead. Give the trigger an exit event, such as a setup.completed event your product sends, and the run ends the moment the person finishes setup.[12]
Names in the email
Campaign and automation emails take {{{FIRST_NAME|there}}} (“there” when the contact has no first name) and {{{PREFERENCES_URL}}} for the topic choice, filled from the contact.[17] A template your code sends with POST /emails takes {{first_name}}, filled from your request. Both are HTML-escaped in the body; the triple braces do not mean raw HTML, as they would in Handlebars.[18]
Frequently asked questions
Should a welcome email use images, or be plain text?
Either works, as long as the promise, any code and the main link are in live text rather than inside a picture. Some mail apps are set not to load images, and Litmus notes that some inboxes build the preview line from image alt text. If the plain-text version still makes sense on its own, the design is fine.
How long should a welcome email be?
Aim for under a hundred words, like the examples in this guide, which still fit the address, the promise, the main link and the way out. If yours needs more than a phone screen before the main link, move the extra material into the second email of the sequence, where it gets its own job, rather than pushing the link down.
Should I greet new subscribers by their first name?
Only if you already ask for it on the form, since every extra field is one more thing to fill in before joining. If you use it, set a fallback, so a contact with no name reads 'Hi there' rather than 'Hi ,', and keep the name out of the subject line, where a blank one shows first.
Can I send a welcome email to contacts I imported from another tool?
Not as if they had just signed up. A welcome assumes the person gave you their address minutes ago, and an imported contact may have forgotten you. Send them a short note instead: who you are, why they are hearing from you, what you will send and how to leave.
Should the welcome come from a person's name or the company's?
Either, as long as it is the name later mail will use, because readers recognise the sender before the subject. A person's name, such as 'Sam at Northside Tea', works when that person, or someone, really reads the replies. Changing the From name after the welcome undoes the recognition it built.
Should I resend the welcome email to people who did not open it?
No. Open data cannot tell you who saw it, and an identical second copy invites spam reports from people who saw the first and chose not to act. Let the next email in the sequence be the second chance. It should have a different subject and a different job, such as showing bestsellers or the setup step.
Is double opt-in worth the subscribers it loses?
Usually. It loses the people who never click the confirmation link, and some of them were real. In return it keeps out typos, fake signups and strangers' addresses, which bring bounces and spam complaints. If you keep single opt-in, show the submitted address on the page after the form, so a person who mistyped it can see the mistake and sign up again: the welcome itself goes to the mistyped address.
Sources
20 primary sources, each read on the date shown.
See all sourcesHide sources
- 1.M3AAWG Sender Best Common Practices, Version 4.0 (updated August 2026) — M3AAWG,
- 2.Sender Requirements & Recommendations — Yahoo Sender Hub,
- 3.Email Marketing Benchmarks (2024 report, 2023 data) — GetResponse,
- 4.Email sender guidelines — Gmail Help, Google,
- 5.RFC 7208: Sender Policy Framework (SPF), section 3.2 (April 2014) — IETF,
- 6.CAN-SPAM Act: A Compliance Guide for Business — U.S. Federal Trade Commission,
- 7.How do we comply with the PECR electronic mail marketing rules? — Information Commissioner's Office,
- 8.Guidelines 05/2020 on consent under Regulation 2016/679, version 1.1 — European Data Protection Board,
- 9.The Ultimate Guide to Email Preview Text (8 November 2024) — Litmus,
- 10.Happy Holidays, Marketers: Gmail Teaches Consumers to Shop from the Inbox — Return Path, press release on “The Tabbed Inbox” study (20 November 2013),
- 11.Organize your emails into categories — Gmail Help, Google,
- 12.Automations (API reference) — Rasket,
- 13.Sending newsletters — Rasket,
- 14.Contacts (API reference) — Rasket,
- 15.Events — Rasket,
- 16.Custom events (API reference) — Rasket,
- 17.Campaigns (API reference) — Rasket,
- 18.Templates (API reference) — Rasket,
- 19.Shopify — Rasket,
- 20.Sign-up forms on your site — Rasket,
Keep reading
- GuideHow to get out of the Gmail Promotions tabWhy Gmail files your email under Promotions, what it costs you, and the steps that move mail toward Primary, with an example welcome-email line to copy.
- GuideEmail list cleaning: sunset inactive subscribersDefine inactive subscribers when Apple inflates opens, spot scanner clicks, run a re-engagement flow, and sunset the rest without blocking their receipts.
- GuideHow to warm up a new domain or IP addressHow to warm up a new domain or IP: what Gmail, Microsoft, Yahoo and M3AAWG publish, schedules from 300 contacts to 50,000 a day, and when to slow down.
- FeatureAutomationsWorkflows that run per contact: start on a custom event or a segment change, wait, branch, and send. Every run pins a version and is inspectable.
- DocsSign-up formsPop-ups and embedded forms on your site, and the rules that pick one.
- GlossaryDouble opt-inDouble opt-in is asking somebody to confirm a subscription by clicking a link in an email before you add them to a list. The first step is the form they filled in; the second proves the address exists and belongs to the person who typed it. It costs you some signups and buys you a list that bounces less and complains less.
Written by the Rasket Team. First published ; last checked against its sources . See something out of date? How we correct guides.