This workflow corresponds to n8n.io template #13095 — we link there as the canonical source.
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": "pf9hMxyAgMkGOmdp",
"meta": {
"templateId": "12601",
"templateCredsSetupCompleted": true
},
"name": "Vet new Typeform leads with ZeroBounce and sync qualified contacts to Mautic",
"tags": [],
"nodes": [
{
"id": "c6607639-0fe9-46c3-b2a0-47680aac8c94",
"name": "Validate email",
"type": "@zerobounce/n8n-nodes-zerobounce.zeroBounce",
"position": [
1536,
880
],
"parameters": {
"email": "={{ $('Typeform Trigger').item.json['What is your email address?'] }}",
"addOptions": {
"timeout": 10
}
},
"credentials": {
"zeroBounceApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "7c592e3b-15bb-422f-b74d-44d45119f21b",
"name": "Status",
"type": "n8n-nodes-base.switch",
"position": [
1760,
864
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Valid",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "468015f8-26f2-4e72-be62-cb7a801b1e5d",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "valid"
}
]
},
"renameOutput": true
},
{
"outputKey": "Catch-all",
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ee6eb4c7-2d0e-4645-9454-5d63d863d355",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "catch-all"
}
]
},
"renameOutput": true
}
]
},
"options": {
"fallbackOutput": "extra",
"renameFallbackOutput": "Other"
}
},
"typeVersion": 3.4
},
{
"id": "dfbb488c-cb50-4259-9124-173f4e8384c9",
"name": "Has email?",
"type": "n8n-nodes-base.if",
"position": [
1088,
1168
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "7287ef71-fd0e-4283-a029-d56939120766",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json['What is your email address?'] }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.3
},
{
"id": "b7f9443a-57f8-4a38-9de5-7f7fd569cb23",
"name": "Filter by score",
"type": "n8n-nodes-base.switch",
"position": [
2432,
672
],
"parameters": {
"rules": {
"values": [
{
"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
},
{
"outputKey": "medium",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "b1bdb574-a04c-4086-86a3-899e53ccda07",
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.score }}",
"rightValue": 3
}
]
},
"renameOutput": true
},
{
"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
}
]
},
"options": {
"fallbackOutput": 2
},
"looseTypeValidation": true
},
"typeVersion": 3.3
},
{
"id": "a461a198-ad5e-4005-9b4f-95344e5276f0",
"name": "Score email",
"type": "@zerobounce/n8n-nodes-zerobounce.zeroBounce",
"position": [
2208,
688
],
"parameters": {
"email": "={{ $('Typeform Trigger').item.json['What is your email address?'] }}",
"resource": "scoring"
},
"credentials": {
"zeroBounceApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "ce135ff8-5633-4d11-8031-eaf1a74b466a",
"name": "Not valid",
"type": "n8n-nodes-base.set",
"position": [
2656,
1264
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "760f0ae8-a358-4875-9607-37f2d827bafe",
"name": "reason",
"type": "string",
"value": "Not valid"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "49e68e22-f0fa-4bee-b2bf-84b99c336df8",
"name": "Not enough credits for scoring",
"type": "n8n-nodes-base.set",
"position": [
2656,
1072
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "760f0ae8-a358-4875-9607-37f2d827bafe",
"name": "reason",
"type": "string",
"value": "Not enough credits for scoring"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5999207e-e4c8-4a61-85eb-f6ec54055919",
"name": "Not enough credits for validation",
"type": "n8n-nodes-base.set",
"position": [
2656,
1456
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "760f0ae8-a358-4875-9607-37f2d827bafe",
"name": "reason",
"type": "string",
"value": "Not enough credits for validation"
},
{
"id": "f4a379fb-7d3e-465d-b5f1-c618731e9dfe",
"name": "email_override",
"type": "string",
"value": "={{ $('Form.io Trigger').item.json.email }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "195534dd-a363-455a-b86a-8dd77da3e456",
"name": "Email missing",
"type": "n8n-nodes-base.set",
"position": [
2656,
1648
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "760f0ae8-a358-4875-9607-37f2d827bafe",
"name": "reason",
"type": "string",
"value": "Email missing"
},
{
"id": "6314c6a3-d17a-444c-b0b6-d813c300d392",
"name": "email_override",
"type": "string",
"value": "={{ $('Typeform Trigger').item.json['What is your first name?'] }} {{ $('Typeform Trigger').item.json['What is your last name?'] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e8f88719-cb4f-4374-8e87-5e1d6cc79eae",
"name": "Check credits for validation",
"type": "@zerobounce/n8n-nodes-zerobounce.zeroBounce",
"onError": "continueErrorOutput",
"position": [
1312,
1072
],
"parameters": {
"resource": "account",
"addOptions": {
"creditsRequired": 1
}
},
"credentials": {
"zeroBounceApi": {
"name": "<your credential>"
}
},
"executeOnce": false,
"typeVersion": 1
},
{
"id": "1c9e3f4b-0181-4755-8206-a1dfa8172942",
"name": "Check credits for scoring",
"type": "@zerobounce/n8n-nodes-zerobounce.zeroBounce",
"onError": "continueErrorOutput",
"position": [
1984,
880
],
"parameters": {
"resource": "account",
"addOptions": {
"creditsRequired": 1
}
},
"credentials": {
"zeroBounceApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "35fe912c-447a-44e5-804f-830bc71ff945",
"name": "Medium score",
"type": "n8n-nodes-base.set",
"position": [
2656,
688
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "760f0ae8-a358-4875-9607-37f2d827bafe",
"name": "reason",
"type": "string",
"value": "Medium score"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1a8d9dbc-1c05-4d50-9bd2-61ebbfed2a7f",
"name": "Low score",
"type": "n8n-nodes-base.set",
"position": [
2656,
880
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "760f0ae8-a358-4875-9607-37f2d827bafe",
"name": "reason",
"type": "string",
"value": "Low score"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f69b1eca-5dfd-4eb9-8875-19fc49a476c5",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
240
],
"parameters": {
"color": 7,
"width": 864,
"content": "## Typeform to Mautic: Advanced ZeroBounce Lead Vetting\n\n**This workflow automates the transition of new Typeform submissions into Mautic, using [ZeroBounce](https://www.zerobounce.net) for multi-layer validation (Validation + Scoring).**\n\n**Results are also output to Google Sheets for review.**"
},
"typeVersion": 1
},
{
"id": "906ac7dd-9307-4952-8397-f8e64d9dc9f4",
"name": "Add to Accepted",
"type": "n8n-nodes-base.googleSheets",
"position": [
2880,
400
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $('Typeform Trigger').item.json['What is your email address?'] }}",
"ZB Score": "={{ $node[\"Score email\"] ? $('Score email').item.json.score : \"\" }}",
"Last Name": "={{ $('Typeform Trigger').item.json['What is your last name?'] }}",
"ZB Domain": "={{ $('Validate email').item.json.domain }}",
"ZB Status": "={{ $('Validate email').item.json.status }}",
"First Name": "={{ $('Typeform Trigger').item.json['What is your first name?'] }}",
"ZB Account": "={{ $('Validate email').item.json.account }}",
"Accepted At": "={{ $now }}",
"ZB MX Found": "={{ $('Validate email').item.json.mx_found }}",
"ZB MX Record": "={{ $('Validate email').item.json.mx_record }}",
"ZB Free Email": "={{ $('Validate email').item.json.free_email }}",
"ZB Sub Status": "={{ $('Validate email').item.json.sub_status }}",
"Accepted Reason": "={{ $json.reason }}",
"ZB Did You Mean": "={{ $('Validate email').item.json.did_you_mean }}",
"ZB SMTP Provider": "={{ $('Validate email').item.json.smtp_provider }}",
"ZB Domain Age Days": "={{ $('Validate email').item.json.domain_age_days }}"
},
"schema": [
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Accepted At",
"type": "string",
"display": true,
"required": false,
"displayName": "Accepted At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Accepted Reason",
"type": "string",
"display": true,
"required": false,
"displayName": "Accepted Reason",
"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": "ZB Free Email",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB Free Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Did You Mean",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB Did You Mean",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Account",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB Account",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Domain",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Domain Age Days",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB Domain Age Days",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB SMTP Provider",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB SMTP Provider",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB MX Found",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB MX Found",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB MX Record",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB MX Record",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Score",
"type": "string",
"display": true,
"required": false,
"displayName": "ZB Score",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 490801678,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fG6zRuJAVOryq15axOqLplwczFV-KPsM0JR2lUKIK-k/edit#gid=490801678",
"cachedResultName": "Accepted"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1fG6zRuJAVOryq15axOqLplwczFV-KPsM0JR2lUKIK-k",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fG6zRuJAVOryq15axOqLplwczFV-KPsM0JR2lUKIK-k/edit?usp=drivesdk",
"cachedResultName": "ZeroBounce Jotform ActiveCampaign"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "abcf537f-bf35-4e90-96dd-13f4463b0490",
"name": "Add to Rejected",
"type": "n8n-nodes-base.googleSheets",
"position": [
2880,
992
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $('Typeform Trigger').item.json['What is your email address?'] }}",
"ZB Score": "={{ $node[\"Score email\"] ? $('Score email').item.json.score : \"\" }}",
"Last Name": "={{ $('Typeform Trigger').item.json['What is your last name?'] }}",
"ZB Domain": "={{ $('Validate email').item.json.domain }}",
"ZB Status": "={{ $('Validate email').item.json.status }}",
"First Name": "={{ $('Typeform Trigger').item.json['What is your first name?'] }}",
"ZB Account": "={{ $('Validate email').item.json.account }}",
"Rejected At": "={{ $now }}",
"ZB MX Found": "={{ $('Validate email').item.json.mx_found }}",
"ZB MX Record": "={{ $('Validate email').item.json.mx_record }}",
"Reject Reason": "={{ $json.reason }}",
"ZB Free Email": "={{ $('Validate email').item.json.free_email }}",
"ZB Sub Status": "={{ $('Validate email').item.json.sub_status }}",
"ZB Did You Mean": "={{ $node[\"Validate email\"] ? $('Validate email').item.json.did_you_mean : \"\" }}",
"ZB SMTP Provider": "={{ $('Validate email').item.json.smtp_provider }}",
"ZB Domain Age Days": "={{ $('Validate email').item.json.domain_age_days }}"
},
"schema": [
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Rejected At",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Rejected At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reject Reason",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Reject Reason",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Sub Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB Sub Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Free Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB Free Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Did You Mean",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB Did You Mean",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Account",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB Account",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Domain",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Domain Age Days",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB Domain Age Days",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB SMTP Provider",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB SMTP Provider",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB MX Found",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB MX Found",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB MX Record",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB MX Record",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Score",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ZB Score",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1C-V2jrev3Ep7G532VHIrEbFlBF9rLeVgyhV-SXA4-GQ/edit#gid=0",
"cachedResultName": "Rejected"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1fG6zRuJAVOryq15axOqLplwczFV-KPsM0JR2lUKIK-k",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fG6zRuJAVOryq15axOqLplwczFV-KPsM0JR2lUKIK-k/edit?usp=drivesdk",
"cachedResultName": "ZeroBounce Jotform ActiveCampaign"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "8bd11f50-890b-471e-a995-18606cc443dd",
"name": "High score",
"type": "n8n-nodes-base.set",
"position": [
2656,
496
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "760f0ae8-a358-4875-9607-37f2d827bafe",
"name": "reason",
"type": "string",
"value": "High score"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ec2821ed-2d48-4cfd-937a-c7aeff21c4d2",
"name": "Valid",
"type": "n8n-nodes-base.set",
"position": [
2656,
304
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "760f0ae8-a358-4875-9607-37f2d827bafe",
"name": "reason",
"type": "string",
"value": "Valid"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "71e2c906-31e3-490b-a1a8-a636457457ff",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
816,
1120
],
"parameters": {
"color": 7,
"width": 416,
"height": 208,
"content": "## \u26a1 Trigger & Verification"
},
"typeVersion": 1
},
{
"id": "bbfc0292-4a5a-45b5-803c-a5d5f435f4be",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1264,
784
],
"parameters": {
"color": 7,
"width": 640,
"height": 448,
"content": "## \u2714\ufe0f Stage 1: Email Validation"
},
"typeVersion": 1
},
{
"id": "0fc70594-d3cf-4161-9fae-ef4558f3ecef",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1936,
608
],
"parameters": {
"color": 7,
"width": 640,
"height": 432,
"content": "## \ud83c\udfaf Stage 2: Email Scoring"
},
"typeVersion": 1
},
{
"id": "674c53ca-65e5-4f3e-aa4f-8e63c26f19a1",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2608,
240
],
"parameters": {
"color": 7,
"width": 640,
"height": 1568,
"content": "## \ud83d\udce4 Output Results\n"
},
"typeVersion": 1
},
{
"id": "852bb9c4-d3df-4eb7-89f6-fb51c9b1f88a",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1536,
240
],
"parameters": {
"color": 7,
"width": 518,
"height": 288,
"content": ""
},
"typeVersion": 1
},
{
"id": "d6e1dd6d-83d0-4fc0-b1a5-621fa8b57bad",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
1376
],
"parameters": {
"color": 7,
"width": 864,
"height": 432,
"content": "### \ud83d\udccb Setup Requirements\n- **Typeform:** Connect via Access Token or OAuth2 to receive \"Form Submission\" events.\n- **ZeroBounce:** Connect via API Key. *[Create one here](https://www.zerobounce.net/members/API)*.\n- **Mautic:** Connect via credentials or OAuth2 to create/update people for high-quality leads.\n- **Google Sheets:** Connect via OAuth2 to append/update rows in a Google Sheets worksheet. Alternatively, swap these nodes out with any other data storage node e.g. **n8n Data Table** or **Microsoft Excel**. The sheets/tables can be created with the headers:\n - *Accepted* columns:\n`Email,First Name,Last Name,Accepted At,Accepted Reason,ZB Status,ZB Sub Status,ZB Free Email,ZB Did You Mean,ZB Account,ZB Domain,ZB Domain Age Days,ZB SMTP Provider,ZB MX Found,ZB MX Record,ZB Score`\n - *Rejected* columns\n`Email,First Name,Last Name,Rejected At,Rejected Reason,ZB Status,ZB Sub Status,ZB Free Email,ZB Did You Mean,ZB Account,ZB Domain,ZB Domain Age Days,ZB SMTP Provider,ZB MX Found,ZB MX Record,ZB Score`"
},
"typeVersion": 1
},
{
"id": "8ebda003-5457-456e-be21-522dd71f13e7",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
944
],
"parameters": {
"color": 7,
"width": 864,
"height": 128,
"content": "### \ud83d\udca1 Key Benefits\n- **\u2728 Zero-Waste Sync:** Only \"Valid\" or \"High-Scoring\" leads reach your CRM.\n- **\ud83d\udee1\ufe0f Credit Safety:** Internal checks ensure you never trigger an API call without credits.\n- **\ud83d\udcca Detailed Suppressions:** Every rejected lead is categorized by reason (e.g. Email Missing, Invalid, Low Score, or Insufficient credits)."
},
"typeVersion": 1
},
{
"id": "f05377d7-e590-4c09-bdc4-8fabf787e0ba",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
1120
],
"parameters": {
"color": 7,
"width": 400,
"height": 208,
"content": "### \ud83e\udde9 Nodes used in this workflow\n- [ZeroBounce](https://n8n.io/integrations/zerobounce)\n- [Typeform Trigger](https://n8n.io/integrations/typeform-trigger)\n- [Mautic](https://n8n.io/integrations/mautic)\n- [Google Sheets](https://n8n.io/integrations/google-sheets) (or alternative e.g. [Data Table](https://n8n.io/integrations/data-table))"
},
"typeVersion": 1
},
{
"id": "f9f9455c-e1eb-4804-9bd7-31d0a18b74c4",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
368,
448
],
"parameters": {
"color": 7,
"width": 864,
"height": 448,
"content": "### \ud83d\ude80 How it Works\n1. **\u26a1 Trigger & Verification:** Activates on new **Typeform** submissions and first checks if an email address is provided.\n - **Email present:** Proceeds to credit check and validation\n - **Email missing:** Customer details are added to *Rejected* output for review with reason `'Email missing'`.\n2. **\ud83d\udcb3 Credit Management:** Before each ZeroBounce call, the workflow checks your account for sufficient credits to prevent node failures. \n - **Success:** Proceeds to Stage 1 (Validation).\n - **Failure:** Customer details are added to *Rejected* output for retry with reason `'Not enough credits'`.\n3. **\u2714\ufe0f Stage 1: Email Validation:** Validates the email address with ZeroBounce. \n - **Valid:** Adds the result to *Accepted* output and creates a person in **Mautic**.\n - **Invalid:** Logs to a **Google Sheet** with the validation results and a reason for rejection for review.\n - **Catch-all:** Proceeds to Stage 2 (Scoring).\n4. **\ud83c\udfaf Stage 2: Email Scoring:** For \"Catch-all\" emails, the workflow requests **ZeroBounce Scoring**.\n - **High Score (>=9):** Syncs to **Mautic**.\n - **Medium/Low Score:** Suppressed and added to a **Google Sheet** with the assigned score for review.\n5. **\ud83d\udce4 Output Results:**\n - **Accepted:** Output validation and scoring results to *Accepted* and **Mautic**\n - **Rejected** Output validation and scoring results to *Rejected*."
},
"typeVersion": 1
},
{
"id": "384fa0fa-f686-43c6-a52f-412834325567",
"name": "Add to Rejected not validated",
"type": "n8n-nodes-base.googleSheets",
"position": [
2880,
1552
],
"parameters": {
"columns": {
"value": {
"Email": "={{ $json.email_override }}",
"Last Name": "={{ $('Typeform Trigger').item.json['What is your last name?'] }}",
"First Name": "={{ $('Typeform Trigger').item.json['What is your first name?'] }}",
"Rejected At": "={{ $now }}",
"Reject Reason": "={{ $json.reason }}"
},
"schema": [
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Rejected At",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Rejected At",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Reject Reason",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Reject Reason",
"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": "ZB Free Email",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Free Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Did You Mean",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Did You Mean",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Account",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Account",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Domain",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Domain Age Days",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Domain Age Days",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB SMTP Provider",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB SMTP Provider",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB MX Found",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB MX Found",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB MX Record",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB MX Record",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ZB Score",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "ZB Score",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fG6zRuJAVOryq15axOqLplwczFV-KPsM0JR2lUKIK-k/edit#gid=0",
"cachedResultName": "Rejected"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1fG6zRuJAVOryq15axOqLplwczFV-KPsM0JR2lUKIK-k",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1fG6zRuJAVOryq15axOqLplwczFV-KPsM0JR2lUKIK-k/edit?usp=drivesdk",
"cachedResultName": "ZeroBounce Jotform ActiveCampaign"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "7c9a28a6-1fa5-448a-8a5d-17fc18b6047d",
"name": "Typeform Trigger",
"type": "n8n-nodes-base.typeformTrigger",
"position": [
864,
1168
],
"parameters": {
"formId": "Myr169jg"
},
"credentials": {
"typeformApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.1
},
{
"id": "fd9b5ff1-20d5-450f-bc53-2c2e4ce65721",
"name": "Create a Mautic contact",
"type": "n8n-nodes-base.mautic",
"position": [
3104,
400
],
"parameters": {
"email": "={{ $('Typeform Trigger').item.json['What is your email address?'] }}",
"options": {},
"lastName": "={{ $('Typeform Trigger').item.json['What is your last name?'] }}",
"firstName": "={{ $('Typeform Trigger').item.json['What is your first name?'] }}",
"additionalFields": {}
},
"credentials": {
"mauticApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"availableInMCP": false,
"executionOrder": "v1"
},
"versionId": "0317a94c-bb60-4def-add7-dd99eb0caa74",
"connections": {
"Valid": {
"main": [
[
{
"node": "Add to Accepted",
"type": "main",
"index": 0
}
]
]
},
"Status": {
"main": [
[
{
"node": "Valid",
"type": "main",
"index": 0
}
],
[
{
"node": "Check credits for scoring",
"type": "main",
"index": 0
}
],
[
{
"node": "Not valid",
"type": "main",
"index": 0
}
]
]
},
"Low score": {
"main": [
[
{
"node": "Add to Rejected",
"type": "main",
"index": 0
}
]
]
},
"Not valid": {
"main": [
[
{
"node": "Add to Rejected",
"type": "main",
"index": 0
}
]
]
},
"Has email?": {
"main": [
[
{
"node": "Check credits for validation",
"type": "main",
"index": 0
}
],
[
{
"node": "Email missing",
"type": "main",
"index": 0
}
]
]
},
"High score": {
"main": [
[
{
"node": "Add to Accepted",
"type": "main",
"index": 0
}
]
]
},
"Score email": {
"main": [
[
{
"node": "Filter by score",
"type": "main",
"index": 0
}
]
]
},
"Medium score": {
"main": [
[
{
"node": "Add to Rejected",
"type": "main",
"index": 0
}
]
]
},
"Email missing": {
"main": [
[
{
"node": "Add to Rejected not validated",
"type": "main",
"index": 0
}
]
]
},
"Validate email": {
"main": [
[
{
"node": "Status",
"type": "main",
"index": 0
}
]
]
},
"Add to Accepted": {
"main": [
[
{
"node": "Create a Mautic contact",
"type": "main",
"index": 0
}
]
]
},
"Filter by score": {
"main": [
[
{
"node": "High score",
"type": "main",
"index": 0
}
],
[
{
"node": "Medium score",
"type": "main",
"index": 0
}
],
[
{
"node": "Low score",
"type": "main",
"index": 0
}
]
]
},
"Typeform Trigger": {
"main": [
[
{
"node": "Has email?",
"type": "main",
"index": 0
}
]
]
},
"Check credits for scoring": {
"main": [
[
{
"node": "Score email",
"type": "main",
"index": 0
}
],
[
{
"node": "Not enough credits for scoring",
"type": "main",
"index": 0
}
]
]
},
"Check credits for validation": {
"main": [
[
{
"node": "Validate email",
"type": "main",
"index": 0
}
],
[
{
"node": "Not enough credits for validation",
"type": "main",
"index": 0
}
]
]
},
"Not enough credits for scoring": {
"main": [
[
{
"node": "Add to Rejected",
"type": "main",
"index": 0
}
]
]
},
"Not enough credits for validation": {
"main": [
[
{
"node": "Add to Rejected not validated",
"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.
googleSheetsOAuth2ApimauticApitypeformApizeroBounceApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates the transition of new Typeform submissions into Mautic, using ZeroBounce for multi-layer validation (Validation + Scoring).
Source: https://n8n.io/workflows/13095/ — 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 transition of new Jotform submissions into ActiveCampaign, using ZeroBounce for multi-layer validation (Validation + Scoring).
This n8n automation captures new leads from a form submission and automatically:
This n8n workflow automatically generates lead magnet ideas based on topics and website URLs stored in a Google Sheet. It uses the Lead Magnet Idea Generator AI API to produce relevant, value-driven i
This workflow automatically validates and enriches contact form submissions from JotForm, ensuring you only store high-quality leads with complete business information.
This n8n workflow is designed for business owners, sales teams, and customer support managers who want to automate their lead capture and immediate acknowledgment process. The workflow creates an end-