Automated Client Onboarding System with Notion, Email & CRM Integration
Categories
Created by
ShShelly-Ann DavyLast edited 58 days ago
Graceful Client Onboarding Concierge — Pro
A warm, reliable onboarding system for small businesses and studios. Captures a form submission via webhook, creates a Client record in Notion, sends a concierge-style welcome email (with scheduler + optional contract link), optionally pings the owner on Telegram, mirrors the lead to Airtable/HubSpot, places a temporary Google Calendar hold, and includes a double opt-in confirmation link.
Made for: coaches, designers, boutique agencies, e-commerce and service providers who want consistent follow-up without manual busywork.
What it does (flow)
- Trigger: Form ➜
POST /client-intake(or Manual Trigger for instant demo) - Normalize & Score: Map fields, auto-generate
optInToken, computescoreandtier - Create in Notion:
Clientspage (Name, Email, Package, Notes, Status, Score, Tier, OptInToken, Consent=false) - Welcome Email: industry-tuned copy + scheduler link (+ contract link for Growth/Pro/Custom packages)
- Owner Notify (optional): Telegram ping with tier + score
- CRM Mirrors (optional): Create Airtable row and/or HubSpot contact
- Calendar Hold (optional): 30-min “Intro Hold” event (e.g., now + 48h)
- Double Opt-In:
/optin-confirm?token=...&email=...sets Consent=true & Status=Confirmed in Notion - Error Handling: On failure, send an email to the owner
flowchart TD
A[Form → Webhook /client-intake] --> B[Map Intake + Score Lead]
B --> C[Notion: Create Client]
B --> D[Build Welcome Email]
D --> E[Email: Send Welcome]
D --> F{Optional actions}
F -->|Telegram| G[Telegram: Notify Owner]
F -->|Airtable| H[Airtable: Create Row]
F -->|HubSpot| I[HubSpot: Create Contact]
F -->|Calendar Hold| J[Google Calendar: Create Hold]
K[GET /optin-confirm] --> L[Find Notion by OptInToken] --> M[Update: Consent=true, Status=Confirmed]
ER[Error Trigger] --> EH[Email Owner]
Prerequisites
- Notion database
Clientswith properties:
Name (title),Email (email),Package (select),Notes (rich text),Status (select),Score (number),Tier (select),OptInToken (text),Consent (checkbox)
(CSV header provided in the Sticky note on canvas.) - Email (SMTP or Gmail OAuth)
- Optional: Telegram Bot + Chat ID, Airtable (Base ID + Table), HubSpot (Contacts), Google Calendar (Calendar ID)
Configuration (Set these in Set: User Config)
NOTION_DB_ID = your Notion Clients DB ID
FROM_EMAIL = sender address for welcome email
OWNER_EMAIL = where error notifications go
SCHEDULER_URL = booking link (Calendly, Once, etc.)
BASE_URL = your public n8n domain (for opt-in link)
CONTRACT_BASE_URL = (optional) proposal/contract URL base
ENABLE_TELEGRAM = true|false
TELEGRAM_CHAT_ID = (if enabled)
ENABLE_AIRTABLE = true|false
AIRTABLE_BASE_ID = (if enabled)
AIRTABLE_TABLE = (if enabled)
ENABLE_HUBSPOT = true|false
ENABLE_CAL_HOLD = true|false
CALENDAR_ID = "primary" or calendar ID
HOLD_HOURS_FROM_NOW = number of hours (default 48)
INDUSTRY = coaching | design_studio | ecommerce | services
Credentials: Attach in node credentials panels (no secrets in JSON).
How to use
-
Import the workflow JSON.
-
Open Set: User Config and fill required values (see above).
-
Attach credentials: Notion + Email; optional Telegram/Airtable/HubSpot/Google Calendar.
-
Run Manual Trigger to simulate an intake and verify:
- Notion page created
- Welcome email received
- Optional Telegram/CRM/Calendar actions
-
Switch your form to the Production Webhook URL shown in the Client Intake Webhook node.
Sample JSON (for testing the live webhook):
{"name":"Ava Laurent","email":"[email protected]","package":"Growth","message":"Excited to begin!"}
Double opt-in: The welcome email includes a link like
https://YOUR-N8N-DOMAIN/webhook/optin-confirm?token=...&email=...
Clicking it sets Consent=true and Status=Confirmed on the Notion record.
Industry-tuned welcome copy
Set INDUSTRY to control phrasing automatically:
coaching– gentle goals/blocks framingdesign_studio– asset handoff + milestone languageecommerce– store link + quick-win focusservices– general service language
Submission compliance
- ✅ Manual Trigger path for instant demo
- ✅ Markdown sticky notes with clear H2 sections (README, Prereqs + CSV, Setup, Testing, Compliance, Changelog)
- ✅ No hardcoded API keys (credentials only)
- ✅ Timezone-safe ISO times for calendar hold
- ✅ Clear placeholders and copy-paste CSV headers included
Troubleshooting (quick)
- No email: attach Email creds; ensure
FROM_EMAILis allowed by your provider. - No Notion page: verify
NOTION_DB_IDand property names; check Notion permissions. - Webhook issues: ensure your form sends JSON; adapt mapping for form-encoded payloads.
- Opt-in link fails:
BASE_URLmust be your public n8n domain; workflow must be active. - Calendar hold not created: set
ENABLE_CAL_HOLD=true, attach Google Calendar creds, confirmCALENDAR_ID.
Tags: onboarding, notion, email, crm, telegram, airtable, hubspot, calendar, double-opt-in, small business, concierge, women-led brands
Version: v3 (see Changelog sticky on canvas)
You may also like
New to n8n?
Need help building new n8n workflows? Process automation for you or your company will save you time and money, and it's completely free!





