{
  "name": "Capture, qualify, and route real estate leads with WhatsApp, Typeform, Airtable, Slack, Gmail, and GPT-4.1-mini",
  "nodes": [
    {
      "id": "b4075f28-c730-4a73-abda-0ca8c401ccf4",
      "name": "Combine All Lead Sources",
      "type": "n8n-nodes-base.merge",
      "position": [
        1184,
        1376
      ]
    },
    {
      "id": "1d5d54af-9434-485f-9511-1ab38c99f02f",
      "name": "Check for Duplicates in CRM",
      "type": "n8n-nodes-base.compareDatasets",
      "position": [
        1856,
        1344
      ]
    },
    {
      "id": "521165ee-988b-4c5e-a156-0e7a4ce2d22b",
      "name": "Remove Duplicate Leads",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        1408,
        1376
      ]
    },
    {
      "id": "5e2be9bd-30d3-4f77-9584-abd223ccb0f4",
      "name": "Weekly Report Schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        480,
        2384
      ]
    },
    {
      "id": "64b54ec9-b55d-47cb-baf6-9a4a8fa01066",
      "name": "Aggregate Report Data",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1216,
        2224
      ]
    },
    {
      "id": "0fd5f029-5589-4a1f-8523-e5c9d766f096",
      "name": "Format Weekly Report",
      "type": "n8n-nodes-base.set",
      "position": [
        1744,
        2336
      ]
    },
    {
      "id": "e18393cf-a30d-4844-bc95-bc65d5e83f37",
      "name": "Send Weekly Report",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1984,
        2336
      ]
    },
    {
      "id": "91738356-a921-47e7-90a0-96bdb6cb9232",
      "name": "Typeform Trigger",
      "type": "n8n-nodes-base.typeformTrigger",
      "position": [
        112,
        1632
      ]
    },
    {
      "id": "c35fd8b6-15b5-43de-8ed5-22f78dc6343f",
      "name": "WhatsApp Trigger",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "position": [
        0,
        144
      ]
    },
    {
      "id": "c1366bee-f0ec-429f-829c-4b2086d36cd2",
      "name": "Route by Location/Property Type1",
      "type": "n8n-nodes-base.switch",
      "position": [
        2080,
        1184
      ]
    },
    {
      "id": "45702fe8-c152-49e2-b035-f8ea0d1f68c3",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3488,
        1360
      ]
    },
    {
      "id": "00677f1e-e630-4f25-adee-8e156817a2ca",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2528,
        1264
      ]
    },
    {
      "id": "b30f5c3b-228a-4fa8-9ae8-ac1673dce6e9",
      "name": "Basic LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2752,
        1264
      ]
    },
    {
      "id": "8d8e6447-88e6-40ed-a14e-f178f8863cc3",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2832,
        1488
      ]
    },
    {
      "id": "5c6fb3be-79a6-45a7-a4b8-53cb442907b5",
      "name": "Search records",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1632,
        1312
      ]
    },
    {
      "id": "e85e52ae-22b0-499c-9ec0-ad35f56d9cd1",
      "name": "Get Records",
      "type": "n8n-nodes-base.airtable",
      "position": [
        720,
        2224
      ]
    },
    {
      "id": "c5100352-5b20-409f-b74c-1df97e479f9f",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        528,
        192
      ]
    },
    {
      "id": "b44f8962-6509-4703-abc3-22e84125d0fa",
      "name": "Lead Collection Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        272,
        416
      ]
    },
    {
      "id": "ffe4bc87-e32d-4d10-979e-4df66053b9d1",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        544,
        784
      ]
    },
    {
      "id": "54bf7bbf-d58d-4e9a-9188-46045b2c71be",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        368,
        608
      ]
    },
    {
      "id": "abd5534e-ddce-49d3-a422-1a9629c72a65",
      "name": "Extract Lead Info",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        240,
        1120
      ]
    },
    {
      "id": "33cf1b46-e9c3-412b-8755-83bd3490a6cd",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        480,
        1296
      ]
    },
    {
      "id": "c16d9f6f-05b1-4673-80b7-3176ecceb905",
      "name": "No Operation, do nothing1",
      "type": "n8n-nodes-base.noOp",
      "position": [
        320,
        1360
      ]
    },
    {
      "id": "acfe3b63-6637-443b-aa54-2edd1c2bc6ff",
      "name": "Round-Robin Agent Assignment1",
      "type": "n8n-nodes-base.code",
      "position": [
        2304,
        1264
      ]
    },
    {
      "id": "0c6207bb-9299-4d75-ac8d-efdc616159cf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1184,
        928
      ],
      "parameters": {
        "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"
      }
    },
    {
      "id": "e8a87170-0b1e-4e8f-89d0-5bef5f9a4f96",
      "name": "Info Completeness Check",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        208,
        800
      ]
    },
    {
      "id": "c16b021d-1183-4f39-8ee1-59355e1bd1eb",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1376,
        960
      ],
      "parameters": {
        "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"
      }
    },
    {
      "id": "bfe44d71-f6c7-479d-a7f3-747de1bf829d",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2032,
        1504
      ],
      "parameters": {
        "width": 208,
        "height": 288,
        "content": "## Store Duplicates in CRM"
      }
    },
    {
      "id": "317b4f32-c166-4038-8f35-38d6e6010f81",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2032,
        960
      ],
      "parameters": {
        "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"
      }
    },
    {
      "id": "a0d45e94-5980-4646-a9dd-3fb3e20ada9f",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2464,
        960
      ],
      "parameters": {
        "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"
      }
    },
    {
      "id": "86b9e12f-2c8c-4c2f-913f-f2a5bfa8d667",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3056,
        960
      ],
      "parameters": {
        "width": 320,
        "height": 480,
        "content": "## CRM Storage (Airtable)\n\nStores lead data:\n- Main CRM table (new leads)\n- Assignment metadata\n"
      }
    },
    {
      "id": "9e8771d5-5def-445a-a9b1-09f9e863d92e",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3408,
        960
      ],
      "parameters": {
        "width": 304,
        "height": 576,
        "content": "## Notifications & Alerts\n\nNotifies stakeholders:\n- Email to assigned agent\n- Slack alerts\n- Internal follow-ups\n"
      }
    },
    {
      "id": "537abe8a-20dd-4545-86e5-8114ca7fd5a9",
      "name": "Get Duplicates Records",
      "type": "n8n-nodes-base.airtable",
      "position": [
        880,
        2496
      ]
    },
    {
      "id": "540efe59-8416-48e0-85f1-a7b0772d6253",
      "name": "7-Day Duplicate Count",
      "type": "n8n-nodes-base.code",
      "position": [
        1232,
        2496
      ]
    },
    {
      "id": "d556b761-105f-40a5-9c7f-88769b563069",
      "name": "Weekly Fetch",
      "type": "n8n-nodes-base.code",
      "position": [
        976,
        2224
      ]
    },
    {
      "id": "67f40805-e205-499c-b6a9-4077a8ba9bac",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        352,
        2128
      ],
      "parameters": {
        "width": 1824,
        "height": 528,
        "content": "## Reporting & Analytics\n\nScheduled reporting:\n- Weekly lead summary\n- Duplicate analysis\n- Performance insights\n"
      }
    },
    {
      "id": "088361a0-e332-40c3-90fd-54eea97db02d",
      "name": "WhatsApp Texts Only",
      "type": "n8n-nodes-base.switch",
      "position": [
        256,
        144
      ]
    },
    {
      "id": "1f1c904d-b9cf-4b0b-b92f-a2211305c89f",
      "name": "Send message",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        64,
        800
      ]
    },
    {
      "id": "927e6bea-510b-4cd4-a5d2-eb6eb77428a1",
      "name": "Create Duplicate record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2080,
        1632
      ]
    },
    {
      "id": "9b9a5e2d-a6b2-4c1c-ac3b-d2e3c53a03cc",
      "name": "Create A Record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        3168,
        1264
      ]
    },
    {
      "id": "df6fed44-a457-4832-8233-743764c082a3",
      "name": "Combine both duplicate and non-duplicate records",
      "type": "n8n-nodes-base.merge",
      "position": [
        1504,
        2336
      ]
    },
    {
      "id": "873e1c90-c4bc-4b7e-84fe-86162c89fdda",
      "name": "Are All Info Complete?",
      "type": "n8n-nodes-base.if",
      "position": [
        80,
        1248
      ]
    },
    {
      "id": "bf49832f-e7de-4511-925f-8d7dc5462ccc",
      "name": "Normalize Form Leads",
      "type": "n8n-nodes-base.set",
      "position": [
        896,
        1632
      ]
    },
    {
      "id": "cc30d292-f0c4-498b-a474-c413ab03eb42",
      "name": "Normalize WhatsApp Leads",
      "type": "n8n-nodes-base.set",
      "position": [
        880,
        1120
      ]
    },
    {
      "id": "9bed02dc-dfc4-429a-a32c-234cc3cb04f4",
      "name": "Notify Agent via Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        3488,
        1168
      ]
    },
    {
      "id": "b9ef618b-9317-4ce1-8651-6d67cbd20973",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        784,
        768
      ],
      "parameters": {
        "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."
      }
    },
    {
      "id": "a5491567-d2a5-4f1f-beb9-01ef1e3ecd91",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        1552
      ],
      "parameters": {
        "width": 400,
        "height": 240,
        "content": "## Website forms Lead intake"
      }
    },
    {
      "id": "0cc9e4ab-d430-4b4e-ae8c-b9fd47a6808b",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        32
      ],
      "parameters": {
        "width": 624,
        "height": 288,
        "content": "## WhatsApp Lead intake"
      }
    },
    {
      "id": "56f18543-49bc-446d-ba1c-cbce1260d9e7",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        336
      ],
      "parameters": {
        "width": 624,
        "height": 288,
        "content": "### WhatsApp AI Agent - Lead Collection\n- Engages WhatsApp users automatically\n- Collects initial lead details and intent"
      }
    },
    {
      "id": "627e674a-de54-4733-b5cf-602904b74367",
      "name": "Sticky Note14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        656
      ],
      "parameters": {
        "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"
      }
    },
    {
      "id": "76c7dccc-8546-422c-bf8d-e7800fdf23a7",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -112,
        1040
      ],
      "parameters": {
        "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"
      }
    }
  ],
  "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
          }
        ]
      ]
    }
  }
}