{"workflow":{"id":12984,"name":"Discover local business leads and run AI-powered cold email sequences with Google Maps and Gmail","views":54,"recentViews":0,"totalViews":54,"createdAt":"2026-01-25T13:36:37.234Z","description":"# Discover local business leads and run automated cold email sequences with Google Maps and Gmail\n\nThis workflow is a complete outbound automation system that discovers local businesses, extracts contact emails, generates personalized cold emails using AI, and runs a multi-step follow-up sequence — fully automated.\n\nIt is designed for founders, agencies, and consultants who want to generate leads at scale without manual scraping or repetitive email work.\n\n---\n\n## Use cases\n\n- Local service lead generation (marketing agencies, SaaS, consultants)\n- B2B prospecting by location and category\n- Automated cold outreach campaigns\n- Market research and business discovery\n- Sales pipeline bootstrapping\n\n---\n\n## How it works\n\n1. Reads ZIP codes and business categories from Google Sheets  \n2. Queries Google Maps API for matching businesses  \n3. Visits each website and extracts public emails  \n4. Stores leads in Google Sheets  \n5. Uses AI to generate intro + 2 follow-up emails  \n6. Sends emails via Gmail  \n7. Automatically schedules follow-ups  \n8. Tracks status and prevents duplicates  \n\nEverything runs on schedules and updates itself.\n\n---\n\n## How to use\n\n1. Create a Google Sheet with:\n   - `Zips` tab (ZIP codes)\n   - `Google Maps Categories` tab\n   - `Results` tab\n\n2. Add:\n   - Google Maps API key\n   - Gmail account\n   - Google Sheets credentials\n\n3. Replace placeholders:\n   - Company name\n   - Logo URL\n   - CTA text\n\n4. Enable schedule triggers.\n\nThat’s it. The system runs continuously.\n\n---\n\n## Requirements\n\n- Google Maps API key  \n- Google account (Sheets + Gmail)  \n- Gemini / OpenAI API key  \n- Public company logo URL  \n\nNo paid scraping tools required.\n\n---\n\n## Good to know\n\n- Uses exponential backoff to handle API limits safely  \n- Prevents duplicate leads using place_id  \n- Tracks email status and send dates  \n- Follow-ups only send if intro was delivered  \n- All data stays in your Google Sheets  \n\n---\n\n## Customising this workflow\n\nYou can easily:\n\n- Change email copy style in the AI prompt  \n- Adjust follow-up delays  \n- Add more follow-up steps  \n- Replace Gmail with Outlook or SMTP  \n- Push leads into CRM instead of Sheets  \n\nThis workflow is modular and extensible.\n\n---\n\n## What this n8n template demonstrates\n\n- Real-world lead generation automation  \n- Web scraping with fallback logic  \n- AI-powered copy generation  \n- Stateful workflow design  \n- Multi-trigger scheduling  \n- Error handling and retries  \n- Production-grade outbound system  \n\nThis is not a demo — it’s a deployable business workflow.\n\n---\n\n## Need a custom setup?\n\nIf you want a similar system built for your business (custom data sources, CRM integration, WhatsApp bots, booking systems, dashboards, or private deployments), feel free to reach out at dinakars2003@gmail.com\n","workflow":{"id":"SzH05B85Poq3IPej","meta":{"instanceId":"ea40b8f0e8331542bdc90e5117ede392a0c9898ee6a6065ec70d324338578de7","templateCredsSetupCompleted":true},"name":"Discover local business leads and run automated cold email sequences with Google Maps and Gmail","tags":[],"nodes":[{"id":"610f4b5e-b883-49e1-a89f-3038c710a118","name":"Stop and Error1","type":"n8n-nodes-base.stopAndError","position":[3408,2688],"parameters":{"errorMessage":"Google Sheets API Limit has been triggered and the workflow has stopped"},"typeVersion":1},{"id":"7a36b46c-dd48-431d-8b09-161da8d69b28","name":"Update Status to Success","type":"n8n-nodes-base.googleSheets","onError":"continueErrorOutput","position":[2608,3120],"parameters":{"columns":{"value":{"Zip":"={{ $json.Zip }}","status":"scraped"},"schema":[{"id":"Zip","type":"string","display":true,"removed":false,"required":false,"displayName":"Zip","defaultMatch":false,"canBeUsedToMatch":true},{"id":"status","type":"string","display":true,"removed":false,"required":false,"displayName":"status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"string","display":true,"removed":true,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["Zip"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"name","value":"={{ $('Settings').first().json.sheet }}"},"documentId":{"__rl":true,"mode":"url","value":"={{ $('Settings').first().json.gs_url }}"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"executeOnce":true,"typeVersion":4.2,"alwaysOutputData":true},{"id":"488670dd-498f-486c-9a57-23403095188c","name":"Stop and Error","type":"n8n-nodes-base.stopAndError","position":[3408,3120],"parameters":{"errorMessage":"Google Sheets API Limit has been triggered and the workflow has stopped"},"typeVersion":1},{"id":"45a95e8c-f478-4ace-816c-f6d3f05f6847","name":"Stop and Error2","type":"n8n-nodes-base.stopAndError","position":[3408,2896],"parameters":{"errorMessage":"Google Sheets API Limit has been triggered and the workflow has stopped"},"typeVersion":1},{"id":"4fe4e969-57ac-4f43-9b77-8ec757db5438","name":"Get Status","type":"n8n-nodes-base.googleSheets","onError":"continueErrorOutput","position":[2608,2896],"parameters":{"options":{},"filtersUI":{"values":[{"lookupValue":"={{ $('Set Zip1').item.json.Zip }}","lookupColumn":"Zip"}]},"sheetName":{"__rl":true,"mode":"name","value":"={{ $('Settings').first().json.sheet }}"},"documentId":{"__rl":true,"mode":"url","value":"={{ $('Settings').first().json.gs_url }}"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"executeOnce":true,"typeVersion":4.2},{"id":"839f3d83-1354-477e-b149-034069c9143e","name":"Get row(s) in sheet","type":"n8n-nodes-base.googleSheets","position":[-464,3600],"parameters":{"sheetName":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"id","value":"your-gsheet-id"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.7},{"id":"7b43b639-4cce-4289-b718-cc0f7789741f","name":"Update row in sheet","type":"n8n-nodes-base.googleSheets","position":[656,3600],"parameters":{"columns":{"value":{"intro mail":"={{ JSON.parse($json.content.parts[0].text).intro_mail }}","row_number":"={{ $('Loop: Generate AI Emails').item.json.row_number }}","follow up mail 1":"={{ JSON.parse($json.content.parts[0].text).follow_up_mail_1 }}","follow up mail 2":"={{ JSON.parse($json.content.parts[0].text).follow_up_mail_2 }}"},"schema":[{"id":"place_id","type":"string","display":true,"removed":false,"required":false,"displayName":"place_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email","type":"string","display":true,"required":false,"displayName":"email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"phone","type":"string","display":true,"required":false,"displayName":"phone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"website","type":"string","display":true,"required":false,"displayName":"website","defaultMatch":false,"canBeUsedToMatch":true},{"id":"rating","type":"string","display":true,"required":false,"displayName":"rating","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviews","type":"string","display":true,"required":false,"displayName":"reviews","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"address","type":"string","display":true,"required":false,"displayName":"address","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro mail","type":"string","display":true,"required":false,"displayName":"intro mail","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email_status","type":"string","display":true,"removed":false,"required":false,"displayName":"email_status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro_email_sent_date","type":"string","display":true,"removed":false,"required":false,"displayName":"intro_email_sent_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up email send date 1","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up email send date 1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1 status","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 1 status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up email send date 2","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up email send date 2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2 status","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2 status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"types","type":"string","display":true,"required":false,"displayName":"types","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":1495216019,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4/edit#gid=1495216019","cachedResultName":"Results"},"documentId":{"__rl":true,"mode":"list","value":"1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4/edit?usp=drivesdk","cachedResultName":"Google Maps Scraper Setup File"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.7},{"id":"52ce659b-e0aa-46cf-b654-023b85ea807a","name":"Get row(s) in sheet1","type":"n8n-nodes-base.googleSheets","position":[1568,3552],"parameters":{"sheetName":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"id","value":"your-gsheet-id"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.7},{"id":"7cc03b90-133d-4ca2-937f-12295eef351d","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-944,3504],"parameters":{"width":1920,"height":320,"content":"## Email Writer (Intro + Follow Up 1 + Follow Up 2)"},"typeVersion":1},{"id":"913f34f4-1f97-4720-afac-c1a41a0ac9a1","name":"Get row(s) in sheet4","type":"n8n-nodes-base.googleSheets","position":[3520,3584],"parameters":{"sheetName":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"id","value":"your-gsheet-id"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.7},{"id":"2e1717d7-4e10-4db5-8a36-70d416e556f8","name":"Get row(s) in sheet5","type":"n8n-nodes-base.googleSheets","position":[1520,4112],"parameters":{"sheetName":{"__rl":true,"mode":"list","value":"","cachedResultUrl":"","cachedResultName":""},"documentId":{"__rl":true,"mode":"id","value":"your-sheet-id"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.7},{"id":"3b83eafc-ebaf-49cd-aaa3-d965d124b45c","name":"Update row in sheet3","type":"n8n-nodes-base.googleSheets","position":[2736,4112],"parameters":{"columns":{"value":{"row_number":"={{ $('Loop: Send Follow Up 2').item.json.row_number }}","follow up mail 2 id":"={{ $json.id }}","follow up mail 2 status":"yes"},"schema":[{"id":"place_id","type":"string","display":true,"removed":true,"required":false,"displayName":"place_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"removed":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email","type":"string","display":true,"removed":true,"required":false,"displayName":"email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"phone","type":"string","display":true,"removed":true,"required":false,"displayName":"phone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"website","type":"string","display":true,"removed":true,"required":false,"displayName":"website","defaultMatch":false,"canBeUsedToMatch":true},{"id":"rating","type":"string","display":true,"removed":true,"required":false,"displayName":"rating","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviews","type":"string","display":true,"removed":true,"required":false,"displayName":"reviews","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"removed":true,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"address","type":"string","display":true,"removed":true,"required":false,"displayName":"address","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro mail","type":"string","display":true,"removed":true,"required":false,"displayName":"intro mail","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro mail id","type":"string","display":true,"removed":true,"required":false,"displayName":"intro mail id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email_status","type":"string","display":true,"removed":true,"required":false,"displayName":"email_status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro_email_sent_date","type":"string","display":true,"removed":true,"required":false,"displayName":"intro_email_sent_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up mail 1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1 id","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up mail 1 id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up email send date 1","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up email send date 1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1 status","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up mail 1 status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up mail 2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2 id","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2 id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up email send date 2","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up email send date 2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2 status","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2 status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"types","type":"string","display":true,"removed":true,"required":false,"displayName":"types","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":1495216019,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4/edit#gid=1495216019","cachedResultName":"Results"},"documentId":{"__rl":true,"mode":"list","value":"1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4/edit?usp=drivesdk","cachedResultName":"Google Maps Scraper Setup File"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.7},{"id":"f07823fd-fd84-425f-98b9-17a0f889dd28","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[1072,3472],"parameters":{"width":1904,"height":352,"content":"## Intro Mail Send"},"typeVersion":1},{"id":"23dbb356-8889-489b-a3aa-70a0c96c3ffd","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[3056,3488],"parameters":{"width":1904,"height":336,"content":"## Follow Up 1 Mail Send"},"typeVersion":1},{"id":"05bb4778-419b-4c41-8ae5-f6f9950e8d32","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1072,4000],"parameters":{"width":1904,"height":336,"content":"## Follow Up 2 Mail Send"},"typeVersion":1},{"id":"c8443840-3fbe-4823-8d54-a3987ad6e5ea","name":"Settings","type":"n8n-nodes-base.set","position":[864,2384],"parameters":{"options":{},"assignments":{"assignments":[{"id":"fa469a25-eb00-4011-a626-87fae7fb8bbd","name":"gs_url","type":"string","value":"<ypur-google-sheets-link>"},{"id":"df0a7a51-0ec6-47d2-9f73-bc8268385305","name":"catSheet","type":"string","value":"Google Maps Categories"},{"id":"a1ff9a58-9ae6-4000-9fcd-6c11de23bd48","name":"sheet","type":"string","value":"Zips"}]}},"typeVersion":3.4},{"id":"30947e7d-836e-4ebf-820e-4b181ebc814f","name":"Get Zip Codes","type":"n8n-nodes-base.googleSheets","position":[1056,2384],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"name","value":"={{ $('Settings').item.json.sheet }}"},"documentId":{"__rl":true,"mode":"url","value":"={{ $('Settings').item.json.gs_url }}"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"executeOnce":true,"typeVersion":4.2},{"id":"fdb0dce3-2873-4221-8d7a-12bdb9023cc9","name":"Zips","type":"n8n-nodes-base.set","position":[1264,2384],"parameters":{"options":{},"assignments":{"assignments":[{"id":"3d16d922-0ed3-4a0f-9707-43797438970d","name":"zip","type":"string","value":"={{ $json.Zip }}"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"4a5a8a75-1e28-419f-aa57-9877dcbcfac9","name":"Filter Zips","type":"n8n-nodes-base.filter","position":[1456,2384],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"9f5a5e37-faae-45db-8a22-ad7d5786ecfe","operator":{"type":"string","operation":"empty","singleValue":true},"leftValue":"={{ $json.status }}","rightValue":""},{"id":"0e38f9fa-c3f1-49c3-ad71-8dffc2555333","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"","rightValue":""}]},"looseTypeValidation":true},"typeVersion":2.2},{"id":"7ecc5210-4ff7-453c-ae17-93f976ddd9ba","name":"Split Out","type":"n8n-nodes-base.splitOut","position":[1648,2384],"parameters":{"include":"allOtherFields","options":{},"fieldToSplitOut":"row_number"},"typeVersion":1},{"id":"902d0aca-bd6c-49c1-8578-134d90236116","name":"Get Category","type":"n8n-nodes-base.googleSheets","position":[2128,2496],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"name","value":"={{ $('Settings').item.json.catSheet }}"},"documentId":{"__rl":true,"mode":"url","value":"={{ $('Settings').item.json.gs_url }}"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"executeOnce":true,"typeVersion":4.2},{"id":"30ae9253-1a34-49bf-8c20-94f49e4766d9","name":"Set Zip","type":"n8n-nodes-base.set","position":[2736,2416],"parameters":{"options":{},"assignments":{"assignments":[{"id":"f6442dd8-5638-4a18-8d1d-9a3a09398103","name":"Zip","type":"string","value":"={{ $json.Zip }}"},{"id":"3a637f53-9f44-4f9d-8d6d-1338458df114","name":"Category","type":"string","value":"={{ $json.Category }}"}]}},"typeVersion":3.4},{"id":"2e336d7b-5001-459b-8dd8-d425e448c616","name":"Loop Subcats","type":"n8n-nodes-base.splitInBatches","position":[704,2944],"parameters":{"options":{"reset":false}},"typeVersion":3},{"id":"595ac616-6b61-4410-af61-7c29e26050ea","name":"Set Zip1","type":"n8n-nodes-base.set","position":[880,2944],"parameters":{"options":{},"assignments":{"assignments":[{"id":"7b1629c5-cbfe-4769-8286-66b46c51cd7e","name":"Zip","type":"string","value":"={{ $('Set Zip').item.json.Zip }}"},{"id":"9414efa6-bf07-480a-aec2-3f35a315bf2b","name":"Category","type":"string","value":"={{ $json.Category }}"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"97767fb6-1a01-492d-aade-e4e9b626b64b","name":"GMaps API","type":"n8n-nodes-base.httpRequest","position":[1088,2944],"parameters":{"url":"https://places.googleapis.com/v1/places:searchText?key=YOUR_TOKEN_HERE","method":"POST","options":{"response":{"response":{"fullResponse":true}}},"sendBody":true,"sendHeaders":true,"bodyParameters":{"parameters":[{"name":"textQuery","value":"={{ $json.Category }} {{ $json.Zip }}"}]},"headerParameters":{"parameters":[{"name":"X-Goog-FieldMask","value":"*"},{"name":"Content-Type","value":"application/json"}]}},"typeVersion":4.2},{"id":"fdfe9ea7-1c9a-49c6-b43a-5c2d3f684ca0","name":"Scrape URL","type":"n8n-nodes-base.httpRequest","onError":"continueRegularOutput","position":[1680,2944],"parameters":{"url":"={{ $json.websiteUri }}","options":{"response":{"response":{"neverError":true}},"allowUnauthorizedCerts":true},"sendHeaders":true,"headerParameters":{"parameters":[{"name":"User-Agent","value":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36"},{"name":"Accept","value":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"},{"name":"Accept-Language","value":"en-US,en;q=0.9"}]}},"retryOnFail":true,"typeVersion":4.3},{"id":"1784f246-0b31-4270-a4f4-c9a2855163a4","name":"Add rows in Google Sheets","type":"n8n-nodes-base.googleSheets","onError":"continueErrorOutput","position":[2608,2688],"parameters":{"columns":{"value":{"type":"={{ $('Set Zip1').item.json.Category }}","email":"={{ $json.email }}","phone":"={{ $json.place.nationalPhoneNumber }}","title":"={{ $json.place.displayName.text }}","types":"={{ $json.place.types.join(', ') }}","rating":"={{ $json.place.rating }}","address":"={{ $json.place.formattedAddress }}","reviews":"={{ $json.place.userRatingCount }}","website":"={{ $json.place.websiteUri }}","place_id":"={{ $json.place.id }}"},"schema":[{"id":"place_id","type":"string","display":true,"removed":false,"required":false,"displayName":"place_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"removed":false,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email","type":"string","display":true,"removed":false,"required":false,"displayName":"email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"phone","type":"string","display":true,"removed":false,"required":false,"displayName":"phone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"website","type":"string","display":true,"removed":false,"required":false,"displayName":"website","defaultMatch":false,"canBeUsedToMatch":true},{"id":"rating","type":"string","display":true,"removed":false,"required":false,"displayName":"rating","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviews","type":"string","display":true,"removed":false,"required":false,"displayName":"reviews","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"removed":false,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"address","type":"string","display":true,"removed":false,"required":false,"displayName":"address","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro mail","type":"string","display":true,"removed":true,"required":false,"displayName":"intro mail","defaultMatch":false,"canBeUsedToMatch":true},{"id":"types","type":"string","display":true,"removed":false,"required":false,"displayName":"types","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["place_id"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"appendOrUpdate","sheetName":{"__rl":true,"mode":"name","value":"=Results"},"documentId":{"__rl":true,"mode":"url","value":"={{ $('Settings').first().json.gs_url }}"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.2,"alwaysOutputData":true},{"id":"6311bb94-4b95-420b-9a58-ab51bb2c9cf7","name":"Email Writer","type":"@n8n/n8n-nodes-langchain.googleGemini","position":[336,3600],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"models/gemini-2.0-flash-lite","cachedResultName":"models/gemini-2.0-flash-lite"},"options":{"systemMessage":"=You are a senior B2B sales copywriter.\nYou generate high-performing cold outreach email copy.\nYou must follow instructions strictly."},"messages":{"values":[{"content":"=Generate a JSON object with 3 fields:\n- intro_mail\n- follow_up_mail_1\n- follow_up_mail_2\n\nEach field must contain a complete cold outreach email content.\n\nInputs:\n- Recipient title: {{ $json.title }}\n- Business type: {{ $json.type }}\n- Google Maps categories: {{ $json.types }}\n\nOur company:\nYOUR COMPANY NAME\n\nOur services:\n- Digital marketing\n- SEO\n- Website development\n- Automation (n8n)\n- AI-powered workflows\n- Business process optimization\n\nRules for EACH email:\n- Start with a friendly greeting using the business type or title (example: \"Hi there,\" or \"Hi {{ $json.title }},\").\n- DO NOT include any signature or closing.\n- DO NOT repeat the business name more than once.\n- Use <br><br> for line breaks.\n- No other HTML.\n- 4 to 5 short sentences.\n- Friendly, professional, human tone.\n- Mention automation or AI at least once.\n- End with a soft value-based statement (not a meeting request).\n\nAdditional sequencing rules:\n- intro_mail: general introduction and value.\n- follow_up_mail_1: gentle nudge, assume they saw the first email.\n- follow_up_mail_2: final follow-up, slightly more direct but still polite.\n\nOutput format:\nReturn ONLY valid JSON.\nNo explanations.\nNo extra text.\n"}]},"jsonOutput":true,"builtInTools":{}},"credentials":{"googlePalmApi":{"id":"credential-id","name":"Gemini premium"}},"typeVersion":1.1},{"id":"56cdb48b-1ed4-4f8d-97a5-9d96832740f0","name":"Send Intro Mail","type":"n8n-nodes-base.gmail","position":[2320,3552],"webhookId":"b5f58806-5f45-40b4-ade2-c523da45f947","parameters":{"sendTo":"={{ $json['email'] }}","message":"=<!DOCTYPE html>\n<html>\n  <body style=\"margin:0;padding:0;background-color:#f6f8fa;font-family:Arial, Helvetica, sans-serif;\">\n    <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#f6f8fa;padding:20px 0;\">\n      <tr>\n        <td align=\"center\">\n          <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#ffffff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.05);padding:30px;\">\n            \n            <!-- Logo -->\n            <tr>\n              <td align=\"center\" style=\"padding-bottom:20px;\">\n                <img \n                  src=\"your-company-logo-link-public\" \n                  alt=\"company name\" \n                  width=\"160\"\n                  style=\"display:block;border:0;outline:none;text-decoration:none;\"\n                />\n              </td>\n            </tr>\n          \n            <!-- Dynamic Body -->\n            <tr>\n              <td style=\"font-size:14px;color:#374151;line-height:1.7;\">\n                {{ $json['intro mail'] }}\n              </td>\n            </tr>\n\n            <!-- CTA -->\n            <tr>\n              <td style=\"padding-top:18px;font-size:14px;color:#374151;\">\n                YOUR CTA\n              </td>\n            </tr>\n\n            <!-- Signature -->\n            <tr>\n              <td style=\"padding-top:28px;font-size:14px;color:#111827;\">\n                Regards,<br>\n                <strong>Founder Name</strong><br>\n                <span style=\"color:#6b7280;\">your-company-name</span>\n              </td>\n            </tr>\n\n            <!-- Footer -->\n            <tr>\n              <td style=\"padding-top:20px;font-size:11px;color:#9ca3af;\">\n                Automation • AI • Data Engineering • Workflow Optimization\n              </td>\n            </tr>\n\n          </table>\n        </td>\n      </tr>\n    </table>\n  </body>\n</html>","options":{"senderName":"Your Company Name or Founder Name ","appendAttribution":false,"replyToSenderOnly":true},"subject":"=Reducing manual work at {{ $json.title }}"},"credentials":{"gmailOAuth2":{"id":"credential-id","name":"Gmail account"}},"typeVersion":2.2},{"id":"f2d5bc92-f7ec-4b8e-b1b3-4bad71ac2399","name":"Update Row with all Follow Up Mail Dates","type":"n8n-nodes-base.googleSheets","position":[2720,3552],"parameters":{"columns":{"value":{"row_number":"={{ $('Loop: Send Intro Emails').item.json.row_number }}","email_status":"={{ $json.intro_sent }}","intro mail id":"={{ $json.id }}","intro_email_sent_date":"={{ $json.intro_date }}","follow up mail 1 status":"={{ $json.fu1_sent }}","follow up mail 2 status":"={{ $json.fu2_sent }}","follow up email send date 1":"={{ $json.fu1_date }}","follow up email send date 2":"={{ $json.fu2_date }}"},"schema":[{"id":"place_id","type":"string","display":true,"removed":true,"required":false,"displayName":"place_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"removed":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email","type":"string","display":true,"removed":true,"required":false,"displayName":"email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"phone","type":"string","display":true,"removed":true,"required":false,"displayName":"phone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"website","type":"string","display":true,"removed":true,"required":false,"displayName":"website","defaultMatch":false,"canBeUsedToMatch":true},{"id":"rating","type":"string","display":true,"removed":true,"required":false,"displayName":"rating","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviews","type":"string","display":true,"removed":true,"required":false,"displayName":"reviews","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"removed":true,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"address","type":"string","display":true,"removed":true,"required":false,"displayName":"address","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro mail","type":"string","display":true,"removed":true,"required":false,"displayName":"intro mail","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro mail id","type":"string","display":true,"removed":false,"required":false,"displayName":"intro mail id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email_status","type":"string","display":true,"removed":false,"required":false,"displayName":"email_status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro_email_sent_date","type":"string","display":true,"removed":false,"required":false,"displayName":"intro_email_sent_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1 id","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 1 id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up email send date 1","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up email send date 1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1 status","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 1 status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2 id","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2 id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up email send date 2","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up email send date 2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2 status","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2 status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"types","type":"string","display":true,"required":false,"displayName":"types","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":1495216019,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4/edit#gid=1495216019","cachedResultName":"Results"},"documentId":{"__rl":true,"mode":"list","value":"1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4/edit?usp=drivesdk","cachedResultName":"Google Maps Scraper Setup File"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.7},{"id":"e40cca03-2199-442b-8cc1-fb3e7d08364c","name":"Update row with follow up status 1","type":"n8n-nodes-base.googleSheets","position":[4720,3584],"parameters":{"columns":{"value":{"row_number":"={{ $('Loop: Send Follow Up 1').item.json.row_number }}","follow up mail 1 id":"={{ $json.id }}","follow up mail 1 status":"=yes"},"schema":[{"id":"place_id","type":"string","display":true,"removed":false,"required":false,"displayName":"place_id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email","type":"string","display":true,"required":false,"displayName":"email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"phone","type":"string","display":true,"required":false,"displayName":"phone","defaultMatch":false,"canBeUsedToMatch":true},{"id":"website","type":"string","display":true,"required":false,"displayName":"website","defaultMatch":false,"canBeUsedToMatch":true},{"id":"rating","type":"string","display":true,"required":false,"displayName":"rating","defaultMatch":false,"canBeUsedToMatch":true},{"id":"reviews","type":"string","display":true,"required":false,"displayName":"reviews","defaultMatch":false,"canBeUsedToMatch":true},{"id":"type","type":"string","display":true,"required":false,"displayName":"type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"address","type":"string","display":true,"required":false,"displayName":"address","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro mail","type":"string","display":true,"removed":true,"required":false,"displayName":"intro mail","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro mail id","type":"string","display":true,"removed":false,"required":false,"displayName":"intro mail id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"email_status","type":"string","display":true,"removed":true,"required":false,"displayName":"email_status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"intro_email_sent_date","type":"string","display":true,"removed":true,"required":false,"displayName":"intro_email_sent_date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1 id","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 1 id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up email send date 1","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up email send date 1","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 1 status","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 1 status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2 id","type":"string","display":true,"removed":false,"required":false,"displayName":"follow up mail 2 id","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up email send date 2","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up email send date 2","defaultMatch":false,"canBeUsedToMatch":true},{"id":"follow up mail 2 status","type":"string","display":true,"removed":true,"required":false,"displayName":"follow up mail 2 status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"types","type":"string","display":true,"required":false,"displayName":"types","defaultMatch":false,"canBeUsedToMatch":true},{"id":"row_number","type":"number","display":true,"removed":false,"readOnly":true,"required":false,"displayName":"row_number","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":["row_number"],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"update","sheetName":{"__rl":true,"mode":"list","value":1495216019,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4/edit#gid=1495216019","cachedResultName":"Results"},"documentId":{"__rl":true,"mode":"list","value":"1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1nY4Os8IsdEmNW4W-MkLtnN05EMgLYyoaS2-BPoJ_Iu4/edit?usp=drivesdk","cachedResultName":"Google Maps Scraper Setup File"}},"credentials":{"googleSheetsOAuth2Api":{"id":"credential-id","name":"Codritions Google Sheets"}},"typeVersion":4.7},{"id":"f9c82f3d-873a-4899-bc1e-0e7168aabcef","name":"Follow Up Mail 2","type":"n8n-nodes-base.gmail","position":[2480,4112],"webhookId":"b5f58806-5f45-40b4-ade2-c523da45f947","parameters":{"message":"=<!DOCTYPE html>\n<html>\n  <body style=\"margin:0;padding:0;background-color:#f6f8fa;font-family:Arial, Helvetica, sans-serif;\">\n    <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#f6f8fa;padding:20px 0;\">\n      <tr>\n        <td align=\"center\">\n          <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#ffffff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.05);padding:30px;\">\n            \n            <!-- Logo -->\n            <tr>\n              <td align=\"center\" style=\"padding-bottom:20px;\">\n                <img \n                  src=\"YOUR-COMPANY-LOGO-LINK\" \n                  alt=\"COMPANY NAme\" \n                  width=\"160\"\n                  style=\"display:block;border:0;outline:none;text-decoration:none;\"\n                />\n              </td>\n            </tr>\n          \n            <!-- Dynamic Body -->\n            <tr>\n              <td style=\"font-size:14px;color:#374151;line-height:1.7;\">\n                {{ $json['follow up mail 2'] }}\n              </td>\n            </tr>\n\n            <!-- CTA -->\n            <tr>\n              <td style=\"padding-top:18px;font-size:14px;color:#374151;\">\n                your cta\n              </td>\n            </tr>\n\n            <!-- Signature -->\n            <tr>\n              <td style=\"padding-top:28px;font-size:14px;color:#111827;\">\n                Regards,<br>\n                <strong>FOUNDER NAME</strong><br>\n                <span style=\"color:#6b7280;\">COMPANY NAme</span>\n              </td>\n            </tr>\n\n            <!-- Footer -->\n            <tr>\n              <td style=\"padding-top:20px;font-size:11px;color:#9ca3af;\">\n                Automation • AI • Data Engineering • Workflow Optimization\n              </td>\n            </tr>\n\n          </table>\n        </td>\n      </tr>\n    </table>\n  </body>\n</html>","options":{"senderName":"YOUR COMPANY NAME","appendAttribution":false},"messageId":"={{ $json['follow up mail 1 id'] }}","operation":"reply"},"credentials":{"gmailOAuth2":{"id":"credential-id","name":"Gmail account"}},"typeVersion":2.2},{"id":"7984984d-fa9a-4c58-8527-617055801a6f","name":"Follow Up Mail 1","type":"n8n-nodes-base.gmail","position":[4464,3584],"webhookId":"b5f58806-5f45-40b4-ade2-c523da45f947","parameters":{"message":"=<!DOCTYPE html>\n<html>\n  <body style=\"margin:0;padding:0;background-color:#f6f8fa;font-family:Arial, Helvetica, sans-serif;\">\n    <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#f6f8fa;padding:20px 0;\">\n      <tr>\n        <td align=\"center\">\n          <table width=\"600\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#ffffff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.05);padding:30px;\">\n            \n            <!-- Logo -->\n            <tr>\n              <td align=\"center\" style=\"padding-bottom:20px;\">\n                <img \n                  src=\"your-company-logo-link\" \n                  alt=\"company name\" \n                  width=\"160\"\n                  style=\"display:block;border:0;outline:none;text-decoration:none;\"\n                />\n              </td>\n            </tr>\n          \n            <!-- Dynamic Body -->\n            <tr>\n              <td style=\"font-size:14px;color:#374151;line-height:1.7;\">\n                {{ $('Loop: Send Follow Up 1').item.json['follow up mail 1'] }}\n              </td>\n            </tr>\n\n            <!-- CTA -->\n            <tr>\n              <td style=\"padding-top:18px;font-size:14px;color:#374151;\">\n                YOUR CTA\n              </td>\n            </tr>\n\n            <!-- Signature -->\n            <tr>\n              <td style=\"padding-top:28px;font-size:14px;color:#111827;\">\n                Regards,<br>\n                <strong>Founder Name</strong><br>\n                <span style=\"color:#6b7280;\">YOUR COMPANY NAME</span>\n              </td>\n            </tr>\n\n            <!-- Footer -->\n            <tr>\n              <td style=\"padding-top:20px;font-size:11px;color:#9ca3af;\">\n                Automation • AI • Data Engineering • Workflow Optimization\n              </td>\n            </tr>\n\n          </table>\n        </td>\n      </tr>\n    </table>\n  </body>\n</html>","options":{"senderName":"Your Company Name or Founder Name","appendAttribution":false},"messageId":"={{ $json['intro mail id'] }}","operation":"reply"},"credentials":{"gmailOAuth2":{"id":"credential-id","name":"Gmail account"}},"typeVersion":2.2},{"id":"4bd71216-51ca-4564-9bad-aea0381078f3","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-416,2544],"parameters":{"width":704,"height":560,"content":"## How it works\n\nThis workflow automatically finds local business leads from Google Maps, extracts contact emails from their websites, generates personalized cold emails using AI, and sends a complete 3-step outreach sequence (intro + 2 follow-ups).\n\nIt runs on a schedule, processes new locations by ZIP code and business category, stores everything in Google Sheets, and tracks which emails were sent and when. Follow-ups are triggered automatically based on dates, so no manual work is needed after setup.\n\nThe system includes retry logic, rate-limit handling, and status tracking to make it safe for long-running automation.\n\n## Setup steps\n\n1. Create a Google Sheet with tabs for ZIP codes, categories, and results or make a copy of [GSheets Link](https://docs.google.com/spreadsheets/d/1BRPF4IHoxtAIE5gBQMNP_qIux_XNDXTnmIEHYcl5kEk/edit?usp=sharing)\n2. Add your Google Maps API key.\n3. Connect Google Sheets and Gmail credentials.\n4. Replace placeholders (company name, logo, CTA).\n5. Enable schedule triggers.\n\nOnce enabled, the workflow runs fully hands-free.\n"},"typeVersion":1},{"id":"5c00ca6c-f081-47f4-98db-e12265ff6894","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[480,2224],"parameters":{"width":3120,"height":1120,"content":"## Lead Generation through GMaps API"},"typeVersion":1},{"id":"43a2097b-4cd2-4059-8fef-f0016d758556","name":"Sticky Note10","type":"n8n-nodes-base.stickyNote","position":[3728,2336],"parameters":{"width":704,"height":880,"content":"## How to run\n\n1. Go to Google Sheets and open the sheet named **Zips**.  \n   Add the locations you want to scrape, for example:  \n   - 600001  \n   - Anna Nagar, Chennai, Tamil Nadu  \n   You can add multiple rows.\n\n2. Open the sheet named **Google Maps Categories**.  \n   Add business categories you want to target, for example:  \n   - Veg restaurants  \n   - Dental clinics  \n   - Software companies  \n\n3. Run the first part of the workflow to generate leads.\n\n4. After publishing the workflow, the email writer runs automatically every minute.  \n   It fills:\n   - Intro mail  \n   - Follow-up mail 1  \n   - Follow-up mail 2  \n\n   Only for rows where **Intro mail is empty**.\n\n5. The intro mail sender runs when:\n   - Intro mail is not empty  \n   - Email status is empty  \n\n   It sends the intro email immediately.\n\n6. Follow-up logic:\n   - Follow-up 1 is sent 7 days after the intro mail.  \n   - Follow-up 2 is sent 11 days after the intro mail.  \n\n   The workflow stores message IDs to send follow-ups as replies.\n\n7. Follow-up workflows run every day at **8 AM**.  \n   They check if today is the follow-up date and send emails only when due.\n"},"typeVersion":1},{"id":"588f761d-0f99-46bc-a9b4-87107100b8be","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[848,2816],"parameters":{"color":2,"width":400,"height":320,"content":"## Lead discovery\n\nReads ZIP codes and business categories from Google Sheets, then queries Google Maps to find matching local businesses.\n"},"typeVersion":1},{"id":"95bd805c-fe4d-4a2e-811c-2f60a0ada235","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[1616,2800],"parameters":{"width":400,"height":304,"content":"## Website scraping\n\nVisits each business website and extracts public email addresses from the page content.\n"},"typeVersion":1},{"id":"26b0a005-b827-4112-a9d5-a1d0f9a72965","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[2544,2592],"parameters":{"width":416,"height":736,"content":"## Lead storage\nSaves cleaned lead data (name, email, phone, rating, website) into the Results sheet.\n"},"typeVersion":1},{"id":"5941c7e4-b6b2-420f-a553-f4c3cd60e4cc","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[320,3504],"parameters":{"width":544,"height":272,"content":"## AI email generation\nGenerates personalized intro and follow-up emails using business data and categories.\n"},"typeVersion":1},{"id":"e5320358-5f56-4c47-ab50-33f7764783b4","name":"Trigger: Generate AI Emails","type":"n8n-nodes-base.scheduleTrigger","position":[-752,3600],"parameters":{"rule":{"interval":[{"field":"minutes","minutesInterval":1}]}},"typeVersion":1.3},{"id":"a533433c-05db-4444-aac5-8134856f26d8","name":"Trigger: Send Intro Emails","type":"n8n-nodes-base.scheduleTrigger","position":[1280,3552],"parameters":{"rule":{"interval":[{"field":"minutes","minutesInterval":1}]}},"typeVersion":1.3},{"id":"da1371dd-8c12-4579-a047-012fdc2c361b","name":"Trigger: Send Follow Up 1","type":"n8n-nodes-base.scheduleTrigger","position":[3232,3584],"parameters":{"rule":{"interval":[{"triggerAtHour":8}]}},"typeVersion":1.3},{"id":"6462fbc9-34ac-4f75-99d0-a97929667d9a","name":"Trigger: Send Follow Up 2","type":"n8n-nodes-base.scheduleTrigger","position":[1248,4112],"parameters":{"rule":{"interval":[{"triggerAtHour":8}]}},"typeVersion":1.3},{"id":"0afa0e56-6e7a-40fe-9944-14a24a59c502","name":"Trigger: Lead Scraping (GMaps)","type":"n8n-nodes-base.scheduleTrigger","position":[656,2384],"parameters":{"rule":{"interval":[{"field":"minutes","minutesInterval":15}]}},"typeVersion":1.1},{"id":"14117d9c-8a3a-4785-bd56-22d47afe4f12","name":"Check: Intro Mail Empty","type":"n8n-nodes-base.if","position":[-208,3600],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"45c6ef69-6791-4af3-ab12-d3219419b700","operator":{"type":"string","operation":"empty","singleValue":true},"leftValue":"={{ $json[\"intro mail\"] }}","rightValue":""}]},"looseTypeValidation":true},"typeVersion":2.3},{"id":"99a547b1-7a37-4afc-9e64-6f0c578f49c3","name":"Check: Intro Ready & Not Sent","type":"n8n-nodes-base.if","position":[1776,3552],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"45c6ef69-6791-4af3-ab12-d3219419b700","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json[\"intro mail\"] }}","rightValue":""},{"id":"0a3ff222-8e5e-4067-91b2-17b6816be737","operator":{"type":"string","operation":"empty","singleValue":true},"leftValue":"={{ $json.email_status }}","rightValue":"sent"}]},"looseTypeValidation":true},"typeVersion":2.3},{"id":"77cbd659-1045-4b6a-858b-ab16c9c24605","name":"Check: Follow Up 1 Due","type":"n8n-nodes-base.if","position":[3728,3584],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"45c6ef69-6791-4af3-ab12-d3219419b700","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json['follow up mail 1'] }}","rightValue":""},{"id":"0a3ff222-8e5e-4067-91b2-17b6816be737","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json['follow up mail 1 status'] }}","rightValue":"no"}]},"looseTypeValidation":true},"typeVersion":2.3},{"id":"5d1e1dfd-8f4f-480d-8b38-96d9efb3e513","name":"Check: Follow Up 2 Due","type":"n8n-nodes-base.if","position":[1744,4112],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"45c6ef69-6791-4af3-ab12-d3219419b700","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json[\"follow up mail 2\"] }}","rightValue":""},{"id":"0a3ff222-8e5e-4067-91b2-17b6816be737","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json[\"follow up mail 2 status\"] }}","rightValue":"no"}]},"looseTypeValidation":true},"typeVersion":2.3},{"id":"def66968-912d-4625-9f31-4d0f7f41cab7","name":"Check: GMaps Result Empty","type":"n8n-nodes-base.if","position":[1280,2944],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"7424452f-e208-4e7e-8144-d0c6278bc0f0","operator":{"type":"object","operation":"empty","singleValue":true},"leftValue":"={{ $json.body }}","rightValue":""}]}},"typeVersion":2.2},{"id":"dbb1f66e-69e3-411a-881c-5906c8acbaeb","name":"Check: Email Found","type":"n8n-nodes-base.if","position":[2080,2944],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"acbd1ef3-0c59-48f4-9c04-342356a4f67d","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.email }}"}]},"looseTypeValidation":true},"typeVersion":2.3},{"id":"65151b50-2695-4295-bb4d-7963cfff411f","name":"Check: Retry Limit (Sheet Update)","type":"n8n-nodes-base.if","position":[3216,3120],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"51e191cb-af20-423b-9303-8523caa4ae0d","operator":{"type":"number","operation":"gt"},"leftValue":"={{ $('Calc Retry Delay (Update Status)').item.json[\"retryCount\"] }}","rightValue":10}]}},"typeVersion":2.2},{"id":"7ce53892-7626-427c-91b8-354c9c44bf51","name":"Check: Retry Limit (Add Rows)","type":"n8n-nodes-base.if","position":[3216,2688],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"51e191cb-af20-423b-9303-8523caa4ae0d","operator":{"type":"number","operation":"gt"},"leftValue":"={{ $('Calc Retry Delay (Add Rows)').item.json[\"retryCount\"] }}","rightValue":10}]}},"typeVersion":2.2},{"id":"b6d7bde5-1f6d-4d4f-b057-5df21d869231","name":"Check: Retry Limit (Get Status)","type":"n8n-nodes-base.if","position":[3216,2896],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"51e191cb-af20-423b-9303-8523caa4ae0d","operator":{"type":"number","operation":"gt"},"leftValue":"={{ $('Calc Retry Delay (Get Status)').item.json[\"retryCount\"] }}","rightValue":10}]}},"typeVersion":2.2},{"id":"bf72fe4b-e03b-4501-b08c-0808673f7d4a","name":"Wait: Backoff Before Retry (Add Rows)","type":"n8n-nodes-base.wait","position":[3008,2688],"webhookId":"f64749ce-6070-4d49-be8f-1ddd23519108","parameters":{"amount":"={{ $json[\"waitTimeInSeconds\"] }}"},"typeVersion":1.1},{"id":"0d5159da-3649-4e39-b09a-28acc9673f69","name":"Wait: Backoff Before Retry (Get Status)","type":"n8n-nodes-base.wait","position":[3008,2896],"webhookId":"e4aa82e8-e72e-4434-9a0d-98a7a49a3b53","parameters":{"amount":"={{ $json[\"waitTime\"] }}"},"typeVersion":1.1},{"id":"b99180a3-7e34-4873-b3ac-53fc447adf9f","name":"Wait: Backoff Before Retry (Update Status)","type":"n8n-nodes-base.wait","position":[3008,3120],"webhookId":"3c72b9e0-1e8b-47f5-8aee-ada278035ae5","parameters":{"amount":"={{ $json[\"waitTime\"] }}"},"typeVersion":1.1},{"id":"ba0641c4-a354-43ba-b6bb-7b35849c1187","name":"Build Zip × Category Matrix","type":"n8n-nodes-base.code","position":[2544,2416],"parameters":{"jsCode":"const items = $input.all();\n\n// Separate Zips and Categories into two arrays\nconst zips = [];\nconst categories = [];\n\nfor (const item of items) {\n    if (item.json.Zip) {\n        zips.push(item.json.Zip);\n    }\n    if (item.json.Categories) {\n        categories.push(item.json.Categories);\n    }\n}\n\n// Sanity check: make sure we have both lists\nif (zips.length === 0 || categories.length === 0) {\n    throw new Error('No zips or categories found in input data.');\n}\n\n// Cross-join: every Zip with every Category\nconst output = [];\n\nfor (const zip of zips) {\n    for (const category of categories) {\n        output.push({\n            json: {\n                Zip: zip,\n                Category: category\n            }\n        });\n    }\n}\n\nreturn output;\n"},"typeVersion":2},{"id":"e331a1fb-581c-4fcb-bb48-d4da4c5974db","name":"Calc Retry Delay (Add Rows)","type":"n8n-nodes-base.code","position":[2816,2688],"parameters":{"mode":"runOnceForEachItem","jsCode":"// Define the retry count (coming from a previous node or set manually)\nconst retryCount = $json[\"retryCount\"] || 0;  // If not present, default to 0\nconst maxRetries = 5;  // Define the maximum number of retries\nconst initialDelay = 1;  // Initial delay in seconds (1 second)\n\n// If the retry count is less than the max retries, calculate the delay\nif (retryCount < maxRetries) {\n    const currentDelayInSeconds = initialDelay * Math.pow(2, retryCount);  // Exponential backoff delay in seconds\n    \n    // Log the delay time for debugging\n    console.log(`Waiting for ${currentDelayInSeconds} seconds before retry...`);\n    \n    return {\n        json: {\n            retryCount: retryCount + 1,  // Increment retry count\n            waitTimeInSeconds: currentDelayInSeconds, // Pass the delay time in seconds\n            status: 'retrying',\n        }\n    };\n} else {\n    // If max retries are exceeded, return a failure response\n    return {\n        json: {\n            error: 'Max retries exceeded',\n            retryCount: retryCount,\n            status: 'failed'\n        }\n    };\n}\n"},"typeVersion":2},{"id":"b6dc2f5d-71c4-4ed8-bca2-7afc36cd4571","name":"Calc Retry Delay (Update Status)","type":"n8n-nodes-base.code","position":[2816,3120],"parameters":{"mode":"runOnceForEachItem","jsCode":"// Define the retry count (coming from a previous node or set manually)\nconst retryCount = $json[\"retryCount\"] || 0;  // If not present, default to 0\nconst maxRetries = 5;  // Define the maximum number of retries\nconst initialDelay = 1;  // Initial delay in seconds (1 second)\n\n// If the retry count is less than the max retries, calculate the delay\nif (retryCount < maxRetries) {\n    const currentDelayInSeconds = initialDelay * Math.pow(2, retryCount);  // Exponential backoff delay in seconds\n    \n    // Log the delay time for debugging\n    console.log(`Waiting for ${currentDelayInSeconds} seconds before retry...`);\n    \n    return {\n        json: {\n            retryCount: retryCount + 1,  // Increment retry count\n            waitTimeInSeconds: currentDelayInSeconds, // Pass the delay time in seconds\n            status: 'retrying',\n        }\n    };\n} else {\n    // If max retries are exceeded, return a failure response\n    return {\n        json: {\n            error: 'Max retries exceeded',\n            retryCount: retryCount,\n            status: 'failed'\n        }\n    };\n}\n"},"typeVersion":2},{"id":"68a96da3-8de8-4b4c-aafb-0f77b1ffd387","name":"Calc Retry Delay (Get Status)","type":"n8n-nodes-base.code","position":[2816,2896],"parameters":{"mode":"runOnceForEachItem","jsCode":"// Define the retry count (coming from a previous node or set manually)\nconst retryCount = $json[\"retryCount\"] || 0;  // If not present, default to 0\nconst maxRetries = 5;  // Define the maximum number of retries\nconst initialDelay = 1;  // Initial delay in seconds (1 second)\n\n// If the retry count is less than the max retries, calculate the delay\nif (retryCount < maxRetries) {\n    const currentDelayInSeconds = initialDelay * Math.pow(2, retryCount);  // Exponential backoff delay in seconds\n    \n    // Log the delay time for debugging\n    console.log(`Waiting for ${currentDelayInSeconds} seconds before retry...`);\n    \n    return {\n        json: {\n            retryCount: retryCount + 1,  // Increment retry count\n            waitTimeInSeconds: currentDelayInSeconds, // Pass the delay time in seconds\n            status: 'retrying',\n        }\n    };\n} else {\n    // If max retries are exceeded, return a failure response\n    return {\n        json: {\n            error: 'Max retries exceeded',\n            retryCount: retryCount,\n            status: 'failed'\n        }\n    };\n}\n"},"typeVersion":2},{"id":"cbc869d8-c92b-42d0-8d84-963164a67f4a","name":"Split Places Array","type":"n8n-nodes-base.code","position":[1488,2944],"parameters":{"jsCode":"// Get the places array from the input data\nconst places = items[0]?.json?.body?.places || [];\n\n// Create an output array to hold each place as a separate item\nlet output = [];\n\nif (places.length > 0) {\n  for (let i = 0; i < places.length; i++) {\n    // For each place, push a new item into the output array\n    output.push({\n      json: {\n        place: places[i], // The individual place object\n\n        // ✅ ADDED: websiteUri (safe access)\n        websiteUri: places[i]?.websiteUri || null,\n\n        otherData: items[0].json.otherData || null // unchanged\n      }\n    });\n  }\n} else {\n  // Log an error or handle the case where places array is empty or undefined\n  console.log('Places array is empty or undefined.');\n}\n\n// Return the output array, so each place becomes its own item\nreturn output;\n"},"typeVersion":2},{"id":"e11bad16-2550-4fe2-9432-27d20b0a8698","name":"Extract Emails From Website","type":"n8n-nodes-base.code","onError":"continueRegularOutput","position":[1872,2944],"parameters":{"mode":"runOnceForEachItem","jsCode":"const html = $json.data ?? '';\n\nconst cleanedText = html\n  .replace(/<script[\\s\\S]*?<\\/script>/gi, '')\n  .replace(/<style[\\s\\S]*?<\\/style>/gi, '')\n  .replace(/<[^>]+>/g, ' ')\n  .replace(/&nbsp;/gi, ' ')\n  .replace(/\\s+/g, ' ')\n  .trim()\n  .toLowerCase();\n\nconst emailRegex = /[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}/gi;\n\nconst matches = cleanedText.match(emailRegex) || [];\n\nconst blacklist = ['example.com', 'test.com', 'email.com', 'yourdomain.com'];\n\nconst emails = [...new Set(matches)].filter(e => !blacklist.some(b => e.includes(b)));\n\nconst placeData = $('Split Places Array').item.json.place;\n\nreturn {\n  place: placeData,\n  email: emails.length ? emails[0] : null\n};"},"typeVersion":2},{"id":"97c61d2c-23de-43dc-b90e-50a1f020525e","name":"Check Follow Up 1 Date","type":"n8n-nodes-base.code","position":[4240,3584],"parameters":{"mode":"runOnceForEachItem","jsCode":"const today = new Date().toISOString().split(\"T\")[0];\n\n// Skip if intro not sent or lead inactive\nif (item.json.email_status !== \"yes\") {\n  return null;\n}\n\n// Follow-up 1\nif (\n  item.json[\"follow up email send date 1\"] === today &&\n  item.json[\"follow up mail 1 status\"] === \"no\"\n) {\n  item.json.body = item.json[\"follow up mail 1\"];\n  item.json.send_type = \"fu1\";\n  return item;\n}\n\n// Nothing to send\nreturn null;\n"},"typeVersion":2},{"id":"20b156c9-e10b-458e-a082-582dbcac93ab","name":"Check Follow Up 2 Date","type":"n8n-nodes-base.code","position":[2256,4112],"parameters":{"mode":"runOnceForEachItem","jsCode":" const today = new Date().toISOString().split(\"T\")[0];\n\n// Skip if intro not sent or lead inactive\nif (item.json.email_status !== \"yes\") {\n  return null;\n}\n\n// Follow-up 2\nif (\n  item.json[\"follow up email send date 2\"] === today &&\n  item.json[\"follow up mail 2 status\"] === \"no\"\n) {\n  item.json.body = item.json[\"follow up mail 2\"];\n  item.json.send_type = \"fu2\";\n  return item;\n}\n\n// Nothing to send\nreturn null;"},"typeVersion":2},{"id":"59dc95f3-9a31-45fd-a86d-0e71e3f09470","name":"Generate Follow Up Dates","type":"n8n-nodes-base.code","position":[2528,3552],"parameters":{"mode":"runOnceForEachItem","jsCode":"const today = new Date();\n\nfunction addDays(date, days) {\n  const d = new Date(date);\n  d.setDate(d.getDate() + days);\n  return d.toISOString().split(\"T\")[0];\n}\n\nitem.json.intro_date = addDays(today, 0);\nitem.json.fu1_date = addDays(today, 7);\nitem.json.fu2_date = addDays(today, 11);\n\nitem.json.intro_sent = \"yes\";\nitem.json.fu1_sent = \"no\";\nitem.json.fu2_sent = \"no\";\n\nreturn item;\n"},"typeVersion":2},{"id":"9abdef30-5701-43a4-9fcb-8c8b366027b8","name":"Limit: Zips Per Run","type":"n8n-nodes-base.limit","position":[1840,2384],"parameters":{"maxItems":3},"typeVersion":1},{"id":"0a983063-3545-4b44-b3f1-92e5abe7eec9","name":"Map Zip Field","type":"n8n-nodes-base.set","position":[2128,2352],"parameters":{"options":{},"assignments":{"assignments":[{"id":"a392c381-2f67-4638-94ae-e49df0296503","name":"Zip","type":"string","value":"={{ $json.Zip }}"}]}},"typeVersion":3.4},{"id":"e9aa4fda-6d88-4aa0-b673-ecc296dad94c","name":"Merge Zips & Categories","type":"n8n-nodes-base.merge","position":[2336,2416],"parameters":{},"typeVersion":3.1},{"id":"a57bed18-2de2-443e-b2c4-0a6a003e5501","name":"Loop: Generate AI Emails","type":"n8n-nodes-base.splitInBatches","position":[64,3584],"parameters":{"options":{}},"typeVersion":3},{"id":"9d8e3003-9db2-40f0-ac19-7ae176937dc1","name":"Loop: Send Follow Up 1","type":"n8n-nodes-base.splitInBatches","position":[4000,3568],"parameters":{"options":{}},"typeVersion":3},{"id":"c765c94b-ef11-484f-93eb-77e730b6c060","name":"Loop: Send Follow Up 2","type":"n8n-nodes-base.splitInBatches","position":[1968,4096],"parameters":{"options":{}},"typeVersion":3},{"id":"7cb0b910-6588-46e2-bc65-3063ad01474c","name":"Sticky Note11","type":"n8n-nodes-base.stickyNote","position":[832,2288],"parameters":{"color":2,"width":1664,"height":384,"content":"## Lead discovery\n\nReads ZIP codes and business categories from Google Sheets, then queries Google Maps to find matching local businesses.\n"},"typeVersion":1},{"id":"018d0d08-5a8a-493e-8db3-90cc3077ca67","name":"Sticky Note12","type":"n8n-nodes-base.stickyNote","position":[2240,3472],"parameters":{"width":672,"height":272,"content":"## Intro send\nSends first outreach email and stores message ID.\n"},"typeVersion":1},{"id":"7f24779c-8609-4e0a-8101-da3c0be67499","name":"Loop: Send Intro Emails","type":"n8n-nodes-base.splitInBatches","position":[2048,3536],"parameters":{"options":{}},"typeVersion":3},{"id":"9fe45cba-8440-471b-9364-55d7167adbee","name":"Sticky Note13","type":"n8n-nodes-base.stickyNote","position":[4192,3504],"parameters":{"width":672,"height":272,"content":"## Follow up 1\nReplies to intro email after 7 days.\n"},"typeVersion":1},{"id":"4375ab38-7cd9-4f7e-b02a-630ec3967637","name":"Sticky Note14","type":"n8n-nodes-base.stickyNote","position":[2208,4032],"parameters":{"width":672,"height":272,"content":"## Follow up 2\nFinal reply after 11 days.\n"},"typeVersion":1},{"id":"65d56998-b334-4aae-9b3f-44627bf09a6b","name":"Sticky Note15","type":"n8n-nodes-base.stickyNote","position":[2960,2592],"parameters":{"width":592,"height":736,"content":"## Rate limit handling\nPrevents Google Sheets API limits using\nexponential backoff and retries.\n"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"7197a728-7220-41fe-a733-31503217f75b","connections":{"Zips":{"main":[[{"node":"Filter Zips","type":"main","index":0}]]},"Set Zip":{"main":[[{"node":"Loop Subcats","type":"main","index":0}]]},"Set Zip1":{"main":[[{"node":"GMaps API","type":"main","index":0}]]},"Settings":{"main":[[{"node":"Get Zip Codes","type":"main","index":0}]]},"GMaps API":{"main":[[{"node":"Check: GMaps Result Empty","type":"main","index":0}]]},"Split Out":{"main":[[{"node":"Limit: Zips Per Run","type":"main","index":0}]]},"Get Status":{"main":[[{"node":"Update Status to Success","type":"main","index":0}],[{"node":"Calc Retry Delay (Get Status)","type":"main","index":0}]]},"Scrape URL":{"main":[[{"node":"Extract Emails From Website","type":"main","index":0}]]},"Filter Zips":{"main":[[{"node":"Split Out","type":"main","index":0}]]},"Email Writer":{"main":[[{"node":"Update row in sheet","type":"main","index":0}]]},"Get Category":{"main":[[{"node":"Merge Zips & Categories","type":"main","index":1}]]},"Loop Subcats":{"main":[[],[{"node":"Set Zip1","type":"main","index":0}]]},"Get Zip Codes":{"main":[[{"node":"Zips","type":"main","index":0}]]},"Map Zip Field":{"main":[[{"node":"Merge Zips & Categories","type":"main","index":0}]]},"Send Intro Mail":{"main":[[{"node":"Generate Follow Up Dates","type":"main","index":0}]]},"Follow Up Mail 1":{"main":[[{"node":"Update row with follow up status 1","type":"main","index":0}]]},"Follow Up Mail 2":{"main":[[{"node":"Update row in sheet3","type":"main","index":0}]]},"Check: Email Found":{"main":[[{"node":"Add rows in Google Sheets","type":"main","index":0}]]},"Split Places Array":{"main":[[{"node":"Scrape URL","type":"main","index":0}]]},"Get row(s) in sheet":{"main":[[{"node":"Check: Intro Mail Empty","type":"main","index":0}]]},"Limit: Zips Per Run":{"main":[[{"node":"Map Zip Field","type":"main","index":0},{"node":"Get Category","type":"main","index":0}]]},"Update row in sheet":{"main":[[{"node":"Loop: Generate AI Emails","type":"main","index":0}]]},"Get row(s) in sheet1":{"main":[[{"node":"Check: Intro Ready & Not Sent","type":"main","index":0}]]},"Get row(s) in sheet4":{"main":[[{"node":"Check: Follow Up 1 Due","type":"main","index":0}]]},"Get row(s) in sheet5":{"main":[[{"node":"Check: Follow Up 2 Due","type":"main","index":0}]]},"Update row in sheet3":{"main":[[{"node":"Loop: Send Follow Up 2","type":"main","index":0}]]},"Check Follow Up 1 Date":{"main":[[{"node":"Follow Up Mail 1","type":"main","index":0}]]},"Check Follow Up 2 Date":{"main":[[{"node":"Follow Up Mail 2","type":"main","index":0}]]},"Check: Follow Up 1 Due":{"main":[[{"node":"Loop: Send Follow Up 1","type":"main","index":0}]]},"Check: Follow Up 2 Due":{"main":[[{"node":"Loop: Send Follow Up 2","type":"main","index":0}]]},"Loop: Send Follow Up 1":{"main":[[],[{"node":"Check Follow Up 1 Date","type":"main","index":0}]]},"Loop: Send Follow Up 2":{"main":[[],[{"node":"Check Follow Up 2 Date","type":"main","index":0}]]},"Check: Intro Mail Empty":{"main":[[{"node":"Loop: Generate AI Emails","type":"main","index":0}]]},"Loop: Send Intro Emails":{"main":[[],[{"node":"Send Intro Mail","type":"main","index":0}]]},"Merge Zips & Categories":{"main":[[{"node":"Build Zip × Category Matrix","type":"main","index":0}]]},"Generate Follow Up Dates":{"main":[[{"node":"Update Row with all Follow Up Mail Dates","type":"main","index":0}]]},"Loop: Generate AI Emails":{"main":[[],[{"node":"Email Writer","type":"main","index":0}]]},"Update Status to Success":{"main":[[{"node":"Loop Subcats","type":"main","index":0}],[{"node":"Calc Retry Delay (Update Status)","type":"main","index":0}]]},"Add rows in Google Sheets":{"main":[[{"node":"Get Status","type":"main","index":0}],[{"node":"Calc Retry Delay (Add Rows)","type":"main","index":0}]]},"Check: GMaps Result Empty":{"main":[[{"node":"Loop Subcats","type":"main","index":0}],[{"node":"Split Places Array","type":"main","index":0}]]},"Trigger: Send Follow Up 1":{"main":[[{"node":"Get row(s) in sheet4","type":"main","index":0}]]},"Trigger: Send Follow Up 2":{"main":[[{"node":"Get row(s) in sheet5","type":"main","index":0}]]},"Trigger: Send Intro Emails":{"main":[[{"node":"Get row(s) in sheet1","type":"main","index":0}]]},"Calc Retry Delay (Add Rows)":{"main":[[{"node":"Wait: Backoff Before Retry (Add Rows)","type":"main","index":0}]]},"Extract Emails From Website":{"main":[[{"node":"Check: Email Found","type":"main","index":0}]]},"Trigger: Generate AI Emails":{"main":[[{"node":"Get row(s) in sheet","type":"main","index":0}]]},"Build Zip × Category Matrix":{"main":[[{"node":"Set Zip","type":"main","index":0}]]},"Calc Retry Delay (Get Status)":{"main":[[{"node":"Wait: Backoff Before Retry (Get Status)","type":"main","index":0}]]},"Check: Intro Ready & Not Sent":{"main":[[{"node":"Loop: Send Intro Emails","type":"main","index":0}]]},"Check: Retry Limit (Add Rows)":{"main":[[{"node":"Stop and Error1","type":"main","index":0}],[{"node":"Add rows in Google Sheets","type":"main","index":0}]]},"Trigger: Lead Scraping (GMaps)":{"main":[[{"node":"Settings","type":"main","index":0}]]},"Check: Retry Limit (Get Status)":{"main":[[{"node":"Stop and Error2","type":"main","index":0}],[{"node":"Get Status","type":"main","index":0}]]},"Calc Retry Delay (Update Status)":{"main":[[{"node":"Wait: Backoff Before Retry (Update Status)","type":"main","index":0}]]},"Check: Retry Limit (Sheet Update)":{"main":[[{"node":"Stop and Error","type":"main","index":0}],[{"node":"Update Status to Success","type":"main","index":0}]]},"Update row with follow up status 1":{"main":[[{"node":"Loop: Send Follow Up 1","type":"main","index":0}]]},"Wait: Backoff Before Retry (Add Rows)":{"main":[[{"node":"Check: Retry Limit (Add Rows)","type":"main","index":0}]]},"Wait: Backoff Before Retry (Get Status)":{"main":[[{"node":"Check: Retry Limit (Get Status)","type":"main","index":0}]]},"Update Row with all Follow Up Mail Dates":{"main":[[{"node":"Loop: Send Intro Emails","type":"main","index":0}]]},"Wait: Backoff Before Retry (Update Status)":{"main":[[{"node":"Check: Retry Limit (Sheet Update)","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":78,"nodeTypes":{"n8n-nodes-base.if":{"count":9},"n8n-nodes-base.set":{"count":5},"n8n-nodes-base.code":{"count":9},"n8n-nodes-base.wait":{"count":3},"n8n-nodes-base.gmail":{"count":3},"n8n-nodes-base.limit":{"count":1},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.filter":{"count":1},"n8n-nodes-base.splitOut":{"count":1},"n8n-nodes-base.stickyNote":{"count":16},"n8n-nodes-base.httpRequest":{"count":2},"n8n-nodes-base.googleSheets":{"count":13},"n8n-nodes-base.stopAndError":{"count":3},"n8n-nodes-base.splitInBatches":{"count":5},"n8n-nodes-base.scheduleTrigger":{"count":5},"@n8n/n8n-nodes-langchain.googleGemini":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Dinakar Selvakumar","username":"jamesdinakar","bio":"Turning real business problems into clean n8n automations. I design reliable templates for social media, lead generation, AI agents, and internal workflows, with a strong focus on simplicity, security, and great user experience.","verified":true,"links":["https://www.linkedin.com/in/dinakar-selva/"],"avatar":"https://gravatar.com/avatar/d3ee0b6c278e3c00cb8b24917f6be30c9deac3c7a9e78157eb8f82690e8a72c5?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":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"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/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"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/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.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"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":356,"icon":"file:gmail.svg","name":"n8n-nodes-base.gmail","codex":{"data":{"alias":["email","human","form","wait","hitl","approval"],"resources":{"generic":[{"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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with 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-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/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/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"transform\"]","defaults":{"name":"Gmail"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"},"displayName":"Gmail","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"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":528,"icon":"fa:exclamation-triangle","name":"n8n-nodes-base.stopAndError","codex":{"data":{"alias":["Throw error","Error","Exception"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.stopanderror/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"input\"]","defaults":{"name":"Stop and Error","color":"#ff0000"},"iconData":{"icon":"exclamation-triangle","type":"icon"},"displayName":"Stop and Error","typeVersion":1,"nodeCategories":[{"id":7,"name":"Utility"},{"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":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule 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":1237,"icon":"file:limit.svg","name":"n8n-nodes-base.limit","codex":{"data":{"alias":["Limit","Remove","Slice","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.limit/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Limit"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjMkZCNjdDIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcGF0aD0idXJsKCNhKSIgY2xpcC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNTEyIDQ1OGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC02OGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDY4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bS0xNDAgMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDEyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNjhjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMTUyLTIyMmMtNi42MjcgMC0xMi01LjM3My0xMi0xMlYzMGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDI0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTk0YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6Ii8+PHBhdGggZD0iTTE0OS41NzcgMTQ2Ljk4MmM5LjM5OC05LjM0NiAyNC41OTQtOS4zMDQgMzMuOTQxLjA5NUwyNTYgMjE5Ljk2NGw3Mi40ODItNzIuODg3YzkuMzQ3LTkuMzk5IDI0LjU0My05LjQ0MSAzMy45NDEtLjA5NXM5LjQ0MSAyNC41NDMuMDk1IDMzLjk0MWwtODkuNSA5MGEyNCAyNCAwIDAgMS0zNC4wMzYgMGwtODkuNS05MGMtOS4zNDYtOS4zOTgtOS4zMDQtMjQuNTk0LjA5NS0zMy45NDFNMCAzNTBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0ODhjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyeiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTEydjUxMkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg=="},"displayName":"Limit","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1239,"icon":"file:splitOut.svg","name":"n8n-nodes-base.splitOut","codex":{"data":{"alias":["Split","Nested","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitout/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Split Out"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjOUI2REQ1IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4MCAxNDhjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzMjJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxNDZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NmMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDMyMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE0NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0wIDk2YzAtNi42MjctNS4zNzMtMTItMTItMTJIMzIyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTQ2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNDM4IDc2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMydjU2YzAgMjYuOTc4LTEwLjI3MiA1MS41NTctMjcuMTE5IDcwLjAzOS01LjA1NSA1LjU0NS01LjA1NSAxNC4zNzcgMCAxOS45MjIgMTYuODQ3IDE4LjQ4MiAyNy4xMTkgNDMuMDYxIDI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMySDQyNmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMzA5Ljc4M2MtNDQuMTgzIDAtODAtMzUuODE3LTgwLTgwdi01NmMwLTMwLjkyOC0yNS4wNzItNTYtNTYtNTZhNS43ODMgNS43ODMgMCAwIDEtNS43ODMtNS43ODN2LTM2LjQzNGE1Ljc4MyA1Ljc4MyAwIDAgMSA1Ljc4My01Ljc4M2MzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZ2LTU2YzAtNDQuMTgzIDM1LjgxNy04MCA4MC04MEg0MjZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzYgMjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjRjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTJjNi42MjcgMCAxMi01LjM3MyAxMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik01MTIgMEgwdjUxMmg1MTJ6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"},"displayName":"Split Out","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1309,"icon":"file:gemini.svg","name":"@n8n/n8n-nodes-langchain.googleGemini","codex":{"data":{"alias":["LangChain","video","document","audio","transcribe","assistant"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.googlegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iX2Zvb3RlclNwYXJrXzk4dWR0XzE1MSIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTU3LjA2NjcgMjguNjEwM0M1Mi4xMzU5IDI2LjQ4NzggNDcuODIxNyAyMy41NzYgNDQuMTIyMyAxOS44Nzg0QzQwLjQyNDcgMTYuMTgwOCAzNy41MTI4IDExLjg2NDkgMzUuMzkwMiA2LjkzNDJDMzQuNTc1NCA1LjA0NDQ5IDMzLjkyMDYgMy4xMDIwNCAzMy40MTg2IDEuMTEwNDlDMzMuMjU0OSAwLjQ1OTM2OCAzMi42NzExIDAuMDAxMDM3NiAzMiAwLjAwMTAzNzZDMzEuMzI4OCAwLjAwMTAzNzYgMzAuNzQ1IDAuNDU5MzY4IDMwLjU4MTMgMS4xMTA0OUMzMC4wNzkzIDMuMTAyMDQgMjkuNDI0NiA1LjA0MjY3IDI4LjYwOTcgNi45MzQyQzI2LjQ4NzIgMTEuODY0OSAyMy41NzUzIDE2LjE4MDggMTkuODc3NyAxOS44Nzg0QzE2LjE4IDIzLjU3NiAxMS44NjQgMjYuNDg3OCA2LjkzMzI3IDI4LjYxMDNDNS4wNDM1MyAyOS40MjUxIDMuMTAxMDUgMzAuMDc5OSAxLjEwOTQ3IDMwLjU4MTlDMC40NTgzMzggMzAuNzQ1NiAwIDMxLjMyOTQgMCAzMi4wMDA1QzAgMzIuNjcxNiAwLjQ1ODMzOCAzMy4yNTU1IDEuMTA5NDcgMzMuNDE5MUMzLjEwMTA1IDMzLjkyMTEgNS4wNDE3MiAzNC41NzU5IDYuOTMzMjcgMzUuMzkwN0MxMS44NjQgMzcuNTEzMiAxNi4xNzgyIDQwLjQyNTEgMTkuODc3NyA0NC4xMjI2QzIzLjU3NzEgNDcuODIwMiAyNi40ODcyIDUyLjEzNjEgMjguNjA5NyA1Ny4wNjY4QzI5LjQyNDYgNTguOTU2NSAzMC4wNzkzIDYwLjg5OSAzMC41ODEzIDYyLjg5MDVDMzAuNzQ1IDYzLjU0MTYgMzEuMzI4OCA2NCAzMiA2NEMzMi42NzExIDY0IDMzLjI1NDkgNjMuNTQxNiAzMy40MTg2IDYyLjg5MDVDMzMuOTIwNiA2MC44OTkgMzQuNTc1NCA1OC45NTgzIDM1LjM5MDIgNTcuMDY2OEMzNy41MTI4IDUyLjEzNjEgNDAuNDI0NyA0Ny44MjIgNDQuMTIyMyA0NC4xMjI2QzQ3LjgxOTkgNDAuNDI1MSA1Mi4xMzU5IDM3LjUxMzIgNTcuMDY2NyAzNS4zOTA3QzU4Ljk1NjQgMzQuNTc1OSA2MC44OTg5IDMzLjkyMTEgNjIuODkwNSAzMy40MTkxQzYzLjU0MTYgMzMuMjU1NSA2NCAzMi42NzE2IDY0IDMyLjAwMDVDNjQgMzEuMzI5NCA2My41NDE2IDMwLjc0NTYgNjIuODkwNSAzMC41ODE5QzYwLjg5ODkgMzAuMDc5OSA1OC45NTgyIDI5LjQyNTEgNTcuMDY2NyAyOC42MTAzWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48bWFzayBpZD0ibWFzazBfMTA4NTlfNDg5NCIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0Ij48cGF0aCBkPSJNMzIgMEMzMi42NzExIDEuMTQ0ZS0wNSAzMy4yNTUzIDAuNDU4MjYzIDMzLjQxODkgMS4xMDkzOEMzMy45MjA5IDMuMTAwOTMgMzQuNTc1OCA1LjA0Mzg5IDM1LjM5MDYgNi45MzM1OUMzNy41MTMxIDExLjg2MzkgNDAuNDI0NyAxNi4xNzk2IDQ0LjEyMjEgMTkuODc3QzQ3LjgyMTUgMjMuNTc0NSA1Mi4xMzU3IDI2LjQ4NjkgNTcuMDY2NCAyOC42MDk0QzU4Ljk1OCAyOS40MjQyIDYwLjg5OSAzMC4wNzkxIDYyLjg5MDYgMzAuNTgxMUM2My41NDE1IDMwLjc0NDggNjMuOTk5OCAzMS4zMjgxIDY0IDMxLjk5OUM2NCAzMi42NzAxIDYzLjU0MTcgMzMuMjU0MiA2Mi44OTA2IDMzLjQxOEM2MC44OTkgMzMuOTE5OSA1OC45NTYxIDM0LjU3NDggNTcuMDY2NCAzNS4zODk2QzUyLjEzNTggMzcuNTEyMSA0Ny44MTk2IDQwLjQyMzcgNDQuMTIyMSA0NC4xMjExQzQwLjQyNDYgNDcuODIwNCAzNy41MTMxIDUyLjEzNDkgMzUuMzkwNiA1Ny4wNjU0QzM0LjU3NTggNTguOTU3IDMzLjkyMDkgNjAuODk4MSAzMy40MTg5IDYyLjg4OTZDMzMuMjU1MiA2My41NDA3IDMyLjY3MTEgNjMuOTk5IDMyIDYzLjk5OUMzMS4zMjg5IDYzLjk5OSAzMC43NDQ4IDYzLjU0MDcgMzAuNTgxMSA2Mi44ODk2QzMwLjA3OTEgNjAuODk4MSAyOS40MjQyIDU4Ljk1NTEgMjguNjA5NCA1Ny4wNjU0QzI2LjQ4NjkgNTIuMTM0OSAyMy41NzczIDQ3LjgxODYgMTkuODc3OSA0NC4xMjExQzE2LjE3ODYgNDAuNDIzNyAxMS44NjQyIDM3LjUxMjEgNi45MzM1OSAzNS4zODk2QzUuMDQyMDQgMzQuNTc0OCAzLjEwMDk2IDMzLjkxOTkgMS4xMDkzOCAzMy40MThDMC40NTgzMDkgMzMuMjU0MiAwIDMyLjY3MDEgMCAzMS45OTlDMC4wMDAyMDE1NDggMzEuMzI4MSAwLjQ1ODQ2MyAzMC43NDQ4IDEuMTA5MzggMzAuNTgxMUMzLjEwMDk2IDMwLjA3OTEgNS4wNDM4NiAyOS40MjQyIDYuOTMzNTkgMjguNjA5NEMxMS44NjQzIDI2LjQ4NjkgMTYuMTgwNCAyMy41NzQ1IDE5Ljg3NzkgMTkuODc3QzIzLjU3NTMgMTYuMTc5NiAyNi40ODY5IDExLjg2MzkgMjguNjA5NCA2LjkzMzU5QzI5LjQyNDIgNS4wNDIwNyAzMC4wNzkxIDMuMTAwOTMgMzAuNTgxMSAxLjEwOTM4QzMwLjc0NDggMC40NTgyNiAzMS4zMjg5IDAgMzIgMFoiIGZpbGw9ImJsYWNrIj48L3BhdGg+PHBhdGggZD0iTTMyIDBDMzIuNjcxMSAxLjE0NGUtMDUgMzMuMjU1MyAwLjQ1ODI2MyAzMy40MTg5IDEuMTA5MzhDMzMuOTIwOSAzLjEwMDkzIDM0LjU3NTggNS4wNDM4OSAzNS4zOTA2IDYuOTMzNTlDMzcuNTEzMSAxMS44NjM5IDQwLjQyNDcgMTYuMTc5NiA0NC4xMjIxIDE5Ljg3N0M0Ny44MjE1IDIzLjU3NDUgNTIuMTM1NyAyNi40ODY5IDU3LjA2NjQgMjguNjA5NEM1OC45NTggMjkuNDI0MiA2MC44OTkgMzAuMDc5MSA2Mi44OTA2IDMwLjU4MTFDNjMuNTQxNSAzMC43NDQ4IDYzLjk5OTggMzEuMzI4MSA2NCAzMS45OTlDNjQgMzIuNjcwMSA2My41NDE3IDMzLjI1NDIgNjIuODkwNiAzMy40MThDNjAuODk5IDMzLjkxOTkgNTguOTU2MSAzNC41NzQ4IDU3LjA2NjQgMzUuMzg5NkM1Mi4xMzU4IDM3LjUxMjEgNDcuODE5NiA0MC40MjM3IDQ0LjEyMjEgNDQuMTIxMUM0MC40MjQ2IDQ3LjgyMDQgMzcuNTEzMSA1Mi4xMzQ5IDM1LjM5MDYgNTcuMDY1NEMzNC41NzU4IDU4Ljk1NyAzMy45MjA5IDYwLjg5ODEgMzMuNDE4OSA2Mi44ODk2QzMzLjI1NTIgNjMuNTQwNyAzMi42NzExIDYzLjk5OSAzMiA2My45OTlDMzEuMzI4OSA2My45OTkgMzAuNzQ0OCA2My41NDA3IDMwLjU4MTEgNjIuODg5NkMzMC4wNzkxIDYwLjg5ODEgMjkuNDI0MiA1OC45NTUxIDI4LjYwOTQgNTcuMDY1NEMyNi40ODY5IDUyLjEzNDkgMjMuNTc3MyA0Ny44MTg2IDE5Ljg3NzkgNDQuMTIxMUMxNi4xNzg2IDQwLjQyMzcgMTEuODY0MiAzNy41MTIxIDYuOTMzNTkgMzUuMzg5NkM1LjA0MjA0IDM0LjU3NDggMy4xMDA5NiAzMy45MTk5IDEuMTA5MzggMzMuNDE4QzAuNDU4MzA5IDMzLjI1NDIgMCAzMi42NzAxIDAgMzEuOTk5QzAuMDAwMjAxNTQ4IDMxLjMyODEgMC40NTg0NjMgMzAuNzQ0OCAxLjEwOTM4IDMwLjU4MTFDMy4xMDA5NiAzMC4wNzkxIDUuMDQzODYgMjkuNDI0MiA2LjkzMzU5IDI4LjYwOTRDMTEuODY0MyAyNi40ODY5IDE2LjE4MDQgMjMuNTc0NSAxOS44Nzc5IDE5Ljg3N0MyMy41NzUzIDE2LjE3OTYgMjYuNDg2OSAxMS44NjM5IDI4LjYwOTQgNi45MzM1OUMyOS40MjQyIDUuMDQyMDcgMzAuMDc5MSAzLjEwMDkzIDMwLjU4MTEgMS4xMDkzOEMzMC43NDQ4IDAuNDU4MjYgMzEuMzI4OSAwIDMyIDBaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTA4NTlfNDg5NCkiPjwvcGF0aD48L21hc2s+PGcgbWFzaz0idXJsKCNtYXNrMF8xMDg1OV80ODk0KSI+PGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZl8xMDg1OV80ODk0KSI+PGVsbGlwc2UgY3g9IjE0LjIwODQiIGN5PSIxNi43MTY0IiByeD0iMTQuMjA4NCIgcnk9IjE2LjcxNjQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTQyMzQzIDAuMzM0NjQ5IC0wLjMzNDY1NiAwLjk0MjM0IC03Ljk3OSAxMy43NzM1KSIgZmlsbD0iI0ZGRTQzMiI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMjcuMDU0MyIgY3k9IjIuNTUxMTQiIHJ4PSIxOC4zOTQ0IiByeT0iMTguNzk4NSIgZmlsbD0iI0ZDNDEzRCI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyMl9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMTkuMjI0NSIgY3k9IjI0LjkwNDIiIHJ4PSIxOS4yMjQ1IiByeT0iMjQuOTA0MiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45OTg4MDcgLTAuMDQ4ODI1NCAwLjA0ODgyNjYgMC45OTg4MDcgLTEuNzI3NzggMzIuNjU3MykiIGZpbGw9IiMwMEI5NUMiPjwvZWxsaXBzZT48L2c+PGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjNfZl8xMDg1OV80ODk0KSI+PGVsbGlwc2UgY3g9IjE5LjIyNDUiIGN5PSIyNC45MDQyIiByeD0iMTkuMjI0NSIgcnk9IjI0LjkwNDIiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk4ODA3IC0wLjA0ODgyNTQgMC4wNDg4MjY2IDAuOTk4ODA3IC0xLjcyNzc4IDMyLjY1NzMpIiBmaWxsPSIjMDBCOTVDIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI0X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIxOC44NDI5IiBjeT0iMjAuNzQ0MSIgcng9IjE4Ljg0MjkiIHJ5PSIyMC43NDQxIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1NDMwMSAtMC41MTk3NzkgMC41MTk3OSAwLjg1NDI5NCAtNy4xMzU3NCA0Ny41MDc4KSIgZmlsbD0iIzAwQjk1QyI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyNV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iNjYuNDYxNyIgY3k9IjI0Ljk3NyIgcng9IjE4LjA5MzMiIHJ5PSIxNy40MjI5IiBmaWxsPSIjMzE4NkZGIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI2X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIyMC45MjkyIiBjeT0iMjIuMDc1MiIgcng9IjIwLjkyOTIiIHJ5PSIyMi4wNzUyIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjc5NTk5IDAuNjA1MzEgLTAuNjA1MzIgMC43OTU5ODIgLTIuODE4ODUgLTcuNDMzMjMpIiBmaWxsPSIjRkJCQzA0Ij48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI3X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIyNC4xMzExIiBjeT0iMjIuMjkxOSIgcng9IjI0LjEzMTEiIHJ5PSIyMi4yOTE5IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjgyNDAzNyAwLjU2NjUzNiAtMC41NjY1NDYgMC44MjQwMyAzOS42MzM4IDAuMzEwNjA4KSIgZmlsbD0iIzMxODZGRiI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyOF9mXzEwODU5XzQ4OTQpIj48cGF0aCBkPSJNNTQuMjI1NSAtMi4zMDQwM0M1Ny4wMTk1IDEuNDk0NjIgNTMuNDI5NCA4Ljg4MDQgNDYuMjA2OCAxNC4xOTI2QzM4Ljk4NDIgMTkuNTA0OCAzMC44NjQyIDIwLjczMTggMjguMDcwMiAxNi45MzMxQzI1LjI3NjIgMTMuMTM0NSAyOC44NjYzIDUuNzQ4NjcgMzYuMDg4OSAwLjQzNjQ4NkM0My4zMTE1IC00Ljg3NTcgNTEuNDMxNSAtNi4xMDI2NyA1NC4yMjU1IC0yLjMwNDAzWiIgZmlsbD0iIzc0OUJGRiI+PC9wYXRoPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyOV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMjcuNTg1MyIgY3k9IjE3LjE0NzgiIHJ4PSIyNy41ODUzIiByeT0iMTcuMTQ3OCIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MzMxNjYgLTAuNjgwMDQ5IDAuNjgwMDYxIDAuNzMzMTU1IC0xMi4yNTgzIDkuNDk2OTUpIiBmaWxsPSIjRkM0MTNEIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIxMF9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMTQuNzgxOSIgY3k9IjguNTk2MzciIHJ4PSIxNC43ODE5IiByeT0iOC41OTYzNyIgdHJhbnNmb3JtPSJtYXRyaXgoMC44MTMxODYgMC41ODIwMDQgLTAuNTgyMDE2IDAuODEzMTc3IDYuMzc4NDIgMzAuNTExKSIgZmlsbD0iI0ZGRUU0OCI+PC9lbGxpcHNlPjwvZz48L2c+PGRlZnM+PGZpbHRlciBpZD0iZmlsdGVyMF9mXzEwODU5XzQ4OTQiIHg9Ii0xOS42MTgiIHk9IjEyLjkwMjciIHdpZHRoPSIzOC44NjgxIiBoZWlnaHQ9IjQyLjc1NjIiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMi40NTk2NSIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyMV9mXzEwODU5XzQ4OTQiIHg9Ii0xNS4xMjIzIiB5PSItNDAuMDI5NiIgd2lkdGg9Ijg0LjM1MzMiIGhlaWdodD0iODUuMTYxNSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ij48L2ZlRmxvb2Q+PGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiPjwvZmVCbGVuZD48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxMS44OTExIiByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMTA4NTlfNDg5NCI+PC9mZUdhdXNzaWFuQmx1cj48L2ZpbHRlcj48ZmlsdGVyIGlkPSJmaWx0ZXIyX2ZfMTA4NTlfNDg5NCIgeD0iLTIwLjc2ODIiIHk9IjExLjQ4MzUiIHdpZHRoPSI3OC45MTYxIiBoZWlnaHQ9IjkwLjIxOTYiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMTAuMTA4NiIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyM19mXzEwODU5XzQ4OTQiIHg9Ii0yMC43NjgyIiB5PSIxMS40ODM1IiB3aWR0aD0iNzguOTE2MSIgaGVpZ2h0PSI5MC4yMTk2IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEwLjEwODYiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjRfZl8xMDg1OV80ODk0IiB4PSItMTkuODUiIHk9IjE0Ljk2NjQiIHdpZHRoPSI3OS4xODg2IiBoZWlnaHQ9IjgwLjkzNzgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMTAuMTA4NiIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyNV9mXzEwODU5XzQ4OTQiIHg9IjI5LjE1NjEiIHk9Ii0xMS42NTgyIiB3aWR0aD0iNzQuNjExMSIgaGVpZ2h0PSI3My4yNzAzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjkuNjA2MTMiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjZfZl8xMDg1OV80ODk0IiB4PSItMzguMjkxIiB5PSItMTYuMjY4NyIgd2lkdGg9Ijc3LjUzOCIgaGVpZ2h0PSI3OC4xNTEzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjguNzA1OTEiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjdfZl8xMDg1OV80ODk0IiB4PSI3Ljc4MDM4IiB5PSItNi4wOTgxIiB3aWR0aD0iNzguMjE4MSIgaGVpZ2h0PSI3Ni44OTgyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjcuNzc0NzMiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjhfZl8xMDg1OV80ODk0IiB4PSIxMy4yMDgyIiB5PSItMTguNDI1IiB3aWR0aD0iNTUuODc5MyIgaGVpZ2h0PSI1MS40NzkxIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjYuOTU2OTQiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjlfZl8xMDg1OV80ODk0IiB4PSItMTUuNDczOSIgeT0iLTMxLjAyNzIiIHdpZHRoPSI3MC4yMDM0IiBoZWlnaHQ9IjY4LjY3MzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNS44NzU5OCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyMTBfZl8xMDg1OV80ODk0IiB4PSItMTQuMTczIiB5PSIyMC40NzQiIHdpZHRoPSI1NS4xMzczIiBoZWlnaHQ9IjUxLjI2MSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ij48L2ZlRmxvb2Q+PGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiPjwvZmVCbGVuZD48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI3LjI3MjUzIiByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMTA4NTlfNDg5NCI+PC9mZUdhdXNzaWFuQmx1cj48L2ZpbHRlcj48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTA4NTlfNDg5NCIgeDE9IjE4LjE5MzEiIHkxPSI0Mi44MjEiIHgyPSI1MS40MzM1IiB5Mj0iMTQuNzk1OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiM0ODkzRkMiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMjciIHN0b3AtY29sb3I9IiM0ODkzRkMiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNzc2OTgxIiBzdG9wLWNvbG9yPSIjOTY5REZGIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQkQ5OUZFIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+Cg=="},"displayName":"Google Gemini","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":37,"name":"Lead Generation"},{"id":51,"name":"Multimodal AI"}],"image":[]}}