
Smart Real Estate Marketing via Email & Calls with AI Lead Generation
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
PriceGratis
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
}
]
]
}
}
}