This workflow corresponds to n8n.io template #11730 — we link there as the canonical source.
This workflow follows the Gmail → Google Drive 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": "",
"meta": {
"templateCredsSetupCompleted": false
},
"name": "Automated Webinar Signup Verification & Personalized Welcome Kit",
"tags": [],
"nodes": [
{
"id": "18aa3af3-31d8-493d-ad48-22c37bf0b2b6",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
0,
0
],
"parameters": {
"path": "webinar-signup",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2.1
},
{
"id": "2c212492-e188-43bd-94c3-9c43e52471f2",
"name": "VerifiEmail - Verify Email",
"type": "n8n-nodes-verifiemail.verifiEmail",
"position": [
208,
0
],
"parameters": {
"email": "={{ $json.body.email }}"
},
"credentials": {
"verifiEmailApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "87696cfa-5168-4d33-9472-3d336f52f7a9",
"name": "Check Email Valid",
"type": "n8n-nodes-base.if",
"position": [
416,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "c29b46c9-e3f0-49ce-8a91-be38cbf66ae5",
"operator": {
"type": "boolean",
"operation": "equals"
},
"leftValue": "={{ $json.valid }}",
"rightValue": true
}
]
}
},
"typeVersion": 2.3
},
{
"id": "b7191106-02e4-4966-aed5-b3e4da3b72c4",
"name": "Alert - Invalid Email",
"type": "n8n-nodes-base.slack",
"position": [
656,
176
],
"parameters": {
"text": "= \u26a0\ufe0f Invalid Email Detected\n Name: {{ $('Webhook').item.json.body.name }}\n Email: {{ $('Webhook').item.json.body.email }}\n Time: {{$now.format(\"yyyy-MM-dd HH:mm:ss\")}}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SLACK_CHANNEL_ID",
"cachedResultName": "YOUR_SLACK_CHANNEL_NAME"
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "94712d25-cc62-4c44-b374-0185cdb85691",
"name": "Stop and Error",
"type": "n8n-nodes-base.stopAndError",
"position": [
864,
176
],
"parameters": {
"errorMessage": "Invalid Email"
},
"typeVersion": 1
},
{
"id": "67b80490-3ea3-442f-82f3-7f6b927e5e5e",
"name": "Store Attendee Data",
"type": "n8n-nodes-base.googleSheets",
"position": [
656,
-192
],
"parameters": {
"columns": {
"value": {
"Name": "={{ $('Webhook').item.json.body.name }}",
"Email": "={{ $('Webhook').item.json.body.email }}",
"Company": "={{ $('Webhook').item.json.body.company }}",
"Session": "={{ $('Webhook').item.json.body.session_preference }}",
"Verified": "Yes",
"Timestamp": "={{$now.format(\"yyyy-MM-dd HH:mm:ss\")}}",
"Extra Materials": "={{ $('Webhook').item.json.body.extra_materials }}"
},
"schema": [
{
"id": "Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Session",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Session",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Verified",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Verified",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Timestamp",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Timestamp",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Extra Materials",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Extra Materials",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOCUMENT_ID/edit#gid=0",
"cachedResultName": "YOUR_GOOGLE_SHEETS_SHEET_NAME"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEETS_DOCUMENT_ID",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEETS_DOCUMENT_ID/edit?usp=drivesdk",
"cachedResultName": "YOUR_GOOGLE_SHEETS_DOCUMENT_NAME"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "bedf7676-b545-4891-833d-934cd56f1b3b",
"name": "Generate Welcome Message",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
880,
-192
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4",
"cachedResultName": "GPT-4"
},
"options": {
"maxTokens": 300,
"temperature": 0.7
},
"responses": {
"values": [
{
"content": "= Create a warm, personalized welcome message for a webinar attendee with the following details:\n \n Name: {{ $('Webhook').item.json.body.name }}\n Company: {{ $('Webhook').item.json.body.company }}\n Session Preference: {{ $('Webhook').item.json.body.session_preference }}\n \n The message should:\n - Welcome them enthusiastically\n - Confirm their session preference\n - Build excitement about the webinar content\n - Be professional yet friendly\n - Be 3-4 paragraphs\n \n Do not include subject line or email formatting, just the message body."
}
]
},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "03d74d04-7fe8-47f4-beb0-d21f5ac00e76",
"name": "Create Welcome Doc",
"type": "n8n-nodes-base.googleDrive",
"position": [
1184,
-192
],
"parameters": {
"name": "=Webinar_Welcome_Kit_{{ $('Webhook').item.json.body.name.replace(\" \", \"_\")}}_{{$now.format(\"yyyy-MM-dd\")}}",
"content": "=WELCOME TO OUR WEBINAR!\n\nAttendee: {{ $('Webhook').item.json.body.name }}\nCompany: {{ $('Webhook').item.json.body.company }}\nSession: {{ $('Webhook').item.json.body.session_preference }}\n\n---\n\n{{$node[\"Generate Welcome Message\"].json[\"output\"][0][\"content\"][0][\"text\"]}}\n\n---\n\nWEBINAR SCHEDULE:\n\nMorning Session: 9:00 AM - 11:00 AM EST\nAfternoon Session: 2:00 PM - 4:00 PM EST\n\nWHAT TO PREPARE:\n- Notebook for key insights\n- Questions you'd like answered\n- Stable internet connection\n\nTIPS FOR SUCCESS:\n- Join 5 minutes early\n- Test your audio/video beforehand\n- Engage in the chat and Q&A\n\nWe're excited to have you join us!",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "root",
"cachedResultName": "YOUR_GOOGLE_DRIVE_FOLDER_NAME"
},
"operation": "createFromText"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "3d196934-4e6c-4c19-9289-110e09762d49",
"name": "Convert to PDF",
"type": "n8n-nodes-base.googleDrive",
"position": [
1360,
-192
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "3946c013-1b04-472f-8285-ae3f892780a0",
"name": "Send Welcome Email",
"type": "n8n-nodes-base.gmail",
"position": [
1600,
-192
],
"parameters": {
"sendTo": "={{ $('Webhook').item.json.body.email }}",
"message": "=<p>{{$node[\"Generate Welcome Message\"].json[\"output\"][0][\"content\"][0][\"text\"].replace(/\\n/g, \"<br>\")}}</p>\n\n<p>Attached is your personalized welcome kit with all the details you need.</p>\n\n<p>Looking forward to seeing you at the webinar!</p>\n\n<p>Best regards,<br>\nThe Webinar Team</p>",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{}
]
}
},
"subject": "=Welcome to [Webinar Name] - Your Session Details Inside!"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "ab30f823-6b41-4c11-80ce-f612812bcdc0",
"name": "Notify Organizers",
"type": "n8n-nodes-base.slack",
"position": [
1808,
-192
],
"parameters": {
"text": "= \u2705 New Verified Attendee!\n \n Name: {{ $('Webhook').item.json.body.name }}\n Email: {{ $('Webhook').item.json.body.email }}\n Company: {{ $('Webhook').item.json.body.company }}\n Session: {{ $('Webhook').item.json.body.session_preference }}\n Extra Materials: {{ $('Webhook').item.json.body.extra_materials ? \"Yes\" : \"No\"}}\n \n Welcome email sent successfully! \ud83d\udce7",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "YOUR_SLACK_CHANNEL_ID",
"cachedResultName": "YOUR_SLACK_CHANNEL_NAME"
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.4
},
{
"id": "2b58685b-71eb-4e18-93ef-fe46577546a0",
"name": "Check Extra Materials Requested",
"type": "n8n-nodes-base.if",
"position": [
2080,
-192
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2055bbc6-6664-4908-a978-310f44cf140f",
"operator": {
"type": "boolean",
"operation": "equals"
},
"leftValue": "={{ $('Webhook').item.json.body.extra_materials }}",
"rightValue": true
}
]
}
},
"typeVersion": 2.3
},
{
"id": "2b126789-a455-4e50-9790-f541a8e313b1",
"name": "Generate Extra Materials",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2304,
-208
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4",
"cachedResultName": "GPT-4"
},
"options": {},
"responses": {
"values": [
{
"content": "=Generate additional learning materials for {{ $('Webhook').item.json.body.name }} including:\n - Pre-webinar reading list (5 articles)\n - Key terminology to know\n - Advanced questions to consider\n \n Make it specific to their session: {{ $('Webhook').item.json.body.session_preference }}"
}
]
},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "f96fa6ad-3db9-45b6-87e4-9e3630656eec",
"name": "Create Extra Materials PDF",
"type": "n8n-nodes-base.googleDrive",
"position": [
2624,
-208
],
"parameters": {
"name": "=Extra_Materials_{{ $('Webhook').item.json.body.name }}",
"content": "={{ $json.output[0].content[0].text }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "root",
"cachedResultName": "YOUR_GOOGLE_DRIVE_FOLDER_NAME"
},
"operation": "createFromText"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "92d2f818-6edc-451c-b597-1f21cea031ca",
"name": "Convert to PDF (Extra Materials)",
"type": "n8n-nodes-base.googleDrive",
"position": [
2816,
-208
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "9a61f8bf-342f-427e-912b-0c7c5b1af4c0",
"name": "Send Follow-up Email",
"type": "n8n-nodes-base.gmail",
"position": [
3008,
-208
],
"parameters": {
"sendTo": "={{ $('Webhook').item.json.body.email }}",
"message": "=Hi {{ $('Store Attendee Data').item.json.Name }},\n\nThank you for your interest in going deeper before the webinar!\n\nAs promised, we\u2019ve prepared **additional learning materials tailored specifically to your selected session**. These resources will help you get more value from the discussion and come prepared with advanced questions.\n\n\ud83d\udcce **Attached:**\n\u2013 Pre-webinar reading list\n\u2013 Key concepts & terminology\n\u2013 Thought-provoking questions to consider\n\nWe recommend reviewing these materials before the session to make the most of the live experience.\n\nIf you have any questions or need further assistance, feel free to reply to this email.\n\nLooking forward to having you with us at the webinar!\n\nBest regards,\n**The Webinar Team**\n",
"options": {
"attachmentsUi": {
"attachmentsBinary": [
{}
]
}
},
"subject": "Extra Materials for [Webinar Name]",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "e62295fa-d6cf-47a6-95ed-1e65f4536405",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-496,
-768
],
"parameters": {
"width": 448,
"height": 944,
"content": "## **Automated Webinar Signup Verification & Personalized Welcome Kit**\nThis workflow automates the complete lifecycle of a webinar signup \u2014 from email verification to personalized onboarding and follow-up delivery. It ensures only valid attendees are accepted, prevents fake or mistyped email registrations, and delivers a premium, personalized experience without manual effort.\n\nOnce a user submits the signup form, the workflow validates their email in real time. Invalid signups are immediately flagged to organizers via Slack and stopped to protect list quality. Valid signups are stored in Google Sheets as the single source of truth for attendees.\n\nFor verified attendees, the workflow uses AI to generate a warm, personalized welcome message based on the attendee\u2019s name, company, and session preference. A complete welcome kit is automatically created, converted into a PDF, and emailed to the attendee. Organizers are notified instantly when a verified attendee joins.\n\nIf the attendee requests extra learning materials, the workflow dynamically generates advanced session-specific resources, converts them into a PDF, and sends a follow-up email with those materials attached.\n\n### How it works\n1. Capture webinar signup via webhook\n2. Verify email authenticity\n3. Reject invalid signups and alert organizers\n4. Store verified attendee data\n5. Generate AI-powered welcome content\n6. Deliver welcome kit via email\n7. Generate and send optional extra materials\n\n### Setup steps\n* Configure webhook endpoint\n* Add VerifiEmail, OpenAI, Google, Gmail, and Slack credentials\n* Replace spreadsheet and Slack channel IDs\n* Activate workflow and test with sample signups\n"
},
"typeVersion": 1
},
{
"id": "fd46665b-6220-4f61-bdf2-8cb70b307cb4",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-16,
-112
],
"parameters": {
"color": 7,
"width": 560,
"height": 272,
"content": "## Signup Intake & Email Validation\n\nCaptures webinar signup data and verifies email authenticity before allowing the user into the system.\n\n"
},
"typeVersion": 1
},
{
"id": "f5b84660-f391-4f19-aff1-1b8340bdf39a",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
64
],
"parameters": {
"color": 7,
"width": 480,
"height": 256,
"content": "## Invalid Signup Handling\n\nStops fake or invalid registrations and alerts organizers instantly to protect data quality.\n\n\n\n"
},
"typeVersion": 1
},
{
"id": "ad782fb6-994f-4762-aaeb-0b26c7cb70ba",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
-352
],
"parameters": {
"color": 7,
"height": 320,
"content": "## Verified Attendee Storage\n\nStores verified attendee details securely in Google Sheets for tracking and reporting.\n\n"
},
"typeVersion": 1
},
{
"id": "b00f0885-003d-47bc-aa61-baaec271db33",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
848,
-288
],
"parameters": {
"color": 7,
"width": 672,
"height": 240,
"content": "## Personalized Welcome Content\n\nUses AI to generate a custom welcome message and creates a downloadable welcome kit.\n\n"
},
"typeVersion": 1
},
{
"id": "2b43bb5b-a90f-4864-9fff-b7ed0586f2a5",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1536,
-304
],
"parameters": {
"color": 7,
"width": 480,
"height": 256,
"content": "## Welcome Email Delivery & Notification\n\nSends the welcome email with the PDF attached and notifies organizers in Slack.\n\n"
},
"typeVersion": 1
},
{
"id": "f436dad1-fa54-46fb-855a-b4842aff2110",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2576,
-320
],
"parameters": {
"color": 7,
"width": 624,
"height": 288,
"content": "## Extra Materials Creation & Follow-up\n\nCreates a PDF of extra learning materials and sends a follow-up email to the attendee.\n"
},
"typeVersion": 1
},
{
"id": "b6ab75b8-460e-4ce9-80a5-1677629b4536",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
2032,
-304
],
"parameters": {
"color": 7,
"width": 528,
"height": 272,
"content": "## Optional Extra Materials Flow\n\nChecks if extra materials were requested and generates advanced session-specific content if needed."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "",
"connections": {
"Webhook": {
"main": [
[
{
"node": "VerifiEmail - Verify Email",
"type": "main",
"index": 0
}
]
]
},
"Convert to PDF": {
"main": [
[
{
"node": "Send Welcome Email",
"type": "main",
"index": 0
}
]
]
},
"Check Email Valid": {
"main": [
[
{
"node": "Store Attendee Data",
"type": "main",
"index": 0
}
],
[
{
"node": "Alert - Invalid Email",
"type": "main",
"index": 0
}
]
]
},
"Notify Organizers": {
"main": [
[
{
"node": "Check Extra Materials Requested",
"type": "main",
"index": 0
}
]
]
},
"Create Welcome Doc": {
"main": [
[
{
"node": "Convert to PDF",
"type": "main",
"index": 0
}
]
]
},
"Send Welcome Email": {
"main": [
[
{
"node": "Notify Organizers",
"type": "main",
"index": 0
}
]
]
},
"Store Attendee Data": {
"main": [
[
{
"node": "Generate Welcome Message",
"type": "main",
"index": 0
}
]
]
},
"Alert - Invalid Email": {
"main": [
[
{
"node": "Stop and Error",
"type": "main",
"index": 0
}
]
]
},
"Generate Extra Materials": {
"main": [
[
{
"node": "Create Extra Materials PDF",
"type": "main",
"index": 0
}
]
]
},
"Generate Welcome Message": {
"main": [
[
{
"node": "Create Welcome Doc",
"type": "main",
"index": 0
}
]
]
},
"Create Extra Materials PDF": {
"main": [
[
{
"node": "Convert to PDF (Extra Materials)",
"type": "main",
"index": 0
}
]
]
},
"VerifiEmail - Verify Email": {
"main": [
[
{
"node": "Check Email Valid",
"type": "main",
"index": 0
}
]
]
},
"Check Extra Materials Requested": {
"main": [
[
{
"node": "Generate Extra Materials",
"type": "main",
"index": 0
}
]
]
},
"Convert to PDF (Extra Materials)": {
"main": [
[
{
"node": "Send Follow-up Email",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2googleDriveOAuth2ApigoogleSheetsOAuth2ApiopenAiApislackApiverifiEmailApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Transform your webinar registrations from basic form submissions into a verified, personalized, and premium attendee experience.
Source: https://n8n.io/workflows/11730/ — 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.
This system meticulously guides each lead through a fully automated journey, from initial contact to a personalized follow-up and CRM integration.
Automate incident reporting from detection to delivery with AI-driven analysis and professional documentation.
Instantly map all internal URLs, perform AI-powered (ChatGPT) analysis, and deliver results in HTML via webhook, Google Sheets, or email. All from your own n8n instance!
Watch on Youtube▶️
Imagine your recruitment process transformed into a sleek, efficient, AI-powered assembly line for talent. That's exactly what this system creates. It automates the heavy lifting, allowing your human