{"workflow":{"id":14032,"name":"Scrape Shopify store leads with ScraperCity and push verified contacts to HubSpot CRM","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-03-14T06:02:33.776Z","description":"## Who is this for\n\nThis workflow is built for digital agencies and sales teams that sell services to ecommerce brands. If you prospect Shopify store owners and want a repeatable, automated pipeline from discovery to CRM -- this template handles the entire process.\n\n## How it works\n\n1. A configuration node lets you set your target country, lead volume, and filters before anything runs.\n2. ScraperCity's store-leads API scrapes live Shopify stores and returns emails, phone numbers, and social profiles.\n3. The workflow polls for job completion every 60 seconds, then downloads and parses the CSV results.\n4. All harvested emails are sent in bulk to ScraperCity's email-validator API, which checks deliverability, MX records, and catch-all status.\n5. Only contacts with valid or acceptable email status pass through a filter node.\n6. Duplicate records are removed before each verified lead is created or updated as a contact in HubSpot CRM.\n\n## How to set up\n\n1. Create a ScraperCity account at app.scrapercity.com and copy your API key.\n2. In n8n, create an HTTP Header Auth credential named \"ScraperCity API Key\" with the header name \"Authorization\" and value \"Bearer YOUR_KEY\".\n3. Connect your HubSpot account using the HubSpot App Token credential.\n4. Open the **Configure Search Parameters** node and set your target country code and lead volume.\n\n## Requirements\n\n- ScraperCity account (app.scrapercity.com) -- store-leads and email-validator products\n- HubSpot account with a private app token\n- n8n instance (cloud or self-hosted)\n\n## How to customize the workflow\n\n- Change `countryCode` in the config node to target any market (GB, AU, CA, etc.)\n- Adjust `totalLeads` to control scrape volume per run\n- Add a filter node after email validation to restrict to specific domains or revenue signals\n- Swap HubSpot for another CRM by replacing the final node with a Salesforce, Pipedrive, or Airtable node","workflow":{"meta":{"instanceId":"c9f0d35a6a81c445fbf009875f2e3a4e313e7bb0c1bf6c9d97c5e78f636a1f1c","templateCredsSetupCompleted":true},"name":"Scrape Shopify store leads and push verified contacts into HubSpot CRM","tags":[],"nodes":[{"id":"34a65a33-8a1c-46b4-a706-041ed35c9fbb","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[2848,304],"parameters":{"width":480,"height":896,"content":"## Scrape Shopify store leads and push verified contacts into HubSpot CRM\n\n### How it works\n\n1. The workflow is triggered manually and configures search parameters (country, lead count, contact types) before initiating a Shopify store scrape via the ScraperCity API.\n2. It polls the scrape job in a loop, waiting 60 seconds between retries, until the job completes and the scraped lead data can be downloaded.\n3. The downloaded CSV is parsed, filtered to records containing emails, and deduplicated to produce a clean lead list.\n4. All collected emails are batched and submitted to ScraperCity's email validation API, with a separate polling loop checking for completion.\n5. Once validation results are downloaded, they are merged back with the original lead records and filtered to retain only verified, valid emails.\n6. Each verified lead is upserted as a contact in HubSpot CRM using the HubSpot node.\n\n### Setup steps\n\n- [ ] Create a ScraperCity account and obtain your API key for the scrape and validation endpoints\n- [ ] Add your ScraperCity API key as an n8n credential and reference it in the HTTP Request nodes\n- [ ] Connect your HubSpot account in n8n via the HubSpot credential (OAuth2 or API key)\n- [ ] Update the 'Configure Search Parameters' node with your desired countryCode, totalLeads, includeEmails, and includePhones values\n- [ ] Review the polling wait times in 'Wait Before First Poll' and 'Wait 60 Seconds Before Retry' to match your expected scrape duration\n- [ ] Map the correct HubSpot contact fields in the 'Create or Update HubSpot Contact' node to match your lead data structure\n\n### Customization\n\nAdjust the countryCode and totalLeads parameters to target different markets or volumes. The polling intervals (60s for scraping, 30s for validation) can be tuned based on typical job completion times. The email filter and deduplication steps can be extended to also filter by phone availability or store category. Additional HubSpot properties (e.g., lead source, country) can be mapped in the final upsert node."},"typeVersion":1},{"id":"876619d3-57f8-4c21-ac3e-f8d6f7a1f42b","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[3408,384],"parameters":{"color":7,"width":448,"height":320,"content":"## Workflow trigger and config\n\nManually triggers the workflow and sets the core search parameters — country code, lead count, and contact type flags — that drive the scrape job."},"typeVersion":1},{"id":"491bb140-8547-4f25-a7bb-ab55ceeccf4b","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[3904,416],"parameters":{"color":7,"width":448,"height":304,"content":"## Initiate scrape job\n\nSubmits the scrape request to ScraperCity and stores the returned run ID for subsequent polling."},"typeVersion":1},{"id":"1ad0b98d-1271-4625-8354-035a5eb22597","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[4400,416],"parameters":{"color":7,"width":944,"height":496,"content":"## Scrape job polling loop\n\nWaits before the first status check, then polls the scrape job status in a loop — retrying every 60 seconds — until the scrape is reported as complete."},"typeVersion":1},{"id":"2d1f400c-7215-441f-b045-dc16d0d78520","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[5408,384],"parameters":{"color":7,"width":448,"height":320,"content":"## Download and parse leads\n\nDownloads the completed scrape results as a CSV file and parses it into structured lead records ready for filtering."},"typeVersion":1},{"id":"cc80e249-6932-4521-a056-0a0bc493ca76","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[5904,384],"parameters":{"color":7,"width":448,"height":320,"content":"## Filter and deduplicate leads\n\nRemoves records without email addresses and eliminates duplicate leads to produce a clean, unique list for validation."},"typeVersion":1},{"id":"fb4b8957-00cc-4d26-b2c8-bda6cc712bc2","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[6400,416],"parameters":{"color":7,"width":704,"height":304,"content":"## Initiate email validation\n\nAggregates all lead emails into a single bulk array and submits them to ScraperCity's email validation API, storing the returned validation run ID."},"typeVersion":1},{"id":"899d27df-58c9-44df-a781-524d431ba612","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[5408,768],"parameters":{"color":7,"width":2688,"height":464,"content":"## Validation job polling loop\n\nWaits before the first validation status check, then polls in a loop — retrying every 30 seconds — until the email validation job is complete."},"typeVersion":1},{"id":"db56a23c-30cf-4d1a-a4fd-10242d397d00","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[8160,416],"parameters":{"color":7,"width":688,"height":304,"content":"## Download and merge validation results\n\nDownloads the validation results, merges them back with the original lead records by email, and filters out any leads with invalid or unverified emails."},"typeVersion":1},{"id":"4ea0efcd-21c9-42cc-937f-941369629097","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[8912,304],"parameters":{"color":7,"width":240,"height":400,"content":"## Push contacts to HubSpot\n\nUpserts each verified lead as a contact in HubSpot CRM, creating new records or updating existing ones based on email address."},"typeVersion":1},{"id":"c6eaf85b-cd1f-4f20-b6f1-2d5f045459f9","name":"When clicking Execute workflow","type":"n8n-nodes-base.manualTrigger","position":[3456,544],"parameters":{},"typeVersion":1},{"id":"ad359671-3d54-49e1-bfbb-f510dabb699c","name":"Configure Search Parameters","type":"n8n-nodes-base.set","position":[3712,544],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cfg-001","name":"countryCode","type":"string","value":"US"},{"id":"cfg-002","name":"totalLeads","type":"number","value":200},{"id":"cfg-003","name":"includeEmails","type":"boolean","value":true},{"id":"cfg-004","name":"includePhones","type":"boolean","value":true}]}},"typeVersion":3.4},{"id":"f38ce3ef-03fe-492c-bf39-67b9378b95bc","name":"Start Shopify Store Scrape","type":"n8n-nodes-base.httpRequest","position":[3952,544],"parameters":{"url":"https://app.scrapercity.com/api/v1/scrape/store-leads","method":"POST","options":{},"jsonBody":"={\n  \"platform\": \"shopify\",\n  \"countryCode\": \"{{ $json.countryCode }}\",\n  \"emails\": {{ $json.includeEmails }},\n  \"phones\": {{ $json.includePhones }},\n  \"totalLeads\": {{ $json.totalLeads }}\n}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"5371c2d4-13da-4fd7-aa10-0e9588a38f75","name":"Store Scrape Run ID","type":"n8n-nodes-base.set","position":[4208,544],"parameters":{"options":{},"assignments":{"assignments":[{"id":"runid-001","name":"runId","type":"string","value":"={{ $json.runId }}"}]}},"typeVersion":3.4},{"id":"54499141-ae82-4735-9fd5-6d0e0e3f94a7","name":"Wait Before First Poll","type":"n8n-nodes-base.wait","position":[4448,544],"webhookId":"wb000001-0000-0000-0000-000000000001","parameters":{"amount":60},"typeVersion":1.1},{"id":"9b420bbc-b100-4fb6-aa71-c2c22618f6b6","name":"Poll Loop Controller","type":"n8n-nodes-base.splitInBatches","position":[4704,544],"parameters":{"options":{"reset":false}},"typeVersion":3},{"id":"f60b557b-a0fc-448c-9b4a-1743b59b38d1","name":"Check Scrape Status","type":"n8n-nodes-base.httpRequest","position":[4960,544],"parameters":{"url":"=https://app.scrapercity.com/api/v1/scrape/status/{{ $('Store Scrape Run ID').item.json.runId }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"adfb84f3-a7a7-4c79-bf52-d4a34a90544c","name":"Is Scrape Complete?","type":"n8n-nodes-base.if","position":[5200,544],"parameters":{"options":{},"conditions":{"options":{"version":2,"caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"cond-001","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"SUCCEEDED"}]}},"typeVersion":2.2},{"id":"b9515500-d474-43d3-a88d-af0f37fb22ee","name":"Wait 60 Seconds Before Retry","type":"n8n-nodes-base.wait","position":[5200,736],"webhookId":"wb000002-0000-0000-0000-000000000002","parameters":{"amount":60},"typeVersion":1.1},{"id":"b08b2d19-14e2-453c-9852-5fbaf456d50d","name":"Download Scraped Store Leads","type":"n8n-nodes-base.httpRequest","position":[5456,544],"parameters":{"url":"=https://app.scrapercity.com/api/downloads/{{ $('Store Scrape Run ID').item.json.runId }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"f487c233-40ca-469b-b504-2a8ae9794c1a","name":"Parse CSV Lead Data","type":"n8n-nodes-base.code","position":[5712,544],"parameters":{"jsCode":"// Parse CSV response from ScraperCity store-leads download\n// Handles both JSON array and CSV string responses\n\nconst raw = $input.first().json;\n\n// If the API already returns parsed JSON array\nif (Array.isArray(raw)) {\n  return raw.map(item => ({ json: item }));\n}\n\n// If the response has a data property\nif (raw.data && Array.isArray(raw.data)) {\n  return raw.data.map(item => ({ json: item }));\n}\n\n// If it's a CSV string in the body\nconst csvText = typeof raw === 'string' ? raw : (raw.body || raw.csv || '');\n\nif (!csvText) {\n  return [{ json: { error: 'No parseable data returned', raw: JSON.stringify(raw).slice(0, 200) } }];\n}\n\nconst lines = csvText.trim().split('\\n');\nconst headers = lines[0].split(',').map(h => h.trim().replace(/^\"|\"$/g, ''));\n\nconst results = [];\nfor (let i = 1; i < lines.length; i++) {\n  const line = lines[i];\n  if (!line.trim()) continue;\n  // Basic CSV split (handles quoted fields)\n  const cols = [];\n  let current = '';\n  let inQuotes = false;\n  for (const ch of line) {\n    if (ch === '\"') { inQuotes = !inQuotes; continue; }\n    if (ch === ',' && !inQuotes) { cols.push(current.trim()); current = ''; continue; }\n    current += ch;\n  }\n  cols.push(current.trim());\n  const obj = {};\n  headers.forEach((h, idx) => { obj[h] = cols[idx] || ''; });\n  results.push({ json: obj });\n}\n\nreturn results;"},"typeVersion":2},{"id":"1e7d44e3-3337-4e7c-92d9-4d4988f3169f","name":"Filter Records with Emails","type":"n8n-nodes-base.filter","position":[5952,544],"parameters":{"options":{},"conditions":{"options":{"version":2,"caseSensitive":false,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"filt-001","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.email }}","rightValue":""}]}},"typeVersion":2.2},{"id":"7fe3e255-5b06-4bc7-93a8-abb3de94d0b3","name":"Remove Duplicate Leads","type":"n8n-nodes-base.removeDuplicates","position":[6208,544],"parameters":{"compare":"selectedFields","options":{},"fieldsToCompare":{"fields":[{"fieldName":"email"}]}},"typeVersion":2},{"id":"c9f8806c-beb2-4899-93d7-d93541e5caac","name":"Collect Emails for Validation","type":"n8n-nodes-base.code","position":[6448,544],"parameters":{"jsCode":"// Aggregate all emails into a single array for bulk validation\nconst emails = $input.all().map(item => item.json.email).filter(Boolean);\n\n// Store all original items so we can merge back after validation\nconst leads = $input.all().map(item => item.json);\n\nreturn [{ json: { emails, leads } }];"},"typeVersion":2},{"id":"f071514c-848c-43b9-bedc-fe5640ee90f8","name":"Start Email Validation","type":"n8n-nodes-base.httpRequest","position":[6704,544],"parameters":{"url":"https://app.scrapercity.com/api/v1/scrape/email-validator","method":"POST","options":{},"jsonBody":"={\n  \"emails\": {{ JSON.stringify($json.emails) }}\n}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"6cc4b9d4-5ad1-4c27-b944-3a486661f02c","name":"Store Validation Run ID","type":"n8n-nodes-base.set","position":[6960,544],"parameters":{"options":{},"assignments":{"assignments":[{"id":"vrunid-001","name":"validationRunId","type":"string","value":"={{ $json.runId }}"}]}},"typeVersion":3.4},{"id":"d7000e9a-944b-4660-aa0d-97f317bf237b","name":"Wait Before Validation Poll","type":"n8n-nodes-base.wait","position":[7200,880],"webhookId":"wb000003-0000-0000-0000-000000000003","parameters":{"amount":30},"typeVersion":1.1},{"id":"5047f64c-e930-4b90-9f5c-e56c9110e48e","name":"Validation Poll Loop Controller","type":"n8n-nodes-base.splitInBatches","position":[7456,880],"parameters":{"options":{"reset":false}},"typeVersion":3},{"id":"aaa21dec-06b8-40f4-8700-455e466564b6","name":"Check Validation Status","type":"n8n-nodes-base.httpRequest","position":[7712,880],"parameters":{"url":"=https://app.scrapercity.com/api/v1/scrape/status/{{ $('Store Validation Run ID').item.json.validationRunId }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"7875f14a-f583-4b52-8cf0-cc4a3373c24f","name":"Is Validation Complete?","type":"n8n-nodes-base.if","position":[7952,880],"parameters":{"options":{},"conditions":{"options":{"version":2,"caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"cond-002","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.status }}","rightValue":"SUCCEEDED"}]}},"typeVersion":2.2},{"id":"68995fc8-d154-4ff0-b90e-6c9a6b50ae18","name":"Wait 30 Seconds Before Validation Retry","type":"n8n-nodes-base.wait","position":[5456,1072],"webhookId":"wb000004-0000-0000-0000-000000000004","parameters":{"amount":30},"typeVersion":1.1},{"id":"ba284973-ef0d-4e37-bb6d-4c698f1c07f8","name":"Download Validation Results","type":"n8n-nodes-base.httpRequest","position":[8208,544],"parameters":{"url":"=https://app.scrapercity.com/api/downloads/{{ $('Store Validation Run ID').item.json.validationRunId }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"typeVersion":4.2},{"id":"64c4058c-327d-45fb-b2a6-902332e27bd9","name":"Merge Leads with Validation Results","type":"n8n-nodes-base.code","position":[8448,544],"parameters":{"jsCode":"// Merge original lead data with email validation results\n// Validation results come back as array with email + status fields\n\nconst validationRaw = $input.first().json;\n\n// Resolve validation results array\nlet validationResults = [];\nif (Array.isArray(validationRaw)) {\n  validationResults = validationRaw;\n} else if (validationRaw.data && Array.isArray(validationRaw.data)) {\n  validationResults = validationRaw.data;\n} else if (validationRaw.results && Array.isArray(validationRaw.results)) {\n  validationResults = validationRaw.results;\n}\n\n// Build lookup map: email -> validation result\nconst validationMap = {};\nfor (const v of validationResults) {\n  const email = (v.email || v.address || '').toLowerCase().trim();\n  if (email) {\n    validationMap[email] = {\n      emailStatus: v.status || v.email_status || v.result || 'unknown',\n      isCatchAll: v.catch_all || v.is_catch_all || false,\n      mxFound: v.mx_found || v.has_mx || false\n    };\n  }\n}\n\n// Retrieve original leads from the Collect Emails node\nlet leads = [];\ntry {\n  const collectNode = $('Collect Emails for Validation').first();\n  leads = collectNode.json.leads || [];\n} catch(e) {\n  // Fallback: leads array might be empty, continue gracefully\n  leads = [];\n}\n\nif (!leads.length) {\n  // If leads unavailable, just emit validation results directly\n  return validationResults.map(v => ({ json: v }));\n}\n\n// Merge\nconst merged = leads.map(lead => {\n  const email = (lead.email || '').toLowerCase().trim();\n  const validation = validationMap[email] || { emailStatus: 'unknown', isCatchAll: false, mxFound: false };\n  return {\n    json: {\n      ...lead,\n      emailStatus: validation.emailStatus,\n      isCatchAll: validation.isCatchAll,\n      mxFound: validation.mxFound\n    }\n  };\n});\n\nreturn merged;"},"typeVersion":2},{"id":"d06ee8f4-10fd-4015-9ad8-fcbb804fb630","name":"Filter Valid Emails Only","type":"n8n-nodes-base.filter","position":[8704,544],"parameters":{"options":{},"conditions":{"options":{"version":2,"caseSensitive":false,"typeValidation":"loose"},"combinator":"or","conditions":[{"id":"filt-002","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.emailStatus }}","rightValue":"valid"},{"id":"filt-003","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.emailStatus }}","rightValue":"catch_all"},{"id":"filt-004","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.emailStatus }}","rightValue":"VALID"}]}},"typeVersion":2.2},{"id":"a5b89a08-b473-4958-a0e8-717b7990f25a","name":"Create or Update HubSpot Contact","type":"n8n-nodes-base.hubspot","position":[8960,544],"parameters":{"email":"={{ $json.email }}","options":{},"authentication":"appToken","additionalFields":{"city":"={{ $json.city || '' }}","country":"={{ $json.country || $json.countryCode || '' }}","message":"=Platform: Shopify\nEmail Status: {{ $json.emailStatus }}\nCatch-All: {{ $json.isCatchAll }}\nMX Found: {{ $json.mxFound }}\nInstagram: {{ $json.instagram || '' }}\nFacebook: {{ $json.facebook || '' }}\nTwitter: {{ $json.twitter || '' }}\nSource: ScraperCity store-leads","firstName":"={{ $json.first_name || $json.firstName || '' }}","websiteUrl":"={{ $json.website || $json.domain || $json.url || '' }}","companyName":"={{ $json.store_name || $json.company || $json.businessName || '' }}"}},"typeVersion":2}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"","connections":{"Check Scrape Status":{"main":[[{"node":"Is Scrape Complete?","type":"main","index":0}]]},"Is Scrape Complete?":{"main":[[{"node":"Download Scraped Store Leads","type":"main","index":0}],[{"node":"Wait 60 Seconds Before Retry","type":"main","index":0}]]},"Parse CSV Lead Data":{"main":[[{"node":"Filter Records with Emails","type":"main","index":0}]]},"Store Scrape Run ID":{"main":[[{"node":"Wait Before First Poll","type":"main","index":0}]]},"Poll Loop Controller":{"main":[[{"node":"Check Scrape Status","type":"main","index":0}]]},"Remove Duplicate Leads":{"main":[[{"node":"Collect Emails for Validation","type":"main","index":0}]]},"Start Email Validation":{"main":[[{"node":"Store Validation Run ID","type":"main","index":0}]]},"Wait Before First Poll":{"main":[[{"node":"Poll Loop Controller","type":"main","index":0}]]},"Check Validation Status":{"main":[[{"node":"Is Validation Complete?","type":"main","index":0}]]},"Is Validation Complete?":{"main":[[{"node":"Download Validation Results","type":"main","index":0}],[{"node":"Wait 30 Seconds Before Validation Retry","type":"main","index":0}]]},"Store Validation Run ID":{"main":[[{"node":"Wait Before Validation Poll","type":"main","index":0}]]},"Filter Valid Emails Only":{"main":[[{"node":"Create or Update HubSpot Contact","type":"main","index":0}]]},"Filter Records with Emails":{"main":[[{"node":"Remove Duplicate Leads","type":"main","index":0}]]},"Start Shopify Store Scrape":{"main":[[{"node":"Store Scrape Run ID","type":"main","index":0}]]},"Configure Search Parameters":{"main":[[{"node":"Start Shopify Store Scrape","type":"main","index":0}]]},"Download Validation Results":{"main":[[{"node":"Merge Leads with Validation Results","type":"main","index":0}]]},"Wait Before Validation Poll":{"main":[[{"node":"Validation Poll Loop Controller","type":"main","index":0}]]},"Download Scraped Store Leads":{"main":[[{"node":"Parse CSV Lead Data","type":"main","index":0}]]},"Wait 60 Seconds Before Retry":{"main":[[{"node":"Poll Loop Controller","type":"main","index":0}]]},"Collect Emails for Validation":{"main":[[{"node":"Start Email Validation","type":"main","index":0}]]},"When clicking Execute workflow":{"main":[[{"node":"Configure Search Parameters","type":"main","index":0}]]},"Validation Poll Loop Controller":{"main":[[{"node":"Check Validation Status","type":"main","index":0}]]},"Merge Leads with Validation Results":{"main":[[{"node":"Filter Valid Emails Only","type":"main","index":0}]]},"Wait 30 Seconds Before Validation Retry":{"main":[[{"node":"Validation Poll Loop Controller","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":35,"nodeTypes":{"n8n-nodes-base.if":{"count":2},"n8n-nodes-base.set":{"count":3},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.wait":{"count":4},"n8n-nodes-base.filter":{"count":2},"n8n-nodes-base.hubspot":{"count":1},"n8n-nodes-base.stickyNote":{"count":10},"n8n-nodes-base.httpRequest":{"count":6},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.splitInBatches":{"count":2},"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":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":76,"icon":"file:hubspot.svg","name":"n8n-nodes-base.hubspot","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"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/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.hubspot/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/hubspot/"}]},"categories":["Sales"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"output\"]","defaults":{"name":"HubSpot"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjIuODgzIDY5Ljg4MyI+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMi40NDIiIHk9IjIuNDQyIi8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxwYXRoIGZpbGw9IiNmODc2MWYiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSJub25lIiBkPSJNNTUuNTA0IDMwLjQwMWExNi4yNiAxNi4yNiAwIDAgMC01LjkwNC01Ljg2NGMtMS44NjUtMS4wODQtMy43OTQtMS43NzMtNS45NzItMi4wN3YtNy43OThhNS43MSA1LjcxIDAgMCAwIDMuNTI1LTUuMzU3IDUuODYgNS44NiAwIDAgMC01Ljg1OS01Ljg4OSA1LjkxIDUuOTEgMCAwIDAtNS45MDggNS44ODljMCAyLjM5MyAxLjI3IDQuNDM0IDMuNDUyIDUuMzU3djcuNzU0YTE3IDE3IDAgMCAwLTUuMTk1IDEuNjMxTDEyLjc2OSA4LjI0N2MuMTQ2LS41NTIuMjczLTEuMTIzLjI3My0xLjcyNEE2LjUyIDYuNTIgMCAwIDAgNi41MTkgMCA2LjUyIDYuNTIgMCAwIDAgMCA2LjUyNGE2LjUyMyA2LjUyMyAwIDAgMCA2LjUyNCA2LjUyNCA2LjQ3IDYuNDcgMCAwIDAgMy4zNS0uOTUybDEuMzY3IDEuMDM1IDE4LjcyNiAxMy41MDFjLS45OTEuOTA4LTEuOTE0IDEuOTQzLTIuNjUxIDMuMTA1LTEuNDk0IDIuMzY4LTIuNDA3IDQuOTcxLTIuNDA3IDcuODEzdi41ODZhMTYuNCAxNi40IDAgMCAwIDEuMDI1IDUuNjQ1QzI2LjUgNDUuMzI0IDI3LjMzIDQ2LjczIDI4LjM2MSA0OGwtNi4yMjEgNi4yMzVhNS4wMSA1LjAxIDAgMCAwLTUuMjk4IDEuMTYyYy0uOTQ3Ljk0Mi0xLjQ4IDIuMjI3LTEuNDc1IDMuNTY1cy41MjcgMi42MTIgMS40NzkgMy41NjQgMi4yMjcgMS40OCAzLjU2NSAxLjQ4YTUgNSAwIDAgMCAzLjU2NS0xLjQ4IDUuMDUgNS4wNSAwIDAgMCAxLjQ3NS0zLjU2NCA1IDUgMCAwIDAtLjIzNC0xLjUxNGw2LjQyNi02LjQyNmExNiAxNiAwIDAgMCAyLjg1NiAxLjU2MyAxNi43IDE2LjcgMCAwIDAgNi42ODUgMS40MDZoLjQzOWExNS43NiAxNS43NiAwIDAgMCA3LjYyNy0xLjkyOSAxNS43NyAxNS43NyAwIDAgMCA1Ljk3Ny01LjYzYzEuNDk5LTIuMzkzIDIuMzE5LTUuMDQ0IDIuMzE5LTcuOTU5di0uMTQ2YzAtMi44NjYtLjY2NC01LjUwOC0yLjA1MS03Ljkzem0tNy44NDcgMTMuNDg3Yy0xLjc0MyAxLjkzOC0zLjc1IDMuMTM1LTYuMDE2IDMuMTM1aC0uNDNjLTEuMjk0IDAtMi41NjQtLjM1Ni0zLjc5OS0xLjAxMWE4LjggOC44IDAgMCAxLTMuMzMtMy4wMzJjLS44OTgtMS4yNy0xLjM4Ny0yLjY1Ni0xLjM4Ny00LjEyNnYtLjQzOWMwLTEuNDQ1LjI3OC0yLjgxNy45NzctNC4xMTEuNzQ3LTEuNDY1IDEuNzU4LTIuNTE1IDMuMTAxLTMuMzg5YTcuNiA3LjYgMCAwIDEgNC4yOTctMS4yOTRoLjE0N2MxLjQxNiAwIDIuNzY5LjI3OCA0LjAzOC45MjhhOC41NiA4LjU2IDAgMCAxIDMuMTc0IDIuODg2IDkuMiA5LjIgMCAwIDEgMS40MjEgNC4wNTNsLjAzNC45MTNjMCAxLjk4Ny0uNzYyIDMuODI4LTIuMjggNS40OTh6Ii8+PC9zeW1ib2w+PC9zdmc+"},"displayName":"HubSpot","typeVersion":2,"nodeCategories":[{"id":2,"name":"Sales"}]},{"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":[]}}