Every new lead gets the same first call, and nobody dials it

n8n works through pending leads, Retell AI calls each one, and OpenAI turns the transcript into intent, budget and timeline fields in a Sheets CRM. The workflow gives every pending lead a first call without an agent dialing.

Every new lead needed the same first call: what is the budget, what is the timeline, what are you actually looking for. Every one of those calls took an agent's time, and the answers still had to be typed back into the sheet.

manual dials in the workflow's design
0
fields per call: intent, budget, timeline, objections, follow-ups
5
n8n flows: a dialing loop and a call-result webhook
2

From the delivered workflow, 2025. No call volumes or conversion figures are claimed.

Real-estate sales team working leads from a shared Google Sheet, Delivered 2025

Before the build.

The team kept its leads in a Google Sheet that worked as a lightweight CRM. They wanted every pending lead called and qualified without an agent dialing.

What I built.

n8n loops the pending leads, Retell AI places each call, and OpenAI turns the transcript into five fixed fields.

Three parts: the loop, the voice, and the step that makes a conversation sortable.

  1. A dialing loop in n8n
  2. A voice agent that asks the qualifying questions
  3. Summaries the CRM can use

What is true today.

  • The workflow gives every pending lead a first call without an agent dialing.
  • Each call lands in the sheet as the same fields: intent, budget, timeline and the next step.
  • Budget and timeline land in fixed fields, so agents can sort which leads to call back first.

He's very skilled with n8n, communicates clearly, and delivers fast. If you need automation work done, he makes the process easy and reliable.

Upwork client / AI real estate calling system (Retell AI + n8n)

How I build voice agents for clients

Updated

The details, when you need them.

A dialing loop in n8n

An HTTP request asks Retell AI to place the call, passing the phone number, the lead's name, source and property interest, and a callback webhook.

A voice agent that asks the qualifying questions

The Retell agent talks to the lead about budget, timeline and property interest, then posts the transcript and the call metadata (duration and outcome) to an n8n webhook.

Summaries the CRM can use

An OpenAI summarisation chain turns each transcript into compact JSON, and n8n writes it into the lead's row.

  • Works the pending list, paced
  • Runs in the team's own n8n and sheet
  • Writes five fixed fields, nothing else

lead-qualification-call

  1. Get pending leads from Google Sheets

  2. Loop over the leads

  3. Check eligibility

    IF node

  4. POST the call to Retell AI

    phone, lead context, callback URL

  5. Wait between calls

    pacing and no-answer handling

  6. Webhook receives the result

    transcript, duration, outcome

  7. Summarise with OpenAI

    intent, budget, timeline, objections, follow-ups

  8. Update the lead's row

    status, last contact, summary, next step

Two flows / zero manual dialing

What happens when it fails?

  • Calls are paced with wait nodes, so the list is worked through at a steady rate instead of all at once.
  • No-answers are handled and re-queued instead of dropped.
  • Call results come back through their own webhook, so a long call never blocks the dialing loop.
  • The summary is structured JSON with fixed fields, so every row in the CRM has the same shape.

What I could not show you

  • No lead, phone number, recording or transcript appears on this page.
  • Call volumes and conversion are not claimed. The client's own public review is quoted verbatim and is the only outcome statement here that is not mine.

Measurements and project details

Client
Real-estate sales team working leads from a shared Google Sheet
Industry
Real estate
Region
Remote
Timeline
Delivered 2025
Role
AI engineer: workflow, voice agent and CRM integration

Stack

  • n8n
  • Retell AI
  • OpenAI API
  • Google Sheets
  • Webhooks