{"workflow":{"id":12820,"name":"Capture, qualify, and route real estate leads with WhatsApp, Typeform, Airtable, Slack, Gmail, and GPT-4.1-mini","views":706,"recentViews":2,"totalViews":706,"createdAt":"2026-01-19T14:52:05.610Z","description":"## 📌 Overview\nThis n8n-powered workflow automates the **entire lifecycle of real estate lead intake, qualification, routing, assignment, and reporting** across multiple channels.\nIt brings WhatsApp inquiries and website form submissions into a **single intelligent system**, where leads are processed conversationally using AI, deduplicated, normalized, assigned fairly to agents, logged into a centralized CRM, and reported on weekly.\nDesigned specifically for **real estate agencies, brokerages, and property teams**, this system replaces manual follow-ups, spreadsheet chaos, and uneven agent assignments with a **scalable, modular automation** that can grow to include Facebook Lead Ads and Google Lead Forms without breaking downstream logic.\n\n\n\n## 🧠 What It Does\nThis workflow automates the full real estate lead pipeline. It:\n- Collects inbound leads from WhatsApp and website forms.\n- Uses AI to extract, validate, and structure lead information.\n- Normalizes all leads into a consistent schema across sources.\n- Detects and prevents duplicate leads (both within-run and CRM-level).\n- Routes leads intelligently based on property interest.\n- Assigns leads fairly using round-robin agent logic.\n- Stores all leads and assignments in a centralized CRM.\n- Sends automated notifications to agents and internal teams.\n- Generates weekly lead, duplicate, and assignment reports.\n- Is designed to be easily extended to Facebook Lead Ads and Google Lead Forms.\n\n\n\n## 💡 Why This Workflow\nReal estate teams don’t struggle with demand — they struggle with **lead management**.\n\nThis workflow was built to solve common real estate problems:\n- Leads lost in WhatsApp chats\n- Duplicate inquiries wasting agent time\n- Uneven lead distribution across agents\n- Manual CRM updates\n- No visibility into weekly lead performance\n\nInstead of patching tools together, this workflow provides a **single automated system** that is reliable, extensible, and client-ready.\n\n\n\n\n## 👤 Who It’s For\nThis workflow is ideal for:\n- Real estate agencies managing high WhatsApp and form lead inquiry volume\n- Brokerages with multiple agents needing fair lead assignment\n- Property developers handling inbound marketing leads\n- Real estate lead generation teams\n- Automation freelancers building reusable real estate systems\n\n\n\n## ⚙️ How It Works\n### 🧩 1. Lead Intake Workflow\n#### 🎯 Purpose\nCollect inbound leads from multiple channels and normalize them into a unified structure.\n#### 🛠 How It Works\n##### 1. WhatsApp & Website Triggers\nLeads enter the system via:\n- WhatsApp messages\n- Website inquiry forms\n##### 2. Lead Normalization\nRegardless of source, all leads are transformed into a common structure:\n` First name, Last name, Phone number, Email, What is your budget range?, and others`\n\nThis ensures new channels (Facebook Lead Ads, Google Lead Forms) can be added later without changing core logic.\n\n\n\n### 🧩 2. AI Lead Processing Workflow\n#### 🎯 Purpose\nConvert unstructured messages into clean, usable lead data.\n#### 🛠 How It Works\n##### 1. AI Conversation Handling\nAn AI agent processes inbound messages to:\n- Extract missing details\n- Validate lead intent\n- Standardize property interest categories\n##### 2. Data Validation\nEnsures required fields exist before moving forward.\n\n\n### 🧩 3. Deduplication Workflow\n#### 🎯 Purpose\nPrevent duplicate leads from entering the system or being reassigned.\n#### 🛠 How It Works\n##### 1. In-Execution Duplicate Check\nPrevents the same lead from being processed twice in a single run.\n##### 2. CRM-Level Duplicate Detection\nChecks existing records using:\n- Phone number\n- Email\n\nDuplicate leads are flagged and excluded from reassignment while still logged for reporting.\n\n\n### 🧩 4. Lead Routing & Agent Assignment Workflow\n#### 🎯 Purpose\nAssign leads fairly and intelligently to agents.\n#### 🛠 How It Works\n##### 1. Property-Based Routing\nLeads are routed based on property type (e.g. Single-Family, Multi-Family, Condo).\n##### 2. Round-Robin Assignment\nAgents are rotated automatically to ensure:\n- Fair distribution\n- No manual favoritism\n- Predictable assignment logic\n\n\n\n### 🧩 5. CRM Storage & Notifications Workflow\n#### 🎯 Purpose\nKeep all lead data centralized and notify the right people instantly.\n#### 🛠 How It Works\n##### 1. CRM Logging (Airtable)\nStores:\n- **Lead details**\n- Assigned agent\n- Source\n- Deduplicates (Separate table)\n- Timestamps\n##### 2. Automated Notifications\nSends alerts via:\n- Email\n- Slack\nSo agents can respond immediately.\n\n\n\n### 🧩 6. Weekly Reporting Workflow\n#### 🎯 Purpose\nProvide visibility into lead performance and system health.\n#### 🛠 How It Works\n- Runs on a weekly schedule\n- Generates summaries for:\n   - Total leads\n   - Duplicate leads\n   - Agent assignments\n- Can be separated into its own workflow for scalability and reuse.\n\n\n\n## 🛠 How to Set It Up\n\nImport the .json file into your n8n instance.\n\n### Connect the required credentials:\n- WhatsApp Trigger  (**Auth Connection**)\n- WhatsApp Business Cloud (**Access Token**)\n- OpenAI API Key\n- Airtable API Key (Access Token)\n- Gmail\n- Slack API Key (Access Token)\n\n### Configure your data sources:\n- Update the Airtable base and table names to match your CRM structure\n   - **Real Estate Qualifier** column names:\n      `First name | Last name | Phone number | Email | Location | Property Type | Timeframe | Payment Source | Pre Approved | Has Agent (Yes, No) | Lead (New, Contacted, Follow-up, Converted, Couldn't Convert) | Source | Assigned Agent | Assigned Time | Qualified (Yes, No) | Transcript | Summary`\n   - **Real Estate Qualifier Duplicate** column names:\n      `First name | Last name | Phone number | Email | Location | Property Type | Timeframe | Payment Source | Pre Approved | Has Agent (Yes, No) | Source`\n\n### Customize business logic:\n- Update agent pools and routing rules\n- Adjust AI prompts if needed\n- Review deduplication and reporting settings\n\n### Activate the workflow:\n- Click **Publish** to activate the workflow\n- Send a test lead via WhatsApp or website form to confirm everything works\n\n\n\n\n## 🎨 Customization Tips\n- **Add More Channels**: Plug in Facebook Lead Ads or Google Lead Forms — no restructuring needed.\n- **Routing Logic**: Customize routing by location, budget, or property category.\n- **CRM Expansion**: Add more fields (Notes, Follow-Up Status, Deal Stage).\n- **Reporting**: Extend weekly reports or connect to BI tools.\n- **Ads Integration**: Leads can optionally be passed into Facebook or Google Ads workflows after normalization.\n\n\n\n## 📬 Contact\n#### For Enquiries: buzanalytics@gmail.com\nThank you for exploring this workflow!\n","workflow":{"id":"mGR2MeapjAda5oGFf0A-S","meta":{"instanceId":"da6906a80365ceb3fb2764cda88e599b47dbd0d010c546339d8dfc318a329aaa","templateCredsSetupCompleted":true},"name":"Automate real estate lead capture, smart routing, and reporting using n8n","tags":[{"id":"s9fvJ4dcQhStsrSi","name":"Real Estate","createdAt":"2026-01-26T11:32:35.060Z","updatedAt":"2026-01-26T11:32:35.060Z"},{"id":"viwlOeYf5G0hr2UB","name":"Airtable","createdAt":"2026-01-26T11:32:35.001Z","updatedAt":"2026-01-26T11:32:35.001Z"}],"nodes":[{"id":"b4075f28-c730-4a73-abda-0ca8c401ccf4","name":"Combine All Lead Sources","type":"n8n-nodes-base.merge","position":[1184,1376],"parameters":{},"typeVersion":3.2},{"id":"1d5d54af-9434-485f-9511-1ab38c99f02f","name":"Check for Duplicates in CRM","type":"n8n-nodes-base.compareDatasets","position":[1856,1344],"parameters":{"options":{},"mergeByFields":{"values":[{"field1":"Email","field2":"Email"}]}},"typeVersion":2.3},{"id":"521165ee-988b-4c5e-a156-0e7a4ce2d22b","name":"Remove Duplicate Leads","type":"n8n-nodes-base.removeDuplicates","position":[1408,1376],"parameters":{"compare":"selectedFields","options":{},"fieldsToCompare":"Email, Phone number"},"typeVersion":2},{"id":"5e2be9bd-30d3-4f77-9584-abd223ccb0f4","name":"Weekly Report Schedule","type":"n8n-nodes-base.scheduleTrigger","position":[480,2384],"parameters":{"rule":{"interval":[{"field":"weeks","triggerAtDay":[1],"triggerAtHour":9}]}},"typeVersion":1.3},{"id":"64b54ec9-b55d-47cb-baf6-9a4a8fa01066","name":"Aggregate Report Data","type":"n8n-nodes-base.aggregate","position":[1216,2224],"parameters":{"options":{},"fieldsToAggregate":{"fieldToAggregate":[{"renameField":true,"outputFieldName":"total_leads","fieldToAggregate":"id"},{"renameField":true,"outputFieldName":"leads_by_source","fieldToAggregate":"Source"},{"renameField":true,"outputFieldName":"leads_by_status","fieldToAggregate":"Lead Status"},{"renameField":true,"outputFieldName":"leads_qualified?","fieldToAggregate":"Qualified"}]}},"typeVersion":1},{"id":"0fd5f029-5589-4a1f-8523-e5c9d766f096","name":"Format Weekly Report","type":"n8n-nodes-base.set","position":[1744,2336],"parameters":{"options":{},"assignments":{"assignments":[{"id":"id-1","name":"report_title","type":"string","value":"Weekly Lead Report"},{"id":"id-2","name":"report_period","type":"string","value":"={{ $now.minus({days: 7}).toFormat('MMM dd') + ' - ' + $now.toFormat('MMM dd, yyyy') }}"},{"id":"id-3","name":"total_leads","type":"number","value":"={{ $json.total_leads.length }}"},{"id":"id-4","name":"website_form_leads_source","type":"string","value":"={{ $json.leads_by_source.filter(status => status === 'Website Form').length }}"},{"id":"bfc1006a-58a5-4e36-9e67-2307abe72ed6","name":"facebook_ads_leads_source","type":"string","value":"={{ $json.leads_by_source.filter(status => status === 'WhatsApp Form').length }}"},{"id":"id-5","name":"leads_contacted","type":"number","value":"={{ $json.leads_by_status.filter(status => status && status !== 'New').length }}\n"},{"id":"id-6","name":"leads_not_contacted","type":"number","value":"={{ $json.leads_by_status.filter(status => !status || status === 'New').length }}\n"},{"id":"id-7","name":"total_duplicates_leads","type":"number","value":"={{ $json.count }}"},{"id":"id-8","name":"contact_rate","type":"string","value":"={{ \n(() => {\n  const contacted = $json.leads_by_status.filter(s => s === 'Contacted').length;\n  const total = $json.total_leads.length;\n  const value = (contacted / total) * 100;\n\n  return Number.isFinite(value)\n    ? value.toFixed(1) + '%'\n    : '';\n})()\n}}\n"}]}},"typeVersion":3.4},{"id":"e18393cf-a30d-4844-bc95-bc65d5e83f37","name":"Send Weekly Report","type":"n8n-nodes-base.gmail","position":[1984,2336],"webhookId":"2f95f92f-76d3-4691-9e37-3f49997e8b7d","parameters":{"sendTo":"user@example.com","message":"=<html>\n<head>\n  <style>\n    body { font-family: Arial, sans-serif; color: #333; }\n    h1 { color: #2c3e50; }\n    .metric { background: #f8f9fa; padding: 15px; margin: 10px 0; border-left: 4px solid #3498db; }\n    .metric-title { font-weight: bold; color: #2c3e50; }\n    .metric-value { font-size: 24px; color: #3498db; margin: 5px 0; }\n    table { width: 100%; border-collapse: collapse; margin: 20px 0; }\n    th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }\n    th { background-color: #3498db; color: white; }\n    tr:hover { background-color: #f5f5f5; }\n  </style>\n</head>\n<body>\n  <h1>Weekly Lead Report</h1>\n  <p><strong>Period:</strong> {{ $json.report_period }}</p>\n  \n  <div class=\"metric\">\n    <div class=\"metric-title\">Total Leads</div>\n    <div class=\"metric-value\">{{ $json.total_leads }}</div>\n  </div>\n  \n  <div class=\"metric\">\n    <div class=\"metric-title\">Duplicates Detected</div>\n    <div class=\"metric-value\">{{ $json.total_duplicates_leads }}</div>\n  </div>\n  \n  <div class=\"metric\">\n    <div class=\"metric-title\">Contact Rate</div>\n    <div class=\"metric-value\">{{ $json.contact_rate }}</div>\n  </div>\n  \n  <h2>Leads by Source</h2>\n  <table>\n    <tr>\n      <th>Source</th>\n      <th>Count</th>\n    </tr>\n    <tr>\n      <td>Website Forms</td>\n      <td>{{ $json.website_form_leads_source }}</td>\n    </tr>\n    <tr>\n      <td>Facebook Ads</td>\n      <td>{{ $json.facebook_ads_leads_source }}</td>\n    </tr>\n  \n  <h2>Contact Status</h2>\n  <table>\n    <tr>\n      <th>Status</th>\n      <th>Count</th>\n    </tr>\n    <tr>\n      <td>Contacted</td>\n      <td>{{ $json.leads_contacted }}</td>\n    </tr>\n    <tr>\n      <td>Not Contacted</td>\n      <td>{{ $json.leads_not_contacted }}</td>\n    </tr>\n  </table>\n</body>\n</html>","options":{"appendAttribution":false},"subject":"={{ 'Weekly Lead Report: ' + $json.report_period }}"},"credentials":{"gmailOAuth2":{"id":"credential-id","name":"Gmail account"}},"typeVersion":2.2},{"id":"91738356-a921-47e7-90a0-96bdb6cb9232","name":"Typeform Trigger","type":"n8n-nodes-base.typeformTrigger","position":[112,1632],"webhookId":"c1d6ba61-a59b-4f88-8f80-70d7ac93de5d","parameters":{"formId":"QPCD9YG4"},"credentials":{"typeformApi":{"id":"credential-id","name":"Typeform account"}},"typeVersion":1.1},{"id":"c35fd8b6-15b5-43de-8ed5-22f78dc6343f","name":"WhatsApp Trigger","type":"n8n-nodes-base.whatsAppTrigger","position":[0,144],"webhookId":"09038241-a801-4a3b-97e8-3d0d758f77b5","parameters":{"options":{},"updates":["messages"]},"credentials":{"whatsAppTriggerApi":{"id":"credential-id","name":"WhatsApp OAuth account"}},"typeVersion":1},{"id":"c1366bee-f0ec-429f-829c-4b2086d36cd2","name":"Route by Location/Property Type1","type":"n8n-nodes-base.switch","position":[2080,1184],"parameters":{"rules":{"values":[{"outputKey":"Single-Family","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"1a78f7da-a53a-4816-bc37-1cb6795a15d2","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json['What type of property are you interested in?'].toLowerCase() }}","rightValue":"single-family"}]},"renameOutput":true},{"outputKey":"Multi-Family","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"0b19ddfc-d1ec-4c07-894c-5e702051a7f3","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json['What type of property are you interested in?'].toLowerCase() }}","rightValue":"multi-family"}]},"renameOutput":true},{"outputKey":"Condo","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e6e46194-9fac-40a2-8a97-bfdef76cb6c3","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json['What type of property are you interested in?'].toLowerCase() }}","rightValue":"condo"}]},"renameOutput":true},{"outputKey":"Investment-Property","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"afc8bb08-1b73-4c2c-88f6-7322287d44b6","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json['What type of property are you interested in?'].toLowerCase() }}","rightValue":"investment property"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3.4},{"id":"45702fe8-c152-49e2-b035-f8ea0d1f68c3","name":"Send a message","type":"n8n-nodes-base.gmail","position":[3488,1360],"webhookId":"3b91e66a-4b62-4e9d-8ead-89a3c6646734","parameters":{"sendTo":"={{ $('Round-Robin Agent Assignment1').item.json.assigned_agent }}","message":"=<html>\n<head>\n  <style>\n    body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }\n    .container { max-width: 600px; margin: 0 auto; padding: 20px; }\n    .header { background-color: #0066cc; color: white; padding: 20px; text-align: center; }\n    .content { background-color: #f9f9f9; padding: 20px; margin-top: 20px; }\n    .field { margin-bottom: 15px; }\n    .label { font-weight: bold; color: #0066cc; }\n    .value { margin-left: 10px; }\n    .action { background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 15px; margin-top: 20px; }\n    .footer { text-align: center; margin-top: 20px; font-size: 12px; color: #666; }\n  </style>\n</head>\n<body>\n  <div class=\"container\">\n    <div class=\"header\">\n      <h1>New Lead Assigned</h1>\n    </div>\n    <div class=\"content\">\n      <div class=\"field\">\n        <span class=\"label\">Name:</span>\n        <span class=\"value\">{{ $json.fields['First name'] }} {{ $json.fields['Last name'] }}</span>\n      </div>\n      <div class=\"field\">\n        <span class=\"label\">Email:</span>\n        <span class=\"value\">{{ $json.fields.Email }}</span>\n      </div>\n      <div class=\"field\">\n        <span class=\"label\">Phone:</span>\n        <span class=\"value\">{{ $json.fields['Phone number'] }}</span>\n      </div>\n      <div class=\"field\">\n        <span class=\"label\">Property Type:</span>\n        <span class=\"value\">{{ $json.fields['Property Type'] }}</span>\n      </div>\n      <div class=\"field\">\n        <span class=\"label\">Source:</span>\n        <span class=\"value\">{{ $json.fields.Source }}</span>\n      </div>\n      <div class=\"field\">\n        <span class=\"label\">Location:</span>\n        <span class=\"value\">{{ $json.fields.Location }}</span>\n      </div>\n      <div class=\"action\">\n        <strong>Recommended Next Action:</strong>\n        <p>{{ $json.fields[\"Qualified\"] === \"Yes\" ? \"Contact Now\" : \"Don't Contact\" }}\n</p>\n      </div>\n    </div>\n    <div class=\"footer\">\n      <p>This lead was automatically assigned to you based on your expertise and availability.</p>\n    </div>\n  </div>\n</body>\n</html>","options":{"appendAttribution":false},"subject":"={{ 'New Lead Assigned: ' + $('Round-Robin Agent Assignment1').item.json['First name'] }} {{ $('Round-Robin Agent Assignment1').item.json['Last name'] }}"},"credentials":{"gmailOAuth2":{"id":"credential-id","name":"Gmail account"}},"typeVersion":2.2},{"id":"00677f1e-e630-4f25-adee-8e156817a2ca","name":"Aggregate","type":"n8n-nodes-base.aggregate","position":[2528,1264],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1},{"id":"b30f5c3b-228a-4fa8-9ae8-ac1673dce6e9","name":"Basic LLM Chain","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[2752,1264],"parameters":{"text":"=You are a lead qualifier expert. Your task is to qualify real estate leads depending on their answers in the pre-qualifier form.\n\n## Criteria for qualification\n- Budget must be $600,000 or more\n- Must be in one of the target markets: Texas, Florida, or Arizona\n- Must select: Multi-family, Condo or Investment property\n- Must buy within less than 6 months\n- Must be “Yes” or “No” but willing to get pre-approved, or paid with cash\n- Must not already be working with another agent\n\nOnly output the result: Yes / No\n\nThe responses from the form: {{ JSON.stringify($json.data) }}","batching":{},"promptType":"define"},"typeVersion":1.9},{"id":"8d8e6447-88e6-40ed-a14e-f178f8863cc3","name":"OpenAI Chat Model2","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[2832,1488],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"credential-id","name":"OpenAi account"}},"typeVersion":1.3},{"id":"5c6fb3be-79a6-45a7-a4b8-53cb442907b5","name":"Search records","type":"n8n-nodes-base.airtable","position":[1632,1312],"parameters":{"base":{"__rl":true,"mode":"list","value":"appBnug5XIRAWl5sK","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK","cachedResultName":"N8n"},"table":{"__rl":true,"mode":"list","value":"tblaHgYnpXzZl0zRH","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK/tblaHgYnpXzZl0zRH","cachedResultName":"Real Estate Qualifier"},"options":{},"operation":"search"},"credentials":{"airtableTokenApi":{"id":"credential-id","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"e85e52ae-22b0-499c-9ec0-ad35f56d9cd1","name":"Get Records","type":"n8n-nodes-base.airtable","position":[720,2224],"parameters":{"base":{"__rl":true,"mode":"list","value":"appBnug5XIRAWl5sK","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK","cachedResultName":"N8n"},"table":{"__rl":true,"mode":"list","value":"tblaHgYnpXzZl0zRH","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK/tblaHgYnpXzZl0zRH","cachedResultName":"Real Estate Qualifier"},"options":{},"operation":"search"},"credentials":{"airtableTokenApi":{"id":"credential-id","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"c5100352-5b20-409f-b74c-1df97e479f9f","name":"No Operation, do nothing","type":"n8n-nodes-base.noOp","position":[528,192],"parameters":{},"typeVersion":1},{"id":"b44f8962-6509-4703-abc3-22e84125d0fa","name":"Lead Collection Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[272,416],"parameters":{"text":"={{ $json.messages[0].text.body }}","options":{"systemMessage":"=You are a professional real estate lead qualification assistant collecting information via WhatsApp. Your job is to ask questions in a specific order and collect all required information.\n\nQUESTION ORDER (ask ONE question at a time):\n\nFirst name (required)\n\nLast name (optional - if they skip, move on)\n\nPhone number (required)\n\nEmail (required)\n\nBudget range (required) - Options:\nA. $500,000-$600,000\nB. $600,001-$700,000\nC. $700,001-$1,000,000\nD. $1,000,001-$2,000,000\nE. Other\n\nHow do you plan to purchase the property? (required) - Options:\nA. Finance the property with a mortgage\nB. Pay with cash\n\nCONDITIONAL: If they chose Finance (A) in question 6, ask:\nAre you pre-approved for a mortgage, or currently working with a lender?\nOptions:\nA. Yes I'm pre-approved\nB. Yes I'm working with a lender but not yet pre-approved\nC. No I'm not working with a lender\nIf they chose Cash (B), SKIP this question.\nWhat type of property are you interested in? (required) - Options:\nA. Single-Family\nB. Multi-family\nC. Condo\nD. Investment Property\nE. Other\n\nWhere are you looking to purchase a property? (required) - Options:\nA. New York\nB. Chicago\nC. Texas\nD. Florida\nE. Other\n\nWhen do you plan to purchase a property? (required) - Options:\nA. Immediately\nB. 1-3 months\nC. 4-6 months\nD. Other\n\nAre you currently working with a real estate agent? (required) - Options:\nA. No\nB. Yes\n\n\n✅ ADDITIONAL LOGIC REQUIREMENTS (NEW)\n- Maintain a collectionComplete flag at all times.\n- If ANY required information is missing or unanswered, set collectionComplete to false.\n- Only set collectionComplete to true after all required questions have been successfully answered and validated, including conditional question 7 when applicable.\n- When collectionComplete becomes true, send a final WhatsApp message that:\n  - Thanks the lead\n  - Displays ALL collected information in a clear, structured summary\n\n\n✅ FINAL MESSAGE FORMAT WHEN collectionComplete = true (NEW)\nWhen all required information is collected, send a message in this format:\n\nThanks {{first_name}}! 🎉 Here’s a summary of what I’ve got:\n\n• First Name: {{first_name}}\n• Last Name: {{last_name || \"Not provided\"}}\n• Phone Number: {{phone}}\n• Email: {{email}}\n• Budget Range: {{budget}}\n• Purchase Method: {{purchase_method}}\n• Mortgage Status: {{mortgage_status || \"N/A (Cash purchase)\"}}\n• Property Type: {{property_type}}\n• Location: {{location}}\n• Purchase Timeline: {{timeline}}\n• Working with an Agent: {{agent_status}}\n\nWe’ll be in touch shortly with next steps!"},"promptType":"define"},"typeVersion":3.1},{"id":"ffe4bc87-e32d-4d10-979e-4df66053b9d1","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[544,784],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4.1-mini"},"options":{},"builtInTools":{}},"credentials":{"openAiApi":{"id":"credential-id","name":"OpenAi account"}},"typeVersion":1.3},{"id":"54bf7bbf-d58d-4e9a-9188-46045b2c71be","name":"Simple Memory","type":"@n8n/n8n-nodes-langchain.memoryBufferWindow","position":[368,608],"parameters":{"sessionKey":"={{ $(\"WhatsApp Trigger\").item.json.messages[0].from }}","sessionIdType":"customKey","contextWindowLength":20},"typeVersion":1.3},{"id":"abd5534e-ddce-49d3-a422-1a9629c72a65","name":"Extract Lead Info","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[240,1120],"parameters":{"text":"={{ $('Lead Collection Agent').item.json.output }}","batching":{},"messages":{"messageValues":[{"message":"You are a data extraction assistant.\n\nYour task is to extract structured real estate lead information from the provided input and return it in a format that STRICTLY matches the required structured output schema.\n\nINPUT CONTEXT:\n- The input contains lead information that has already been collected and validated.\n\nEXTRACTION RULES:\n- Populate each field using the collected lead data.\n- Do NOT invent or infer information.\n- If an optional field is missing, return an empty string.\n- If purchaseMethod is \"Pay with cash\", set preApprovalStatus to an empty string.\n- If purchaseMethod is \"Finance the property with a mortgage\", populate preApprovalStatus with the collected mortgage status.\n- Normalize values to clear, human-readable strings (no option letters like \"A\", \"B\", etc.).\n\nFIELD MAPPING GUIDELINES:\n- firstName → lead’s first name\n- lastName → lead’s last name (or empty string if not provided)\n- phoneNumber → lead’s phone number\n- email → lead’s email address\n- budgetRange → selected budget range text\n- purchaseMethod → \"Pay with cash\" or \"Finance the property with a mortgage\"\n- preApprovalStatus → mortgage/pre-approval status (conditional)\n- propertyType → selected property type\n- location → selected location\n- timeline → selected purchase timeline\n- hasAgent → \"Yes\" or \"No\"\n- collectionComplete → true\n\nVALIDATION RULES:\n- Required fields must NOT be empty.\n- Optional fields may be empty strings.\n- collectionComplete MUST be true.\n\nOUTPUT RULES:\n- Output MUST be valid JSON.\n- Output MUST strictly conform to the structured output parser schema.\n- Do NOT include any explanatory text, comments, or formatting outside the JSON object.\n- Do NOT wrap the JSON in markdown.\n\nReturn ONLY the JSON object."}]},"promptType":"define","hasOutputParser":true},"typeVersion":1.9},{"id":"33cf1b46-e9c3-412b-8755-83bd3490a6cd","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[480,1296],"parameters":{"schemaType":"manual","inputSchema":"{\n  \"type\": \"object\",\n  \"properties\": {\n    \"First name\": {\n      \"type\": \"string\",\n      \"description\": \"Lead first name (required)\"\n    },\n    \"Last name\": {\n      \"type\": \"string\",\n      \"description\": \"Lead last name (optional)\"\n    },\n    \"Phone number\": {\n      \"type\": \"string\",\n      \"description\": \"Lead phone number (required)\"\n    },\n    \"Email\": {\n      \"type\": \"string\",\n      \"description\": \"Lead email address (required)\"\n    },\n    \"What is your budget range?\": {\n      \"type\": \"string\",\n      \"description\": \"Budget range selected from options (required)\"\n    },\n    \"How do you plan to purchase the property?\": {\n      \"type\": \"string\",\n      \"description\": \"How they plan to purchase: Finance or Cash (required)\"\n    },\n    \"Are you pre-approved for a mortgage, or currently working with a lender?\": {\n      \"type\": \"string\",\n      \"description\": \"Pre-approval status - only if financing (conditional)\"\n    },\n    \"What type of property are you interested in?\": {\n      \"type\": \"string\",\n      \"description\": \"Type of property interested in (required)\"\n    },\n    \"Where are you looking to purchase a property?\": {\n      \"type\": \"string\",\n      \"description\": \"Where they want to purchase (required)\"\n    },\n    \"When do you plan to purchase a property?\": {\n      \"type\": \"string\",\n      \"description\": \"When they plan to purchase (required)\"\n    },\n    \"Are you currently working with a real estate agent?\": {\n      \"type\": \"string\",\n      \"description\": \"Whether working with an agent (required)\"\n    },\n    \"collectionComplete\": {\n      \"type\": \"boolean\",\n      \"description\": \"Whether all required information has been collected\"\n    }\n  },\n  \"required\": [\"First name\", \"Phone number\", \"Email\", \"What is your budget range?\", \"How do you plan to purchase the property?\", \"What type of property are you interested in?\", \"Where are you looking to purchase a property?\", \"When do you plan to purchase a property?\", \"Are you currently working with a real estate agent?\", \"collectionComplete\"]\n}"},"typeVersion":1.3},{"id":"c16d9f6f-05b1-4673-80b7-3176ecceb905","name":"No Operation, do nothing1","type":"n8n-nodes-base.noOp","position":[320,1360],"parameters":{},"typeVersion":1},{"id":"acfe3b63-6637-443b-aa54-2edd1c2bc6ff","name":"Round-Robin Agent Assignment1","type":"n8n-nodes-base.code","position":[2304,1264],"parameters":{"jsCode":"// Round-Robin Agent Assignment Logic\n// Assigns agents based on property type from AI agent output\n\nconst agentPools = {\n  'single-family': [\n    'user@example.com',\n    'user@example.com'\n  ],\n  'multi-family': [\n    'user@example.com',\n    'user@example.com',\n    'user@example.com'\n  ],\n  'condo': [\n    'user@example.com',\n    'user@example.com',\n    'user@example.com'\n  ],\n  'investment property': [\n    'user@example.com',\n    'user@example.com',\n    'user@example.com'\n  ],\n  'others': [\n    'user@example.com',\n    'user@example.com'\n  ],\n  'default-unassigned': [\n    'user@example.com'\n  ]\n};\n\n// Get incoming item\nconst item = $input.item.json;\n\n// Read property type (exact field name)\nconst rawCategory =\n  item[\"What type of property are you interested in?\"] ||\n  'default-unassigned';\n\nconst category = rawCategory\n  .trim()\n  .toLowerCase()\n  .replace(/\\s+/g, '-');\n\n// Select agent pool\nconst agents = agentPools[category] || agentPools['default-unassigned'];\n\n// ✅ Correct way to access static data\nconst staticData = $getWorkflowStaticData('node');\n\nif (!staticData.agentIndexes) {\n  staticData.agentIndexes = {};\n}\n\nif (staticData.agentIndexes[category] === undefined) {\n  staticData.agentIndexes[category] = 0;\n}\n\n// Assign agent\nconst currentIndex = staticData.agentIndexes[category];\nconst assignedAgent = agents[currentIndex];\n\n// Advance round-robin\nstaticData.agentIndexes[category] =\n  (currentIndex + 1) % agents.length;\n\n// Return result\nreturn {\n  ...item,\n  lead_status: \"New\",\n  assigned_agent: assignedAgent,\n  assignment_category: category,\n  assignment_timestamp: new Date().toISOString()\n};\n"},"typeVersion":2},{"id":"0c6207bb-9299-4d75-ac8d-efdc616159cf","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1184,928],"parameters":{"color":3,"width":928,"height":1392,"content":"# Automate real estate lead capture, smart routing, and reporting using n8n\n\n\n## How it works\n### This workflow automates the full lifecycle of real estate leads, from intake to reporting.\n\n- Collects leads from WhatsApp and website forms\n- Can be extended to Facebook and Google Ads\n- Validates and structures lead information using AI\n- Checks and removes duplicate leads\n- Qualifies, routes, and assigns leads automatically\n- Generates weekly lead and duplicate reports\n\n\n\n## 🛠 Setup steps\n\nImport the .json file into your n8n instance.\n\n### 1. Connect the required credentials:\n- WhatsApp Trigger  (**Auth Connection**)\n- WhatsApp Business Cloud (**Access Token**) \n- OpenAI API Key\n- Airtable API Key (Access Token)\n- Gmail\n- Slack API Key (Access Token)\n\n\n### 2. Configure your data sources:\n- Update the Airtable base and table names to match your CRM structure\n- Ensure required fields (Email, First name, What is your budget range?, etc.) exist\n\n\n### 3. Customize business logic:\n- Update agent pools and routing rules\n- Adjust AI prompts if needed\n- Review deduplication and reporting settings\n\n\n### 4. Activate the workflow:\n- Click **Publish** to activate the workflow\n- Send a test lead via WhatsApp or website form to confirm everything works\n\n\n\n\n## Optional\n- ### This workflow is designed to be easily extended with additional lead sources such as Facebook and Google Ads.\n- ### Weekly reporting can be extracted into a standalone workflow\n   ### Useful if you want to manage reporting separately from lead processing\n\n\n\n### 📬 Contact \n#### For Enquiries: buzanalytics@gmail.com\nThank you for exploring this workflow!"},"typeVersion":1},{"id":"e8a87170-0b1e-4e8f-89d0-5bef5f9a4f96","name":"Info Completeness Check","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[208,800],"parameters":{"text":"={{ $('Lead Collection Agent').item.json.output }}","batching":{},"messages":{"messageValues":[{"message":"You are a form completion validation assistant.  Your only task is to determine whether all REQUIRED real estate lead information has been collected.  You will receive an object containing the collected lead data.  REQUIRED FIELDS: - first_name - phone - email - budget - purchase_method - property_type - location - timeline - agent_status  CONDITIONAL REQUIRED FIELD: - mortgage_status is REQUIRED ONLY if purchase_method = \"Finance the property with a mortgage\" - mortgage_status is NOT required if purchase_method = \"Pay with cash\"  OPTIONAL FIELD: - last_name (may be missing or empty without affecting completion)  VALIDATION RULES: - A field is considered missing if it is null, undefined, empty, or an empty string - Budget, purchase_method, and other fields must contain a valid value (not just text like \"other\" without a value) - If ANY required field is missing or invalid, the form is NOT complete  OUTPUT RULES: - If ALL required fields (including conditional ones) are present and valid, output \"Yes\", otherwise, output \"No\"  OUTPUT FORMAT (STRICT): Return ONLY one of the following, with no additional text: - Yes - No"}]},"promptType":"define"},"typeVersion":1.9},{"id":"c16b021d-1183-4f39-8ee1-59355e1bd1eb","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1376,960],"parameters":{"color":4,"width":608,"height":656,"content":"## Deduplication Logic\n\nPrevents the same lead from being processed twice.\n\n- Removes duplicates within the same workflow run\n- Handles retries and rapid re-submissions\n-  Searches the CRM using email address\n- Compares incoming leads with existing records\n- Flags new vs existing leads\n- Prevents double assignment and notifications\n"},"typeVersion":1},{"id":"bfe44d71-f6c7-479d-a7f3-747de1bf829d","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[2032,1504],"parameters":{"color":7,"width":208,"height":288,"content":"## Store Duplicates in CRM"},"typeVersion":1},{"id":"317b4f32-c166-4038-8f35-38d6e6010f81","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[2032,960],"parameters":{"color":4,"width":400,"height":512,"content":"## Agent Assignment (Round-Robin)\n\nAutomatically assigns agents:\n- Based on property category\n- Uses round-robin rotation\n- Ensures fair lead distribution within categories"},"typeVersion":1},{"id":"a0d45e94-5980-4646-a9dd-3fb3e20ada9f","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[2464,960],"parameters":{"color":4,"width":544,"height":672,"content":"## Lead Qualification\n\nEvaluates lead quality using AI:\n-  Budget\n- Location\n- Category\n- Timeline\n-  Buyer intent\n\nOutputs: Qualified / Not Qualified\n"},"typeVersion":1},{"id":"86b9e12f-2c8c-4c2f-913f-f2a5bfa8d667","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[3056,960],"parameters":{"color":7,"width":320,"height":480,"content":"## CRM Storage (Airtable)\n\nStores lead data:\n- Main CRM table (new leads)\n- Assignment metadata\n"},"typeVersion":1},{"id":"9e8771d5-5def-445a-a9b1-09f9e863d92e","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[3408,960],"parameters":{"color":7,"width":304,"height":576,"content":"## Notifications & Alerts\n\nNotifies stakeholders:\n- Email to assigned agent\n- Slack alerts\n- Internal follow-ups\n"},"typeVersion":1},{"id":"537abe8a-20dd-4545-86e5-8114ca7fd5a9","name":"Get Duplicates Records","type":"n8n-nodes-base.airtable","position":[880,2496],"parameters":{"base":{"__rl":true,"mode":"list","value":"appBnug5XIRAWl5sK","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK","cachedResultName":"N8n"},"table":{"__rl":true,"mode":"list","value":"tblrmNx8MIvJvUHNz","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK/tblrmNx8MIvJvUHNz","cachedResultName":"Real Estate Qualifier Duplicate"},"options":{},"operation":"search","filterByFormula":"="},"credentials":{"airtableTokenApi":{"id":"credential-id","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"540efe59-8416-48e0-85f1-a7b0772d6253","name":"7-Day Duplicate Count","type":"n8n-nodes-base.code","position":[1232,2496],"parameters":{"jsCode":"// Get the current date and time\nconst now = new Date();\n\n// Create a new Date object to represent \"7 days ago\"\nconst sevenDaysAgo = new Date();\n\n// Subtract 7 days from today's date\nsevenDaysAgo.setDate(now.getDate() - 7);\n\n// Filter all incoming items to keep only those\n// whose createdTime is within the last 7 days\nconst recentRecords = items.filter(item => {\n  // Parse the Airtable createdTime string into a Date object\n  const createdTime = new Date(item.json.createdTime);\n\n  // Keep the record if it was created on or after 7 days ago\n  return createdTime >= sevenDaysAgo;\n});\n\n// Return a single item containing the count\n// of records created within the last 7 days\nreturn [\n  {\n    json: {\n      count: recentRecords.length\n    }\n  }\n];\n"},"typeVersion":2},{"id":"d556b761-105f-40a5-9c7f-88769b563069","name":"Weekly Fetch","type":"n8n-nodes-base.code","position":[976,2224],"parameters":{"jsCode":"// Get the current date and time\nconst now = new Date();\n\n// Create a Date object representing 7 days ago\nconst sevenDaysAgo = new Date();\nsevenDaysAgo.setDate(now.getDate() - 7);\n\n// Filter incoming Airtable records\nconst recentRecords = items.filter(item => {\n  // Convert Airtable createdTime (ISO string) to a Date object\n  const createdTime = new Date(item.json.createdTime);\n\n  // Keep the record only if it was created within the last 7 days\n  return createdTime >= sevenDaysAgo;\n});\n\n// Return the filtered records\nreturn recentRecords;\n"},"typeVersion":2},{"id":"67f40805-e205-499c-b6a9-4077a8ba9bac","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[352,2128],"parameters":{"color":4,"width":1824,"height":528,"content":"## Reporting & Analytics\n\nScheduled reporting:\n- Weekly lead summary\n- Duplicate analysis\n- Performance insights\n"},"typeVersion":1},{"id":"088361a0-e332-40c3-90fd-54eea97db02d","name":"WhatsApp Texts Only","type":"n8n-nodes-base.switch","position":[256,144],"parameters":{"rules":{"values":[{"outputKey":"Text","conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"6a662a44-caab-442c-a687-2e1fcfa951c8","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.messages[0].type }}","rightValue":"text"}]},"renameOutput":true}]},"options":{"fallbackOutput":"extra"}},"typeVersion":3.4},{"id":"1f1c904d-b9cf-4b0b-b92f-a2211305c89f","name":"Send message","type":"n8n-nodes-base.whatsApp","position":[64,800],"webhookId":"67476e9e-b598-4a02-b4eb-b27ce4e244bd","parameters":{"textBody":"={{ $json.output }}","operation":"send","phoneNumberId":"874689602398158","additionalFields":{},"recipientPhoneNumber":"={{ $('WhatsApp Trigger').item.json.messages[0].from }}"},"credentials":{"whatsAppApi":{"id":"credential-id","name":"WhatsApp account"}},"typeVersion":1.1},{"id":"927e6bea-510b-4cd4-a5d2-eb6eb77428a1","name":"Create Duplicate record","type":"n8n-nodes-base.airtable","position":[2080,1632],"parameters":{"base":{"__rl":true,"mode":"list","value":"appBnug5XIRAWl5sK","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK","cachedResultName":"N8n"},"table":{"__rl":true,"mode":"list","value":"tblrmNx8MIvJvUHNz","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK/tblrmNx8MIvJvUHNz","cachedResultName":"Real Estate Qualifier Duplicate"},"columns":{"value":{"Email":"={{ $('Combine All Lead Sources').item.json.Email }}","Source":"={{ $('Combine All Lead Sources').item.json.Source }}","Location":"={{ $('Combine All Lead Sources').item.json['Where are you looking to purchase a property?'] }}","Has Agent":"={{ $('Combine All Lead Sources').item.json['Are you currently working with a real estate agent?'] }}","Last name":"={{ $('Combine All Lead Sources').item.json['Last name'] }}","Timeframe":"={{ $('Combine All Lead Sources').item.json['When do you plan to purchase a property?'] }}","First name":"={{ $('Combine All Lead Sources').item.json['First name'] }}","Phone number":"={{ $('Combine All Lead Sources').item.json['Phone number'] }}","Pre Approved":"={{ $('Combine All Lead Sources').item.json['Are you pre-approved for a mortgage, or currently working with a lender?'] }}","Property Type":"={{ $('Combine All Lead Sources').item.json['What type of property are you interested in?'] }}","Payment Source":"={{ $('Combine All Lead Sources').item.json['How do you plan to purchase the property?'] }}"},"schema":[{"id":"First name","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"First name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Last name","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Last name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Phone number","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Phone number","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Email","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Budget","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Budget","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Location","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Location","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Property Type","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Property Type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Timeframe","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Timeframe","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Payment Source","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Payment Source","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Pre Approved","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Pre Approved","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Has Agent","type":"options","display":true,"options":[{"name":"Yes","value":"Yes"},{"name":"No","value":"No"}],"removed":false,"readOnly":false,"required":false,"displayName":"Has Agent","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Source","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Source","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"create"},"credentials":{"airtableTokenApi":{"id":"credential-id","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"9b9a5e2d-a6b2-4c1c-ac3b-d2e3c53a03cc","name":"Create A Record","type":"n8n-nodes-base.airtable","position":[3168,1264],"parameters":{"base":{"__rl":true,"mode":"list","value":"appBnug5XIRAWl5sK","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK","cachedResultName":"N8n"},"table":{"__rl":true,"mode":"list","value":"tblaHgYnpXzZl0zRH","cachedResultUrl":"https://airtable.com/appBnug5XIRAWl5sK/tblaHgYnpXzZl0zRH","cachedResultName":"Real Estate Qualifier"},"columns":{"value":{"Email":"={{ $('Round-Robin Agent Assignment1').item.json.Email }}","Source":"={{ $('Round-Robin Agent Assignment1').item.json.Source }}","Location":"={{ $('Round-Robin Agent Assignment1').item.json['Where are you looking to purchase a property?'] }}","Has Agent":"={{ $('Round-Robin Agent Assignment1').item.json['Are you currently working with a real estate agent?'] }}","Last name":"={{ $('Round-Robin Agent Assignment1').item.json['Last name'] }}","Qualified":"={{ $json.text }}","Timeframe":"={{ $('Round-Robin Agent Assignment1').item.json['When do you plan to purchase a property?'] }}","First name":"={{ $('Round-Robin Agent Assignment1').item.json['First name'] }}","Lead Status":"={{ $('Round-Robin Agent Assignment1').item.json.lead_status }}","Phone number":"={{ $('Round-Robin Agent Assignment1').item.json['Phone number'] }}","Pre Approved":"={{ $('Round-Robin Agent Assignment1').item.json['Are you pre-approved for a mortgage, or currently working with a lender?'] }}","Assigned Time":"={{ $('Round-Robin Agent Assignment1').item.json.assignment_timestamp }}","Property Type":"={{ $('Round-Robin Agent Assignment1').item.json['What type of property are you interested in?'] }}","Assigned Agent":"={{ $('Round-Robin Agent Assignment1').item.json.assigned_agent }}","Payment Source":"={{ $('Round-Robin Agent Assignment1').item.json['How do you plan to purchase the property?'] }}"},"schema":[{"id":"First name","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"First name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Last name","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Last name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Phone number","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Phone number","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Email","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Email","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Budget","type":"string","display":true,"removed":true,"readOnly":false,"required":false,"displayName":"Budget","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Location","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Location","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Property Type","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Property Type","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Timeframe","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Timeframe","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Payment Source","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Payment Source","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Pre Approved","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Pre Approved","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Has Agent","type":"options","display":true,"options":[{"name":"Yes","value":"Yes"},{"name":"No","value":"No"}],"removed":false,"readOnly":false,"required":false,"displayName":"Has Agent","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Lead Status","type":"options","display":true,"options":[{"name":"New","value":"New"},{"name":"Contacted","value":"Contacted"},{"name":"Follow-up","value":"Follow-up"},{"name":"Converted","value":"Converted"},{"name":"Couldn’t Convert","value":"Couldn’t Convert"}],"removed":false,"readOnly":false,"required":false,"displayName":"Lead Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Source","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Source","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Assigned Agent","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Assigned Agent","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Assigned Time","type":"dateTime","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Assigned Time","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Qualified","type":"options","display":true,"options":[{"name":"Yes","value":"Yes"},{"name":"No","value":"No"}],"removed":false,"readOnly":false,"required":false,"displayName":"Qualified","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Transcript","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Transcript","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Summary","type":"string","display":true,"removed":false,"readOnly":false,"required":false,"displayName":"Summary","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"create"},"credentials":{"airtableTokenApi":{"id":"credential-id","name":"Airtable Personal Access Token account"}},"typeVersion":2.1},{"id":"df6fed44-a457-4832-8233-743764c082a3","name":"Combine both duplicate and non-duplicate records","type":"n8n-nodes-base.merge","position":[1504,2336],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"873e1c90-c4bc-4b7e-84fe-86162c89fdda","name":"Are All Info Complete?","type":"n8n-nodes-base.if","position":[80,1248],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"8ed2a5a8-de20-4454-85b3-e079a1986d52","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.text }}","rightValue":"Yes"}]}},"typeVersion":2.3},{"id":"bf49832f-e7de-4511-925f-8d7dc5462ccc","name":"Normalize Form Leads","type":"n8n-nodes-base.set","position":[896,1632],"parameters":{"options":{},"assignments":{"assignments":[{"id":"81540608-a83b-4390-a57c-abcb048c6731","name":"Source","type":"string","value":"Website Form"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"cc30d292-f0c4-498b-a474-c413ab03eb42","name":"Normalize WhatsApp Leads","type":"n8n-nodes-base.set","position":[880,1120],"parameters":{"options":{},"assignments":{"assignments":[{"id":"32bdaca5-a67e-4b50-8c54-225f44cd73c3","name":"First name","type":"string","value":"={{ $json.output['First name'] }}"},{"id":"5d75e269-7654-43d6-bf6e-1518a81c7d8f","name":"Last name","type":"string","value":"={{ $json.output['Last name'] }}"},{"id":"42b6b541-5af1-456d-a580-79d3fcbb99b1","name":"Phone number","type":"string","value":"={{ $json.output['Phone number'] }}"},{"id":"58470c2e-92f0-46a8-b1e9-ab518dedbcf7","name":"Email","type":"string","value":"={{ $json.output.Email }}"},{"id":"10b19f5b-2604-4463-9cde-baba4717b12e","name":"What is your budget range?","type":"string","value":"={{ $json.output['What is your budget range?'] }}"},{"id":"5a7cd33d-174f-47aa-a96a-b0cb166c5b9a","name":"How do you plan to purchase the property?","type":"string","value":"={{ $json.output['How do you plan to purchase the property?'] }}"},{"id":"820cbb3e-a4ae-4973-9bfb-374377cccf5e","name":"Are you pre-approved for a mortgage, or currently working with a lender?","type":"string","value":"={{ $json.output['Are you pre-approved for a mortgage, or currently working with a lender?'] }}"},{"id":"c83f3932-7e39-4a13-a871-9f956463f70d","name":"What type of property are you interested in?","type":"string","value":"={{ $json.output['What type of property are you interested in?'] }}"},{"id":"7c08db65-457e-42e4-85fd-6e0d917223f0","name":"Where are you looking to purchase a property?","type":"string","value":"={{ $json.output['Where are you looking to purchase a property?'] }}"},{"id":"2a20d27e-7a80-484c-a266-efee775173fc","name":"When do you plan to purchase a property?","type":"string","value":"={{ $json.output['When do you plan to purchase a property?'] }}"},{"id":"e5957d9a-9617-46b9-9387-119d578dc3f7","name":"Are you currently working with a real estate agent?","type":"string","value":"={{ $json.output['Are you currently working with a real estate agent?'] }}"},{"id":"b2951fb2-141e-4bcf-9169-ca4195f307d8","name":"Source","type":"string","value":"WhatsApp Form"}]}},"typeVersion":3.4},{"id":"9bed02dc-dfc4-429a-a32c-234cc3cb04f4","name":"Notify Agent via Slack","type":"n8n-nodes-base.slack","position":[3488,1168],"webhookId":"821a13ec-5d57-493d-a9f9-fdca5b5cf45b","parameters":{"text":"=New Lead Assigned to You!\n\n*Name:* {{ $json.fields['First name'] }} {{ $json.fields['Last name'] }}\n*Email:* {{ $json.fields.Email }}\n*Phone:* {{ $json.fields['Phone number'] }}\n*Property Type:* {{ $json.fields['Property Type'] }}\n*Source:* {{ $json.fields.Source }}\n*Location:* {{ $json.fields.Location }}\n*Qualified:* {{ $json.fields.Qualified }}\n*Assigned Agent:* {{ $json.fields['Assigned Agent'] }}\n\n*Recommended Action:* Contact within 15 minutes if qualified for best conversion rate","select":"channel","channelId":{"__rl":true,"mode":"list","value":"C09MZKZS5QE","cachedResultName":"test_n8n_invoice"},"otherOptions":{"includeLinkToWorkflow":false}},"credentials":{"slackApi":{"id":"credential-id","name":"Slack account"}},"typeVersion":2.4},{"id":"b9ef618b-9317-4ce1-8651-6d67cbd20973","name":"Sticky Note10","type":"n8n-nodes-base.stickyNote","position":[784,768],"parameters":{"color":4,"width":528,"height":1040,"content":"## Data Normalization\n\nStandardizes lead  fields:\n- First name\n- Last name\n- Phone number\n- Email\n- What is your budget range?\n- etc\n\n\nEnsures downstream logic works consistently."},"typeVersion":1},{"id":"a5491567-d2a5-4f1f-beb9-01ef1e3ecd91","name":"Sticky Note11","type":"n8n-nodes-base.stickyNote","position":[-32,1552],"parameters":{"color":6,"width":400,"height":240,"content":"## Website forms Lead intake"},"typeVersion":1},{"id":"0cc9e4ab-d430-4b4e-ae8c-b9fd47a6808b","name":"Sticky Note12","type":"n8n-nodes-base.stickyNote","position":[-112,32],"parameters":{"color":7,"width":624,"height":288,"content":"## WhatsApp Lead intake"},"typeVersion":1},{"id":"56f18543-49bc-446d-ba1c-cbce1260d9e7","name":"Sticky Note13","type":"n8n-nodes-base.stickyNote","position":[-112,336],"parameters":{"color":7,"width":624,"height":288,"content":"### WhatsApp AI Agent - Lead Collection\n- Engages WhatsApp users automatically\n- Collects initial lead details and intent"},"typeVersion":1},{"id":"627e674a-de54-4733-b5cf-602904b74367","name":"Sticky Note14","type":"n8n-nodes-base.stickyNote","position":[-112,656],"parameters":{"color":7,"width":624,"height":288,"content":"### WhatsApp AI Agent - Info Completeness Check\n- Confirms all required lead information is provided\n- Flags missing details for follow-up"},"typeVersion":1},{"id":"76c7dccc-8546-422c-bf8d-e7800fdf23a7","name":"Sticky Note15","type":"n8n-nodes-base.stickyNote","position":[-112,1040],"parameters":{"color":7,"width":624,"height":448,"content":"### WhatsApp AI Agent - Extract Lead Info\n- Extracts structured lead data from chat messages\n- Prepares clean fields for CRM and routing"},"typeVersion":1}],"active":true,"pinData":{},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"27a52318-2189-4d95-96a2-163f902690b8","connections":{"Aggregate":{"main":[[{"node":"Basic LLM Chain","type":"main","index":0}]]},"Get Records":{"main":[[{"node":"Weekly Fetch","type":"main","index":0}]]},"Send message":{"main":[[{"node":"Info Completeness Check","type":"main","index":0}]]},"Weekly Fetch":{"main":[[{"node":"Aggregate Report Data","type":"main","index":0}]]},"Simple Memory":{"ai_memory":[[{"node":"Lead Collection Agent","type":"ai_memory","index":0}]]},"Search records":{"main":[[{"node":"Check for Duplicates in CRM","type":"main","index":1}]]},"Basic LLM Chain":{"main":[[{"node":"Create A Record","type":"main","index":0}]]},"Create A Record":{"main":[[{"node":"Send a message","type":"main","index":0},{"node":"Notify Agent via Slack","type":"main","index":0}]]},"Typeform Trigger":{"main":[[{"node":"Normalize Form Leads","type":"main","index":0}]]},"WhatsApp Trigger":{"main":[[{"node":"WhatsApp Texts Only","type":"main","index":0}]]},"Extract Lead Info":{"main":[[{"node":"Normalize WhatsApp Leads","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"Info Completeness Check","type":"ai_languageModel","index":0},{"node":"Extract Lead Info","type":"ai_languageModel","index":0},{"node":"Lead Collection Agent","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model2":{"ai_languageModel":[[{"node":"Basic LLM Chain","type":"ai_languageModel","index":0}]]},"WhatsApp Texts Only":{"main":[[{"node":"Lead Collection Agent","type":"main","index":0}],[{"node":"No Operation, do nothing","type":"main","index":0}]]},"Format Weekly Report":{"main":[[{"node":"Send Weekly Report","type":"main","index":0}]]},"Normalize Form Leads":{"main":[[{"node":"Combine All Lead Sources","type":"main","index":1}]]},"7-Day Duplicate Count":{"main":[[{"node":"Combine both duplicate and non-duplicate records","type":"main","index":1}]]},"Aggregate Report Data":{"main":[[{"node":"Combine both duplicate and non-duplicate records","type":"main","index":0}]]},"Lead Collection Agent":{"main":[[{"node":"Send message","type":"main","index":0}]]},"Are All Info Complete?":{"main":[[{"node":"Extract Lead Info","type":"main","index":0}],[{"node":"No Operation, do nothing1","type":"main","index":0}]]},"Get Duplicates Records":{"main":[[{"node":"7-Day Duplicate Count","type":"main","index":0}]]},"Remove Duplicate Leads":{"main":[[{"node":"Check for Duplicates in CRM","type":"main","index":0},{"node":"Search records","type":"main","index":0}]]},"Weekly Report Schedule":{"main":[[{"node":"Get Records","type":"main","index":0},{"node":"Get Duplicates Records","type":"main","index":0}]]},"Info Completeness Check":{"main":[[{"node":"Are All Info Complete?","type":"main","index":0}]]},"Combine All Lead Sources":{"main":[[{"node":"Remove Duplicate Leads","type":"main","index":0}]]},"Normalize WhatsApp Leads":{"main":[[{"node":"Combine All Lead Sources","type":"main","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Extract Lead Info","type":"ai_outputParser","index":0}]]},"Check for Duplicates in CRM":{"main":[[{"node":"Route by Location/Property Type1","type":"main","index":0}],[{"node":"Create Duplicate record","type":"main","index":0}],[{"node":"Create Duplicate record","type":"main","index":0}]]},"Round-Robin Agent Assignment1":{"main":[[{"node":"Aggregate","type":"main","index":0}]]},"Route by Location/Property Type1":{"main":[[{"node":"Round-Robin Agent Assignment1","type":"main","index":0}],[{"node":"Round-Robin Agent Assignment1","type":"main","index":0}],[{"node":"Round-Robin Agent Assignment1","type":"main","index":0}],[{"node":"Round-Robin Agent Assignment1","type":"main","index":0}]]},"Combine both duplicate and non-duplicate records":{"main":[[{"node":"Format Weekly Report","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":51,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":3},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.noOp":{"count":2},"n8n-nodes-base.gmail":{"count":2},"n8n-nodes-base.merge":{"count":2},"n8n-nodes-base.slack":{"count":1},"n8n-nodes-base.switch":{"count":2},"n8n-nodes-base.airtable":{"count":5},"n8n-nodes-base.whatsApp":{"count":1},"n8n-nodes-base.aggregate":{"count":2},"n8n-nodes-base.stickyNote":{"count":14},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.compareDatasets":{"count":1},"n8n-nodes-base.scheduleTrigger":{"count":1},"n8n-nodes-base.typeformTrigger":{"count":1},"n8n-nodes-base.whatsAppTrigger":{"count":1},"n8n-nodes-base.removeDuplicates":{"count":1},"@n8n/n8n-nodes-langchain.chainLlm":{"count":3},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":2},"@n8n/n8n-nodes-langchain.memoryBufferWindow":{"count":1},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Ezema Kingsley Chibuzo","username":"kingsley","bio":"Data Analyst, Automation Developer, and AI Workflow Specialist with experience designing end-to-end systems using n8n and its integrations. I help businesses unlock insights, automate operations, and scale with custom AI-powered workflows, dynamic dashboards, and no-code tools. My work combines strong analytical thinking with smart automation — from data collection and enrichment to lead generation, reporting, and AI agent orchestration.\n\nHere’s my contact below if you’d like to connect with me:","verified":true,"links":["www.linkedin.com/in/kingsleyc-e"],"avatar":"https://gravatar.com/avatar/9f6a6831eaf375f907da0d5a4651ca822b38fe66ea5cde081637fb1879449dce?r=pg&d=retro&size=200"},"nodes":[{"id":2,"icon":"file:airtable.svg","name":"n8n-nodes-base.airtable","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/","icon":"🎯","label":"2021 Goals: Level Up Your Vocabulary With Vonage and n8n"},{"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/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/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/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"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/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/sending-sms-the-low-code-way-with-airtable-twilio-programmable-sms-and-n8n/","icon":"📱","label":"Sending SMS the Low-Code Way with Airtable, Twilio Programmable SMS, and n8n"},{"url":"https://n8n.io/blog/automating-conference-organization-processes-with-n8n/","icon":"🙋‍♀️","label":"Automating Conference Organization Processes with n8n"},{"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/app-nodes/n8n-nodes-base.airtable/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/airtable/"}]},"categories":["Data & Storage"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"Airtable"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMTcwIj48cGF0aCBmaWxsPSIjZmNiNDAwIiBkPSJNODkgNC44IDE2LjIgMzQuOWMtNC4xIDEuNy00IDcuNC4xIDkuMWw3My4yIDI5YzYuNCAyLjYgMTMuNiAyLjYgMjAgMGw3My4yLTI5YzQuMS0xLjYgNC4xLTcuNC4xLTkuMWwtNzMtMzAuMUMxMDMuMiAyIDk1LjcgMiA4OSA0LjgiLz48cGF0aCBmaWxsPSIjMThiZmZmIiBkPSJNMTA1LjkgODguOXY3Mi41YzAgMy40IDMuNSA1LjggNi43IDQuNWw4MS42LTMxLjdjMS45LS43IDMuMS0yLjUgMy4xLTQuNVY1Ny4yYzAtMy40LTMuNS01LjgtNi43LTQuNUwxMDkgODQuM2MtMS45LjgtMy4xIDIuNi0zLjEgNC42Ii8+PHBhdGggZmlsbD0iI2Y4MmI2MCIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctMi41IDEuMkw5LjEgMTMwYy0zLjIgMS42LTcuNC0uOC03LjQtNC40VjU3LjVjMC0xLjMuNy0yLjQgMS42LTMuM3EuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNSA0LjMgNy4xLjUgOC45Ii8+PHBhdGggZmlsbD0iI2JhMWU0NSIgZD0ibTg2LjkgOTIuNi0yNC4yIDExLjctNTkuNC01MHEuNi0uNiAxLjItLjljMS4yLS43IDMtLjkgNC40LS4zbDc3LjUgMzAuN2M0IDEuNCA0LjMgNyAuNSA4LjgiLz48L3N2Zz4="},"displayName":"Airtable","typeVersion":2,"nodeCategories":[{"id":3,"name":"Data & Storage"}]},{"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":26,"icon":"fa:arrow-right","name":"n8n-nodes-base.noOp","codex":{"data":{"alias":["nothing"],"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/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/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/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/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.noop/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"organization\"]","defaults":{"name":"No Operation, do nothing","color":"#b0b0b0"},"iconData":{"icon":"arrow-right","type":"icon"},"displayName":"No Operation, do nothing","typeVersion":1,"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":40,"icon":"file:slack.svg","name":"n8n-nodes-base.slack","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"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/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/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/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/slack/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Slack"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Slack","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":51,"icon":"file:typeform.svg","name":"n8n-nodes-base.typeformTrigger","codex":{"data":{"alias":["Form"],"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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"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/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/automating-conference-organization-processes-with-n8n/","icon":"🙋‍♀️","label":"Automating Conference Organization Processes with n8n"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"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/trigger-nodes/n8n-nodes-base.typeformtrigger/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/typeform/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"Typeform Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4Ljg4NzYgMC4wNzM4OTg0QzI0LjAzMTYgLTAuMzQ5NjE4IDI3LjcyNiAxLjAxNTY2IDMxLjcwMTIgNC45ODg0NkMzNS45OTMgOS4yNzc2NyAzOC44NDYzIDE0LjgzNjEgMzkuNjE1MiAyMC43NTdDNDAuNDcwOCAyNy4zNDE1IDM5LjI5NCAzMi4yNTUxIDM1LjY2OTcgMzUuODUyNUMzMi4yMDQgMzkuMjkyNCAyNy4xNDE5IDQwLjQyNyAyMC4zNzk3IDM5Ljg2MTdMMjAuMDk5OCAzOS44MzcxQzE0LjM0MTUgMzkuMzA3NyAxMC4yNjg2IDM3LjQxOTcgNi4zMjIzMyAzMy40MjMxQzIuMTA3MTEgMjkuMTU0IC0wLjExNDA5NCAyNC4zMDcgMC4wMDQ1MTUwMyAxOS4yMTk2QzAuMDYyNTI4MiAxNi43MjkgMC43NjgwNDYgMTQuNjA2MyAyLjEyODY3IDEyLjUyMzZDMy4wMjA2OCAxMS4xNTgyIDMuOTI2NTcgMTAuMDkzMSA1LjgyMTQ5IDguMTM5N0w2LjQ1Mzg5IDcuNDkxOTNMNy4xNTEgNi43ODUzNUMxMS42NDE4IDIuMjcxMjggMTQuNTk4NCAwLjQyNzA0MiAxOC44ODc2IDAuMDczODk4NFpNMzEuMzk1NSA1LjI5NDMyQzI3LjUwOTkgMS40MTEgMjMuOTQwMSAwLjA5MTc4OTggMTguOTIzMSAwLjUwNDg1M0MxNC42OTUgMC44NTI5NjYgMTEuNzkxMyAyLjcwMDEgNy4yNDcwNiA3LjMwMjcxTDYuOTE4MzIgNy42MzYyNUM0LjcwNDI2IDkuODg3MDQgMy42NjY2OSAxMS4wMzc4IDIuNzUyNzEgMTIuMzY4N0wyLjYxOTcyIDEyLjU2NDlMMi40OTA2OCAxMi43NjAxQzEuMTcyNjEgMTQuNzc3NyAwLjQ5Mjg3MyAxNi44MjI4IDAuNDM2ODEgMTkuMjI5NkMwLjMyMTE0MyAyNC4xOTA5IDIuNDkyMjggMjguOTI4NiA2LjYzMDAyIDMzLjExOTJDMTAuNTY2MyAzNy4xMDU4IDE0LjYxMDIgMzguOTQ1NiAyMC40MTU4IDM5LjQzMDhMMjAuNzAzOCAzOS40NTM5QzI3LjIwNzEgMzkuOTU0IDMyLjA1NTYgMzguODMwNCAzNS4zNjUgMzUuNTQ1NkMzOC44ODEyIDMyLjA1NTYgNDAuMDI2MSAyNy4yNzUxIDM5LjE4NjQgMjAuODEyN0MzOC40MzAxIDE0Ljk4OTEgMzUuNjIxNSA5LjUxNzczIDMxLjM5NTUgNS4yOTQzMlpNMjYuMDE0MSAxNC41NDlWMTYuNjYxNEgyMS41Mjc4VjI4Ljc2ODFIMTkuMjkzMVYxNi42NjE0SDE0LjgwNjhWMTQuNTQ5SDI2LjAxNDFaIiBmaWxsPSIjMjYyNjI3Ii8+Cjwvc3ZnPgo="},"displayName":"Typeform Trigger","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]},{"id":112,"icon":"fa:map-signs","name":"n8n-nodes-base.switch","codex":{"data":{"alias":["Router","If","Path","Filter","Condition","Logic","Branch","Case"],"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/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/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/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Switch","color":"#506000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"Switch","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":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":827,"icon":"file:whatsapp.svg","name":"n8n-nodes-base.whatsApp","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.whatsapp/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/whatsapp/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"WhatsApp Business Cloud"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQuODY4IDQzLjMwMyAyLjY5NC05LjgzNWExOC45NCAxOC45NCAwIDAgMS0yLjUzNS05LjQ4OUM1LjAzMiAxMy41MTQgMTMuNTQ4IDUgMjQuMDE0IDVhMTguODcgMTguODcgMCAwIDEgMTMuNDMgNS41NjZBMTguODcgMTguODcgMCAwIDEgNDMgMjMuOTk0Yy0uMDA0IDEwLjQ2NS04LjUyMiAxOC45OC0xOC45ODYgMTguOThoLS4wMDhhMTkgMTkgMCAwIDEtOS4wNzMtMi4zMTF6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQuODY4IDQzLjgwM2EuNS41IDAgMCAxLS40ODItLjYzMWwyLjYzOS05LjYzNmExOS41IDE5LjUgMCAwIDEtMi40OTctOS41NTZDNC41MzIgMTMuMjM4IDEzLjI3MyA0LjUgMjQuMDE0IDQuNWExOS4zNyAxOS4zNyAwIDAgMSAxMy43ODQgNS43MTNBMTkuMzYgMTkuMzYgMCAwIDEgNDMuNSAyMy45OTRjLS4wMDQgMTAuNzQxLTguNzQ2IDE5LjQ4LTE5LjQ4NiAxOS40OGExOS41NCAxOS41NCAwIDAgMS05LjE0NC0yLjI3N2wtOS44NzUgMi41ODlhLjUuNSAwIDAgMS0uMTI3LjAxNyIvPjxwYXRoIGZpbGw9IiNjZmQ4ZGMiIGQ9Ik0yNC4wMTQgNWExOC44NyAxOC44NyAwIDAgMSAxMy40MyA1LjU2NkExOC44NyAxOC44NyAwIDAgMSA0MyAyMy45OTRjLS4wMDQgMTAuNDY1LTguNTIyIDE4Ljk4LTE4Ljk4NiAxOC45OGgtLjAwOGExOSAxOSAwIDAgMS05LjA3My0yLjMxMWwtMTAuMDY1IDIuNjQgMi42OTQtOS44MzVhMTguOTQgMTguOTQgMCAwIDEtMi41MzUtOS40ODlDNS4wMzIgMTMuNTE0IDEzLjU0OCA1IDI0LjAxNCA1bTAtMUMxMi45OTggNCA0LjAzMiAxMi45NjIgNC4wMjcgMjMuOTc5YTIwIDIwIDAgMCAwIDIuNDYxIDkuNjIyTDMuOTAzIDQzLjA0YS45OTguOTk4IDAgMCAwIDEuMjE5IDEuMjMxbDkuNjg3LTIuNTRhMjAgMjAgMCAwIDAgOS4xOTcgMi4yNDRjMTEuMDI0IDAgMTkuOTktOC45NjMgMTkuOTk1LTE5Ljk4QTE5Ljg2IDE5Ljg2IDAgMCAwIDM4LjE1MyA5Ljg2IDE5Ljg3IDE5Ljg3IDAgMCAwIDI0LjAxNCA0Ii8+PHBhdGggZmlsbD0iIzQwYzM1MSIgZD0iTTM1LjE3NiAxMi44MzJhMTUuNjcgMTUuNjcgMCAwIDAtMTEuMTU3LTQuNjI2Yy04LjcwNCAwLTE1Ljc4MyA3LjA3Ni0xNS43ODcgMTUuNzc0YTE1Ljc0IDE1Ljc0IDAgMCAwIDIuNDEzIDguMzk2bC4zNzYuNTk3LTEuNTk1IDUuODIxIDUuOTczLTEuNTY2LjU3Ny4zNDJhMTUuNzUgMTUuNzUgMCAwIDAgOC4wMzIgMi4xOTloLjAwNmM4LjY5OCAwIDE1Ljc3Ny03LjA3NyAxNS43OC0xNS43NzZhMTUuNjggMTUuNjggMCAwIDAtNC42MTgtMTEuMTYxIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE5LjI2OCAxNi4wNDVjLS4zNTUtLjc5LS43MjktLjgwNi0xLjA2OC0uODItLjI3Ny0uMDEyLS41OTMtLjAxMS0uOTA5LS4wMTFzLS44My4xMTktMS4yNjUuNTk0LTEuNjYxIDEuNjIyLTEuNjYxIDMuOTU2IDEuNyA0LjU5IDEuOTM3IDQuOTA2IDMuMjgyIDUuMjU5IDguMTA0IDcuMTYxYzQuMDA3IDEuNTggNC44MjMgMS4yNjYgNS42OTMgMS4xODdzMi44MDctMS4xNDcgMy4yMDItMi4yNTUuMzk1LTIuMDU3LjI3Ny0yLjI1NWMtLjExOS0uMTk4LS40MzUtLjMxNi0uOTA5LS41NTRzLTIuODA3LTEuMzg1LTMuMjQyLTEuNTQzLS43NTEtLjIzNy0xLjA2OC4yMzhjLS4zMTYuNDc0LTEuMjI1IDEuNTQzLTEuNTAyIDEuODU5cy0uNTU0LjM1Ny0xLjAyOC4xMTktMi4wMDItLjczOC0zLjgxNS0yLjM1NGMtMS40MS0xLjI1Ny0yLjM2Mi0yLjgxLTIuNjM5LTMuMjg1LS4yNzctLjQ3NC0uMDMtLjczMS4yMDgtLjk2OC4yMTMtLjIxMy40NzQtLjU1NC43MTItLjgzMS4yMzctLjI3Ny4zMTYtLjQ3NS40NzQtLjc5MXMuMDc5LS41OTQtLjA0LS44MzFjLS4xMTctLjIzOC0xLjAzOS0yLjU4NC0xLjQ2MS0zLjUyMiIvPjwvc3ZnPg=="},"displayName":"WhatsApp Business Cloud","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"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":836,"icon":"file:compare.svg","name":"n8n-nodes-base.compareDatasets","codex":{"data":{"alias":["Join","Concatenate","Compare","Dataset","Split","Sync","Syncing"],"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.comparedatasets/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"Compare Datasets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzODQiIGhlaWdodD0iNTEyIj48cGF0aCBmaWxsPSIjZWQyMzBkIiBkPSJNMzUyIDQ0OEgzMmMtMTcuNjkgMC0zMiAxNC4zMS0zMiAzMnMxNC4zMSAzMS4xIDMyIDMxLjFoMzIwYzE3LjY5IDAgMzItMTQuMzEgMzItMzEuMXMtMTQuMy0zMi0zMi0zMiIvPjxwYXRoIGZpbGw9IiM2MmY3MzAiIGQ9Ik00OCAyMDhoMTEydjExMS4xYzAgMTcuNjkgMTQuMzEgMzEuMSAzMiAzMS4xczMyLTE0LjMxIDMyLTMxLjFWMjA4aDExMmMxNy42OSAwIDMyLTE0LjMyIDMyLTMyLjAxUzM1My42OSAxNDQgMzM2IDE0NEgyMjRWMzJjMC0xNy42OS0xNC4zMS0zMi4wMS0zMi0zMi4wMXMtMzIgMTQuMzQtMzIgMzIuMDJ2MTEySDQ4Yy0xNy42OSAwLTMyIDE0LjMxLTMyIDMxLjk5czE0LjMxIDMyIDMyIDMyIi8+PC9zdmc+"},"displayName":"Compare Datasets","typeVersion":2,"nodeCategories":[{"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":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1123,"icon":"fa:link","name":"@n8n/n8n-nodes-langchain.chainLlm","codex":{"data":{"alias":["LangChain"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Basic LLM Chain","color":"#909298"},"iconData":{"icon":"link","type":"icon"},"displayName":"Basic LLM Chain","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1163,"icon":"fa:database","name":"@n8n/n8n-nodes-langchain.memoryBufferWindow","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Memory"],"Memory":["For beginners"]}}},"group":"[\"transform\"]","defaults":{"name":"Simple Memory"},"iconData":{"icon":"database","type":"icon"},"displayName":"Simple Memory","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1179,"icon":"fa:code","name":"@n8n/n8n-nodes-langchain.outputParserStructured","codex":{"data":{"alias":["json","zod"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Output Parsers"]}}},"group":"[\"transform\"]","defaults":{"name":"Structured Output Parser"},"iconData":{"icon":"code","type":"icon"},"displayName":"Structured Output Parser","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"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"}]},{"id":1238,"icon":"file:removeDuplicates.svg","name":"n8n-nodes-base.removeDuplicates","codex":{"data":{"alias":["Dedupe","Deduplicate","Duplicates","Remove","Unique","Transform","Array","List","Item"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.removeduplicates/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Remove Duplicates"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjNTRCOEM5IiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGQ9Ik0xMzQuMDk3IDExMWgzOC44Mjl2MzIuNTA4SDEzOC4xNnYzNC42MzVoLTMyLjUwOHYtMzguNjk5YzAtMTUuNzA5IDEyLjczNS0yOC40NDQgMjguNDQ1LTI4LjQ0NG03Ny42NTggMzIuNTA4VjExMWg3Ny42NTd2MzIuNTA4em0xMTYuNDg2IDBWMTExaDc3LjY1OHYzMi41MDh6bTExNi40ODcgMFYxMTFoMzguODI5YzE1LjcxIDAgMjguNDQ1IDEyLjczNSAyOC40NDUgMjguNDQ0djM4LjY5OWgtMzIuNTA4di0zNC42MzV6bTM0Ljc2NiA3My4yMzhoMzIuNTA4djM4LjY5OGMwIDE1LjcxLTEyLjczNSAyOC40NDUtMjguNDQ1IDI4LjQ0NWgtMzguODI5di0zMi41MDhoMzQuNzY2ek0wIDI0NC41MzdDMCAyMjkuMzI5IDEyLjczNSAyMTcgMjguNDQ0IDIxN2gzNDkuNDYxYzE1LjcwOSAwIDI4LjQ0NCAxMi4zMjkgMjguNDQ0IDI3LjUzN3YxMjkuODE1YzAgMTUuMjA4LTEyLjczNSAyNy41MzctMjguNDQ0IDI3LjUzN0gyOC40NDVDMTIuNzM0IDQwMS44ODkgMCAzODkuNTYgMCAzNzQuMzUyeiIvPjwvZz48ZGVmcz48Y2xpcFBhdGggaWQ9ImEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoNTEydjUxMkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg=="},"displayName":"Remove Duplicates","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1260,"icon":"file:whatsapp.svg","name":"n8n-nodes-base.whatsAppTrigger","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.whatsapptrigger/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/whatsapp/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"WhatsApp Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQuODY4IDQzLjMwMyAyLjY5NC05LjgzNWExOC45NCAxOC45NCAwIDAgMS0yLjUzNS05LjQ4OUM1LjAzMiAxMy41MTQgMTMuNTQ4IDUgMjQuMDE0IDVhMTguODcgMTguODcgMCAwIDEgMTMuNDMgNS41NjZBMTguODcgMTguODcgMCAwIDEgNDMgMjMuOTk0Yy0uMDA0IDEwLjQ2NS04LjUyMiAxOC45OC0xOC45ODYgMTguOThoLS4wMDhhMTkgMTkgMCAwIDEtOS4wNzMtMi4zMTF6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQuODY4IDQzLjgwM2EuNS41IDAgMCAxLS40ODItLjYzMWwyLjYzOS05LjYzNmExOS41IDE5LjUgMCAwIDEtMi40OTctOS41NTZDNC41MzIgMTMuMjM4IDEzLjI3MyA0LjUgMjQuMDE0IDQuNWExOS4zNyAxOS4zNyAwIDAgMSAxMy43ODQgNS43MTNBMTkuMzYgMTkuMzYgMCAwIDEgNDMuNSAyMy45OTRjLS4wMDQgMTAuNzQxLTguNzQ2IDE5LjQ4LTE5LjQ4NiAxOS40OGExOS41NCAxOS41NCAwIDAgMS05LjE0NC0yLjI3N2wtOS44NzUgMi41ODlhLjUuNSAwIDAgMS0uMTI3LjAxNyIvPjxwYXRoIGZpbGw9IiNjZmQ4ZGMiIGQ9Ik0yNC4wMTQgNWExOC44NyAxOC44NyAwIDAgMSAxMy40MyA1LjU2NkExOC44NyAxOC44NyAwIDAgMSA0MyAyMy45OTRjLS4wMDQgMTAuNDY1LTguNTIyIDE4Ljk4LTE4Ljk4NiAxOC45OGgtLjAwOGExOSAxOSAwIDAgMS05LjA3My0yLjMxMWwtMTAuMDY1IDIuNjQgMi42OTQtOS44MzVhMTguOTQgMTguOTQgMCAwIDEtMi41MzUtOS40ODlDNS4wMzIgMTMuNTE0IDEzLjU0OCA1IDI0LjAxNCA1bTAtMUMxMi45OTggNCA0LjAzMiAxMi45NjIgNC4wMjcgMjMuOTc5YTIwIDIwIDAgMCAwIDIuNDYxIDkuNjIyTDMuOTAzIDQzLjA0YS45OTguOTk4IDAgMCAwIDEuMjE5IDEuMjMxbDkuNjg3LTIuNTRhMjAgMjAgMCAwIDAgOS4xOTcgMi4yNDRjMTEuMDI0IDAgMTkuOTktOC45NjMgMTkuOTk1LTE5Ljk4QTE5Ljg2IDE5Ljg2IDAgMCAwIDM4LjE1MyA5Ljg2IDE5Ljg3IDE5Ljg3IDAgMCAwIDI0LjAxNCA0Ii8+PHBhdGggZmlsbD0iIzQwYzM1MSIgZD0iTTM1LjE3NiAxMi44MzJhMTUuNjcgMTUuNjcgMCAwIDAtMTEuMTU3LTQuNjI2Yy04LjcwNCAwLTE1Ljc4MyA3LjA3Ni0xNS43ODcgMTUuNzc0YTE1Ljc0IDE1Ljc0IDAgMCAwIDIuNDEzIDguMzk2bC4zNzYuNTk3LTEuNTk1IDUuODIxIDUuOTczLTEuNTY2LjU3Ny4zNDJhMTUuNzUgMTUuNzUgMCAwIDAgOC4wMzIgMi4xOTloLjAwNmM4LjY5OCAwIDE1Ljc3Ny03LjA3NyAxNS43OC0xNS43NzZhMTUuNjggMTUuNjggMCAwIDAtNC42MTgtMTEuMTYxIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTE5LjI2OCAxNi4wNDVjLS4zNTUtLjc5LS43MjktLjgwNi0xLjA2OC0uODItLjI3Ny0uMDEyLS41OTMtLjAxMS0uOTA5LS4wMTFzLS44My4xMTktMS4yNjUuNTk0LTEuNjYxIDEuNjIyLTEuNjYxIDMuOTU2IDEuNyA0LjU5IDEuOTM3IDQuOTA2IDMuMjgyIDUuMjU5IDguMTA0IDcuMTYxYzQuMDA3IDEuNTggNC44MjMgMS4yNjYgNS42OTMgMS4xODdzMi44MDctMS4xNDcgMy4yMDItMi4yNTUuMzk1LTIuMDU3LjI3Ny0yLjI1NWMtLjExOS0uMTk4LS40MzUtLjMxNi0uOTA5LS41NTRzLTIuODA3LTEuMzg1LTMuMjQyLTEuNTQzLS43NTEtLjIzNy0xLjA2OC4yMzhjLS4zMTYuNDc0LTEuMjI1IDEuNTQzLTEuNTAyIDEuODU5cy0uNTU0LjM1Ny0xLjAyOC4xMTktMi4wMDItLjczOC0zLjgxNS0yLjM1NGMtMS40MS0xLjI1Ny0yLjM2Mi0yLjgxLTIuNjM5LTMuMjg1LS4yNzctLjQ3NC0uMDMtLjczMS4yMDgtLjk2OC4yMTMtLjIxMy40NzQtLjU1NC43MTItLjgzMS4yMzctLjI3Ny4zMTYtLjQ3NS40NzQtLjc5MXMuMDc5LS41OTQtLjA0LS44MzFjLS4xMTctLjIzOC0xLjAzOS0yLjU4NC0xLjQ2MS0zLjUyMiIvPjwvc3ZnPg=="},"displayName":"WhatsApp Trigger","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]}],"categories":[{"id":37,"name":"Lead Generation"},{"id":47,"name":"AI Chatbot"}],"image":[]}}