N
n8n Store
Workflow Market
Smart Real Estate Marketing via Email & Calls with AI Lead Generation

Smart Real Estate Marketing via Email & Calls with AI Lead Generation

by oneclick-ai1 views

Description

Categories

🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.coden8n-nodes-base.waitn8n-nodes-base.waitn8n-nodes-base.gmailn8n-nodes-base.webhookn8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceGratuit
Views1
Last Updated1/26/2026
workflow.json
{
  "id": "winYQ758rQnKUEwz",
  "meta": {
    "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
    "templateCredsSetupCompleted": true
  },
  "name": "Smart Real Estate Marketing via Email & Calls with AI Lead Generation",
  "tags": [],
  "nodes": [
    {
      "id": "c41e4b49-9c64-44c7-941f-b855d1c156b9",
      "name": "Llama 3.2 - Promo Content Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOllama",
      "position": [
        768,
        640
      ],
      "parameters": {
        "model": "llama3.2-16000:latest",
        "options": {}
      },
      "credentials": {
        "ollamaApi": {
          "id": "vDhjHnEfhHheDgd6",
          "name": "Ollama-vrushti"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "360ef908-8473-420f-ad04-288a804cd56d",
      "name": "Watch Real Estate Offer Sheet",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        240,
        370
      ],
      "parameters": {
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": 1574728929
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1kRRDSoJNzVQAUbunYzAk-KUBcMjhuUw0PydGjLbbEVg"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "id": "BoDTTv5L67GVL3Fi",
          "name": "Google Sheets  - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7459aa86-67c4-417b-b20f-4693e564884d",
      "name": "Get Client Contact List",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        460,
        370
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "gid=0"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1kRRDSoJNzVQAUbunYzAk-KUBcMjhuUw0PydGjLbbEVg"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "ScSS2KxGQULuPtdy",
          "name": "Google Sheets- test"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "70fe474a-74fd-44c4-88e2-37d40805fe1d",
      "name": "Trigger Voice Campaign via VAPI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        720,
        -20
      ],
      "parameters": {
        "url": "https://api.vapi.ai/call",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"assistantId\": \"add_id_here\",\n  \"phoneNumberId\": \"add_phone_number_id_here\",\n  \"customers\": [\n    {\n      \"number\": \"add_vapi_agent_phonenumber_here\"\n    }\n  ]\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "add_authorization_token_here"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "05c2d036-974b-4d8d-a1d3-de241e0ad2c8",
      "name": "Generate Promo Content with Llama",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        680,
        420
      ],
      "parameters": {
        "text": "=You are an expert real estate sales copywriter. Based on the provided property offer, craft a persuasive and emotionally engaging promotional message for WhatsApp or Email that drives immediate action and lead generation through calls or clicks.\n\n🎯 Objective:\nDrive lead inquiries and bookings by showcasing value, urgency, and exclusivity in an impactful, action-focused message.\n\n📌 Format Guidelines:\n\nMax 150 words\n\nShort, crisp lines (WhatsApp/email friendly)\n\nAdd 3–5 real-estate-relevant emojis for appeal\n\nUse a warm, enthusiastic, benefit-driven tone\n\nBold hooks, emotional appeal, urgency & CTA\n\nUse <ul> lists for features and benefits\n\n📋 Offer Data:\n\nProject Name: {{ $json.title }}\n\nLocation: {{ $json.location }}\n\nDiscount: {{ $json.discount }}\n\nValid Till: {{ $json.validity }}\n\nInclusions: {{ $json.products_included }}\n\nOriginal Price: {{ $json.original_price }}\n\nOffer Price: {{ $json.discounted_price }}\n\nFreebie/Bonus: {{ $json.bonus }}\n\nContact Action: {{ $json.cta }}\n\n📢 Message Structure:\n\nCatchy Headline with 1–2 emojis + {{ $json.title }} or location hook\n\nEmotional intro (e.g., “Your dream home awaits” / “Invest smart, live better”)\n\nMention original price vs offer price + discount clearly\n\nFeature list in <ul> – highlight rooms, view, amenities\n\nBenefit list in <ul> – ROI, lifestyle, security, location perks\n\nHighlight {{ $json.bonus }} as exclusive gift 🎁\n\nCreate urgency – {{ $json.validity }} + “limited units” with ⏳\n\nEnd with high-energy CTA + contact/call prompt: {{ $json.cta }}\n\n🧾 Sample Output Format:\n\n🏡 LIMITED DEAL IN {{ $json.location }}! 🌇\n\nLooking for your dream property? This is the sign you've been waiting for!\n\n💰 Just {{ $json.discounted_price }} ({{ $json.discount }} OFF {{ $json.original_price }})!\n\n✨ What You Get:\n\n<ul> <li>3BHK Spacious Apartment with Balcony View</li> <li>Modern Kitchen, Smart Layout, Prime Location</li> </ul>\n🔑 Why It's Perfect:\n\n<ul> <li>✔️ Excellent ROI & Growing Area</li> <li>✔️ Secure Gated Community with Top Amenities</li> <li>✔️ Ideal for Families or Investors</li> </ul>\n🎁 Bonus: {{ $json.bonus }} included exclusively!\n\n⏳ Hurry! Offer valid till {{ $json.validity }}. Limited units available!\n\n📞 {{ $json.cta }} now to book your site visit or get full details!",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "c60a67d2-c2e9-4cda-99a3-998acaeefaf7",
      "name": "Delay to Sync Data",
      "type": "n8n-nodes-base.wait",
      "position": [
        1056,
        520
      ],
      "webhookId": "76321858-c2b9-4c53-bc5f-90b4e32e2693",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "33e6da41-1d90-448b-99bf-6e504799951c",
      "name": "Create Personalized Email Template",
      "type": "n8n-nodes-base.code",
      "position": [
        1276,
        520
      ],
      "parameters": {
        "jsCode": "const emails = items.map(item => item.json.Emial);\nreturn [\n  {\n    json: {\n      allEmails: emails.join(\", \"),\n      output : $('Generate Promo Content with Llama').first().json.output\n    }\n  }\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "3f4f7f36-dfc0-4dd0-aae6-629aa036811f",
      "name": "Email Promo to Clients (Gmail)",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1496,
        520
      ],
      "webhookId": "012ca109-03f0-445c-826c-45b4e85d21fe",
      "parameters": {
        "sendTo": "={{ $json.allEmails }}",
        "message": "={{ $json.output }}",
        "options": {},
        "subject": "Offer",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "PcTqvGU9uCunfltE",
          "name": "Gmail account - test"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "683c5242-cd5b-4797-a260-f7be9aad0c2f",
      "name": "Receive Lead Data from VAPI",
      "type": "n8n-nodes-base.webhook",
      "position": [
        240,
        1100
      ],
      "webhookId": "60d5fdeb-b5d8-4e71-90d0-182acc695404",
      "parameters": {
        "path": "60d5fdeb-b5d8-4e71-90d0-182acc695404",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "6bee22d4-c599-42ca-a98e-c80e6a3e3283",
      "name": "Delay for Lead Parsing",
      "type": "n8n-nodes-base.wait",
      "position": [
        500,
        1100
      ],
      "webhookId": "7d356500-7ff6-4133-805f-5aa5cd5b2310",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "37dceb9f-374d-43d6-8f4d-46ff4040e43d",
      "name": "Save Lead to CRM Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        760,
        1100
      ],
      "parameters": {
        "columns": {
          "value": {
            "Name ": "={{ $json.body.message.toolCallList[0].function.arguments.name }}",
            "Company name": "={{ $json.body.message.toolCallList[0].function.arguments.company_name }}",
            "Company size": "={{ $json.body.message.toolCallList[0].function.arguments.company_size }}"
          },
          "schema": [
            {
              "id": "Name ",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Name ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company name",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Company name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company size",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Company size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "Name "
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "gid=0"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "1DCq5a_I2KyD0Tt5Z_TqluZOM1sq6KI05PaxmVVI7J4o"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "ScSS2KxGQULuPtdy",
          "name": "Google Sheets- test"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "b1e6b857-f0b2-4e6f-a8fb-23e7d8ef4f81",
      "name": "Send Acknowledgement to VAPI",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1000,
        1100
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "0f0056d4-5d72-4b41-bf9d-5b4b3522fde0",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        200,
        220
      ],
      "parameters": {
        "color": 3,
        "width": 160,
        "height": 340,
        "content": "Triggers when a new offer is added/updated in Sheet 1. Starts the marketing campaign.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "aeb5d09d-bca4-404c-9bd0-df7546f93fbd",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        920
      ],
      "parameters": {
        "color": 4,
        "width": 160,
        "height": 340,
        "content": "Sends success response back to VAPI confirming lead was saved.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "3082042c-8524-4637-b708-ed3395776d6e",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        920
      ],
      "parameters": {
        "width": 160,
        "height": 340,
        "content": "Adds qualified leads to Google Sheet CRM for future follow-up.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9bba9391-3b55-4dd1-b992-d85b2fa2afa5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        920
      ],
      "parameters": {
        "color": 3,
        "width": 160,
        "height": 340,
        "content": "Brief wait to ensure VAPI lead payload is fully captured and parsed.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a6dc7a3e-a3d3-4e03-969f-279416c03683",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        920
      ],
      "parameters": {
        "color": 5,
        "width": 160,
        "height": 340,
        "content": "Captures lead info from VAPI voice call form (name, contact, interest, etc.).\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1be66d0b-e30b-48fb-834c-77581862fdc9",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        -220
      ],
      "parameters": {
        "width": 180,
        "height": 340,
        "content": "Initiates automated voice call to clients with key offer details using VAPI API.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "60edd47d-5e4e-4118-aa61-36c25957b2bb",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1020,
        360
      ],
      "parameters": {
        "color": 2,
        "width": 160,
        "height": 340,
        "content": "Adds a pause to ensure all prior operations (API, sheets, AI) are complete.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "93662cd4-dac8-407a-b43f-0ef436030660",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1240,
        360
      ],
      "parameters": {
        "color": 5,
        "width": 160,
        "height": 340,
        "content": "Formats the AI output into HTML/text email ready for sending to clients.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b8e0d638-0f9b-4110-aae7-38c138ca92b0",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1480,
        380
      ],
      "parameters": {
        "color": 4,
        "width": 160,
        "height": 340,
        "content": "Sends the personalized offer campaign to each client using Gmail or SMTP.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "491498cf-4b34-4952-8030-0efd609fa112",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        240
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 340,
        "content": "Uses AI to create personalized marketing content based on updated offer.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "12b91ddf-12b4-4933-a75d-f31b64c0a977",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        220
      ],
      "parameters": {
        "color": 4,
        "width": 160,
        "height": 340,
        "content": "Fetches email/phone info from Sheet 2 to target clients for this offer.\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "1f7cc259-cf7c-4710-99f6-881706d55882",
  "connections": {
    "Delay to Sync Data": {
      "main": [
        [
          {
            "node": "Create Personalized Email Template",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Delay for Lead Parsing": {
      "main": [
        [
          {
            "node": "Save Lead to CRM Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Lead to CRM Sheet": {
      "main": [
        [
          {
            "node": "Send Acknowledgement to VAPI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Client Contact List": {
      "main": [
        [
          {
            "node": "Trigger Voice Campaign via VAPI",
            "type": "main",
            "index": 0
          },
          {
            "node": "Generate Promo Content with Llama",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Receive Lead Data from VAPI": {
      "main": [
        [
          {
            "node": "Delay for Lead Parsing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Watch Real Estate Offer Sheet": {
      "main": [
        [
          {
            "node": "Get Client Contact List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Llama 3.2 - Promo Content Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate Promo Content with Llama",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Generate Promo Content with Llama": {
      "main": [
        [
          {
            "node": "Delay to Sync Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Personalized Email Template": {
      "main": [
        [
          {
            "node": "Email Promo to Clients (Gmail)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流