{
  "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": "![ZeroBounce Logo](https://raw.githubusercontent.com/zerobounce/n8n-nodes-zerobounce/main/icons/zb-logo-purple.svg)"
      },
      "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
          }
        ]
      ]
    }
  }
}