This workflow corresponds to n8n.io template #3953 — we link there as the canonical source.
This workflow follows the Emailsend → Form Trigger 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": "bWbwE1qVduRTdWmc",
"name": "\ud83d\udd10 Double Opt-In Email Verification System with Google Sheets",
"tags": [
{
"id": "2E1hRaAa0axOUCXV",
"name": "UTCM",
"createdAt": "2025-05-08T22:11:01.814Z",
"updatedAt": "2025-05-08T22:11:01.814Z"
},
{
"id": "GZT3Cgu3i4As1Giz",
"name": "Doble-OptIn",
"createdAt": "2025-05-08T22:10:58.928Z",
"updatedAt": "2025-05-08T22:10:58.928Z"
},
{
"id": "UZnyfKrtC83mHOyK",
"name": "Forms",
"createdAt": "2025-05-08T22:10:50.602Z",
"updatedAt": "2025-05-08T22:10:50.602Z"
}
],
"nodes": [
{
"id": "93c4049b-138e-4cb1-906a-8aada9485ffd",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-4460,
-160
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 2.2
},
{
"id": "358d84d7-381b-4de9-8c5e-d1d988c0b4a7",
"name": "Email Form",
"type": "n8n-nodes-base.form",
"position": [
-4140,
-160
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 1
},
{
"id": "d0106dca-e3d1-45bc-b0e4-a0ac7a82a903",
"name": "Generate Code",
"type": "n8n-nodes-base.code",
"position": [
-3800,
-160
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "659f0327-c4ee-45f8-a38d-80e9aada20db",
"name": "Send Email",
"type": "n8n-nodes-base.emailSend",
"position": [
-3020,
-160
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 2.1
},
{
"id": "ac5dfb19-9254-45fd-92bb-2d78a3062f51",
"name": "Store Data",
"type": "n8n-nodes-base.googleSheets",
"position": [
-3440,
-120
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 4.5
},
{
"id": "f9586647-ea00-4b21-bd54-76f4314f926d",
"name": "Verification Form",
"type": "n8n-nodes-base.form",
"position": [
-2700,
-160
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 1
},
{
"id": "e33fb6cd-59c2-4c84-9d51-5c8f7af1e2a1",
"name": "Check Code",
"type": "n8n-nodes-base.if",
"position": [
-2380,
-160
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 2.2
},
{
"id": "47dd37e4-409c-42dd-9554-b14c18b65cb0",
"name": "Main Form",
"type": "n8n-nodes-base.form",
"position": [
-1840,
-440
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 1
},
{
"id": "016ff76e-12f6-42ed-ad3c-234c585d6126",
"name": "Incorrect Code Form",
"type": "n8n-nodes-base.form",
"position": [
-1920,
600
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 1
},
{
"id": "b1692894-3759-4f56-bd98-1c57a91dbb3c",
"name": "Second Check",
"type": "n8n-nodes-base.if",
"position": [
-1200,
60
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 2.2
},
{
"id": "f883c1c1-4529-41a8-9ec4-4f2396fcc972",
"name": "Reset Form",
"type": "n8n-nodes-base.form",
"position": [
-640,
760
],
"parameters": {},
"notesInFlow": false,
"typeVersion": 1
},
{
"id": "dc335784-6532-4e63-b4a1-5b9cf77b5de6",
"name": "Sticky Note 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4540,
-600
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2160baa2-a011-4bd8-b4bb-a11845e0323c",
"name": "Sticky Note 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4240,
-600
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "6fed7946-cac4-48c0-836d-863f87ac1da0",
"name": "Sticky Note 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3920,
-600
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "4d8dbcce-1dc3-48fa-a2f9-1561e6399462",
"name": "Sticky Note 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3600,
-600
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "3b1cdbbd-28f3-420a-b507-0a707e857845",
"name": "Sticky Note 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3120,
-600
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "59276d85-d217-4883-86ac-427eb70083df",
"name": "Sticky Note 6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2800,
-600
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "6c0df430-39c0-4dc9-b0a4-6b9a2aeabc12",
"name": "Sticky Note 7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2480,
-600
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "05973b8b-b873-44c6-8274-1bae17118cb8",
"name": "Sticky Note 8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2120,
300
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "1479b495-1d18-4a03-8fdb-d276b33e70ac",
"name": "Sticky Note 9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1480,
-220
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "9936331c-2fb5-4d4f-ab8d-b586310a75ca",
"name": "Sticky Note 10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-780,
400
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2ae131e8-69a1-4212-81d6-95aabaf5cd3e",
"name": "Sticky Note 11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2120,
-740
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2a429ebd-460c-4a33-bc57-7576e31e1fea",
"name": "Continue With Your Flow",
"type": "n8n-nodes-base.noOp",
"position": [
-1200,
-440
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0935942e-3a27-4f5c-ac0f-9a0ddc68ac8a",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1420,
-1000
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "5ace2a5e-1f6c-4c13-a069-d71dcb22ee1d",
"connections": {
"Main Form": {
"main": [
[
{
"node": "Continue With Your Flow",
"type": "main",
"index": 0
}
]
]
},
"Check Code": {
"main": [
[
{
"node": "Main Form",
"type": "main",
"index": 0
}
],
[
{
"node": "Incorrect Code Form",
"type": "main",
"index": 0
}
]
]
},
"Email Form": {
"main": [
[
{
"node": "Generate Code",
"type": "main",
"index": 0
}
]
]
},
"Reset Form": {
"main": [
[
{
"node": "Email Form",
"type": "main",
"index": 0
}
]
]
},
"Send Email": {
"main": [
[
{
"node": "Verification Form",
"type": "main",
"index": 0
}
]
]
},
"Store Data": {
"main": [
[
{
"node": "Send Email",
"type": "main",
"index": 0
}
]
]
},
"Second Check": {
"main": [
[
{
"node": "Main Form",
"type": "main",
"index": 0
}
],
[
{
"node": "Reset Form",
"type": "main",
"index": 0
}
]
]
},
"Generate Code": {
"main": [
[
{
"node": "Store Data",
"type": "main",
"index": 0
}
]
]
},
"Verification Form": {
"main": [
[
{
"node": "Check Code",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Email Form",
"type": "main",
"index": 0
}
]
]
},
"Incorrect Code Form": {
"main": [
[
{
"node": "Second Check",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This template implements a professional Double Opt-In email verification system using Google Sheets as a database. The workflow collects user emails, generates unique verification codes, stores them securely, and validates user access before proceeding with your main form. User…
Source: https://n8n.io/workflows/3953/ — 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 automation streamlines the process of collecting user information using a Form Node, enabling individuals to join a waitlist managed via Google Sheets.
Splitout Code. Uses splitOut, httpRequest, googleSheets, stickyNote. Event-driven trigger; 36 nodes.
This n8n workflow is designed for Customer Success Managers (CSM), marketers, sales teams, and data administrators who need to automate the process of uploading and processing CSV data in HubSpot. It
Track website traffic and backlinks effortlessly using the Website Traffic Checker - Ahref API. This n8n workflow automates data retrieval and logging into Google Sheets, making it perfect for SEO pro
Upload your CV as a PDF and instantly get a structured "Master CV" Google Sheet – every experience, education entry, skill, and contact detail extracted into the right tab. This gives you a clean pers