{
  "name": "Enrich leads from Google Sheets with ScraperCity emails, phones, and validation",
  "nodes": [
    {
      "id": "a1000000-0000-0000-0000-000000000001",
      "name": "Start Enrichment",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -2000,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000002",
      "name": "Configure Workflow",
      "type": "n8n-nodes-base.set",
      "position": [
        -1750,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000003",
      "name": "Read Contacts from Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000004",
      "name": "Format Contacts for Email Finder",
      "type": "n8n-nodes-base.code",
      "position": [
        -1250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000005",
      "name": "Start Email Finder Job",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1000,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000006",
      "name": "Store Email Finder Run ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -750,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000007",
      "name": "Wait Before Checking Email Finder",
      "type": "n8n-nodes-base.wait",
      "position": [
        -500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000008",
      "name": "Poll Email Finder Loop",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000009",
      "name": "Check Email Finder Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000010",
      "name": "Is Email Finder Complete?",
      "type": "n8n-nodes-base.if",
      "position": [
        250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000011",
      "name": "Wait Before Next Email Finder Poll",
      "type": "n8n-nodes-base.wait",
      "position": [
        250,
        592
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000012",
      "name": "Download Email Finder Results",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000013",
      "name": "Parse Email Finder CSV",
      "type": "n8n-nodes-base.code",
      "position": [
        750,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000014",
      "name": "Remove Duplicate Emails",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        1000,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000015",
      "name": "Filter Valid Emails Only",
      "type": "n8n-nodes-base.filter",
      "position": [
        1250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000016",
      "name": "Format Emails for Mobile Finder",
      "type": "n8n-nodes-base.code",
      "position": [
        1500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000017",
      "name": "Start Mobile Finder Job",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1750,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000018",
      "name": "Store Mobile Finder Run ID",
      "type": "n8n-nodes-base.set",
      "position": [
        2000,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000019",
      "name": "Wait Before Checking Mobile Finder",
      "type": "n8n-nodes-base.wait",
      "position": [
        2250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000020",
      "name": "Poll Mobile Finder Loop",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000021",
      "name": "Check Mobile Finder Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2750,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000022",
      "name": "Is Mobile Finder Complete?",
      "type": "n8n-nodes-base.if",
      "position": [
        3000,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000023",
      "name": "Wait Before Next Mobile Finder Poll",
      "type": "n8n-nodes-base.wait",
      "position": [
        500,
        592
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000024",
      "name": "Download Mobile Finder Results",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000025",
      "name": "Parse Mobile Finder CSV",
      "type": "n8n-nodes-base.code",
      "position": [
        3500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000026",
      "name": "Format Emails for Validator",
      "type": "n8n-nodes-base.code",
      "position": [
        3750,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000027",
      "name": "Start Email Validator Job",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        4000,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000028",
      "name": "Store Validator Run ID",
      "type": "n8n-nodes-base.set",
      "position": [
        4250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000029",
      "name": "Wait Before Checking Validator",
      "type": "n8n-nodes-base.wait",
      "position": [
        4500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000030",
      "name": "Poll Validator Loop",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        4750,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000031",
      "name": "Check Validator Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5000,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000032",
      "name": "Is Validator Complete?",
      "type": "n8n-nodes-base.if",
      "position": [
        5250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000033",
      "name": "Wait Before Next Validator Poll",
      "type": "n8n-nodes-base.wait",
      "position": [
        750,
        592
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000034",
      "name": "Download Validator Results",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000035",
      "name": "Parse Validator CSV",
      "type": "n8n-nodes-base.code",
      "position": [
        5750,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000036",
      "name": "Merge All Enrichment Data",
      "type": "n8n-nodes-base.code",
      "position": [
        6250,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000037",
      "name": "Prepare Merge Inputs",
      "type": "n8n-nodes-base.set",
      "position": [
        6000,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000038",
      "name": "Write Enriched Leads to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        6500,
        400
      ]
    },
    {
      "id": "a1000000-0000-0000-0000-000000000050",
      "name": "Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2600,
        100
      ],
      "parameters": {
        "width": 500,
        "height": 700,
        "content": "## Lead Enrichment with Emails, Phones, and Validation\n\n### Who is this for\nB2B sales teams, SDRs, and growth marketers who have a spreadsheet of prospect names and company domains and need verified e"
      }
    },
    {
      "id": "a1000000-0000-0000-0000-000000000051",
      "name": "Section: Configuration",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2040,
        -160
      ],
      "parameters": {
        "width": 1730,
        "height": 330,
        "content": "## Configuration\n\nThe **Configure Workflow** node is the single place to set all user-configurable variables: input sheet document ID, input sheet name, output sheet document ID, and output sheet name"
      }
    },
    {
      "id": "a1000000-0000-0000-0000-000000000052",
      "name": "Setup: ScraperCity API key here",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1016,
        288
      ],
      "parameters": {
        "width": 280,
        "height": 70,
        "content": "Add your ScraperCity API key credential here"
      }
    },
    {
      "id": "a1000000-0000-0000-0000-000000000053",
      "name": "Setup: Google Sheets IDs here",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1516,
        288
      ],
      "parameters": {
        "width": 280,
        "height": 70,
        "content": "Set your input and output Google Sheets document IDs here"
      }
    },
    {
      "id": "a1000000-0000-0000-0000-000000000054",
      "name": "Section: Email Finder",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -290,
        -160
      ],
      "parameters": {
        "width": 1730,
        "height": 530,
        "content": "## Email Finder\n\nThe **Format Contacts for Email Finder** node transforms raw sheet rows into the JSON structure ScraperCity expects. **Start Email Finder Job** submits the batch and returns a runId. "
      }
    },
    {
      "id": "a1000000-0000-0000-0000-000000000055",
      "name": "Section: Mobile Finder",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1460,
        -160
      ],
      "parameters": {
        "width": 1730,
        "height": 330,
        "content": "## Mobile Finder\n\nOnce emails are found, **Format Emails for Mobile Finder** extracts the email list. **Start Mobile Finder Job** submits them to ScraperCity Mobile Finder, which looks up mobile numbe"
      }
    },
    {
      "id": "a1000000-0000-0000-0000-000000000056",
      "name": "Section: Email Validator",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3210,
        -160
      ],
      "parameters": {
        "width": 1730,
        "height": 330,
        "content": "## Email Validator\n\n**Format Emails for Validator** prepares the email list for bulk verification. **Start Email Validator Job** submits them to ScraperCity Email Validator for deliverability, catch-a"
      }
    },
    {
      "id": "a1000000-0000-0000-0000-000000000057",
      "name": "Section: Merge and Output",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4960,
        -160
      ],
      "parameters": {
        "width": 1730,
        "height": 330,
        "content": "## Merge and Output\n\n**Prepare Merge Inputs** collects all three parsed result sets (email finder, mobile finder, validator) into a single node context. **Merge All Enrichment Data** joins them by ema"
      }
    }
  ],
  "connections": {
    "Start Enrichment": {
      "main": [
        [
          {
            "node": "Configure Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Configure Workflow": {
      "main": [
        [
          {
            "node": "Read Contacts from Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Validator CSV": {
      "main": [
        [
          {
            "node": "Prepare Merge Inputs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Poll Validator Loop": {
      "main": [
        [
          {
            "node": "Check Validator Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Merge Inputs": {
      "main": [
        [
          {
            "node": "Merge All Enrichment Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Validator Status": {
      "main": [
        [
          {
            "node": "Is Validator Complete?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Validator Complete?": {
      "main": [
        [
          {
            "node": "Download Validator Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait Before Next Validator Poll",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Email Finder CSV": {
      "main": [
        [
          {
            "node": "Remove Duplicate Emails",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Poll Email Finder Loop": {
      "main": [
        [
          {
            "node": "Check Email Finder Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start Email Finder Job": {
      "main": [
        [
          {
            "node": "Store Email Finder Run ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Validator Run ID": {
      "main": [
        [
          {
            "node": "Wait Before Checking Validator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Mobile Finder CSV": {
      "main": [
        [
          {
            "node": "Format Emails for Validator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Poll Mobile Finder Loop": {
      "main": [
        [
          {
            "node": "Check Mobile Finder Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Remove Duplicate Emails": {
      "main": [
        [
          {
            "node": "Filter Valid Emails Only",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start Mobile Finder Job": {
      "main": [
        [
          {
            "node": "Store Mobile Finder Run ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Valid Emails Only": {
      "main": [
        [
          {
            "node": "Format Emails for Mobile Finder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Contacts from Sheet": {
      "main": [
        [
          {
            "node": "Format Contacts for Email Finder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Email Finder Status": {
      "main": [
        [
          {
            "node": "Is Email Finder Complete?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Email Finder Complete?": {
      "main": [
        [
          {
            "node": "Download Email Finder Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait Before Next Email Finder Poll",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge All Enrichment Data": {
      "main": [
        [
          {
            "node": "Write Enriched Leads to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start Email Validator Job": {
      "main": [
        [
          {
            "node": "Store Validator Run ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Email Finder Run ID": {
      "main": [
        [
          {
            "node": "Wait Before Checking Email Finder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Mobile Finder Status": {
      "main": [
        [
          {
            "node": "Is Mobile Finder Complete?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Validator Results": {
      "main": [
        [
          {
            "node": "Parse Validator CSV",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Mobile Finder Complete?": {
      "main": [
        [
          {
            "node": "Download Mobile Finder Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait Before Next Mobile Finder Poll",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Mobile Finder Run ID": {
      "main": [
        [
          {
            "node": "Wait Before Checking Mobile Finder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Emails for Validator": {
      "main": [
        [
          {
            "node": "Start Email Validator Job",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Email Finder Results": {
      "main": [
        [
          {
            "node": "Parse Email Finder CSV",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Mobile Finder Results": {
      "main": [
        [
          {
            "node": "Parse Mobile Finder CSV",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Before Checking Validator": {
      "main": [
        [
          {
            "node": "Poll Validator Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Emails for Mobile Finder": {
      "main": [
        [
          {
            "node": "Start Mobile Finder Job",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Before Next Validator Poll": {
      "main": [
        [
          {
            "node": "Poll Validator Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Contacts for Email Finder": {
      "main": [
        [
          {
            "node": "Start Email Finder Job",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Before Checking Email Finder": {
      "main": [
        [
          {
            "node": "Poll Email Finder Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Before Checking Mobile Finder": {
      "main": [
        [
          {
            "node": "Poll Mobile Finder Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Before Next Email Finder Poll": {
      "main": [
        [
          {
            "node": "Poll Email Finder Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Before Next Mobile Finder Poll": {
      "main": [
        [
          {
            "node": "Poll Mobile Finder Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}