← Back to Portfolio

AI Voice Lead Capture & Qualification System for Real Estate

An AI-powered voice workflow that answers inbound real estate calls, captures structured lead data, prevents duplicates, scores urgency, and routes high-intent prospects instantly.

📅 March 2026
🏗️ Personal Project
Vapi + n8n + Google Sheets
🛠️

Tech Stack

Vapi n8n JavaScript Google Sheets Gmail n8n Cloud Google Cloud OAuth
Voice
Inbound Lead Capture
Zero
Duplicate Lead Goal
Real-Time
Lead Alerting
📋

Project Overview

This project is an end-to-end AI automation system built for real estate lead capture. It answers inbound calls with a voice assistant, extracts structured buyer details, scores lead quality, stores the result in Google Sheets without duplication, and alerts agents when the lead is urgent enough to deserve immediate follow-up.

The workflow was designed to feel production-ready while staying lightweight. Instead of a custom backend, it uses Vapi for voice interaction, n8n Cloud for orchestration, Google Sheets as a simple CRM layer, and Gmail for conditional notifications.

Core principle: use voice AI to collect information naturally, but keep the qualification, normalization, deduplication, scoring, and routing logic explicit so the workflow stays reliable.

🎯

Problem Definition

Real estate agencies regularly miss or delay inbound leads because calls are not captured, structured, or prioritized consistently. Serious prospects often depend on how quickly a team responds, yet many agencies still rely on manual note-taking or unstructured follow-up.

  • No structured capture of caller information from inbound calls.
  • Important prospects can be lost if the details are not logged immediately.
  • No system for distinguishing high-intent callers from lower-priority inquiries.
  • Duplicate entries create clutter and confusion inside lightweight CRMs.
  • Follow-up alerts are often manual or delayed.
🧭

Decision Rationale

  • n8n was chosen over simpler automation tools because it allowed custom logic and clearer control over branching.
  • Google Sheets was used as a lightweight CRM because it is fast to set up, easy to inspect, and practical for MVP-style operations.
  • Phone number became the unique key because it is the most reliable identifier across inbound calls.
  • Append-or-update logic kept the workflow simpler and more scalable than manual lookup branches.
  • Vapi was the right interface because high-intent real estate leads often arrive through calls, not forms.
💡

Full Thought Process

Click to expand full thought process

1. Start with the highest-intent channel

Real estate calls are often high-value moments because the prospect is already willing to talk. That made inbound call automation a stronger opportunity than form-only capture.

2. Use voice AI for capture, not vague summaries

The assistant needed to extract structured details such as name, budget, location, timeline, and callback preference, not just produce a transcript. That shaped the Vapi assistant prompt and output schema from the beginning.

3. Normalize early to prevent downstream errors

Phone numbers and payload formats were normalized before any dedupe or storage step. This was critical because small formatting differences created duplicate records and unreliable matching.

4. Keep scoring logic explicit

Lead temperature was determined by clear business rules instead of vague model inference. Budget, urgency, and callback intent became strong signals for deciding whether an agent should be alerted immediately.

5. Build an MVP-grade CRM without overbuilding

Google Sheets was enough to prove the workflow end to end. It kept the prototype simple while still supporting append-or-update behavior and structured lead storage.

☎️

Voice Capture Layer

Vapi handles the inbound call experience and collects buyer intent through conversation. The call assistant captures structured outputs rather than leaving the workflow to parse everything from a raw transcript later.

Vapi call logs showing inbound real estate calls
Vapi call logs showing inbound real estate calls, metadata, and successful call handling activity.
⚙️

Workflow Architecture

The n8n workflow receives the structured voice payload, flattens the data, maps lead fields, calculates lead score, writes the lead into Google Sheets, and branches into separate email alerts based on lead temperature.

n8n workflow for AI voice lead capture
Core n8n workflow showing payload flattening, field mapping, scoring, Google Sheets upsert behavior, and hot-lead alert branching.
🗂️

Lead Storage & Deduplication

Leads are stored in Google Sheets as a lightweight CRM. The workflow uses phone number normalization and append-or-update logic so the same caller is not added repeatedly with slightly different formats.

Google Sheets lead CRM populated by the workflow
Structured lead sheet capturing caller details, intent, budget, timeline, score, and lead temperature in a simple CRM-style layout.
🔥

Lead Scoring & Alerts

Once the lead is scored, hot prospects trigger immediate email alerts to the team. The goal is not just to record the lead, but to shorten the time between capture and meaningful follow-up.

Hot lead alert email generated by the workflow
Automated hot-lead email containing structured buyer details, callback request, score, temperature, and summary for fast agent action.
🧩

Challenges & Solutions

  • Duplicate leads were caused by mismatched string and numeric phone values, so the workflow now normalizes phone numbers and treats the column as plain text.
  • Incorrect IF behavior came from using a literal string instead of an expression, so the routing logic was updated to use proper n8n expressions.
  • Missing phone numbers during testing came from web-interface simulations rather than real inbound calls, so validation shifted to actual call tests.
  • Nested payload mapping errors were fixed by adding a flattening code node before field mapping and scoring.
  • Vapi-to-n8n integration confusion was resolved by using the correct webhook/custom tool pattern with a server URL.
👤

My Contribution

This was a personal, portfolio-focused project built end to end. I designed the automation architecture, implemented the workflow, defined the scoring and deduplication logic, and integrated the voice, spreadsheet, and alerting layers.

  • Built the n8n workflow and code-node processing logic.
  • Designed the lead scoring rules and hot-lead alert criteria.
  • Implemented phone normalization and duplicate-prevention logic.
  • Integrated Vapi, Google Sheets, Gmail, and n8n Cloud.
  • Shaped the system around production-style debugging and real call testing.
💭

Reflection & Learnings

This project reinforced how much automation reliability depends on normalization, clear branching rules, and testing with real-world payloads instead of idealized mocks. It also showed that a small tool stack can still deliver a production-style workflow when the logic is well structured.

Key takeaway: strong automation systems are not just about connecting tools. They depend on careful data handling, explicit decision logic, and fast feedback loops while debugging.