{"workflow":{"id":13854,"name":"Enrich leads from Google Sheets with ScraperCity emails, phones, and validation","views":47,"recentViews":0,"totalViews":47,"createdAt":"2026-03-04T02:00:00.736Z","description":"## Who is this for\n\nThis template is for B2B sales teams, SDRs, growth marketers, and founders who maintain a spreadsheet of prospects and need verified contact details -- emails and mobile numbers -- without manual research.\n\n## How it works\n\n1. Reads a list of contacts (first name, last name, company domain) from a Google Sheet.\n2. Formats the contacts and submits them to the ScraperCity Email Finder API to discover business email addresses.\n3. Polls until the email-finder job completes, then downloads and parses the results.\n4. Submits the found emails to the ScraperCity Mobile Finder API to look up phone numbers.\n5. Polls until the mobile-finder job completes, then downloads and parses results.\n6. Submits all found emails to the ScraperCity Email Validator API for deliverability and catch-all checks.\n7. Polls until validation completes, merges all enriched data together, and writes the final enriched rows back to a Google Sheet.\n\n## How to set up\n\n1. Add your ScraperCity API key as an HTTP Header Auth credential named \"ScraperCity API Key\".\n2. Set your input Google Sheets document ID and sheet name in the \"Configure Workflow\" node.\n3. Set your output Google Sheets document ID and sheet name in the same node.\n4. Click \"Execute workflow\" to run.\n\n## Requirements\n\n- ScraperCity account with Email Finder, Mobile Finder, and Email Validator products enabled.\n- Google Sheets OAuth2 credential connected to n8n.\n- Input sheet with columns: first_name, last_name, domain.\n\n## How to customize the workflow\n\n- Swap Google Sheets for Airtable or a webhook trigger.\n- Add a Filter node after validation to keep only emails with status \"valid\".\n- Extend the output Set node to include additional fields from either API response.","workflow":{"meta":{"instanceId":"lead-enrichment-scrapercity-template","templateCredsSetupCompleted":false},"nodes":[{"id":"a1000000-0000-0000-0000-000000000001","name":"Start Enrichment","type":"n8n-nodes-base.manualTrigger","position":[-2000,400],"parameters":{},"typeVersion":1},{"id":"a1000000-0000-0000-0000-000000000002","name":"Configure Workflow","type":"n8n-nodes-base.set","position":[-1750,400],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cfg-001","name":"inputDocumentId","type":"string","value":"="},{"id":"cfg-002","name":"inputSheetName","type":"string","value":"="},{"id":"cfg-003","name":"outputDocumentId","type":"string","value":"="},{"id":"cfg-004","name":"outputSheetName","type":"string","value":"="}]}},"typeVersion":3.4},{"id":"a1000000-0000-0000-0000-000000000003","name":"Read Contacts from Sheet","type":"n8n-nodes-base.googleSheets","position":[-1500,400],"parameters":{"options":{},"operation":"readAllRows","sheetName":{"__rl":true,"mode":"id","value":"={{ $('Configure Workflow').item.json.inputSheetName }}"},"documentId":{"__rl":true,"mode":"id","value":"={{ $('Configure Workflow').item.json.inputDocumentId }}"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}},"typeVersion":4.6},{"id":"a1000000-0000-0000-0000-000000000004","name":"Format Contacts for Email Finder","type":"n8n-nodes-base.code","position":[-1250,400],"parameters":{"jsCode":"// Build the contacts array required by ScraperCity Email Finder\nconst contacts = items.map(item => ({\n  first_name: (item.json.first_name || '').trim(),\n  last_name:  (item.json.last_name  || '').trim(),\n  domain:     (item.json.domain     || '').trim().replace(/^https?:\\/\\//, '').replace(/^www\\./, '').split('/')[0]\n})).filter(c => c.first_name && c.last_name && c.domain);\n\nreturn [{ json: { contacts } }];"},"typeVersion":2},{"id":"a1000000-0000-0000-0000-000000000005","name":"Start Email Finder Job","type":"n8n-nodes-base.httpRequest","position":[-1000,400],"parameters":{"url":"https://scrapercity.com/api/v1/scrape/email-finder","method":"POST","options":{},"jsonBody":"={{ JSON.stringify({ contacts: $json.contacts }) }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000006","name":"Store Email Finder Run ID","type":"n8n-nodes-base.set","position":[-750,400],"parameters":{"options":{},"assignments":{"assignments":[{"id":"ef-run-001","name":"emailFinderRunId","type":"string","value":"={{ $json.runId }}"}]}},"typeVersion":3.4},{"id":"a1000000-0000-0000-0000-000000000007","name":"Wait Before Checking Email Finder","type":"n8n-nodes-base.wait","position":[-500,400],"webhookId":"ef-wait-webhook-001","parameters":{"amount":30},"typeVersion":1.1},{"id":"a1000000-0000-0000-0000-000000000008","name":"Poll Email Finder Loop","type":"n8n-nodes-base.splitInBatches","position":[-250,400],"parameters":{"options":{"maxIterations":40}},"typeVersion":3,"alwaysOutputData":false},{"id":"a1000000-0000-0000-0000-000000000009","name":"Check Email Finder Status","type":"n8n-nodes-base.httpRequest","position":[0,400],"parameters":{"url":"=https://scrapercity.com/api/v1/scrape/status/{{ $('Store Email Finder Run ID').item.json.emailFinderRunId }}","method":"GET","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000010","name":"Is Email Finder Complete?","type":"n8n-nodes-base.if","position":[250,400],"parameters":{"options":{},"conditions":{"options":{"version":2,"caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ef-cond-001","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"SUCCEEDED"}]}},"typeVersion":2.2},{"id":"a1000000-0000-0000-0000-000000000011","name":"Wait Before Next Email Finder Poll","type":"n8n-nodes-base.wait","position":[250,592],"webhookId":"ef-wait-webhook-002","parameters":{"amount":60},"typeVersion":1.1},{"id":"a1000000-0000-0000-0000-000000000012","name":"Download Email Finder Results","type":"n8n-nodes-base.httpRequest","position":[500,400],"parameters":{"url":"=https://scrapercity.com/api/downloads/{{ $('Store Email Finder Run ID').item.json.emailFinderRunId }}","method":"GET","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000013","name":"Parse Email Finder CSV","type":"n8n-nodes-base.code","position":[750,400],"parameters":{"jsCode":"// Parse CSV from email-finder download\n// Expected columns: first_name, last_name, domain, email, confidence\nconst raw = items[0].json.data || items[0].json.body || '';\nif (!raw) return [];\n\nconst lines = raw.trim().split('\\n');\nif (lines.length < 2) return [];\n\nconst headers = lines[0].split(',').map(h => h.trim().replace(/^\"|\"$/g, ''));\nconst results = [];\n\nfor (let i = 1; i < lines.length; i++) {\n  const cols = lines[i].split(',').map(c => c.trim().replace(/^\"|\"$/g, ''));\n  if (cols.length < headers.length) continue;\n  const row = {};\n  headers.forEach((h, idx) => { row[h] = cols[idx] || ''; });\n  if (row.email) results.push({ json: row });\n}\n\nreturn results;"},"typeVersion":2},{"id":"a1000000-0000-0000-0000-000000000014","name":"Remove Duplicate Emails","type":"n8n-nodes-base.removeDuplicates","position":[1000,400],"parameters":{"options":{},"fieldToCompare":"email"},"typeVersion":2},{"id":"a1000000-0000-0000-0000-000000000015","name":"Filter Valid Emails Only","type":"n8n-nodes-base.filter","position":[1250,400],"parameters":{"options":{},"conditions":{"options":{"version":2,"caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"fv-cond-001","operator":{"type":"string","operation":"exists","singleValue":true},"leftValue":"={{ $json.email }}","rightValue":""}]}},"typeVersion":2.2,"alwaysOutputData":true},{"id":"a1000000-0000-0000-0000-000000000016","name":"Format Emails for Mobile Finder","type":"n8n-nodes-base.code","position":[1500,400],"parameters":{"jsCode":"// Mobile Finder accepts an array of email strings\nconst inputs = items\n  .map(item => (item.json.email || '').trim().toLowerCase())\n  .filter(e => e.includes('@'));\n\nreturn [{ json: { inputs } }];"},"typeVersion":2},{"id":"a1000000-0000-0000-0000-000000000017","name":"Start Mobile Finder Job","type":"n8n-nodes-base.httpRequest","position":[1750,400],"parameters":{"url":"https://scrapercity.com/api/v1/scrape/mobile-finder","method":"POST","options":{},"jsonBody":"={{ JSON.stringify({ inputs: $json.inputs }) }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000018","name":"Store Mobile Finder Run ID","type":"n8n-nodes-base.set","position":[2000,400],"parameters":{"options":{},"assignments":{"assignments":[{"id":"mf-run-001","name":"mobileFinderRunId","type":"string","value":"={{ $json.runId }}"}]}},"typeVersion":3.4},{"id":"a1000000-0000-0000-0000-000000000019","name":"Wait Before Checking Mobile Finder","type":"n8n-nodes-base.wait","position":[2250,400],"webhookId":"mf-wait-webhook-001","parameters":{"amount":30},"typeVersion":1.1},{"id":"a1000000-0000-0000-0000-000000000020","name":"Poll Mobile Finder Loop","type":"n8n-nodes-base.splitInBatches","position":[2500,400],"parameters":{"options":{"maxIterations":40}},"typeVersion":3,"alwaysOutputData":false},{"id":"a1000000-0000-0000-0000-000000000021","name":"Check Mobile Finder Status","type":"n8n-nodes-base.httpRequest","position":[2750,400],"parameters":{"url":"=https://scrapercity.com/api/v1/scrape/status/{{ $('Store Mobile Finder Run ID').item.json.mobileFinderRunId }}","method":"GET","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000022","name":"Is Mobile Finder Complete?","type":"n8n-nodes-base.if","position":[3000,400],"parameters":{"options":{},"conditions":{"options":{"version":2,"caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"mf-cond-001","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"SUCCEEDED"}]}},"typeVersion":2.2},{"id":"a1000000-0000-0000-0000-000000000023","name":"Wait Before Next Mobile Finder Poll","type":"n8n-nodes-base.wait","position":[500,592],"webhookId":"mf-wait-webhook-002","parameters":{"amount":60},"typeVersion":1.1},{"id":"a1000000-0000-0000-0000-000000000024","name":"Download Mobile Finder Results","type":"n8n-nodes-base.httpRequest","position":[3250,400],"parameters":{"url":"=https://scrapercity.com/api/downloads/{{ $('Store Mobile Finder Run ID').item.json.mobileFinderRunId }}","method":"GET","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000025","name":"Parse Mobile Finder CSV","type":"n8n-nodes-base.code","position":[3500,400],"parameters":{"jsCode":"// Parse CSV from mobile-finder download\n// Expected columns: input, phone, phone_type, country\nconst raw = items[0].json.data || items[0].json.body || '';\nif (!raw) return [];\n\nconst lines = raw.trim().split('\\n');\nif (lines.length < 2) return [];\n\nconst headers = lines[0].split(',').map(h => h.trim().replace(/^\"|\"$/g, ''));\nconst results = [];\n\nfor (let i = 1; i < lines.length; i++) {\n  const cols = lines[i].split(',').map(c => c.trim().replace(/^\"|\"$/g, ''));\n  if (cols.length < headers.length) continue;\n  const row = {};\n  headers.forEach((h, idx) => { row[h] = cols[idx] || ''; });\n  // Normalise: map 'input' -> 'email' so we can merge later\n  row.email = row.input || row.email || '';\n  results.push({ json: row });\n}\n\nreturn results;"},"typeVersion":2},{"id":"a1000000-0000-0000-0000-000000000026","name":"Format Emails for Validator","type":"n8n-nodes-base.code","position":[3750,400],"parameters":{"jsCode":"// Email Validator accepts {\"emails\": [\"user@example.com\", ...]}\n// We pull emails from the parsed email-finder results stored earlier\nconst emails = items\n  .map(item => (item.json.email || '').trim().toLowerCase())\n  .filter(e => e.includes('@'));\n\nreturn [{ json: { emails } }];"},"typeVersion":2},{"id":"a1000000-0000-0000-0000-000000000027","name":"Start Email Validator Job","type":"n8n-nodes-base.httpRequest","position":[4000,400],"parameters":{"url":"https://scrapercity.com/api/v1/scrape/email-validator","method":"POST","options":{},"jsonBody":"={{ JSON.stringify({ emails: $json.emails }) }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000028","name":"Store Validator Run ID","type":"n8n-nodes-base.set","position":[4250,400],"parameters":{"options":{},"assignments":{"assignments":[{"id":"ev-run-001","name":"validatorRunId","type":"string","value":"={{ $json.runId }}"}]}},"typeVersion":3.4},{"id":"a1000000-0000-0000-0000-000000000029","name":"Wait Before Checking Validator","type":"n8n-nodes-base.wait","position":[4500,400],"webhookId":"ev-wait-webhook-001","parameters":{"amount":30},"typeVersion":1.1},{"id":"a1000000-0000-0000-0000-000000000030","name":"Poll Validator Loop","type":"n8n-nodes-base.splitInBatches","position":[4750,400],"parameters":{"options":{"maxIterations":40}},"typeVersion":3,"alwaysOutputData":false},{"id":"a1000000-0000-0000-0000-000000000031","name":"Check Validator Status","type":"n8n-nodes-base.httpRequest","position":[5000,400],"parameters":{"url":"=https://scrapercity.com/api/v1/scrape/status/{{ $('Store Validator Run ID').item.json.validatorRunId }}","method":"GET","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000032","name":"Is Validator Complete?","type":"n8n-nodes-base.if","position":[5250,400],"parameters":{"options":{},"conditions":{"options":{"version":2,"caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ev-cond-001","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"SUCCEEDED"}]}},"typeVersion":2.2},{"id":"a1000000-0000-0000-0000-000000000033","name":"Wait Before Next Validator Poll","type":"n8n-nodes-base.wait","position":[750,592],"webhookId":"ev-wait-webhook-002","parameters":{"amount":60},"typeVersion":1.1},{"id":"a1000000-0000-0000-0000-000000000034","name":"Download Validator Results","type":"n8n-nodes-base.httpRequest","position":[5500,400],"parameters":{"url":"=https://scrapercity.com/api/downloads/{{ $('Store Validator Run ID').item.json.validatorRunId }}","method":"GET","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"credential-id","name":"ScraperCity API Key"}},"typeVersion":4.2},{"id":"a1000000-0000-0000-0000-000000000035","name":"Parse Validator CSV","type":"n8n-nodes-base.code","position":[5750,400],"parameters":{"jsCode":"// Parse CSV from email-validator download\n// Expected columns: email, status, deliverability, catch_all, mx_found\nconst raw = items[0].json.data || items[0].json.body || '';\nif (!raw) return [];\n\nconst lines = raw.trim().split('\\n');\nif (lines.length < 2) return [];\n\nconst headers = lines[0].split(',').map(h => h.trim().replace(/^\"|\"$/g, ''));\nconst results = [];\n\nfor (let i = 1; i < lines.length; i++) {\n  const cols = lines[i].split(',').map(c => c.trim().replace(/^\"|\"$/g, ''));\n  if (cols.length < headers.length) continue;\n  const row = {};\n  headers.forEach((h, idx) => { row[h] = cols[idx] || ''; });\n  results.push({ json: row });\n}\n\nreturn results;"},"typeVersion":2},{"id":"a1000000-0000-0000-0000-000000000036","name":"Merge All Enrichment Data","type":"n8n-nodes-base.code","position":[6250,400],"parameters":{"jsCode":"/**\n * Merge email-finder results, mobile-finder results, and validator results\n * by email address into a single enriched record per contact.\n *\n * This node must be triggered after all three downloads are complete.\n * It reads the outputs stored from the three parse steps.\n *\n * Since n8n Code nodes only receive items from the immediately connected\n * upstream node, we build a lookup from each stored array.\n *\n * The workflow passes all three arrays into this node via the Set node\n * \"Prepare Merge Inputs\" that precedes it.\n */\n\nconst emailRows     = JSON.parse($json.emailFinderRows   || '[]');\nconst mobileRows    = JSON.parse($json.mobileFinderRows  || '[]');\nconst validatorRows = JSON.parse($json.validatorRows     || '[]');\n\n// Build lookup maps keyed by lowercase email\nconst mobileMap    = {};\nconst validatorMap = {};\n\nfor (const r of mobileRows) {\n  const key = (r.email || '').toLowerCase();\n  if (key) mobileMap[key] = r;\n}\nfor (const r of validatorRows) {\n  const key = (r.email || '').toLowerCase();\n  if (key) validatorMap[key] = r;\n}\n\nconst merged = emailRows.map(row => {\n  const key     = (row.email || '').toLowerCase();\n  const mobile  = mobileMap[key]    || {};\n  const valid   = validatorMap[key] || {};\n  return {\n    json: {\n      first_name:       row.first_name       || '',\n      last_name:        row.last_name        || '',\n      domain:           row.domain           || '',\n      email:            row.email            || '',\n      email_confidence: row.confidence       || '',\n      phone:            mobile.phone         || '',\n      phone_type:       mobile.phone_type    || '',\n      phone_country:    mobile.country       || '',\n      email_status:     valid.status         || '',\n      deliverability:   valid.deliverability || '',\n      catch_all:        valid.catch_all       || '',\n      mx_found:         valid.mx_found        || ''\n    }\n  };\n});\n\nreturn merged;"},"typeVersion":2},{"id":"a1000000-0000-0000-0000-000000000037","name":"Prepare Merge Inputs","type":"n8n-nodes-base.set","position":[6000,400],"parameters":{"options":{},"assignments":{"assignments":[{"id":"pm-001","name":"emailFinderRows","type":"string","value":"={{ JSON.stringify($('Parse Email Finder CSV').all().map(i => i.json)) }}"},{"id":"pm-002","name":"mobileFinderRows","type":"string","value":"={{ JSON.stringify($('Parse Mobile Finder CSV').all().map(i => i.json)) }}"},{"id":"pm-003","name":"validatorRows","type":"string","value":"={{ JSON.stringify($('Parse Validator CSV').all().map(i => i.json)) }}"}]}},"typeVersion":3.4},{"id":"a1000000-0000-0000-0000-000000000038","name":"Write Enriched Leads to Sheet","type":"n8n-nodes-base.googleSheets","position":[6500,400],"parameters":{"columns":{"value":{"email":"={{ $json.email }}","phone":"={{ $json.phone }}","domain":"={{ $json.domain }}","mx_found":"={{ $json.mx_found }}","catch_all":"={{ $json.catch_all }}","last_name":"={{ $json.last_name }}","first_name":"={{ $json.first_name }}","phone_type":"={{ $json.phone_type }}","email_status":"={{ $json.email_status }}","phone_country":"={{ $json.phone_country }}","deliverability":"={{ $json.deliverability }}","email_confidence":"={{ $json.email_confidence }}"},"schema":[{"id":"first_name","required":false,"displayName":"first_name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"last_name","required":false,"displayName":"last_name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"domain","required":false,"displayName":"domain","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email","required":false,"displayName":"email","defaultMatch":true,"canBeUsedToMatch":true},{"id":"email_confidence","required":false,"displayName":"email_confidence","defaultMatch":false,"canBeUsedToMatch":false},{"id":"phone","required":false,"displayName":"phone","defaultMatch":false,"canBeUsedToMatch":false},{"id":"phone_type","required":false,"displayName":"phone_type","defaultMatch":false,"canBeUsedToMatch":false},{"id":"phone_country","required":false,"displayName":"phone_country","defaultMatch":false,"canBeUsedToMatch":false},{"id":"email_status","required":false,"displayName":"email_status","defaultMatch":false,"canBeUsedToMatch":false},{"id":"deliverability","required":false,"displayName":"deliverability","defaultMatch":false,"canBeUsedToMatch":false},{"id":"catch_all","required":false,"displayName":"catch_all","defaultMatch":false,"canBeUsedToMatch":false},{"id":"mx_found","required":false,"displayName":"mx_found","defaultMatch":false,"canBeUsedToMatch":false}],"mappingMode":"defineBelow"},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"id","value":"={{ $('Configure Workflow').item.json.outputSheetName }}"},"documentId":{"__rl":true,"mode":"id","value":"={{ $('Configure Workflow').item.json.outputDocumentId }}"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"googleSheetsOAuth2Api Credential"}},"typeVersion":4.6},{"id":"a1000000-0000-0000-0000-000000000050","name":"Overview","type":"n8n-nodes-base.stickyNote","position":[-2600,100],"parameters":{"color":3,"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 email addresses and mobile phone numbers -- without manual research.\n\n### What it does\n1. Reads contacts (first_name, last_name, domain) from a Google Sheet.\n2. Submits them to ScraperCity Email Finder to discover business emails.\n3. Submits found emails to ScraperCity Mobile Finder to look up phone numbers.\n4. Submits emails to ScraperCity Email Validator for deliverability checks.\n5. Merges all results and writes an enriched list back to Google Sheets.\n\n### Setup steps\n1. Create an HTTP Header Auth credential named **ScraperCity API Key** using your ScraperCity API key as the value (header name: Authorization, value: Bearer YOUR_KEY).\n2. Connect your Google account via the Google Sheets OAuth2 credential.\n3. Open the **Configure Workflow** node and fill in your input and output Google Sheets document IDs and sheet names.\n4. Make sure your input sheet has columns: first_name, last_name, domain.\n5. Click **Start Enrichment** to run.\n\n### Requirements\n- ScraperCity account with Email Finder, Mobile Finder, and Email Validator.\n- Google Sheets with OAuth2 credentials.\n\n### Notes\n- ScraperCity jobs are asynchronous and can take 10--60 minutes. The polling loops handle this automatically.\n- Each polling loop retries up to 40 times (up to ~40 minutes per stage)."},"typeVersion":1},{"id":"a1000000-0000-0000-0000-000000000051","name":"Section: Configuration","type":"n8n-nodes-base.stickyNote","position":[-2040,-160],"parameters":{"color":5,"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. The **Read Contacts from Sheet** node reads every row from your input sheet and passes the contacts downstream for enrichment."},"typeVersion":1},{"id":"a1000000-0000-0000-0000-000000000052","name":"Setup: ScraperCity API key here","type":"n8n-nodes-base.stickyNote","position":[-1016,288],"parameters":{"color":4,"width":280,"height":70,"content":"Add your ScraperCity API key credential here"},"typeVersion":1},{"id":"a1000000-0000-0000-0000-000000000053","name":"Setup: Google Sheets IDs here","type":"n8n-nodes-base.stickyNote","position":[-1516,288],"parameters":{"color":4,"width":280,"height":70,"content":"Set your input and output Google Sheets document IDs here"},"typeVersion":1},{"id":"a1000000-0000-0000-0000-000000000054","name":"Section: Email Finder","type":"n8n-nodes-base.stickyNote","position":[-290,-160],"parameters":{"color":6,"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. The **Poll Email Finder Loop** (splitInBatches) repeatedly calls **Check Email Finder Status** every 60 seconds until **Is Email Finder Complete?** sees status SUCCEEDED, then **Download Email Finder Results** fetches the CSV and **Parse Email Finder CSV** converts it into individual contact items."},"typeVersion":1},{"id":"a1000000-0000-0000-0000-000000000055","name":"Section: Mobile Finder","type":"n8n-nodes-base.stickyNote","position":[1460,-160],"parameters":{"color":7,"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 numbers via work email. The **Poll Mobile Finder Loop** waits and polls **Check Mobile Finder Status** until complete, then **Download Mobile Finder Results** and **Parse Mobile Finder CSV** produce phone-enriched records keyed by email."},"typeVersion":1},{"id":"a1000000-0000-0000-0000-000000000056","name":"Section: Email Validator","type":"n8n-nodes-base.stickyNote","position":[3210,-160],"parameters":{"color":5,"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-all detection, and MX record checks. The **Poll Validator Loop** waits and polls **Check Validator Status** until done, then **Download Validator Results** and **Parse Validator CSV** produce validation-enriched records keyed by email."},"typeVersion":1},{"id":"a1000000-0000-0000-0000-000000000057","name":"Section: Merge and Output","type":"n8n-nodes-base.stickyNote","position":[4960,-160],"parameters":{"color":6,"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 email address into one row per contact. **Write Enriched Leads to Sheet** appends or updates the output Google Sheet with all enriched columns: email, confidence, phone, phone type, and validation status."},"typeVersion":1}],"settings":{"executionOrder":"v1"},"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}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":46,"nodeTypes":{"n8n-nodes-base.if":{"count":3},"n8n-nodes-base.set":{"count":5},"n8n-nodes-base.code":{"count":7},"n8n-nodes-base.wait":{"count":6},"n8n-nodes-base.filter":{"count":1},"n8n-nodes-base.stickyNote":{"count":8},"n8n-nodes-base.httpRequest":{"count":9},"n8n-nodes-base.googleSheets":{"count":2},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.splitInBatches":{"count":3},"n8n-nodes-base.removeDuplicates":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Alex Berman","username":"alexberman","bio":"Serial entrepreneur, author of The Cold Email Manifesto, 100K+ YouTube subscribers. Built ScraperCity - web scraping and lead generation SaaS with 12+ scrapers including Apollo, Google Maps, People Finder, and a 3M+ contact B2B Lead Database.","verified":true,"links":["https://scrapercity.com"],"avatar":"https://gravatar.com/avatar/0526442f3f7a36050517a2796f820fddb26c5f6c873b7af4a560b6ba9a177c3d?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":844,"icon":"fa:filter","name":"n8n-nodes-base.filter","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The Filter node can be used to filter items based on a condition. If the condition is met, the item will be passed on to the next node. If the condition is not met, the item will be omitted. Conditions can be combined together by AND(meet all conditions), or OR(meet at least one condition).","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Filter","color":"#229eff"},"iconData":{"icon":"filter","type":"icon"},"displayName":"Filter","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1238,"icon":"file:removeDuplicates.svg","name":"n8n-nodes-base.removeDuplicates","codex":{"data":{"alias":["Dedupe","Deduplicate","Duplicates","Remove","Unique","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.removeduplicates/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Remove Duplicates"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjNTRCOEM5IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGQ9Ik0xMzQuMDk3IDExMWgzOC44Mjl2MzIuNTA4SDEzOC4xNnYzNC42MzVoLTMyLjUwOHYtMzguNjk5YzAtMTUuNzA5IDEyLjczNS0yOC40NDQgMjguNDQ1LTI4LjQ0NG03Ny42NTggMzIuNTA4VjExMWg3Ny42NTd2MzIuNTA4em0xMTYuNDg2IDBWMTExaDc3LjY1OHYzMi41MDh6bTExNi40ODcgMFYxMTFoMzguODI5YzE1LjcxIDAgMjguNDQ1IDEyLjczNSAyOC40NDUgMjguNDQ0djM4LjY5OWgtMzIuNTA4di0zNC42MzV6bTM0Ljc2NiA3My4yMzhoMzIuNTA4djM4LjY5OGMwIDE1LjcxLTEyLjczNSAyOC40NDUtMjguNDQ1IDI4LjQ0NWgtMzguODI5di0zMi41MDhoMzQuNzY2ek0wIDI0NC41MzdDMCAyMjkuMzI5IDEyLjczNSAyMTcgMjguNDQ0IDIxN2gzNDkuNDYxYzE1LjcwOSAwIDI4LjQ0NCAxMi4zMjkgMjguNDQ0IDI3LjUzN3YxMjkuODE1YzAgMTUuMjA4LTEyLjczNSAyNy41MzctMjguNDQ0IDI3LjUzN0gyOC40NDVDMTIuNzM0IDQwMS44ODkgMCAzODkuNTYgMCAzNzQuMzUyeiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTEydjUxMkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg=="},"displayName":"Remove Duplicates","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":37,"name":"Lead Generation"}],"image":[]}}