This workflow corresponds to n8n.io template #11902 — we link there as the canonical source.
This workflow follows the Gmail → Google Sheets 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 →
{
"nodes": [
{
"id": "ac20d0d3-f60f-42ce-9f15-646485473498",
"name": "Send a message",
"type": "n8n-nodes-base.gmail",
"position": [
1424,
880
],
"parameters": {
"sendTo": "={{ $json.Email }}",
"message": "Test message",
"options": {
"appendAttribution": true
},
"subject": "Test from n8n",
"emailType": "text"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "bb29a83a-234c-483a-92c9-03da28928b9c",
"name": "Google Sheets Trigger",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
976,
368
],
"parameters": {
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit?usp=drivesdk",
"cachedResultName": "ZeroBounce"
}
},
"credentials": {
"googleSheetsTriggerOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e870f85b-5023-4531-a0cf-e18600952cca",
"name": "Filter by score",
"type": "n8n-nodes-base.switch",
"position": [
1872,
640
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "low",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "5c624f71-1acc-4ce8-92d3-821fe2d4f83b",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.Score }}",
"rightValue": 3
}
]
},
"renameOutput": true
},
{
"outputKey": "medium",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "b1bdb574-a04c-4086-86a3-899e53ccda07",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.Score }}",
"rightValue": 9
}
]
},
"renameOutput": true
},
{
"outputKey": "high",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "47aa6c56-2c5a-41ac-8f5c-5b7f183d898b",
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.Score }}",
"rightValue": 9
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "none"
},
"looseTypeValidation": true
},
"typeVersion": 3.3
},
{
"id": "32c40db3-8fce-4d13-9b0a-71f88a96cb12",
"name": "Validate email",
"type": "@zerobounce/n8n-nodes-zerobounce.zeroBounce",
"position": [
1424,
288
],
"parameters": {
"email": "={{ $('Google Sheets Trigger').item.json.Email }}",
"addOptions": {
"timeout": 10
}
},
"credentials": {
"zeroBounceApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "a42960da-b6b5-48ff-8ab7-b33bb8bb6692",
"name": "Score email",
"type": "@zerobounce/n8n-nodes-zerobounce.zeroBounce",
"position": [
1424,
560
],
"parameters": {
"email": "={{ $json.Email }}",
"resource": "scoring"
},
"credentials": {
"zeroBounceApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "8a449e2e-69c0-4d28-833c-c040fff2a5cb",
"name": "Add Scoring Results",
"type": "n8n-nodes-base.googleSheets",
"position": [
1648,
560
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $json.email }}",
"Score": "={{ $json.score.toString() }}",
"Scored": "true"
},
"schema": [
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Validated",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Validated",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Sub Status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Sub Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Free Email",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Free Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Did You Mean",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Did You Mean",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Account",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Account",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain Age Days",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Domain Age Days",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "SMTP Provider",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "SMTP Provider",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MX Found",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "MX Found",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MX Record",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "MX Record",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Country",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Region",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Region",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Zipcode",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Zipcode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Processed At",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Processed At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Scored",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Scored",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Emailed",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Emailed",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reason",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Reason",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato",
"cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit?usp=drivesdk",
"cachedResultName": "ZeroBounce"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "b148f359-737e-483b-a393-611087e339d4",
"name": "Add validation results",
"type": "n8n-nodes-base.googleSheets",
"position": [
1648,
288
],
"parameters": {
"columns": {
"value": {
"City": "={{ $json.city }}",
"Email": "={{ $json.address }}",
"Domain": "={{ $json.domain }}",
"Region": "={{ $json.region }}",
"Account": "={{ $json.account }}",
"Country": "={{ $json.country }}",
"Zipcode": "={{ $json.zipcode }}",
"MX Found": "={{ $json.mx_found }}",
"MX Record": "={{ $json.mx_record }}",
"Validated": "true",
"ZB Status": "={{ $json.status }}",
"Free Email": "={{ $json.free_email }}",
"Did You Mean": "={{ $json.did_you_mean }}",
"Processed At": "={{ $json.processed_at }}",
"SMTP Provider": "={{ $json.smtp_provider }}",
"ZB Sub Status": "={{ $json.sub_status }}",
"Domain Age Days": "={{ $json.domain_age_days }}"
},
"schema": [
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Validated",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Validated",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Status",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Sub Status",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB Sub Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Free Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Free Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Did You Mean",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Did You Mean",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Account",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Account",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain Age Days",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Domain Age Days",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "SMTP Provider",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "SMTP Provider",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MX Found",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "MX Found",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MX Record",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "MX Record",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Country",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Region",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Region",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Zipcode",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Zipcode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Processed At",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Processed At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Scored",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Scored",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Emailed",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Emailed",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reason",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Reason",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit?usp=drivesdk",
"cachedResultName": "ZeroBounce"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "0920ec59-a03e-4fdb-a31f-d97687a6f1ee",
"name": "Email is valid?",
"type": "n8n-nodes-base.if",
"position": [
1872,
384
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "27c7f88c-86f9-4f15-bbb7-42e6033f590b",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json['ZB Status'] }}",
"rightValue": "valid"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "777e9cbb-46c1-4d87-a577-ec8758bfce39",
"name": "Validate?",
"type": "n8n-nodes-base.if",
"position": [
1200,
368
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "0a437a50-9ba7-468a-9e9d-931379408826",
"operator": {
"type": "boolean",
"operation": "notEquals"
},
"leftValue": "={{ $json.Validated }}",
"rightValue": true
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.3
},
{
"id": "1da4898e-6b7e-4369-9a7c-107290baefd9",
"name": "Score?",
"type": "n8n-nodes-base.if",
"position": [
1200,
640
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "19c0d54e-b7db-493d-b14a-a9e81e2abafd",
"operator": {
"type": "boolean",
"operation": "notEquals"
},
"leftValue": "={{ $json.Scored }}",
"rightValue": true
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.3
},
{
"id": "4f4bd953-aadc-4ba2-b780-671a7e517337",
"name": "Email?",
"type": "n8n-nodes-base.if",
"position": [
1200,
896
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "d23c2c47-4bbf-40d2-8f54-2720791200cb",
"operator": {
"type": "boolean",
"operation": "notEquals"
},
"leftValue": "={{ $('Google Sheets Trigger').item.json.Emailed }}",
"rightValue": true
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.3
},
{
"id": "930512bb-b0a2-4054-96dc-8b17afce2961",
"name": "Add Emailed = false",
"type": "n8n-nodes-base.googleSheets",
"position": [
2368,
544
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $json.Email }}",
"Reason": "={{ $json.reason }}",
"Emailed": "false"
},
"schema": [
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Sub Status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Sub Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Free Email",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Free Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Did You Mean",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Did You Mean",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Account",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Account",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain Age Days",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Domain Age Days",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "SMTP Provider",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "SMTP Provider",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MX Found",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "MX Found",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MX Record",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "MX Record",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Country",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Region",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Region",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Zipcode",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Zipcode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Processed At",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Processed At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Emailed",
"type": "string",
"display": true,
"required": false,
"displayName": "Emailed",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reason",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Reason",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato",
"cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit?usp=drivesdk",
"cachedResultName": "ZeroBounce"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "32df7f77-f22c-49b3-8ea2-c1fd893f8140",
"name": "Add Emailed = true",
"type": "n8n-nodes-base.googleSheets",
"position": [
1648,
880
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $('Email?').item.json.Email }}",
"Reason": "High score",
"Emailed": "true"
},
"schema": [
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Sub Status",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Sub Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Free Email",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Free Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Did You Mean",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Did You Mean",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Account",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Account",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain Age Days",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Domain Age Days",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "SMTP Provider",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "SMTP Provider",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MX Found",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "MX Found",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MX Record",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "MX Record",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Country",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Country",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Region",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Region",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "City",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "City",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Zipcode",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Zipcode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Processed At",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Processed At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Score",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Emailed",
"type": "string",
"display": true,
"required": false,
"displayName": "Emailed",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reason",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Reason",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato",
"cachedResultUrl": "https://docs.google.YOUR_AWS_SECRET_KEY_HERE_j8PHumLPqs1ZNpGtmdTato/edit?usp=drivesdk",
"cachedResultName": "ZeroBounce"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "702c4c36-7c1d-4565-a3db-b2719fa73a63",
"name": "Not valid",
"type": "n8n-nodes-base.set",
"position": [
2128,
400
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e63a429e-a312-4c9c-8875-91d89e35884d",
"name": "reason",
"type": "string",
"value": "={{ $json['ZB Status'] }}"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "f6ba41cd-26df-41bf-b76e-cda296c0748f",
"name": "Low score",
"type": "n8n-nodes-base.set",
"position": [
2128,
544
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e63a429e-a312-4c9c-8875-91d89e35884d",
"name": "reason",
"type": "string",
"value": "Low score"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "fee21988-f6a7-4c85-bc6a-830f181ed7da",
"name": "Medium score",
"type": "n8n-nodes-base.set",
"position": [
2128,
688
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e63a429e-a312-4c9c-8875-91d89e35884d",
"name": "reason",
"type": "string",
"value": "Low score"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "a71f6a08-4a75-4b58-981b-a3be3d45c27d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
240
],
"parameters": {
"color": 7,
"width": 768,
"height": 864,
"content": "## ZeroBounce Email Validation, A.I Scoring & Sending with Gmail\n\n\n\nThis workflow automates the process of validating, scoring, and emailing leads from a Google Sheet. It ensures you only send emails to high-quality contacts, protecting your sender reputation.\n\n\n\n### \ud83d\ude80 How it Works\n1. **Trigger:** Watches a Google Sheet for new or updated rows (contacts).\n2. **Validate:** Uses **ZeroBounce** to check if the email address is valid.\n * *If Invalid:* Updates the sheet with the reason and marks \"Emailed\" as `false`.\n3. **Score:** If valid, uses **ZeroBounce A.I. Scoring** to grade the lead quality (0-10).\n * *If Low/Medium Score (<9):* Updates the sheet with the score and marks \"Emailed\" as `false`.\n4. **Send:** If the score is **High (9-10)**, sends an email via **Gmail**.\n5. **Update:** Writes the final status back to the Google Sheet, preventing duplicate sends.\n\n\n\n### \ud83d\udccb Setup Requirements\n* **Google Sheet:** A sheet with columns for `Email`, `Validated`, `Scored`, `Score`, `Emailed`, `Reason`, etc.\n* **ZeroBounce Account:** API Key for validation and scoring.\n* **Gmail Account:** Connected via OAuth2 to send emails.\n\n\n\n### \ud83d\udca1 Key Features\n* **Cost Efficient:** Checks existing `Validated` and `Scored` columns to avoid re-processing contacts.\n* **Risk Protection:** Filters out valid but low-quality leads (e.g., catch-alls or low scores).\n* **Status Tracking:** Keeps your Google Sheet updated with rich data (Sub-status, Domain Age, etc.)."
},
"typeVersion": 1
}
],
"connections": {
"Email?": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
],
[]
]
},
"Score?": {
"main": [
[
{
"node": "Score email",
"type": "main",
"index": 0
}
],
[
{
"node": "Filter by score",
"type": "main",
"index": 0
}
]
]
},
"Low score": {
"main": [
[
{
"node": "Add Emailed = false",
"type": "main",
"index": 0
}
]
]
},
"Not valid": {
"main": [
[
{
"node": "Add Emailed = false",
"type": "main",
"index": 0
}
]
]
},
"Validate?": {
"main": [
[
{
"node": "Validate email",
"type": "main",
"index": 0
}
],
[
{
"node": "Email is valid?",
"type": "main",
"index": 0
}
]
]
},
"Score email": {
"main": [
[
{
"node": "Add Scoring Results",
"type": "main",
"index": 0
}
]
]
},
"Medium score": {
"main": [
[
{
"node": "Add Emailed = false",
"type": "main",
"index": 0
}
]
]
},
"Send a message": {
"main": [
[
{
"node": "Add Emailed = true",
"type": "main",
"index": 0
}
]
]
},
"Validate email": {
"main": [
[
{
"node": "Add validation results",
"type": "main",
"index": 0
}
]
]
},
"Email is valid?": {
"main": [
[
{
"node": "Score?",
"type": "main",
"index": 0
}
],
[
{
"node": "Not valid",
"type": "main",
"index": 0
}
]
]
},
"Filter by score": {
"main": [
[
{
"node": "Low score",
"type": "main",
"index": 0
}
],
[
{
"node": "Medium score",
"type": "main",
"index": 0
}
],
[
{
"node": "Email?",
"type": "main",
"index": 0
}
]
]
},
"Add Emailed = false": {
"main": [
[]
]
},
"Add Scoring Results": {
"main": [
[
{
"node": "Filter by score",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets Trigger": {
"main": [
[
{
"node": "Validate?",
"type": "main",
"index": 0
}
]
]
},
"Add validation results": {
"main": [
[
{
"node": "Email is valid?",
"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.
gmailOAuth2googleSheetsOAuth2ApigoogleSheetsTriggerOAuth2ApizeroBounceApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates the process of validating, scoring, and emailing leads from a Google Sheet. It ensures you only send emails to high-quality contacts, protecting your sender reputation. Trigger: Watches a Google Sheet for new or updated rows (contacts). Validate: Uses…
Source: https://n8n.io/workflows/11902/ — 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 workflow automates the import of leads into the Company table of a CRM built with Airtable.
Find companies similar to your best clients using PredictLeads, enrich each with news, hiring, and tech signals, then score them 0–100 for outreach priority.
This n8n template automates finding roofing contractors in any city using Google Maps. It deep-scrapes listings via ScrapeOps Proxy, deduplicates results against Google Sheets, saves fresh leads, and
This n8n template automates the generation of local business leads by scraping Google Maps. It goes beyond basic search results by visiting individual business pages to extract detailed contact inform
This workflow allows users to extract potential leads from their inboxes. The idea of a reverse outreach is based on the notion that the next big client/customer/partner might be sitting in your inbox