Every signup-related email in one place, rendered exactly as it will appear in an inbox. Nineteen templates: four account emails the app sends, and the fifteen-email lifecycle sequence. Click any one to see it full size.
Download all 20 templates (.zip) Download the PDF
Sent because the user did something — signed up, asked to reset a password, was invited. Clean and restrained on purpose: one clear action, no marketing, no images, and no unsubscribe link.
They are exempt from opt-out requirements under CASL and CAN-SPAM precisely because they are transactional. Adding an unsubscribe link to a password reset does not make it safer — it invites someone to opt out of being able to recover their own account.
Trial activation, paid onboarding and win-back. These
are commercial messages, so an unsubscribe link is legally required
(CASL in Canada, CAN-SPAM in the US). All fifteen carry
{{unsubscribe_url}} and a postal address — both still need wiring on the
sending side.
Four things need to come from our side. None of them are code.
Fifteen marketing emails, and only one branch in the whole set. Everything before the trial end is a plain clock: days 0, 1, 3, 7, 8, 14 and 21 after signup, with no conditions on what the user did. At the trial end it forks once — paid, or not paid — and each branch is a clock again.
| Sequence | Starts when | Emails | Then |
|---|---|---|---|
| Signup | Account created | d0_welcome, d1_nudge, d3_send_to_client, d5_import, d7_save, d8_aha, d14_stuck, d21_upgrade | Days 0, 1, 3, 7, 8, 14, 21 — unconditional |
| Trial ending | Day 28 after signup | d28_ending | Fires regardless of activity |
| Trial over — paid | Payment clears | paid_d0, paid_d7, paid_d14, paid_d30 | Days 1, 7, 14, 30 of paid |
| Trial over — unpaid | Trial lapses | post_d29, post_d45, post_d60 | Days 29, 45, 60 after signup |
Nothing waits on an event. A user who signs up and does nothing still gets every email on the signup track — which is the point: the sequence does not depend on the product being instrumented.
Fifteen marketing emails send on a day offset — day 0, 1, 3, 7, 8, 14, 21, then the trial end. A clock cannot see what the reader has done. Five of them were written as though it could, and every one of those claims is false for the people who did not do the thing:
| Said | Says now | |
|---|---|---|
trial_d1_nudge | “Still empty in there?” / you haven't created a project yet | your first project is one step away / if you haven't started yet |
trial_d3_send_to_client | “You've got a project.” / you've created your first project | the step most designers don't reach until week two |
trial_d8_aha | “Your client just opened it” + an activity feed naming a client | “The moment it lands” + the feed is labelled an example |
trial_d14_stuck | “things have gone quiet” | “If it hasn't clicked yet, it's usually one of two things” |
trial_d21_upgrade | you've been using it three weeks + a summary card: 3 projects, 14 specs, 6 documents | three weeks in + a card of facts true for everyone: 9 days left, $49/month, no contract |
Two were worse than phrasing. trial_d8_aha carried a
notification reading “[Client name] just opened what you sent” — a
fabricated event, presented as the reader's own activity. trial_d21_upgrade carried a
3 projects / 14 specs / 6 documents summary — invented numbers presented as the
reader's own record of work. A day offset cannot supply either.
Also corrected: the invite email said a named person had invited you, and
every marketing email opened with the literal text Hi [First Name],. Neither can be
filled, because signup asks for an email, a password and a studio name and nothing else.
Hi [First Name],, never wired to a merge field,
and the invite said {inviter_name} invited you against a value that cannot be
supplied. The greeting is now Hi, and the invitation reads
“You've been invited to join {studio_name}.”Two emails still carry copy written for a trigger and are flagged on their tiles below.
| Batch | What it is | Count | Why it is in this position |
|---|---|---|---|
| Batch 1 | Core account emails | 4 | Ship first. The product cannot operate without these. |
| Batch 2 | Signup track - plain days from signup | 8 | Fires on the calendar, not on what the user did. Days 0, 1, 3, 5, 7, 8, 14 and 21 after signup. |
| Batch 3 | Trial ending, and the first month of paid | 5 | The decision point, then onboarding for the people who converted. |
| Batch 4 | Trial over, unpaid | 3 | Win-back for the people the trial did not convert. |
Nothing after batch 4 depends on this: the batches are a build order, not a gate. Each batch can be wired and tested on its own.
Ship first. The product cannot operate without these.
Transactional
Welcome to Net Atelier
On signup
View full size →
Transactional
Reset your password
On request
View full size →
Transactional
Your password was changed
On change
View full size →
Transactional
You've been invited to join {{studio_name}}
On invite
View full size →Fires on the calendar, not on what the user did. Days 0, 1, 3, 5, 7, 8, 14 and 21 after signup.
Marketing
One thing to do right now
Day 0 — at signup
View full size →
Marketing
Your first project is one step away
Day 1 after signup
View full size →
Marketing
The part most designers leave till week two
Day 3 after signup
View full size →
Marketing
You don't have to start from scratch
Day 5 after signup
View full size →
Marketing
The thing that usually gets in the way
Day 7 after signup
View full size →
Marketing
The moment it lands
Day 8 after signup
View full size →
Marketing
Two weeks in
Day 14 after signup
View full size →
Marketing
Nine days left on your trial
Day 21 after signup
View full size →The decision point, then onboarding for the people who converted.
Marketing
Your trial ends in 3 days
Day 28 after signup — 2 days left
View full size →
Marketing
You're in.
Payment clears — day 1 of paid
View full size →
Marketing
One thing worth setting up this week
Day 7 of paid
View full size →
Marketing
Are your clients seeing your work the right way?
Day 14 of paid
View full size →
Marketing
Your first month. Here's what I'd look at.
Day 30 of paid
View full size →Win-back for the people the trial did not convert.
Marketing
Your trial ended yesterday
Day 29 — trial just ended, no payment
View full size →
Marketing
A question, not a pitch
Day 45 after signup
View full size →
Marketing
Last one from me
Day 60 after signup
View full size →| Thing | Value | Why |
|---|---|---|
| Format | HTML + Handlebars {{variable}} |
Pastes straight into Mailtrap's Code Editor. No build step. |
| Width | 600px table | The one width Outlook, Gmail and Apple Mail agree on. |
| Size | 7–10KB each | Gmail clips anything over 102KB and hides the rest. |
| CSS | Inline on every element | Gmail strips <style> in the head. |
| Headings | Playfair Display 27px / 34px | Falls back to Georgia where web fonts are stripped. |
| Body | Plus Jakarta Sans 15px / 24px | Falls back to the system sans. |
| Buttons | 48px tall, 15px label | VML block for Outlook, which ignores padding on links. |