This workflow corresponds to n8n.io template #4377 — we link there as the canonical source.
This workflow follows the Chainllm → Gmail recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "Sw5PooeylQVGL3EF",
"name": "21. AI Client Onboarding Agent: Auto Welcome Email Generator",
"tags": [],
"nodes": [
{
"id": "f0b2db4c-7156-4c0e-9d71-7821aca39cc1",
"name": "Error Handler",
"type": "n8n-nodes-base.errorTrigger",
"position": [
2016,
512
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b97682d0-4b84-48d8-9102-ff9e775448fb",
"name": "Execution Completed",
"type": "n8n-nodes-base.noOp",
"position": [
2112,
336
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0e492e92-b43c-4a9c-9537-d437bb54305b",
"name": "Execution Failure",
"type": "n8n-nodes-base.noOp",
"position": [
2208,
512
],
"parameters": {},
"typeVersion": 1
},
{
"id": "895a201e-fd09-4216-879d-69fb67cf8079",
"name": "Google Sheets Trigger",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
496,
160
],
"parameters": {
"event": "rowAdded",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1635870855,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19Hvti1sX6SvjP1Kj8dWFEiksiqn1FJVBoMToP2X6xBw/edit#gid=1635870855",
"cachedResultName": "Form Responses 1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "19Hvti1sX6SvjP1Kj8dWFEiksiqn1FJVBoMToP2X6xBw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/19Hvti1sX6SvjP1Kj8dWFEiksiqn1FJVBoMToP2X6xBw/edit?usp=drivesdk",
"cachedResultName": "Onboarding"
}
},
"typeVersion": 1
},
{
"id": "9cb8cf97-2881-4052-9f85-daadad468a92",
"name": "Client Data",
"type": "n8n-nodes-base.set",
"position": [
768,
160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7c333d8f-04cd-4987-9c30-4c7bc26baecb",
"name": "fields",
"type": "string",
"value": "=Name: {{ $json['Client name'] }} \nEmail: {{ $json[' email '] }}\nCompany: {{ $json[' Company Name '] }}\nService Needed: {{ $json[' Services Needed '] }}\nOther info: {{ $json[' Any other onboarding info '] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d5ea3a8d-6102-46a8-88b4-2f057195356d",
"name": "Client Checklist",
"type": "n8n-nodes-base.set",
"position": [
944,
160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c9c81e80-f2f2-436d-a6cf-48882b0f72ea",
"name": "=Checklist",
"type": "string",
"value": "=\"Checklist\": \"\n1. Account setup\n2. Welcome call scheduled\n3. Document collection\n4. Service configuration\n5. Onboarding session\n6. First milestone review"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "d73bc40d-414f-4b33-ae6c-8ed1ac296a7a",
"name": "Basic LLM Chain",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1200,
160
],
"parameters": {
"text": "=Give me an onboarding check list for an email to the client, give me only email body and don't generate extra text like \"Okay, here's an email template ...\" and start and end on new lines\nstart with:\nHi {{ $('Google Sheets Trigger').item.json['Client name'] }}, \nand end with \nBest regards,\nYour {{ $('Google Sheets Trigger').item.json[' Company Name '] }} Team\n\n:\nAlso use information from checklist and Fields below\n {{ $json.Checklist }}\n\nFields: {{ $('Client Data').item.json.fields }}",
"promptType": "define"
},
"typeVersion": 1.5
},
{
"id": "3f39f7d6-6d9b-49c4-b77c-b4c7ad7a7e1b",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1104,
448
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash"
},
"typeVersion": 1
},
{
"id": "05a2abeb-8fb8-4c8d-b744-fc43e83ee0a5",
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [
1664,
0
],
"parameters": {
"sendTo": "={{ $('Google Sheets Trigger').item.json[' email '] }}",
"message": "= {{ $json.text }}",
"options": {},
"subject": "=Welcome to Our Service, {{ $('Google Sheets Trigger').item.json['Client name'] }} "
},
"typeVersion": 2.1
},
{
"id": "d016baa7-87b1-4157-a670-369981bb94d9",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
432,
-576
],
"parameters": {
"color": 2,
"width": 228,
"height": 912,
"content": "## \ud83d\udfe2 Section 1: Trigger \u2013 Capture New Client\n\n\ud83d\udd17 **Node:** `Google Sheets Trigger`\n\n* Watches for **new rows** added to the \u201cOnboarding\u201d Google Sheet.\n* Starts the workflow whenever a new client submits the onboarding form.\n\n\ud83d\udca1 **Why useful?**\nYou never have to check the sheet manually \u2014 the workflow kicks off the moment a client signs up.\n\n\ud83d\udce9 **Example Input (from form):**\n\n* Name: *Sarah Ali*\n* Email: *[sarah@startup.com](mailto:sarah@startup.com)*\n* Company: *GreenTech Solutions*\n* Services Needed: *Branding + Website*\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "ff65fdaf-e484-4d08-b652-7a8e645dc716",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
-400
],
"parameters": {
"color": 5,
"width": 372,
"height": 736,
"content": "## \ud83d\udfe6 Section 2: Structure Client Data\n\n\ud83d\udd17 **Nodes:**\n\n* `Client Data` \u2192 Formats the raw form submission into a **clean text summary** (Name, Email, Company, Service, Extra Info).\n* `Client Checklist` \u2192 Prepares a **standard onboarding checklist** with items like:\n\n 1. Account setup\n 2. Welcome call scheduled\n 3. Document collection\n 4. Service configuration\n 5. Onboarding session\n 6. First milestone review\n\n\ud83d\udca1 **Why useful?**\nIt makes sure the AI has **all key details** + a **clear structure** before writing the email.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "f61f1b9b-be1f-4de0-a7d4-db6f51793636",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1152,
-864
],
"parameters": {
"color": 6,
"width": 324,
"height": 1200,
"content": "## \ud83d\udfe3 Section 3: AI-Generated Email\n\n\ud83d\udd17 **Nodes:**\n\n* `Basic LLM Chain` \u2192 Prompted to **write a professional onboarding email body**.\n* `Google Gemini Chat Model` \u2192 Supports the LLM chain with **Gemini 2.0 Flash** for fast generation.\n\n\ud83e\udde0 **Prompt Logic:**\n\n* Starts with:\n `Hi [Client Name],`\n* Includes personalized fields (Name, Company, Services Needed).\n* Inserts onboarding checklist steps.\n* Ends with:\n `Best regards, Your [Company Name] Team`\n\n\ud83d\udca1 **Why useful?**\nInstead of a generic welcome, each client gets a **personalized email** that feels human-written.\n\n\ud83d\udce9 **Example Output Email:**\n\n> Hi Sarah Ali,\n>\n> Welcome to GreenTech Solutions! \ud83c\udf89\n>\n> Here\u2019s your onboarding plan:\n>\n> 1. Account setup\n> 2. Welcome call scheduled\n> 3. Document collection\n> 4. Service configuration\n> 5. Onboarding session\n> 6. First milestone review\n>\n> We\u2019re excited to start working with you on Branding + Website.\n>\n> Best regards,\n> Your GreenTech Solutions Team\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "8be6a7e8-ec72-48f0-bfd7-c1849de7b51f",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1584,
-416
],
"parameters": {
"color": 4,
"width": 260,
"height": 752,
"content": "## \ud83d\udfe1 Section 4: Send Email\n\n\ud83d\udd17 **Node:** `Gmail`\n\n* Sends the AI-generated email to the client\u2019s email address.\n* Subject line:\n `Welcome to Our Service, [Client Name]`\n\n\ud83d\udca1 **Why useful?**\nNo delays \u2192 the client gets a **personalized welcome** instantly after filling the form.\n\n---"
},
"typeVersion": 1
},
{
"id": "4e414734-5364-4626-aa48-0704c33483ed",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1952,
-16
],
"parameters": {
"color": 3,
"width": 436,
"height": 656,
"content": "## \ud83d\udd34 Section 5: Error Handling\n\n\ud83d\udd17 **Nodes:**\n\n* `Error Handler` \u2192 Listens for any errors during execution.\n* `Execution Failure` \u2192 Logs failed runs.\n* `Execution Completed` \u2192 Confirms successful runs.\n\n\ud83d\udca1 **Why useful?**\nEnsures **nothing gets stuck silently** \u2014 you\u2019ll always know if something fails.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "8cd3be40-13e5-4534-b68d-87ef3e1ce422",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1408,
-896
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "aaf94e5d-57e1-4403-9eec-d7f9740cb841",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1408,
-560
],
"parameters": {
"color": 4,
"width": 1289,
"height": 3166,
"content": "# AI Client Onboarding Agent: Auto Welcome Email Generator\n\n**Subtitle:** From Form Response to Personalized Welcome Email\n\n---\n\n### \ud83c\udf0d Overview\n\nThis workflow automates the **client onboarding process**.\nWhen a new client fills in the **Google Form**, their data flows into Google Sheets \u2192 gets structured \u2192 an **AI model (Gemini)** generates a **personalized onboarding email** \u2192 and finally, Gmail sends it directly to the client.\n\nThink of it as your **automated client success assistant**.\n\n---\n\n## \ud83d\udfe2 Section 1: Trigger \u2013 Capture New Client\n\n\ud83d\udd17 **Node:** `Google Sheets Trigger`\n\n* Watches for **new rows** added to the \u201cOnboarding\u201d Google Sheet.\n* Starts the workflow whenever a new client submits the onboarding form.\n\n\ud83d\udca1 **Why useful?**\nYou never have to check the sheet manually \u2014 the workflow kicks off the moment a client signs up.\n\n\ud83d\udce9 **Example Input (from form):**\n\n* Name: *Sarah Ali*\n* Email: *[sarah@startup.com](mailto:sarah@startup.com)*\n* Company: *GreenTech Solutions*\n* Services Needed: *Branding + Website*\n\n---\n\n## \ud83d\udfe6 Section 2: Structure Client Data\n\n\ud83d\udd17 **Nodes:**\n\n* `Client Data` \u2192 Formats the raw form submission into a **clean text summary** (Name, Email, Company, Service, Extra Info).\n* `Client Checklist` \u2192 Prepares a **standard onboarding checklist** with items like:\n\n 1. Account setup\n 2. Welcome call scheduled\n 3. Document collection\n 4. Service configuration\n 5. Onboarding session\n 6. First milestone review\n\n\ud83d\udca1 **Why useful?**\nIt makes sure the AI has **all key details** + a **clear structure** before writing the email.\n\n---\n\n## \ud83d\udfe3 Section 3: AI-Generated Email\n\n\ud83d\udd17 **Nodes:**\n\n* `Basic LLM Chain` \u2192 Prompted to **write a professional onboarding email body**.\n* `Google Gemini Chat Model` \u2192 Supports the LLM chain with **Gemini 2.0 Flash** for fast generation.\n\n\ud83e\udde0 **Prompt Logic:**\n\n* Starts with:\n `Hi [Client Name],`\n* Includes personalized fields (Name, Company, Services Needed).\n* Inserts onboarding checklist steps.\n* Ends with:\n `Best regards, Your [Company Name] Team`\n\n\ud83d\udca1 **Why useful?**\nInstead of a generic welcome, each client gets a **personalized email** that feels human-written.\n\n\ud83d\udce9 **Example Output Email:**\n\n> Hi Sarah Ali,\n>\n> Welcome to GreenTech Solutions! \ud83c\udf89\n>\n> Here\u2019s your onboarding plan:\n>\n> 1. Account setup\n> 2. Welcome call scheduled\n> 3. Document collection\n> 4. Service configuration\n> 5. Onboarding session\n> 6. First milestone review\n>\n> We\u2019re excited to start working with you on Branding + Website.\n>\n> Best regards,\n> Your GreenTech Solutions Team\n\n---\n\n## \ud83d\udfe1 Section 4: Send Email\n\n\ud83d\udd17 **Node:** `Gmail`\n\n* Sends the AI-generated email to the client\u2019s email address.\n* Subject line:\n `Welcome to Our Service, [Client Name]`\n\n\ud83d\udca1 **Why useful?**\nNo delays \u2192 the client gets a **personalized welcome** instantly after filling the form.\n\n---\n\n## \ud83d\udd34 Section 5: Error Handling\n\n\ud83d\udd17 **Nodes:**\n\n* `Error Handler` \u2192 Listens for any errors during execution.\n* `Execution Failure` \u2192 Logs failed runs.\n* `Execution Completed` \u2192 Confirms successful runs.\n\n\ud83d\udca1 **Why useful?**\nEnsures **nothing gets stuck silently** \u2014 you\u2019ll always know if something fails.\n\n---\n\n## \ud83d\udcca Workflow Summary\n\n| Section | Node(s) | Purpose | Benefit |\n| ----------------- | ----------------------------- | ------------------------------------------ | ------------------------------ |\n| \ud83d\udfe2 Trigger | Google Sheets Trigger | Detect new client submissions | Fully automated start |\n| \ud83d\udfe6 Structure | Client Data, Client Checklist | Prepare structured client info + checklist | Clean, reliable input for AI |\n| \ud83d\udfe3 AI Generation | Basic LLM Chain, Gemini | Generate personalized onboarding email | Professional + tailored emails |\n| \ud83d\udfe1 Send Email | Gmail | Deliver onboarding email | Instant communication |\n| \ud83d\udd34 Error Handling | Error Handler, NoOp nodes | Handle success/failure states | Reliable + transparent process |\n\n---\n\n## \ud83d\ude80 Benefits\n\n* **Zero manual effort** \u2192 Clients get emails automatically.\n* **Consistency** \u2192 Every client follows the same onboarding structure.\n* **Personalization** \u2192 Emails include name, company, and services.\n* **Reliability** \u2192 Built-in error handling ensures smooth execution.\n* **Scalability** \u2192 Works whether you onboard 10 or 1,000 clients.\n\n---"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "004d8907-08e0-4798-a130-ece72835499d",
"connections": {
"Client Data": {
"main": [
[
{
"node": "Client Checklist",
"type": "main",
"index": 0
}
]
]
},
"Error Handler": {
"main": [
[
{
"node": "Execution Failure",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Gmail",
"type": "main",
"index": 0
},
{
"node": "Execution Completed",
"type": "main",
"index": 0
}
]
]
},
"Client Checklist": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets Trigger": {
"main": [
[
{
"node": "Client Data",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates welcoming new clients. When someone submits a form, their details are pulled from Google Sheets, a personalized onboarding checklist is generated using Google Gemini, and an email is sent directly to the client. It also includes error handling to ensure…
Source: https://n8n.io/workflows/4377/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Subtitle: From Form Response to Personalized Welcome Email
Stop manually exporting CSVs and start automating your marketing insights.
🧠 Who is this for? Marketing teams, content creators, solopreneurs, and agencies who want to generate emotionally-resonant, SEO-optimized content tailored to audience psychology and buyer journey stag
Customer Review Pipeline. Uses googleSheetsTrigger, lmChatGoogleGemini, gmail, chainLlm. Event-driven trigger; 10 nodes.
Subtitle: Feedback to Marketing Gold