{
  "name": "Qualify real estate leads from Typeform to Airtable with Gemini and smart email routing",
  "nodes": [
    {
      "id": "90fb7e98-29a0-4f57-9fbc-49a92ecb0bb6",
      "name": "Google Gemini Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        5376,
        3904
      ]
    },
    {
      "id": "c1e12098-b371-4a04-b20b-c1453ad24a5d",
      "name": "Nurture Email — Medium/Low Lead2",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        6816,
        3840
      ]
    },
    {
      "id": "01540a94-d3a7-4e87-b47c-4ef9d62355c0",
      "name": "Priority Email — High Lead2",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        6816,
        3360
      ]
    },
    {
      "id": "00840730-9479-431c-a116-49b158352763",
      "name": "High Lead?2",
      "type": "n8n-nodes-base.if",
      "position": [
        6464,
        3600
      ]
    },
    {
      "id": "5da4dd2e-a654-44b0-9801-b60ce3189924",
      "name": "Save to Airtable2",
      "type": "n8n-nodes-base.airtable",
      "position": [
        6096,
        3600
      ]
    },
    {
      "id": "065a88d7-8ad2-421f-af63-f37d34519ccd",
      "name": "Parse AI Output2",
      "type": "n8n-nodes-base.code",
      "position": [
        5728,
        3600
      ]
    },
    {
      "id": "1e8ae181-0d83-4be2-a225-3f11cb7163dc",
      "name": "AI Lead Qualifier2",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        5264,
        3600
      ]
    },
    {
      "id": "597b672e-5187-47cd-8c11-9558c357affc",
      "name": "Extract Typeform Fields1",
      "type": "n8n-nodes-base.code",
      "position": [
        4912,
        3600
      ]
    },
    {
      "id": "1e8565dd-9538-4875-b31a-da53b69b849d",
      "name": "Webhook1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        4528,
        3600
      ]
    },
    {
      "id": "156265b2-b77d-4a56-9b4b-bfffda64f055",
      "name": "Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4448,
        3072
      ],
      "parameters": {
        "width": 1100,
        "height": 280,
        "content": "## 🏠 Real Estate Lead Qualifier\n\nTypeform submission → AI scores the lead (High / Medium / Low) → saves to Airtable CRM → sends the right email automatically. No manual triage needed.\n\n**Setup checkli"
      }
    },
    {
      "id": "fa3971b5-6761-46a1-aeae-896470486ee0",
      "name": "Webhook note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4448,
        3408
      ],
      "parameters": {
        "width": 290,
        "height": 402,
        "content": "**Webhook**\n\nTypeform POSTs here on every submission. Copy the production URL from this node and paste it into:\nTypeform → Connect → Webhooks"
      }
    },
    {
      "id": "13394412-3d94-4d79-aa57-ad7fbd837e9e",
      "name": "Extractor note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4816,
        3408
      ],
      "parameters": {
        "width": 322,
        "height": 400,
        "content": "**Extract Typeform Fields**\n\nTypeform sends field *reference IDs*, not names. This node maps refs → values.\n\n⚠️ If you rebuild the form, update the REF_ constants at the top of this node. Log a test w"
      }
    },
    {
      "id": "5e4aedfb-c1ef-406e-9452-8ae477e49a16",
      "name": "AI note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5184,
        3408
      ],
      "parameters": {
        "width": 370,
        "height": 388,
        "content": "**AI Lead Qualifier**\n\nGemini reads the lead and returns JSON:\n• `lead_score` — High / Medium / Low\n• `intent` — what they actually want\n• `timeline` — how urgent\n• `notes` — summary for sales\n\nEdit s"
      }
    },
    {
      "id": "602203da-a46e-49fd-817e-932827389390",
      "name": "Model note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5104,
        3856
      ],
      "parameters": {
        "width": 450,
        "height": 186,
        "content": "Connect your Gemini credential here.\nCan swap for GPT-4o or Claude "
      }
    },
    {
      "id": "13568e8f-2eab-491f-8ecc-9d5bded2dac9",
      "name": "Parse note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5600,
        3408
      ],
      "parameters": {
        "width": 322,
        "height": 388,
        "content": "**Parse AI Output**\n\nGemini sometimes wraps JSON in backticks or adds extra text. This node tries 4 approaches to extract clean JSON — direct parse, strip fences, regex, field-by-field fallback.\n\nIf s"
      }
    },
    {
      "id": "0185f9e7-eecc-448b-90ca-e03473cca03d",
      "name": "Airtable note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5968,
        3376
      ],
      "parameters": {
        "width": 370,
        "height": 418,
        "content": "**Save to Airtable**\n\nCreates a new CRM record with all lead data + AI assessment.\n\nYour base needs these fields: Full Name, Email, Phone, Property Type, Purpose, Location, Budget, Requirements, Submi"
      }
    },
    {
      "id": "5e628d9e-6d5f-4728-992c-c8c45b4ab2ca",
      "name": "Route note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6384,
        3376
      ],
      "parameters": {
        "width": 264,
        "height": 418,
        "content": "**Route by score**\n\nHigh → priority email\nAnything else → nurture email\n\nWant a third path for Low leads? Add another IF after this one."
      }
    },
    {
      "id": "c1592048-2cb9-43d3-8c84-bfd95f96c384",
      "name": "High email note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6720,
        3200
      ],
      "parameters": {
        "width": 348,
        "height": 374,
        "content": "**Priority email — High leads**\n\nGoes out immediately. Promises callback within 2 hours — make sure your team is ready when this fires.\n\nUpdate `fromEmail` before going live."
      }
    },
    {
      "id": "5c324e57-fba4-47c5-9db3-8965d9a4acdc",
      "name": "Nurture email note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        6720,
        3664
      ],
      "parameters": {
        "width": 348,
        "height": 354,
        "content": "**Nurture email — Medium & Low**\n\nWarmer tone, no urgency. Promises 1–2 business days.\n\nSame SMTP credential as the priority email above."
      }
    }
  ],
  "connections": {
    "Webhook1": {
      "main": [
        [
          {
            "node": "Extract Typeform Fields1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "High Lead?2": {
      "main": [
        [
          {
            "node": "Priority Email — High Lead2",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Nurture Email — Medium/Low Lead2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Output2": {
      "main": [
        [
          {
            "node": "Save to Airtable2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save to Airtable2": {
      "main": [
        [
          {
            "node": "High Lead?2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Lead Qualifier2": {
      "main": [
        [
          {
            "node": "Parse AI Output2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Typeform Fields1": {
      "main": [
        [
          {
            "node": "AI Lead Qualifier2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "AI Lead Qualifier2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}