This workflow corresponds to n8n.io template #6521 — we link there as the canonical source.
This workflow follows the Google Sheets → Googlesheetstrigger 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": "O9e1SfXnhax8YZal",
"name": "My workflow 2",
"tags": [],
"nodes": [
{
"id": "13f98fdb-07fc-49a9-9362-1eb1bab2e1ee",
"name": "Monitor New Email Entries",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
112,
544
],
"parameters": {
"event": "rowAdded",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyHour"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultUrl": "",
"cachedResultName": "Your Email Verification Spreadsheet"
}
},
"typeVersion": 1
},
{
"id": "28e1409f-e4ef-46aa-b035-a8227d5d6646",
"name": "Update Verification Results",
"type": "n8n-nodes-base.googleSheets",
"position": [
1584,
544
],
"parameters": {
"columns": {
"value": {
"SrNo": "={{ $('Filter Unverified Emails').item.json.SrNo }}",
"Email Verified": "={{ $json.status }}"
},
"schema": [
{
"id": "SrNo",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "SrNo",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Name",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Verified",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email Verified",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"SrNo"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultUrl": "",
"cachedResultName": "Your Email Verification Spreadsheet"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6,
"alwaysOutputData": true
},
{
"id": "2ee35cec-c0a0-476e-b91e-ee18e586f989",
"name": "Workflow Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"color": 6,
"width": 416,
"height": 192,
"content": "\ud83d\udce7 AUTOMATED EMAIL VERIFICATION SYSTEM\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2728 Automatically validates email addresses from Google Sheets\n\u26a1 Real-time verification using rapid-email-verifier API\n\ud83d\udcca Updates spreadsheet with verification status\n\ud83d\udd04 Continuous monitoring with hourly checks\n\n\ud83c\udfaf USE CASES: Lead qualification | Contact list cleaning | Email marketing prep\n"
},
"typeVersion": 1
},
{
"id": "601194a5-7ddf-48e4-814d-7f8be5a4cb99",
"name": "Setup Instructions",
"type": "n8n-nodes-base.stickyNote",
"position": [
496,
0
],
"parameters": {
"color": 5,
"width": 416,
"height": 208,
"content": "\u2699\ufe0f QUICK SETUP GUIDE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n1\ufe0f\u20e3 Create Google Sheet with columns:\n \u2022 SrNo | Name | Email | Email Verified\n\n2\ufe0f\u20e3 Connect your Google Sheets account\n \n3\ufe0f\u20e3 Update Sheet ID in trigger and update nodes\n\n4\ufe0f\u20e3 Test with sample data\n\n\ud83d\udca1 TIP: Test with a sample email first!\n"
},
"typeVersion": 1
},
{
"id": "99d920b4-a489-4215-8757-0f123f6351e8",
"name": "Trigger Explanation",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
272
],
"parameters": {
"color": 4,
"width": 352,
"height": 192,
"content": "\ud83d\ude80 MONITORING TRIGGER\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2022 Checks every hour for new rows\n\u2022 Only processes newly added entries\n\u2022 Automatically handles multiple entries\n\u2022 Uses efficient polling to avoid rate limits\n\u2022 Connects to your Google Sheets document\n"
},
"typeVersion": 1
},
{
"id": "0f7b061a-3410-48a6-bc71-39d93595ff6d",
"name": "Filter Unverified Emails",
"type": "n8n-nodes-base.filter",
"position": [
528,
544
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "80aa56a4-b365-448f-9214-71f0ba758947",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json['Email Verified'] }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "0af226e1-ded6-4fb4-b5af-296b02be9c63",
"name": "Process Emails in Batches",
"type": "n8n-nodes-base.splitInBatches",
"position": [
832,
544
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "92f176f5-6cef-4b7f-abd7-0a8bd6b9eda2",
"name": "Verify Email Address",
"type": "n8n-nodes-base.httpRequest",
"position": [
1216,
544
],
"parameters": {
"url": "https://rapid-email-verifier.fly.dev/api/validate",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "email",
"value": "={{ $json.Email }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "7513234f-b1a3-4fe8-b167-410bb8a6921e",
"name": "Filter Logic",
"type": "n8n-nodes-base.stickyNote",
"position": [
352,
256
],
"parameters": {
"color": 4,
"width": 352,
"height": 192,
"content": "\ud83d\udd0d SMART FILTERING\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nOnly processes emails that haven't been verified yet\n\u2022 Checks if \"Email Verified\" column is empty\n\u2022 Prevents duplicate API calls\n\u2022 Saves processing time and API credits\n\u2022 Ensures efficient workflow execution\n"
},
"typeVersion": 1
},
{
"id": "d45072c3-7be3-423a-8afc-f787fc484772",
"name": "Batch Processing",
"type": "n8n-nodes-base.stickyNote",
"position": [
752,
256
],
"parameters": {
"color": 4,
"width": 256,
"height": 224,
"content": "\u2699\ufe0f BATCH PROCESSING\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nProcesses emails one by one to:\n\u2022 Respect API rate limits\n\u2022 Handle errors gracefully \n\u2022 Ensure reliable verification\n\u2022 Track progress per item\n\u2022 Maintain data consistency\n"
},
"typeVersion": 1
},
{
"id": "e8d919ee-92d1-41b8-8862-6c12e8bff6d5",
"name": "API Details",
"type": "n8n-nodes-base.stickyNote",
"position": [
1072,
256
],
"parameters": {
"color": 4,
"width": 352,
"height": 224,
"content": "\ud83c\udf10 EMAIL VALIDATION API\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nrapid-email-verifier.fly.dev\n\u2022 Real-time email verification\n\u2022 Returns: valid/invalid/unknown\n\u2022 Fast response times (<500ms)\n\u2022 No authentication required\n\u2022 Free tier: 1000 verifications/month\n"
},
"typeVersion": 1
},
{
"id": "dc571bb2-e2f0-4a5d-870b-62f388c7609f",
"name": "Results Update",
"type": "n8n-nodes-base.stickyNote",
"position": [
1472,
256
],
"parameters": {
"color": 4,
"width": 352,
"height": 224,
"content": "\u2705 RESULTS UPDATE\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nUpdates the original sheet with:\n\u2022 Verification status (valid/invalid)\n\u2022 Matches by Serial Number\n\u2022 Preserves original data\n\u2022 Creates audit trail\n\u2022 Enables easy filtering\n"
},
"typeVersion": 1
},
{
"id": "8e1eeaaf-823b-468b-90c4-6bd03c068a34",
"name": "Performance Metrics",
"type": "n8n-nodes-base.stickyNote",
"position": [
992,
0
],
"parameters": {
"color": 7,
"width": 416,
"height": 224,
"content": "\ud83d\udcc8 WORKFLOW PERFORMANCE \n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2022 Processes: ~60 emails/hour\n\u2022 API Response: <500ms average\n\u2022 Accuracy: 95%+ verification rate\n\u2022 Cost: Free tier supports 1000/month\n\u2022 Memory efficient batch processing\n\n\ud83d\udca1 PRO TIP: Use webhook trigger for real-time verification\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "a5ff6180-438a-4e77-98ea-372bf7177dc8",
"connections": {
"Verify Email Address": {
"main": [
[
{
"node": "Update Verification Results",
"type": "main",
"index": 0
}
]
]
},
"Filter Unverified Emails": {
"main": [
[
{
"node": "Process Emails in Batches",
"type": "main",
"index": 0
}
]
]
},
"Monitor New Email Entries": {
"main": [
[
{
"node": "Filter Unverified Emails",
"type": "main",
"index": 0
}
]
]
},
"Process Emails in Batches": {
"main": [
[],
[
{
"node": "Verify Email Address",
"type": "main",
"index": 0
}
]
]
},
"Update Verification Results": {
"main": [
[
{
"node": "Process Emails in Batches",
"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.
googleSheetsOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n template demonstrates how to automatically validate email addresses from your Google Sheets using a reliable email verification API. Perfect for cleaning contact lists, validating leads, and ensuring email deliverability before marketing campaigns.
Source: https://n8n.io/workflows/6521/ — 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 powerful no-code workflow automates plagiarism detection using Plagiarism Checker AI Powered. Users submit text through Google Sheets. The system checks for duplication using the API, sends a det
This n8n workflow automates outbound phone calls to new leads using VAPI, with built-in timezone detection to ensure you're only calling during business hours.
Julia. Uses googleSheetsTrigger, googleSheets, httpRequest. Event-driven trigger; 16 nodes.
Automate HeyGen Video Generation from Google Sheets Effortlessly convert text scripts in Google Sheets into AI-generated videos using HeyGen.
This n8n template automatically enriches IP addresses with geolocation data and performs HTTP port scanning when new IPs are added to a Google Sheets document. Perfect for network monitoring, security