n8n workflow · Chapter 3 of 5
AI Real Estate Calling Agent (Sales)
Updated · Tested on n8n 1.x · Part of the n8n Real Estate ebook
An AI voice agent phones your warm leads every hour, qualifies them and tries to book a viewing — then saves a summary to your CRM and Telegram.

How this n8n workflow works
- 1Every hour it picks warm leads not yet called
- 2The AI voice agent dials the lead
- 3After the call, AI writes a summary
- 4Your CRM is updated
Who this workflow is for
- Real-estate agents & brokerages — every warm lead gets a call within the hour, even when the whole team is busy or off.
- Property developers & project sales — follow up hundreds of campaign leads by phone without a call-centre.
- Any high-ticket business — the same pattern qualifies and books appointments for clinics, car dealers, education, finance.
Why it matters: Leads go cold fast — a warm buyer who isn't called within the hour often books with whoever does call. A voice AI that phones every warm lead automatically, qualifies them, and books viewings means your agents walk in each morning to a list of booked viewings and hot call-backs instead of a pile of un-dialled numbers — for a few cents of AI + voice minutes per call.
Inside the workflow: node by node
Every one of these nodes is explained in the ebook, with each setting, prompt and expression printed so you can copy it.
- 1. Schedule – Due Leads — The Hourly Trigger
- 2. Get RE Leads — Load the CRM
- 3. Select Due Leads — Pick Who to Call
- 4. Lead Fields (Sheet) — Tidy the Lead for the Call
- 5. Place OmniDimension Call — Dial the Lead
- 6. Mark Lead Dialing — Don't Call Twice
- 7. Webhook – Trigger Call — Let Another Workflow Call One Lead
- 8. Lead Fields (Webhook) — Tidy the Webhook Lead
- 9. Manual Test – Due Lead + Sample Due Lead — Build Without Calling
- 10. Webhook – Call Result — Receive the Transcript
- 11. Flatten Transcript — Turn Any Format Into Clean Text
- 12. report Genration agent — Summarise the Call
- 13. structurize reprot — Split the Summary Into Fields
- 14. Update RE Lead — Write the Call Result to the CRM
- 15. Log RE Activity — Record the Call in the Audit Log
- 16. Owner Call Summary — Telegram the Recap
- 17. On Error → Error Alert — The Safety Net
Before you start
- An n8n account (Cloud or self-hosted) — hosts this workflow + its webhook URLs.
- An OmniDimension account (omnidim.io) — the voice AI + phone number that makes the calls. You'll need an API key, an agent ID, and an outbound phone number.
- A Google Sheets credential — the same RE CRM sheet from Chapters 1–2.
- An OpenAI (or OpenRouter) API key — writes the post-call summary.
- A Telegram bot + your chat ID — the call-summary and error alerts.
Quick setup guide
- 1Credentials: Add OmniDimension (as a Header Auth credential: Authorization: Bearer <API key>), Google Sheets, OpenAI/OpenRouter, and Telegram (see the video table). Do these once.
- 2OmniDimension agent: Create your calling agent, attach an outbound number, and copy your agent ID + phone number into Node 5's JSON body.
- 3Import the workflow: And reconnect every red credential node. Set your Sheet ID on all three Google Sheets nodes, your chat ID on both Telegram nodes.
- 4Wire the callback loop: Copy the Production URL of Webhook – Call Result, paste it into Node 5's callbackurl and into OmniDimension's post-call webhook setting.
- 5Test: Run Manual Test – Due Lead with your own number in the sample; take the call, then confirm the CRM row updates and the Telegram summary arrives. Then Activate so the hourly schedule goes live.
What success looks like: A warm lead gets an automatic, natural sales call, and you get back a clean CRM update + a phone summary — no human dialling required.
Common problems and fixes
No call is placed
Why: OmniDimension credential/agent ID/number wrong, or endpoint changed
Fix: Re-check the Header Auth key, agentid, fromnumber, and the dispatch URL against OmniDimension docs
Same lead called repeatedly
Why: Node 6 not marking "Dialing", or match column wrong
Fix: Ensure Mark Lead Dialing writes Call Outcome = Dialing and matches on Phone
Transcript never arrives
Why: Callback URL mismatch
Fix: The callbackurl in Node 5 and OmniDimension's post-call webhook must both be the Production URL of Webhook – Call Result*
Summary is empty / wrong fields
Why: AI didn't follow the exact format
Fix: Keep the system message's fixed output format; structurize relies on the Field: lines
CRM row not updated
Why: Wrong Sheet ID or match column
Fix: Use the exact Sheet ID; match on Phone
No Telegram summary
Why: Bot token / chat ID wrong
Fix: Re-check the Telegram credential and YOURCHATID
Setup time
- With Claude Code30–45 minutes
Give the ebook to Claude Code and it builds the workflow for you.
- Import the JSON yourselfAbout 2 hours
Import the ready workflow JSON and connect your accounts.
- Build it by reading the ebookAbout 1 day
Follow every node and setting step by step to learn it fully.
Get this workflow
- Ready-to-import n8n workflow JSON
- Step-by-step PDF: every node and setting explained
- Copy-paste prompts and expressions — no coding
Frequently asked questions
Will this work on free n8n?
Yes. n8n itself can be free (the self-hosted Community edition) or you can use n8n Cloud. The workflow runs on both. You only pay for the outside services it uses, such as AI tokens, and many of them have free tiers to start.
How do I get the API keys (WhatsApp, OpenAI and others)?
The ebook includes a setup video for every API and account this workflow needs, so you can get each key step by step without any coding.
Do I need to know coding?
No. Every node, setting, prompt and expression is printed in the ebook, ready to copy-paste, and the workflow JSON can be imported in one click.
Can I use this Real Estate workflow for my clients?
Yes. Once it works for you, you can set it up for your own business or for clients and charge for the setup.
No call is placed: how do I fix it?
OmniDimension credential/agent ID/number wrong, or endpoint changed. Fix: Re-check the Header Auth key, agentid, fromnumber, and the dispatch URL against OmniDimension docs.
Same lead called repeatedly: how do I fix it?
Node 6 not marking "Dialing", or match column wrong. Fix: Ensure Mark Lead Dialing writes Call Outcome = Dialing and matches on Phone.
Transcript never arrives: how do I fix it?
Callback URL mismatch. Fix: The callbackurl in Node 5 and OmniDimension's post-call webhook must both be the Production URL of Webhook – Call Result*.