{"workflow":{"id":13094,"name":"Send LinkedIn connection requests to competitor post commenters via ConnectSafely.ai","views":35,"recentViews":0,"totalViews":35,"createdAt":"2026-01-29T13:14:05.305Z","description":"## Who's it for\n\nThis workflow is built for sales professionals, recruiters, growth marketers, and founders who want to convert engaged LinkedIn audiences into warm leads. Perfect for anyone running competitive intelligence, building prospect lists from viral content, or targeting people who've already shown interest in your industry.\n\nIf you're watching competitors get massive engagement on their posts while their commenters slip away uncontacted, this automation captures those profiles and sends personalized connection requests automatically—with built-in daily limits that respect LinkedIn's guidelines.\n\n**Ideal for:**\n- SDRs and AEs building pipeline from competitor audiences\n- Recruiters sourcing candidates from industry discussions\n- Founders networking with engaged professionals in their space\n- Marketers building communities from high-intent commenters\n- Agency owners generating leads from client competitor posts\n\n---\n\n## How it works\n\nThe workflow extracts all commenters from any LinkedIn post, filters out competitor employees, and sends personalized connection requests with intelligent daily limits that automatically pause overnight and resume the next day.\n\n**The process flow:**\n\n1. Submit a form with the post URL, competitor name, and optional custom message\n2. Extract all commenters from the post via ConnectSafely.ai API\n3. Deduplicate profiles to avoid sending multiple requests\n4. Loop through each profile sequentially\n5. Check daily limit—if reached, automatically wait until midnight and resume\n6. Filter out profiles that work at the competitor company\n7. Send personalized connection request with `{firstName}` placeholder support\n8. Log results and increment the daily counter\n9. Wait 3 seconds between requests for safety\n10. Generate a summary report when complete\n\n**The magic:** When you hit your daily limit (default: 8), the workflow calculates seconds until midnight, pauses automatically, then resumes processing the next day. Submit once, let it run for days.\n\n---\n\n## Setup steps\n\n### Step 1: Get Your ConnectSafely.ai API Credentials\n\n**Obtain API Key:**\n\n1. Log into [ConnectSafely.ai Dashboard](https://connectsafely.ai/dashboard)\n2. Click **API Key** in the left side menu\n3. Copy your API key (you'll need this in the next step)\n\n**Add Bearer Auth Credential in n8n:**\n\n1. Go to **Credentials** in n8n\n2. Click **Add Credential → Header Auth**\n3. Set Name: `Authorization`\n4. Set Value: `Bearer YOUR_API_KEY` (replace with your actual key)\n5. Save the credential\n\n---\n\n### Step 2: Configure the Workflow\n\n**2.1 Open the Set Config Node**\n\nCustomize your daily limit and other settings:\n\n| Parameter | Description | Default |\n| --- | --- | --- |\n| dailyLimit | Maximum connection requests per day | `8` |\n\n**Pro Tips:**\n- Start with 5-8 daily requests for new accounts\n- Established accounts can safely use 10-15\n- Never exceed 20 per day to avoid LinkedIn restrictions\n\n**2.2 Update HTTP Request Nodes**\n\nSelect your ConnectSafely.ai Header Auth credential in these nodes:\n- **Get Comments** node\n- **Get Profile** node (inside the loop)\n- **Send Connection** node (inside the loop)\n\n---\n\n### Step 3: Test the Workflow\n\n1. Click **Test Workflow** on the Form Trigger node\n2. Fill in the form:\n   - **Post URL:** Full LinkedIn post URL (e.g., `https://www.linkedin.com/posts/competitor_topic-activity-123456789`)\n   - **Competitor Name:** Company name to filter out (e.g., `Competitor Inc`)\n   - **Connection Message:** Optional personalized message with `{firstName}` placeholder\n3. Monitor the execution:\n   - Verify comments are extracted\n   - Check that competitor employees are filtered\n   - Confirm connection requests are sent\n   - Watch the daily limit counter increment\n\n---\n\n### Step 4: Deploy for Production\n\n1. **Activate the workflow** using the toggle in the top-right\n2. **Access the form** via the production URL shown in the Form Trigger node\n3. **Bookmark the form URL** for easy access\n4. Submit the form and let the workflow run automatically\n\n---\n\n## Customization\n\n### Connection Message Templates\n\n**Sales Outreach:**\n```\nHi {firstName}, noticed your comment on that [industry] post. I'm working on similar challenges at [Your Company]—would love to connect and share insights.\n```\n\n**Recruiting:**\n```\nHi {firstName}, your perspective on [topic] stood out. We're building something exciting at [Company] and I'd love to connect.\n```\n\n**Founder Networking:**\n```\nHey {firstName}, great take on that thread. Always looking to connect with folks thinking deeply about [industry]. Let's stay in touch!\n```\n\n**Minimal (Higher Acceptance):**\n```\nHi {firstName}, enjoyed your comment. Let's connect!\n```\n\n### Adjusting Daily Limits\n\nOpen the **Set Config** node and modify:\n\n```json\n{\n  \"dailyLimit\": 10\n}\n```\n\n**Recommended limits by account age:**\n- New accounts (&lt; 6 months): 5-8 per day\n- Established accounts (6-12 months): 8-12 per day\n- Mature accounts (&gt; 1 year): 10-15 per day\n\n### Extending the Workflow\n\n**Add CRM Integration:** Connect the Summary output to HubSpot, Salesforce, or Pipedrive to automatically create contacts\n\n**Add Slack Notifications:** Insert a Slack node after Summary to get daily reports in your channel\n\n**Chain with Follow-up:** Schedule a separate workflow to send follow-up messages to accepted connections\n\n**Add Lead Scoring:** Insert a Code node to score leads based on headline, company size, or other criteria before sending requests\n\n---\n\n## Output Data Format\n\n**Form Input:**\n```json\n{\n  \"postUrl\": \"https://www.linkedin.com/posts/competitor_topic-activity-123456789\",\n  \"competitorName\": \"Competitor Inc\",\n  \"connectionMessage\": \"Hi {firstName}, let's connect!\"\n}\n```\n\n**Summary Output:**\n```json\n{\n  \"totalProcessed\": 45,\n  \"connectionsSent\": 32,\n  \"skippedCompetitor\": 8,\n  \"skippedOther\": 5,\n  \"dailyLimitReached\": true,\n  \"daysSpanned\": 4\n}\n```\n\n**Individual Result (per profile):**\n```json\n{\n  \"profileId\": \"john-doe-123\",\n  \"name\": \"John Doe\",\n  \"action\": \"sent\",\n  \"timestamp\": \"2025-01-29T14:30:00.000Z\"\n}\n```\n\n---\n\n## Use Cases\n\n**Competitive Lead Capture:** Your competitor posts about a product launch and gets 200 comments. Those commenters are interested in your space—capture them before your competitor does.\n\n**Event Attendee Networking:** Conference speaker posts their slides and gets engagement. Connect with attendees who couldn't make your session.\n\n**Thought Leadership Amplification:** Industry influencer sparks a debate. Everyone commenting is a potential prospect or partner.\n\n**Talent Sourcing:** Competitor announces layoffs and employees comment. Recruit displaced talent automatically.\n\n**Community Building:** Popular post in your niche generates discussion. Build your network with engaged professionals.\n\n**Partner Discovery:** Integration partner's post attracts their customers. Connect with potential mutual customers.\n\n---\n\n## Troubleshooting\n\n### Common Issues & Solutions\n\n**Issue:** \"No comments found\" error\n- **Solution:** Verify the post URL is correct and publicly accessible. Some posts have limited visibility.\n\n**Issue:** Daily limit reached immediately\n- **Solution:** The counter persists in workflow static data. To reset, deactivate and reactivate the workflow, or wait until midnight.\n\n**Issue:** All profiles skipped as \"competitor\"\n- **Solution:** Check the competitor name spelling. The filter uses case-insensitive matching against the headline field.\n\n**Issue:** Connection requests failing\n- **Solution:** Verify your ConnectSafely.ai account has sufficient credits. Check API key permissions in the dashboard.\n\n**Issue:** Workflow stops unexpectedly\n- **Solution:** Check n8n execution timeout settings. For large comment lists, you may need to increase the timeout or use a self-hosted instance.\n\n**Issue:** `{firstName}` not replaced in message\n- **Solution:** Ensure you're using the exact placeholder `{firstName}` (case-sensitive). The workflow replaces this with the actual first name.\n\n**Issue:** Rate limit errors from API\n- **Solution:** The 3-second delay between requests should prevent this. If it occurs, increase the Wait node duration.\n\n---\n\n## Important Notes\n\n**Daily Limit Behavior:**\n- Counter resets at midnight (server timezone)\n- Workflow automatically calculates wait time and resumes\n- A single form submission can span multiple days\n- Check execution logs to monitor progress\n\n**Compliance Considerations:**\n- This workflow uses ConnectSafely.ai's compliant API\n- No browser automation or cookie hijacking\n- Respects LinkedIn's rate limits by design\n- Always use genuine, personalized messages\n\n**Best Practices:**\n- Target posts with 20-100 comments for best results\n- Avoid viral posts with 500+ comments (diminishing returns)\n- Personalize your message for higher acceptance rates\n- Monitor your LinkedIn SSI score for account health\n\n---\n\n## Documentation & Resources\n\n### Official Documentation\n\n- **ConnectSafely.ai Docs:** https://connectsafely.ai/docs\n- **API Reference:** Available in ConnectSafely.ai dashboard\n- **n8n HTTP Request Node:** https://docs.n8n.io/nodes/n8n-nodes-base.httpRequest\n- **n8n Loop Node:** https://docs.n8n.io/nodes/n8n-nodes-base.splitInBatches\n\n### Support Channels\n\n- **Email Support:** support@connectsafely.ai\n- **Documentation:** https://connectsafely.ai/docs\n- **Custom Workflows:** Contact us for custom automation development\n\n---\n\n## Connect With Us\n\nStay updated with the latest automation tips, LinkedIn strategies, and platform updates:\n\n- **LinkedIn:** [linkedin.com/company/connectsafelyai](https://linkedin.com/company/connectsafelyai)\n- **YouTube:** [youtube.com/@ConnectSafelyAI-v2x](https://youtube.com/@ConnectSafelyAI-v2x)\n- **Instagram:** [instagram.com/connectsafely.ai](https://instagram.com/connectsafely.ai)\n- **Facebook:** [facebook.com/connectsafelyai](https://www.facebook.com/people/ConnectSafelyAI/61582550884724/)\n- **X (Twitter):** [x.com/AiConnectsafely](https://x.com/AiConnectsafely)\n- **Bluesky:** [connectsafelyai.bsky.social](https://connectsafelyai.bsky.social)\n- **Mastodon:** [mastodon.social/@connectsafely](https://mastodon.social/@connectsafely)\n\n---\n\n## Need Custom Workflows?\n\nLooking to build sophisticated LinkedIn automation workflows tailored to your business needs?\n\n**Contact our team** for custom automation development, strategy consulting, and enterprise solutions.\n\nWe specialize in:\n\n- Multi-channel prospecting workflows\n- AI-powered lead scoring and qualification\n- CRM integration and data synchronization\n- Competitor monitoring and intelligence\n- Bulk outreach automation with personalization\n- Custom daily limit and scheduling logic","workflow":{"name":"Competitor Poach - Auto Daily Limit","nodes":[{"id":"trigger","name":"Form Trigger","type":"n8n-nodes-base.formTrigger","position":[368,-96],"webhookId":"9347ebb6-33c7-4653-8bd8-a633be91a996","parameters":{"options":{},"formTitle":"Competitor Post Scraper","formFields":{"values":[{"fieldLabel":"LinkedIn Post URL","placeholder":"https://www.linkedin.com/feed/update/...","requiredField":true},{"fieldLabel":"Competitor Name","placeholder":"e.g., Salesforce","requiredField":true},{"fieldType":"dropdown","fieldLabel":"Send Message?","fieldOptions":{"values":[{"option":"Yes"},{"option":"No"}]},"requiredField":true},{"fieldType":"textarea","fieldLabel":"Message Template","placeholder":"Hi {firstName}, saw your comment. Would love to connect!"}]},"formDescription":"Scrape competitor post and auto-send connections (max 8/day, auto-continues next day)"},"typeVersion":2.2},{"id":"set-config","name":"Set Config","type":"n8n-nodes-base.set","position":[592,-96],"parameters":{"options":{},"assignments":{"assignments":[{"id":"daily-limit","name":"dailyLimit","type":"number","value":10},{"id":"post-url","name":"postUrl","type":"string","value":"={{ $json['LinkedIn Post URL'] }}"},{"id":"competitor","name":"competitor","type":"string","value":"={{ $json['Competitor Name'].toLowerCase() }}"},{"id":"send-msg","name":"sendMessage","type":"boolean","value":"={{ $json['Send Message?'] === 'Yes' }}"},{"id":"template","name":"template","type":"string","value":"={{ $json['Message Template'] || 'Hi {firstName}, saw your comment. Would love to connect!' }}"}]}},"typeVersion":3.4},{"id":"get-comments","name":"Get Comments","type":"n8n-nodes-base.httpRequest","position":[816,-96],"parameters":{"url":"https://api.connectsafely.ai/linkedin/posts/comments/all","method":"POST","options":{},"jsonBody":"={{ JSON.stringify({ postUrl: $json.postUrl, maxComments: 500 }) }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpBearerAuth"},"credentials":{"httpBearerAuth":{"id":"kLeBNWzpktJl3IZ7","name":"Anandi API Key"},"httpHeaderAuth":{"id":"0mnpo4vqBWfDkxZD","name":"Header Auth account"}},"typeVersion":4.2},{"id":"extract-profiles","name":"Extract Profiles","type":"n8n-nodes-base.code","position":[1040,-96],"parameters":{"jsCode":"const config = $('Set Config').first().json;\nconst response = $input.first().json;\n\n// Handle array wrapper - API returns [{success, comments, ...}]\nconst comments = Array.isArray(response) ? response[0]?.comments : response.comments;\n\nif (!comments || comments.length === 0) {\n  return [{ json: { error: 'No comments found', profiles: [] } }];\n}\n\n// Deduplicate by profileUrl\nconst seen = new Set();\nconst profiles = [];\n\nfor (const c of comments) {\n  if (c.profileUrl && !seen.has(c.profileUrl)) {\n    seen.add(c.profileUrl);\n    profiles.push({\n      profileId: c.publicIdentifier,\n      name: c.authorName || '',\n      profileUrl: c.profileUrl,\n      competitor: config.competitor,\n      sendMessage: config.sendMessage,\n      template: config.template,\n      dailyLimit: config.dailyLimit\n    });\n  }\n}\n\nreturn profiles.map(p => ({ json: p }));"},"typeVersion":2},{"id":"loop","name":"Loop","type":"n8n-nodes-base.splitInBatches","position":[1264,-96],"parameters":{"options":{}},"typeVersion":3},{"id":"check-limit","name":"Check Limit","type":"n8n-nodes-base.code","position":[1504,-96],"parameters":{"jsCode":"const item = $input.first().json;\nconst staticData = $getWorkflowStaticData('global');\nconst today = new Date().toISOString().split('T')[0];\nconst DAILY_LIMIT = item.dailyLimit || 8;\n\n// Reset if new day\nif (staticData.date !== today) {\n  staticData.date = today;\n  staticData.count = 0;\n}\n\nconst count = staticData.count || 0;\nconst limitReached = count >= DAILY_LIMIT;\n\nreturn [{ json: { ...item, limitReached, sentToday: count, dailyLimit: DAILY_LIMIT } }];"},"typeVersion":2},{"id":"if-limit","name":"Limit Reached?","type":"n8n-nodes-base.if","position":[1712,-96],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"check","operator":{"type":"boolean","operation":"equals"},"leftValue":"={{ $json.limitReached }}","rightValue":true}]}},"typeVersion":2},{"id":"wait-tomorrow","name":"Wait Until Tomorrow","type":"n8n-nodes-base.code","position":[1936,-176],"parameters":{"jsCode":"// Calculate seconds until midnight\nconst now = new Date();\nconst tomorrow = new Date(now);\ntomorrow.setDate(tomorrow.getDate() + 1);\ntomorrow.setHours(0, 0, 5, 0); // 12:00:05 AM\n\nconst secondsUntilTomorrow = Math.ceil((tomorrow - now) / 1000);\n\n// Reset counter for new day\nconst staticData = $getWorkflowStaticData('global');\nconst newDate = tomorrow.toISOString().split('T')[0];\nstaticData.date = newDate;\nstaticData.count = 0;\n\nreturn [{ json: { ...$input.first().json, waitSeconds: secondsUntilTomorrow, resumeAt: tomorrow.toISOString(), limitReached: false, sentToday: 0 } }];"},"typeVersion":2},{"id":"wait-node","name":"Wait","type":"n8n-nodes-base.wait","position":[2160,-176],"webhookId":"89744166-74fb-40c6-9d7a-07bbca0e8efd","parameters":{"amount":"={{ $json.waitSeconds }}"},"typeVersion":1.1},{"id":"get-profile","name":"Get Profile","type":"n8n-nodes-base.httpRequest","position":[2336,-32],"parameters":{"url":"https://api.connectsafely.ai/linkedin/profile","method":"POST","options":{},"jsonBody":"={{ JSON.stringify({ profileId: $json.profileId }) }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpBearerAuth"},"credentials":{"httpBearerAuth":{"id":"kLeBNWzpktJl3IZ7","name":"Anandi API Key"},"httpHeaderAuth":{"id":"0mnpo4vqBWfDkxZD","name":"Header Auth account"}},"typeVersion":4.2},{"id":"prepare-send","name":"Prepare & Filter","type":"n8n-nodes-base.code","position":[1408,304],"parameters":{"jsCode":"const profile = $input.first().json;\nconst item = $('Loop').first().json;\n\n// Skip if competitor employee\nconst company = (profile.currentCompany || profile.headline || '').toLowerCase();\nif (company.includes(item.competitor)) {\n  return [{ json: { skip: true, reason: 'competitor_employee', profileId: item.profileId, name: item.name } }];\n}\n\n// Build message if enabled\nlet message = null;\nif (item.sendMessage && item.template) {\n  const firstName = profile.firstName || item.name?.split(' ')[0] || 'there';\n  message = item.template.replace('{firstName}', firstName);\n  if (message.length > 300) message = message.slice(0, 297) + '...';\n}\n\nreturn [{ json: { skip: false, profileId: item.profileId, name: item.name, firstName: profile.firstName, message } }];"},"typeVersion":2},{"id":"if-skip","name":"Should Send?","type":"n8n-nodes-base.if","position":[1664,304],"parameters":{"options":{},"conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"not-skip","operator":{"type":"boolean","operation":"equals"},"leftValue":"={{ $json.skip }}","rightValue":false}]}},"typeVersion":2},{"id":"send-connection","name":"Send Connection","type":"n8n-nodes-base.httpRequest","position":[1952,208],"parameters":{"url":"https://api.connectsafely.ai/linkedin/connect","method":"POST","options":{},"jsonBody":"={{ (() => { const b = {profileId: $json.profileId}; if($json.message) b.customMessage = $json.message; return JSON.stringify(b); })() }}","sendBody":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpBearerAuth"},"credentials":{"httpBearerAuth":{"id":"kLeBNWzpktJl3IZ7","name":"Anandi API Key"},"httpHeaderAuth":{"id":"0mnpo4vqBWfDkxZD","name":"Header Auth account"}},"typeVersion":4.2},{"id":"log-increment","name":"Log & Increment","type":"n8n-nodes-base.code","position":[2160,208],"parameters":{"jsCode":"const res = $input.first().json;\nconst item = $('Loop').first().json;\nconst sent = res.success === true;\n\n// Increment daily counter if sent successfully\nif (sent) {\n  const staticData = $getWorkflowStaticData('global');\n  staticData.count = (staticData.count || 0) + 1;\n}\n\nreturn [{ json: { profileId: item.profileId, name: item.name, sent, error: res.error || null } }];"},"typeVersion":2},{"id":"wait-3s","name":"Wait 3s","type":"n8n-nodes-base.wait","position":[2320,400],"webhookId":"40ca502f-2dee-4f2a-8e0a-b8f59fe3ded3","parameters":{"amount":3},"typeVersion":1.1},{"id":"aggregate","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[1952,-448],"parameters":{"options":{},"aggregate":"aggregateAllItemData","destinationFieldName":"results"},"typeVersion":1},{"id":"summary","name":"Summary","type":"n8n-nodes-base.code","position":[2224,-448],"parameters":{"jsCode":"const results = $input.first().json.results || [];\nconst sent = results.filter(r => r.sent).length;\nconst skipped = results.filter(r => r.skip).length;\nconst staticData = $getWorkflowStaticData('global');\n\nreturn [{ json: {\n  status: 'completed',\n  total: results.length,\n  sent,\n  skipped,\n  failed: results.length - sent - skipped,\n  dailyCountNow: staticData.count || 0,\n  results\n} }];"},"typeVersion":2},{"id":"sticky-overview","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-336,-464],"parameters":{"width":594,"height":854,"content":"## Competitor Poach - Auto Daily Limit\n\nAutomatically scrape LinkedIn post commenters and send connection requests with built-in daily limits and auto-scheduling.\n\n### Who is this for?\n- Sales teams targeting competitor audiences\n- Recruiters finding engaged professionals\n- Marketers building targeted networks\n\n### How it works\n1. Submit a LinkedIn post URL via the form\n2. Extracts all commenters (up to 500)\n3. Loops through each profile one-by-one\n4. Checks daily limit before each send\n5. If limit reached → waits until midnight → resumes\n6. Filters out competitor employees\n7. Sends personalized connection requests\n8. Returns summary when complete\n\n### Setup steps\n1. Add ConnectSafely.ai API credentials (Header Auth)\n2. Configure `dailyLimit` in Set Config node (default: 8)\n\n### Customization\n- Change `dailyLimit` in Set Config node\n- Modify message template in the form\n- Adjust `Wait 3s` for different rate limiting\n\n### Requirements\n- ConnectSafely.ai account with API access\n- n8n credentials: Header Auth type"},"typeVersion":1},{"id":"sticky-section1","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[304,-192],"parameters":{"color":5,"width":702,"height":262,"content":"## 1. Setup & Data Collection"},"typeVersion":1},{"id":"sticky-section2","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1168,-240],"parameters":{"color":7,"width":1358,"height":876,"content":"## 2. Processing Loop with Daily Limit"},"typeVersion":1},{"id":"sticky-section3","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1856,-560],"parameters":{"color":4,"width":650,"height":278,"content":"## 3. Results & Response"},"typeVersion":1}],"connections":{"Loop":{"main":[[{"node":"Aggregate","type":"main","index":0}],[{"node":"Check Limit","type":"main","index":0}]]},"Wait":{"main":[[{"node":"Get Profile","type":"main","index":0}]]},"Summary":{"main":[[]]},"Wait 3s":{"main":[[{"node":"Loop","type":"main","index":0}]]},"Aggregate":{"main":[[{"node":"Summary","type":"main","index":0}]]},"Set Config":{"main":[[{"node":"Get Comments","type":"main","index":0}]]},"Check Limit":{"main":[[{"node":"Limit Reached?","type":"main","index":0}]]},"Get Profile":{"main":[[{"node":"Prepare & Filter","type":"main","index":0}]]},"Form Trigger":{"main":[[{"node":"Set Config","type":"main","index":0}]]},"Get Comments":{"main":[[{"node":"Extract Profiles","type":"main","index":0}]]},"Should Send?":{"main":[[{"node":"Send Connection","type":"main","index":0}],[{"node":"Wait 3s","type":"main","index":0}]]},"Limit Reached?":{"main":[[{"node":"Wait Until Tomorrow","type":"main","index":0}],[{"node":"Get Profile","type":"main","index":0}]]},"Log & Increment":{"main":[[{"node":"Wait 3s","type":"main","index":0}]]},"Send Connection":{"main":[[{"node":"Log & Increment","type":"main","index":0}]]},"Extract Profiles":{"main":[[{"node":"Loop","type":"main","index":0}]]},"Prepare & Filter":{"main":[[{"node":"Should Send?","type":"main","index":0}]]},"Wait Until Tomorrow":{"main":[[{"node":"Wait","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":21,"nodeTypes":{"n8n-nodes-base.if":{"count":2},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":6},"n8n-nodes-base.wait":{"count":2},"n8n-nodes-base.aggregate":{"count":1},"n8n-nodes-base.stickyNote":{"count":4},"n8n-nodes-base.formTrigger":{"count":1},"n8n-nodes-base.httpRequest":{"count":3},"n8n-nodes-base.splitInBatches":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"ConnectSafely","username":"connectsafely","bio":"Automate strategic engagement to attract prospects instead of cold messaging them. Follow relevant profiles, engage with their content, build visibility—turn LinkedIn into an inbound lead generation system that works 24/7.","verified":true,"links":["https://connectsafely.ai"],"avatar":"https://gravatar.com/avatar/3bdae46e563450414605a52c184cf6bcd9f9b550082db7fd6ecc3a62b99f6458?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":1225,"icon":"file:form.svg","name":"n8n-nodes-base.formTrigger","codex":{"data":{"alias":["table","submit","post"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.formtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"On form submission"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NiIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iIzAwQjdCQyIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzQuOTc4IDM3LjczMmExLjU2IDEuNTYgMCAwIDEtMS41NjIgMS41NjNINi4yNmExLjU2IDEuNTYgMCAwIDEtMS41NjMtMS41NjNWOS42MDdjMC0uNDA1LjE1Ny0uNzk0LjQzOC0xLjA4Nmw2LjMwNC02LjUzMXY1LjM0NEg4LjIxM2ExLjE3MiAxLjE3MiAwIDEgMCAwIDIuMzQzaDQuNDNhMS4xNyAxLjE3IDAgMCAwIDEuMTcxLTEuMTcxVi4yMzJoMTkuNjAyYTEuNTYgMS41NiAwIDAgMSAxLjU2MiAxLjU2M3YxMC4zMjdsLTIuODYgMi44Ni04LjI1MiA4LjI3NmE0MTMuMDA2IDQxMy4wMDYgMCAwIDEtMS42NTQgMS42NjJsLS4zMzcuMzM3YTIgMiAwIDAgMC0uNTU3IDEuMDhMMjAuMyAzMS45MjJjLS4xMDguNjM4LS4yMTUgMS4wNzkuMjExIDEuNDE4LjQwMy4zMi45LjE3NCAxLjU0LjA2Nmw1LjQwOC0uOTI4YTIgMiAwIDAgMCAxLjA4LS41NTZsNi40NC02LjQyOXptLTI0LjAzLTIxLjI2NWExLjE4IDEuMTggMCAwIDAgMS4xNzEgMS4xNzJoMTMuMTYzYTEuMTcyIDEuMTcyIDAgMSAwIDAtMi4zNDRIMTIuMTE5YTEuMTcgMS4xNyAwIDAgMC0xLjE3MiAxLjE3Mm03LjI5NCAxNC43NjZhMS4xNyAxLjE3IDAgMCAwLTEuMTcyLTEuMTcySDEyLjEyYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNC45NTFhMS4xNyAxLjE3IDAgMCAwIDEuMTcyLTEuMTcybS44Ni03LjM5MWExLjE3IDEuMTcgMCAwIDAtMS4xNzItMS4xNzJoLTUuODExYTEuMTcyIDEuMTcyIDAgMSAwIDAgMi4zNDNoNS44MWExLjE2NCAxLjE2NCAwIDAgMCAxLjE3My0xLjE3MSIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iIzAwQjdCQyIgZD0ibTMzLjUzMiAxNi4zOTcgNC4yODktNC4yODkgMy43NTggMy43MSAxLjYxNy0xLjYxNiAyLjI1OCAyLjI1N2MuMjE4LjIxOC4zNC41MTMuMzQzLjgyLS4wMDIuMzExLS4xMjUuNjA4LS4zNDQuODNsLTYuODA0IDYuNzk2YTEuMTMgMS4xMyAwIDAgMS0uODI4LjM0MyAxLjE1IDEuMTUgMCAwIDEtLjgyOC0uMzQzIDEuMTggMS4xOCAwIDAgMSAwLTEuNjU3bDUuOTc2LTUuOTY4LTEuMzEyLTEuMzEzLTEuMzgzIDEuNDE0LTEzLjE0OSAxMy4xMjUtNC42MTcuNzgyLjc4Mi00LjYxNy4zMzYtLjMzNyAyLjU2MiAyLjU1NWExLjEgMS4xIDAgMCAwIC44MjguMzQ0Yy4zMTIuMDA1LjYxMi0uMTIuODI4LS4zNDRhMS4xOCAxLjE4IDAgMCAwIDAtMS42NTZsLTIuNTYyLTIuNTYyek00NC43MzYgMTIuMjRjMCAuNDE0LS4xNjMuODEtLjQ1NCAxLjEwMmwtLjkyMi45MTQtMy44NTItMy44MjguOTMtLjkzYTEuNTYzIDEuNTYzIDAgMCAxIDIuMjAzIDBsMS42NCAxLjY0MWMuMjkxLjI5My40NTUuNjkuNDU1IDEuMTAyIi8+PC9zdmc+"},"displayName":"n8n Form Trigger","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1236,"icon":"file:aggregate.svg","name":"n8n-nodes-base.aggregate","codex":{"data":{"alias":["Aggregate","Combine","Flatten","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.aggregate/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Aggregate"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjRkY2RDVBIiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDE0OGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE0NmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJINDRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNDZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDQ0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTQ2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg0NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik03NCA3NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExNi4yMTdjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjU2YzAgMjYuOTc4IDEwLjI3MiA1MS41NTcgMjcuMTE5IDcwLjAzOSA1LjA1NSA1LjU0NSA1LjA1NSAxNC4zNzcgMCAxOS45MjItMTYuODQ3IDE4LjQ4Mi0yNy4xMTkgNDMuMDYxLTI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMySDg2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTE2LjIxN2M0NC4xODMgMCA4MC0zNS44MTcgODAtODB2LTU2YzAtMzAuOTI4IDI1LjA3Mi01NiA1Ni01NmE1Ljc4MyA1Ljc4MyAwIDAgMCA1Ljc4My01Ljc4M3YtMzYuNDM0YTUuNzgzIDUuNzgzIDAgMCAwLTUuNzgzLTUuNzgzYy0zMC45MjggMC01Ni0yNS4wNzItNTYtNTZ2LTU2YzAtNDQuMTgzLTM1LjgxNy04MC04MC04MEg4NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNzYgMjQ0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUxMnY1MTJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="},"displayName":"Aggregate","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":37,"name":"Lead Generation"}],"image":[]}}