AutomationFlowsMarketing & Ads › Capture and Nurture Fraud-proof Leads with AI Scoring, Sheets Tracking &…

Capture and Nurture Fraud-proof Leads with AI Scoring, Sheets Tracking &…

Original n8n title: Capture and Nurture Fraud-proof Leads with AI Scoring, Sheets Tracking & Multi-channel Alerts

ByJitesh Dugar @jiteshdugar on n8n.io

Ad agencies needing automated lead capture. Sales teams fighting fraud and scoring leads. B2B SaaS companies nurturing prospects. Marketing pros boosting sales pipelines. Captures leads via Webhook from forms. Validates emails with Verifi Email node. Checks IP for fraud using IP…

Webhook trigger★★★★☆ complexity28 nodesHTTP RequestGoogle SheetsSlackGmailN8N Nodes Verifiemail
Marketing & Ads Trigger: Webhook Nodes: 28 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #8879 — 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 →

Download .json
{
  "id": "r1CIwCvTPaGCopnc",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Fraud-Proof Lead Capture & Nurturing System",
  "tags": [],
  "nodes": [
    {
      "id": "39a03628-85de-4f62-a325-6998582df224",
      "name": "Capture Leads",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -176,
        -304
      ],
      "parameters": {
        "path": "lead-capture",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "630bad90-e722-4b1a-b707-9abf5aa10760",
      "name": "IP Lookup",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        832,
        -336
      ],
      "parameters": {
        "url": "=https://ipapi.co/{{ $('Capture Leads').item.json.body.ip }}/json/",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "a067119f-d6c9-4369-8a2b-70c391fa30e2",
      "name": "Filter Valid Emails",
      "type": "n8n-nodes-base.if",
      "position": [
        688,
        -96
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "df50fd59-d012-4eb9-986c-2956332a1154",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.valid }}",
              "rightValue": "true"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "fc7c4556-5b65-473c-81ba-271ada1fa03d",
      "name": "Lead Quality Score",
      "type": "n8n-nodes-base.code",
      "position": [
        1248,
        -80
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst output = [];\n\n// Assume first item is IP Lookup data, second is Webhook data\nconst ipData = items[0].json; // IP-related data\nconst webhookData = items[1].json.body; // Webhook payload (name, email, etc.)\n\n// Merge data into a single object\nlet mergedData = { ...webhookData, ...ipData };\n\n// Calculate leadScore\nlet score = 0;\n// Email valid: +50 (assumed since Verifi Email is bypassed or handled externally)\nscore += 50;\n// Low-risk region: +30 (e.g., US or CA)\nif (mergedData.country_code === 'US' || mergedData.region_code === 'CA') score += 30;\n// Job role match: +20 (e.g., decision-maker)\nif (mergedData.jobRole && ['CEO', 'CTO', 'VP'].includes(mergedData.jobRole.toUpperCase())) score += 20;\nmergedData.leadScore = score; // Add score to merged data\n\n// Add timestamp\nmergedData.timestamp = new Date().toISOString(); // e.g., 2025-09-22T16:55:00.000Z (10:25 PM IST)\n\noutput.push(mergedData);\nreturn output;"
      },
      "typeVersion": 2
    },
    {
      "id": "c9eb3b49-87fc-4fb3-97c8-69cfb56bd3aa",
      "name": "Append row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1472,
        112
      ],
      "parameters": {
        "columns": {
          "value": {
            "IP": "={{ $json.ip }}",
            "Name": "={{ $json.name }}",
            "Email": "={{ $json.email }}",
            "Company": "={{ $json.company }}",
            "Industry": "={{ $json.industry }}",
            "Job Role": "={{ $json.jobRole }}",
            "Timestamp": "={{ $json.timestamp }}",
            "Lead Score": "={{ $json.leadScore }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Role",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Job Role",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Industry",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "IP",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "IP",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Lead Score",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Lead Score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Timestamp",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Timestamp",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15JAabnn5NBtiFom_EKkIMONKz-yiLZGvWz5y6YqNOwY/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "15JAabnn5NBtiFom_EKkIMONKz-yiLZGvWz5y6YqNOwY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/15JAabnn5NBtiFom_EKkIMONKz-yiLZGvWz5y6YqNOwY/edit?usp=drivesdk",
          "cachedResultName": "Leads Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "c3a388ff-4635-45e0-b888-7eb9a5a35b41",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        928,
        80
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "65d5335e-e06e-418f-9b05-f66f35fa20d5",
      "name": "High Score Check",
      "type": "n8n-nodes-base.if",
      "position": [
        1632,
        112
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9d9f97b9-ec47-400e-bcc1-7db2fb570ac6",
              "operator": {
                "type": "number",
                "operation": "gt"
              },
              "leftValue": "={{ $json[\"Lead Score\"] }}",
              "rightValue": 70
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "6a9a9658-8a31-42be-8118-f6389a6b2d47",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1824,
        256
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "df4d6346-aa12-40c1-8b89-287f7c18ac5e",
      "name": "Notify Sales Team",
      "type": "n8n-nodes-base.slack",
      "position": [
        1808,
        -144
      ],
      "parameters": {
        "text": "=New high-quality lead!  Name: {{ $json.Name }} Email: {{ $json.Email }} Lead Score: {{ $json[\"Lead Score\"] }} IP: {{ $json.IP }} Timestamp: {{ $json.Timestamp }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "#leads"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "5cbf8cfc-1f98-4bc9-9302-6dc50c3cfb4f",
      "name": "Auto-Send Welcome Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2256,
        -144
      ],
      "parameters": {
        "sendTo": "={{ $json.email }}",
        "message": "=Hi {{ $json.firstname }},\n\nThank you for your interest in Acme Inc!. With your lead score of {{ $json.lead_score }}, we\u2019re excited to assist you. A team member will follow up soon.\n\nBest,\nYour Acme Inc Team",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Welcome to Acme Inc, {{ $json.firstname }}!",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "a019ed91-0092-48d0-8503-8271b9cae401",
      "name": "Reformat for Email",
      "type": "n8n-nodes-base.set",
      "position": [
        2032,
        -144
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "c6ca5460-9afe-43f0-b26f-50f0e0a11b47",
              "name": "email",
              "type": "string",
              "value": "={{ $json.message.blocks[0].elements[0].elements[1].text }}"
            },
            {
              "id": "6f7d2ce9-eb7f-4b5a-8260-0d57273c6c92",
              "name": "firstname",
              "type": "string",
              "value": "={{ $json.message.text.split('Name: ')[1].split(' Email: ')[0].split(' ')[0] }}"
            },
            {
              "id": "4fd95f7f-f5c3-4ebf-93e4-d335000d6489",
              "name": "lastname",
              "type": "string",
              "value": "={{ $json.message.text.split('Name: ')[1].split(' Email: ')[0].split(' ').slice(1).join(' ') || '' }}"
            },
            {
              "id": "2f7cdcc2-8081-455c-b353-0e59ea515737",
              "name": "lead_score",
              "type": "string",
              "value": "={{ $json.message.text.match(/Lead Score: (\\d+)/)[1] }}"
            },
            {
              "id": "77fdccf7-c271-41e6-966b-b6fd1ee9f1c5",
              "name": "ip",
              "type": "string",
              "value": "={{ $json.message.text.match(/IP: (\\d+\\.\\d+\\.\\d+\\.\\d+)/)[1] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "12a68585-5964-46c6-95da-52bb3d5057d2",
      "name": "Track Email Opens",
      "type": "n8n-nodes-base.set",
      "position": [
        2416,
        -352
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "016128d5-0a2a-4dca-8170-cb2f222dc0e3",
              "name": "opened",
              "type": "boolean",
              "value": false
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d8a08321-0d75-4152-87f3-fa2644667506",
      "name": "Check No Response",
      "type": "n8n-nodes-base.if",
      "position": [
        2736,
        -352
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "da182d21-e8a6-459e-91d4-3b28b34c027f",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.opened }} ",
              "rightValue": "false"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d98fb281-dc89-4d42-b6bc-c13f3160dc7b",
      "name": "Auto Follow-Up Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2912,
        -144
      ],
      "parameters": {
        "sendTo": "={{ $('Reformat for Email').item.json.email }}",
        "message": "=Hi {{ $('Reformat for Email').item.json.firstname }},\n\nWe noticed you haven\u2019t had a chance to check our welcome email. Let us know if you have questions!\n\nBest,\nYour Acme Inc Team",
        "options": {},
        "subject": "=Following Up, {{ $('Reformat for Email').item.json.firstname }}!",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "cb711d7d-7fc2-48b1-8543-0ecddb5bb77c",
      "name": "Calculate Engagement Score",
      "type": "n8n-nodes-base.code",
      "position": [
        3168,
        -144
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst output = [];\nitems.forEach(item => {\n  let score = 0;\n  if (item.json.opened) score += 20; // Add more logic for clicks/replies later\n  item.json.engagement_score = score;\n  output.push(item.json);\n});\nreturn output;"
      },
      "typeVersion": 2
    },
    {
      "id": "b1aec3c4-5926-419a-a8fd-3cbff3030c00",
      "name": "Weekly Report Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        64,
        288
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 0 * * 1"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8fa53b82-af8c-45b5-8a5d-2fc38c1f40a8",
      "name": "Generate Weekly Report",
      "type": "n8n-nodes-base.code",
      "position": [
        288,
        288
      ],
      "parameters": {
        "jsCode": "const items = $input.all();\nconst report = {\n  total_leads: items.length,\n  high_score_leads: items.filter(i => i.json.lead_score >= 70).length,\n  avg_engagement: items.reduce((sum, i) => sum + (i.json.engagement_score || 0), 0) / items.length\n};\nreturn [{ json: { report } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "e72606ea-e805-4e4d-b7af-346f85c713bf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -224,
        -464
      ],
      "parameters": {
        "color": 7,
        "width": 1184,
        "height": 320,
        "content": "## LEAD CAPTURE AND FILTERING\n1. Connect your form to the **Webhook** node by setting its action to **POST** to\n **https://[your-n8n-url]/webhook/lead-capture**.\n2. **Set User Config** node groups customizable variables. Update these in the Set node for your needs.\n3. Set **Verifi Email** credential for validation. \n4. Customize **IP Lookup URL** if needed.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "60c76a8d-365f-4059-926f-3bd5a26f4a03",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1008,
        -208
      ],
      "parameters": {
        "color": 7,
        "width": 688,
        "height": 288,
        "content": "## SCORING AND NOTIFICATION\n1. Adjust scoring logic in **Lead Quality Score Function**.\n2. Set **Slack** credential for notifications."
      },
      "typeVersion": 1
    },
    {
      "id": "2cede4e9-59d9-4bf3-8955-4f1b071a7862",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        -176
      ],
      "parameters": {
        "color": 7,
        "width": 864,
        "height": 320,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## NURTURING \n1. Use **Gmail** credential for emails. \n2. Customize templates in **Auto-Send Welcome Email** and **Auto Follow-Up Email**."
      },
      "typeVersion": 1
    },
    {
      "id": "795ca751-8ef3-434a-b08b-764bcdf3ffaa",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        272
      ],
      "parameters": {
        "color": 7,
        "width": 736,
        "content": "## REPORTING\n1. Set **Schedule Trigger** cron for weekly runs. \n2. Customize **report** email recipient"
      },
      "typeVersion": 1
    },
    {
      "id": "d3e8ce08-2328-4b0e-8f70-4978e05b8b6e",
      "name": "Validate Email",
      "type": "n8n-nodes-verifiemail.verifiEmail",
      "position": [
        544,
        -528
      ],
      "parameters": {
        "email": "={{ $('Capture Leads').item.json.body.email }}"
      },
      "credentials": {
        "verifiEmailApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "664d4afd-5923-431f-baee-cfefd9c4ae12",
      "name": "Delay 24 Hours",
      "type": "n8n-nodes-base.wait",
      "position": [
        2560,
        -528
      ],
      "parameters": {
        "unit": "hours",
        "amount": 24
      },
      "typeVersion": 1.1
    },
    {
      "id": "88fe4498-6b0d-468b-bcdb-c56751263b6d",
      "name": "Send Report to Sales Head",
      "type": "n8n-nodes-base.gmail",
      "position": [
        528,
        288
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "=Hi Sales Head, - Total Leads: {{ $json.report.total_leads }} - High Score Leads: {{ $json.report.high_score_leads }} - Avg Engagement Score: {{ $json.report.avg_engagement }}",
        "options": {},
        "subject": "=Weekly Sales Performance Report - {{ new Date().toLocaleDateString() }}",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "189d1f0d-16b2-4d99-b8ec-bb9e0d5a3fca",
      "name": "Set User Config",
      "type": "n8n-nodes-base.set",
      "position": [
        320,
        -320
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e7caaeec-7270-44e5-9a4c-553211819e12",
              "name": "score_threshold",
              "type": "number",
              "value": 70
            },
            {
              "id": "ee0a32d4-fe19-4baf-9d48-9347ef4d1168",
              "name": "sales_channel",
              "type": "string",
              "value": "#leads"
            },
            {
              "id": "cbe57e5f-e6bd-47e5-b137-c90286c2bb4a",
              "name": "sales_head_email",
              "type": "string",
              "value": "user@example.com"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "34f1a368-21cf-4593-93e3-6f0520ef5f1e",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -656,
        -464
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 400,
        "content": "## MAIN OVERVIEW\nThis workflow automates:\n1. **lead capture** from forms\n2. **fraud-proofing** with **email validation**.\n3. **IP geolocation**\n4. **scoring quality**\n5. notifying sales via **Slack**\n6. **nurturing** with personalized emails\n7. tracking engagement\n8. following up on no-responses\n9. emailing **weekly reports**.\n\n**Who\u2019s it for**: Ad agencies, sales teams, **B2B SaaS**.\n**Requirements**: Credentials for Verifi Email, Slack, Google Sheets, Gmail. Customize variables in Set User Config."
      },
      "typeVersion": 1
    },
    {
      "id": "29ea9179-fe3d-49b4-be03-7b7a1dacb69f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2432,
        -640
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 240,
        "content": "## DELAY \n1. Weekly Report Trigger runs **Mondays** at **00:00**. \n2. Customize **sales_head_email** in Set User Config."
      },
      "typeVersion": 1
    },
    {
      "id": "1f33a23e-8425-4be2-aea3-2612c4d591a6",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        -688
      ],
      "parameters": {
        "color": 7,
        "width": 448,
        "height": 256,
        "content": "## VERIFI EMAIL(Community node)\n- Validates email addresses using **Verifi Email API**.\n- **Self-hosted** only: Install the n8n-nodes-verifiemail package **(npm install n8n-nodes-verifi-email)**.\n- Set up a **Verifi Email** credential with your API key."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "bbb88349-0615-4cfd-adee-5d4ea91ad0a2",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Lead Quality Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IP Lookup": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Capture Leads": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          },
          {
            "node": "Set User Config",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delay 24 Hours": {
      "main": [
        [
          {
            "node": "Check No Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Email": {
      "main": [
        [
          {
            "node": "Filter Valid Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set User Config": {
      "main": [
        [
          {
            "node": "Validate Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "High Score Check": {
      "main": [
        [
          {
            "node": "Notify Sales Team",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check No Response": {
      "main": [
        [],
        [
          {
            "node": "Auto Follow-Up Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify Sales Team": {
      "main": [
        [
          {
            "node": "Reformat for Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Track Email Opens": {
      "main": [
        [
          {
            "node": "Delay 24 Hours",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lead Quality Score": {
      "main": [
        [
          {
            "node": "Append row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Reformat for Email": {
      "main": [
        [
          {
            "node": "Auto-Send Welcome Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append row in sheet": {
      "main": [
        [
          {
            "node": "High Score Check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Valid Emails": {
      "main": [
        [
          {
            "node": "IP Lookup",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Auto Follow-Up Email": {
      "main": [
        [
          {
            "node": "Calculate Engagement Score",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly Report Trigger": {
      "main": [
        [
          {
            "node": "Generate Weekly Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Weekly Report": {
      "main": [
        [
          {
            "node": "Send Report to Sales Head",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Auto-Send Welcome Email": {
      "main": [
        [
          {
            "node": "Track Email Opens",
            "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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Ad agencies needing automated lead capture. Sales teams fighting fraud and scoring leads. B2B SaaS companies nurturing prospects. Marketing pros boosting sales pipelines. Captures leads via Webhook from forms. Validates emails with Verifi Email node. Checks IP for fraud using IP…

Source: https://n8n.io/workflows/8879/ — original creator credit. Request a take-down →

More Marketing & Ads workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Marketing & Ads

Let's build this simple and high-value workflow. Here is a detailed, node-by-node explanation of how it works and how to set it up in n8n.

Slack, Google Sheets, Gmail
Marketing & Ads

Automatically qualify, score, and route inbound B2B leads using GPT-4o-mini — no manual review needed.

HTTP Request, Slack, Gmail +1
Marketing & Ads

Store leads in a SQL Server database via REST API with automatic scoring and Slack notifications.

HTTP Request, Slack, Error Trigger
Marketing & Ads

A comprehensive n8n workflow template for streamlining influencer application processing with real-time social media data validation, intelligent scoring algorithms, and automated onboarding workflows

N8N Nodes Verifiemail, Stop And Error, HTTP Request +2
Marketing & Ads

AI Lead Qualification & Follow-Up. Uses httpRequest, slack, googleSheets, gmail. Webhook trigger; 18 nodes.

HTTP Request, Slack, Google Sheets +2