Skip to main content
First impressions set the tone for the whole customer relationship. This recipe gives every new signup a three-email welcome sequence over their first week — friendly, useful, and completely automated.
Before you start: make sure you’ve set up user authentication and configured your email service.

The Flow at a Glance

Day 0

Immediate welcome + 1 CTA

Day 2

Tips for getting value

Day 6

Nudge + resources

Step 1: Create the Workflow

1

Open Workflows

In your project, go to Workflows > New Workflow. Name it Welcome Sequence.
2

Add a Database trigger

Click Add Trigger > Database. Listen for new rows in auth.users or your profiles table — whichever represents a finished signup in your app.
If users must confirm their email before they “count” as signed up, trigger on the table that tracks confirmed users, not the raw auth.users row created on first submit.
3

Check for a template

Before building from scratch, browse the template library — if you see Onboarding - Welcome Sequence, start from that and customize. Much faster than wiring each step manually.

Step 2: Email 1 — Immediate Welcome

1

Add a Send Email action

Click + Add Action > Send Email.
2

Configure the email

  • To: {{trigger.email}}
  • Subject: Welcome to Acme, {{trigger.name}}!
  • Body: Short. Introduce your product in 2-3 sentences. One clear CTA (e.g., “Complete your profile” or “Import your first contact”). No links to the pricing page, no feature walls of text.
3

Personalize sender

Send from a human name if possible (Abe from Acme <abe@acme.com>) rather than noreply@. Response rates are meaningfully higher.

Step 3: Email 2 — Day 2 Tip

1

Add a Delay action

Click + Add Action > Delay. Set to 2 days.
2

Add a second Send Email action

  • Subject: Quick tip to get the most out of Acme
  • Body: One specific, actionable tip. Link to a 60-second tutorial video or a short doc. No feature dump.

Step 4: Email 3 — Day 6 Nudge

1

Add another Delay action

Set to 4 days (so total is 6 days since signup).
2

Add a third Send Email action

  • Subject: How's it going? Here's what you might need
  • Body: Check in tone. Links to docs, pricing, and a “book a demo” CTA for users still on the fence. Leave an open-ended ask like “Reply if you’re stuck on anything — I read every response.”

Step 5: Save and Enable

Click Save, then toggle Enabled in the top right. Workflows only fire when enabled.

Personalization Tokens

Use {{trigger.fieldName}} to pull any column from the signup row:
Hey {{trigger.name}},

Thanks for signing up from {{trigger.signup_source || 'our website'}}. 
I noticed you picked the {{trigger.plan}} plan...
Use the || operator to provide fallbacks when a field is empty.

Conditional Branching

Smart sequences skip or swap emails based on user behavior. For example: if a user has completed their profile by day 2, send a “Congrats on your first steps” email instead of the generic tip.
1

Add a Condition step

After the Day 2 delay, click + Add Action > Condition.
2

Set the condition

Example: {{trigger.profile_completed}} == true
3

Configure both branches

  • If true: Send the “Congrats” email
  • If false: Send the standard tip email

Tracking Effectiveness

Once the sequence is running, measure what’s actually working.
  • Open rate — subject line performance
  • Click rate — body content performance
  • Reply rate — genuine engagement signal
See Email Webhooks to pipe open/click events into your analytics or CRM.
Keep subject lines under 50 characters and avoid emojis in B2B contexts. Send yourself a test sequence on a burner email account before enabling — you’ll catch rendering issues and timing mistakes that dashboards won’t show.
Always include an unsubscribe link in every email. See Email Suppressions to handle unsubscribes properly — sending to someone who opted out can trigger spam complaints and get your sender domain blacklisted.

Verify It Worked

Sign up with a test email address. Confirm:
  1. Email 1 arrives within 1-2 minutes
  2. Email 2 arrives on day 2
  3. Email 3 arrives on day 6
  4. All three render correctly on desktop and mobile
  5. The unsubscribe link works
  6. Personalization tokens render (no literal {{trigger.name}} in the final email)

Troubleshooting

Check that your email service is configured and the sender domain is verified. Go to Settings > Email and confirm the green checkmark. Unverified sender domains will cause silent failures — the workflow runs but nothing reaches inboxes.
Delay actions use the workflow runner schedule. If runs are backed up, delays can stretch. Check Workflows > Runs for stuck executions. For precise timing, use scheduled triggers instead of delays on very long sequences.
Ensure open tracking is enabled in your email provider settings. Some email clients (especially Apple Mail with privacy protection) suppress tracking pixels — expect open rates to understate real engagement.
If people unsubscribe and still get follow-up emails, the workflow isn’t checking the suppression list before sending. Add a Check Suppressions step before each Send Email action, or use the provider’s built-in suppression handling. See Email Suppressions.
The trigger payload doesn’t contain that field. Open the workflow’s Runs tab, click a run, and inspect the trigger data. If name is missing, either update your signup form to capture it, or add a fallback with {{trigger.name || 'there'}}.

What’s Next?

Workflows Basics

How triggers, actions, and runs fit together

Email Suppressions

Handle unsubscribes and bounces properly