Welcome Email & Customer On-boarding Workflows demo

n8n Automation — Workflow Documentation
n8n Automation

Workflow Demo Documentation

Two end-to-end automation workflows — from form submission to personalized email delivery — built with n8n, Resend, and custom routing logic.

Workflow 1: Form → Welcome Email (Resend)
Workflow 2: Customer Onboarding (Switch / IF / Merge / Filter)
● Workflow 1

Form → Welcome Email Demo

A customer fills a registration form and immediately receives a personalized welcome email.

📌 Business Purpose
  • A customer fills a registration form and immediately receives a personalized welcome email.
  • Tool used for email delivery: Resend (free tier — no Gmail required).
  • Estimated setup time: 10–15 minutes.
📋 n8n Form Trigger
📧 Resend Node
Prerequisites
  • n8n instance running (cloud or self-hosted)
  • A free Resend account — sign up at resend.com
  • A working email inbox to receive the test welcome email
Steps
STEP 1 Set Up Resend Account & Get API Key
  • Go to resend.com and click Sign Up — create a free account.
  • After login, click API Keys in the left sidebar.
  • Click “Create API Key” and give it a name (e.g., n8n-demo).
  • Copy the API key immediately — it is shown only once. Save it securely.
⚠️ Important Free Resend account allows sending from: onboarding@resend.dev
This is sufficient for demo purposes. No domain verification needed.
STEP 2 Create a New Workflow in n8n
  • Open your n8n instance → Click “New Workflow”.
  • Give it a name: “Customer Welcome Email Demo”.
STEP 3 Add & Configure the Form Trigger Node
  • Click “+” → Search “n8n Form Trigger” → Select it.
  • Configure the following form fields:
Field NameField Type
Full NameText
EmailEmail
Phone (optional)Text
  • Set Form Title to: “Customer Registration”.
  • Click “Test Step” — n8n will generate a form URL. Copy and save this URL.
STEP 4 Add & Configure the Resend Node
  • Click “+” after the Form Trigger → Search “Resend” → Select it.
  • “Create New Credential” → Paste your API Key from Step 1 → Save.
  • Configure the Resend node with the following values:
FieldValue to Enter
Fromonboarding@resend.dev
To{{ $json.email }}
SubjectWelcome to Our Service!
Email TypeHTML
BodyPaste HTML from Step 5 below
STEP 5 Write the Welcome Email Body (HTML)

Paste the following HTML into the Body field of the Resend node:

<h2>Welcome, {{ $json['Full Name'] }}! 🎉</h2>
<p>Thank you for registering with us.</p>
<p>We are excited to have you on board.</p>
<br/>
<p>Best Regards,<br/><strong>Your Company Team</strong></p>
STEP 6 Test the Workflow
  • Click “Test Workflow” in n8n (top right area).
  • Open the Form URL (from Step 3) in a browser tab.
  • Fill in all the form fields with test data and click Submit.
  • Return to n8n — you should see green checkmarks on all nodes. ✅
  • Check the email inbox — the welcome email should arrive within seconds. 📧
STEP 7 Activate the Workflow (Go Live)
  • Once the test is successful, toggle the “Active” switch at the top right.
  • The workflow is now live and will run automatically on every form submission.
✅ Workflow Active Your automation is live. Every new form submission will instantly trigger a personalized welcome email.

Workflow 1 — Summary Flow

NodePurpose
Form TriggerDisplays the registration form to the customer
Resend NodeSends personalized welcome email to the customer
● Workflow 2

Customer Onboarding Workflow

Eligibility check, plan routing, country filtering, and personalized email delivery — all automated.

📌 Business Purpose
  • A customer fills a detailed registration form.
  • The system checks eligibility (age), routes by plan type (Basic / Pro / Enterprise).
  • Filters restricted countries, and sends a fully personalized welcome email.
  • Nodes used: Form Trigger, IF, Switch, Edit Fields (Set) ×3, Merge, Filter, Resend ×2.
📋 Form Trigger
🔀 IF (Age ≥ 18)
⚡ Switch (Plan)
✏️ Edit Fields ×3
🔗 Merge
🚦 Filter
📧 Resend
Complete Workflow Architecture
NodePurpose
Form TriggerCollects customer data (name, email, age, plan, country)
IF NodeChecks if customer age is 18 or above
Switch NodeRoutes flow based on selected plan type
Edit Fields — BasicTags data with Basic plan details
Edit Fields — ProTags data with Pro plan details
Edit Fields — EnterpriseTags data with Enterprise plan details
Merge NodeCombines all 3 plan branches back into one flow
Filter NodeBlocks customers from restricted countries
Resend — WelcomeSends personalized welcome email (eligible customers)
Resend — RejectionSends rejection email (under-18 customers)
Prerequisites
  • n8n instance running (same as Workflow 1)
  • Resend API Key already created (from Workflow 1 — reuse it)
Steps
STEP 1 Update the Form Trigger Node

Open the existing Form Trigger node and add the following new fields:

Field NameField Type
Full NameText
EmailEmail
AgeNumber
Plan TypeDropdown
CountryText

For the Plan Type dropdown, add these options:

  • Basic
  • Pro
  • Enterprise
STEP 2 Add IF Node — Age Eligibility Check
  • Click “+” after Form Trigger → Search “IF” → Select it.
  • Configure the condition as follows:
SettingValue
Value 1{{ $json.Age }}
ConditionGreater Than or Equal To
Value 218

This creates two output branches:

  • TRUE branch → Customer is 18+ → proceed to Switch node
  • FALSE branch → Customer is underage → send Rejection Email

On the FALSE branch — Add a Resend Node:

FieldValue
Fromonboarding@resend.dev
To{{ $json.email }}
SubjectRegistration Not Approved
Body (HTML)<h2>Sorry, {{ $json['Full Name'] }}</h2><p>You must be 18 or older to register.</p>
STEP 3 Add Switch Node — Route by Plan Type
  • Click “+” after IF (TRUE branch) → Search “Switch” → Select it.
  • Set “Value” to: {{ $json['Plan Type'] }}
  • Add 3 routing rules as follows:
RuleConditionValueOutput
Rule 1Equal ToBasicOutput 1
Rule 2Equal ToProOutput 2
Rule 3Equal ToEnterpriseOutput 3
STEP 4 Add Edit Fields (Set) Nodes — One Per Plan

Add one Edit Fields node after each Switch output. Search for Edit Fields (Set).

⚠️ Critical Setting In each Edit Fields node, enable: “Include Other Input Fields” → ON
This ensures the original form data (Name, Email, Age etc.) is not lost.

🟢 Basic Plan — Output 1

plan_label: Basic Plan 🟢
support: Community Support
price: $9/month

🔵 Pro Plan — Output 2

plan_label: Pro Plan 🔵
support: Email Support
price: $29/month

🟣 Enterprise Plan — Output 3

plan_label: Enterprise Plan 🟣
support: Dedicated Account Manager
price: Custom Pricing
STEP 5 Add Merge Node — Combine All Plan Branches
  • Click “+” → Search “Merge” → Select it.
  • Set Mode to: “Append”.
  • Connect all 3 Edit Fields node outputs into this single Merge node.
  • The Merge node will combine all three branches into one flow.
💡 Why Merge? After the Switch node splits into 3 paths, we need to bring them back together into a single flow before sending the email. The Merge node does exactly that.
STEP 6 Add Filter Node — Block Restricted Countries
  • Click “+” after Merge → Search “Filter” → Select it.
  • Configure the filter condition:
SettingValue
Value 1{{ $json.Country }}
ConditionIs Not Equal To
Value 2Restricted

Only records that pass this filter will continue to the email node. For the demo, type Restricted in the Country field to test the block.

💡 For Production Replace ‘Restricted’ with actual country names using OR conditions:
Country is not equal to Cuba  OR  Country is not equal to Iran  etc.
STEP 7 Add Resend Node — Send Personalized Welcome Email
  • Click “+” after Filter → Search “Resend” → Select it.
  • Use the existing Resend credential (already set up in Workflow 1).
  • Configure the node:
FieldValue
Fromonboarding@resend.dev
To{{ $json.email }}
SubjectWelcome to Our Service! 🎉
Email TypeHTML

Paste the following HTML into the Body field:

<h2>Welcome, {{ $json['Full Name'] }}! 🎉</h2>
<p>You have successfully registered for the
  <strong>{{ $json.plan_label }}</strong>.</p>

<table style='border-collapse:collapse; width:100%;'>
  <tr>
    <td style='padding:8px; border:1px solid #ddd;'><strong>Plan</strong></td>
    <td style='padding:8px; border:1px solid #ddd;'>{{ $json.plan_label }}</td>
  </tr>
  <tr>
    <td style='padding:8px; border:1px solid #ddd;'><strong>Support</strong></td>
    <td style='padding:8px; border:1px solid #ddd;'>{{ $json.support }}</td>
  </tr>
  <tr>
    <td style='padding:8px; border:1px solid #ddd;'><strong>Pricing</strong></td>
    <td style='padding:8px; border:1px solid #ddd;'>{{ $json.price }}</td>
  </tr>
</table>

<br/>
<p>We are thrilled to have you on board!</p>
<p>Best Regards,<br/><strong>Your Company Team</strong></p>
STEP 8 Test All Scenarios Before the Demo

Run the following 4 test scenarios to verify everything works:

Test CaseAgePlanCountryExpected Result
Happy Path ✅ 25ProIndia Welcome Pro email received
Underage ❌ 16BasicIndia Rejection email received
Enterprise ✅ 30EnterpriseUSA Welcome Enterprise email received
Blocked Country ❌ 28ProRestricted Filtered out — no email sent
STEP 9 Activate the Workflow
  • Once all 4 test scenarios pass successfully:
  • Toggle the “Active” switch in the top right corner of n8n.
  • The workflow is now live. ✅
✅ Workflow 2 Active Your full onboarding pipeline is running. Every new registration is automatically checked, routed, filtered, and emailed.

Workflow 2 — Complete Node Sequence

#Node NameNode TypePurpose
1Customer RegistrationForm TriggerCollects name, email, age, plan, country
2Age CheckIFAllows only age ≥ 18 to proceed
3Plan RouterSwitchRoutes to correct plan branch
4Set Basic DetailsEdit FieldsAdds plan_label, support, price for Basic
5Set Pro DetailsEdit FieldsAdds plan_label, support, price for Pro
6Set Enterprise DetailsEdit FieldsAdds plan_label, support, price for Enterprise
7Combine PlansMerge (Append)Merges all 3 plan branches into one
8Country FilterFilterBlocks customers from restricted countries
9Send Welcome EmailResendSends personalized email to eligible customers
10Send Rejection EmailResendSends rejection email to under-18 customers
Built with n8n  ·  Workflow Demo Documentation
Scroll to Top