AI Real Estate Cold Calling: Scripts, Lists and Do-Not-Call Rules

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Real Estate Cold Calling: Scripts, Lists and Do-Not-Call Rules.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI Real Estate Cold Calling: Scripts, Lists and Do-Not-Call Rules.

Use AI for preparation only. It can draft script variants and objection replies and tidy your spreadsheet, but you scrub every number against the Do Not Call Registry (a file no more than 31 days old) and your own do-not-call list first, and a person makes each call. An AI voice making the call needs the recipient's prior written consent.

The rules named below come from the Telephone Consumer Protection Act (TCPA) and the National Do Not Call Registry that works alongside it. Other markets run their own registers, consent rules and calling hours, and some are stricter, so treat this as the pattern and check yours. None of it is legal advice: have your broker or a real estate lawyer approve the final policy. Most trouble starts with the list, not the script: a registry file that is 40 days old, an old enquiry treated as permission for ever, or a dialler feature that plays a recorded voice.

Follow me on Instagram@sagnikteaches

Five tests every number passes before it reaches the call sheet

Every number needs a reason to be on the sheet and a date on that reason. These five tests supply the reasons, and the call sheet described later records them.

Connect on LinkedInSagnik Bhattacharya
  1. The registry. Numbers on the National Do Not Call Registry can't be called to sell something unless an exception applies. You need a registry file obtained no more than 31 days before the call, so diarise a refresh every four weeks instead of running to the limit. Access is free for up to five area codes, and from 1 October 2026 each further area code costs $85 a year, according to the registry's own Q&A for sellers (read that page before you budget). A quick sum: a list spread over eight area codes means paying for three, which is $255 a year.
  2. The two exceptions that do most of the work. An established business relationship lasts 18 months after a purchase or transaction and three months after an enquiry or application. The other is the person's express written agreement to be called. A relationship also ends the moment someone tells you to stop.
  3. Your own do-not-call list. Anyone who says "don't call me again" goes on your list, whether or not they are on the registry. The calling rules expect a written policy you can produce on request, trained staff, a recorded request with the name and number, and a stop within a reasonable time that can't exceed ten business days. Each request must then be honoured for five years. Add it the same day.
  4. Calling hours. Sales calls to a home number fall between 8 a.m. and 9 p.m. in the called person's local time, not yours.
  5. Consent for automation. A call made with an autodialler (software that dials from a list without a person pressing each number), or with an artificial or prerecorded voice, to a mobile number needs the person's prior consent, and for telemarketing that consent must be written. A 2024 regulator ruling confirmed that AI-generated voices count as artificial voices. The do-not-call rules also cover text messages to mobile numbers.

The paperwork matters because the law lets a person who receives more than one call in 12 months in breach of the registry rules sue for up to $500 per call, and a court may triple that for knowing or wilful breaches. The same law gives a caller a defence if they set up reasonable practices and procedures with due care. A dated scrub log, a written policy and a call sheet showing why each number was dialled are that defence in practice.

Subscribe on YouTube@sagnikteaches

Where the numbers come from decides which ones you may ring

A spreadsheet of 600 phone numbers looks like one asset. It is really several lists with different legal footing, and the single most useful column you can add is "why this number is here". The table sorts the usual sources.

SourceBasis for callingHow long it lastsWhat to record
Past client (a deal you closed)Established relationship18 months from closing; ask for permission before it lapsesClosing date and end date
Web or portal enquiryEstablished relationshipThree months from the enquiryEnquiry date and the page it came from
Open-house sign-in sheetOnly a signed agreement lineUntil the person withdrawsA scan of the signed sheet
Family, friends, people who know you personallyPersonal relationship, or their permissionUntil they ask you to stopHow you know them
Expired listing or for-sale-by-owner exportUsually none, so the registry appliesNot applicableRegistry result and scrub date
Bought listNone by itselfNot applicableVendor, purchase date, scrub date

Two rows deserve more words. Real estate association guidance generally treats expired-listing numbers as covered by the registry: a regulator's 2005 order declined to exempt calls to expired listings from the rules, and any relationship exception is read narrowly, so ask your broker whether your own brokerage's earlier listing agreement would count. The same order said that a call to a for-sale-by-owner seller on behalf of a buyer client is not a sales solicitation, whereas a call asking for their listing is. The listing call is the one most scripts are written for, so get your broker's written position before building a campaign on either list. The expired-listing script tutorial covers the wording once that position is settled.

A bought list is the other trap. Buying numbers gives you numbers, not a relationship with the people on them, and a vendor's promise that a list is "opted in" is not the same as a signed agreement that names you. If the list is thin, the lead generation tutorial that avoids bought lists shows other ways to fill a pipeline. For open-house guests, the cleanest fix is on the sign-in sheet itself: a line above the signature box saying the guest agrees to be contacted by phone or text by you, by name, with their number and signature beside it. Have your broker approve the exact wording, and see the open-house follow-up tutorial for what to send within the hour.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

A prompt that cleans the list and leaves the legal call to you

List preparation is where AI saves the most time and where it is most tempting to let it decide things it cannot know. An assistant has no access to the registry, cannot tell a mobile from a landline, and will happily guess a time zone from an area code. The prompt below hands it the mechanical jobs and tells it to say "I can't know" for the rest. Paste ten sample rows with invented names and numbers rather than your real list, or use a business plan that does not train on your content, such as ChatGPT Business or Claude Team (both need at least two seats).

You are helping a real estate agent prepare a call sheet in a spreadsheet.
Columns: A Name, B Phone, C Source, D Source date, E Notes.

Do these jobs and nothing else:
1. Write a formula that standardises phone numbers in column B to 10 digits,
   with no spaces, brackets or dashes.
2. Write a formula that flags duplicate numbers.
3. Write a formula that returns the date the permission ends: 18 months after
   column D when column C is "Past client", 3 months after D when C is "Enquiry",
   blank for any other source.
4. Write a formula that shows OUT OF DATE when that end date is before the
   planned call date, which will sit in cell H1.
5. List the extra columns I should add for the compliance record.

Do not guess whether a number is on any do-not-call register, whether it is a
mobile number, or what time zone it is in. Say you cannot know, and name the
file or lookup that would tell me.
Give every formula for Excel and for Google Sheets.

A typical first answer, shown here as an illustration, looks like this:

Standardise (F2):  =RIGHT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,"(",""),")",""),"-","")," ",""),10)
Duplicate (G2):    =IF(COUNTIF($B:$B,B2)>1,"DUPLICATE","")
Ends (I2):         =IF(C2="Past client",EDATE(D2,18),IF(C2="Enquiry",EDATE(D2,3),""))
Out of date (J2):  =IF(AND(I2<>"",I2<$H$1),"OUT OF DATE","")

The formulas work, but three edits are worth making. First, the duplicate check counts the raw column B, so "(555) 010-0142" and "555-010-0142" are not seen as the same number; point it at the standardised column F. Second, the relationship rules count back from the day of the call, which is why the prompt used a planned call date in H1 instead of today's date: the sheet then answers "will this still be valid on the day I ring?" Third, the assistant listed "time zone" among the columns to add and suggested filling it from the area code. Cross that out and fill it from the person's address, for reasons the section on area codes explains.

The columns it proposed for the compliance record were sensible and worth keeping: source, source date, basis for calling, basis end date, date of the registry file used, result of the registry check, internal do-not-call flag, time zone from the address, and the date and outcome of the last call. If you work in a CRM, the same fields can become custom fields; the real estate CRM comparison is a good place to see which systems store them. If spreadsheet formulas are new to you, the site's ChatGPT and Excel guide explains how to check what an assistant gives you.

One list, start to finish: 574 rows become 406 callable numbers

Here is an invented but realistic run, with every figure illustrative. An agent exports 600 rows from a CRM, a spreadsheet of open-house sheets and an MLS export of expired listings. Removing duplicates after standardising the numbers leaves 574 rows. The agent then tags each row with its source and date, adds the basis and end-date columns from the prompt above, and downloads the registry file for the six area codes involved. The registry costs $85, because five area codes are free and the sixth is not.

Group (rows)Basis for callingRemoved, and whyLeft to call
Past clients, closed within 18 months (58)Relationship3 asked to stop (own list)55
Past clients, closed longer ago (71)None, so registry applies24 on the registry47
Enquiries in the last three months (33)RelationshipNone33
Older enquiries (54)None, so registry applies19 on the registry35
Open-house guests who signed the agreement line (47)Written agreementNone47
Other open-house guests (93)None, so registry applies31 on the registry62
People the agent knows personally (64)Personal relationshipNone64
Expired and for-sale-by-owner export (154)None, so registry applies91 on the registry63
Total (574)168 removed406

Three things stand out in the sums. The groups with no exception lost the most numbers, so a campaign built only on the expired export would have started with 63 numbers from 154. The two groups that feel "warm" but are out of date, older enquiries and older past clients, are easy to call by habit, and 43 of their 125 rows were on the registry. And the 3 requests to stop came from the group with the strongest relationship, which is a reminder that the internal list overrides everything else.

The calling plan follows from the count. At about 35 hand-dialled calls an hour including notes, one two-hour block a day makes 70 dials, so 406 numbers take six working days. If one dial in five connects, a figure to replace with your own after the first week, that is around 80 conversations. The preparation itself, drafting scripts, cleaning the list and building the sheet, takes perhaps two hours with AI help; doing the same row by row by hand takes far longer. Those are planning assumptions, not benchmarks.

What one finished row looks like

The call sheet only protects you if each row can answer "why was this number rung?" without a search through old email. Two filled-in rows, again illustrative, show the level of detail.

FieldPast client rowRegistry-based row
Name and number[first name], ending 0142[first name], ending 0377
Source and datePurchase closed 12 September 2025Expired listing, exported 30 October 2026
Basis and end dateRelationship, ends 12 March 2027None; registry checked
Registry file usedDownloaded 2 November 2026 (refresh by 30 November, hard limit 3 December)Same file; number not on it
Own do-not-call listNot on itNot on it
Time zone from addressTwo hours behind the agentSame as the agent
Call window in their time9:00 to 19:309:00 to 19:30
Last callNot yet calledNot yet called

Three openers drafted by AI, then edited by you

With the list settled, the script work is the part AI does well, provided it is told which facts it may use. Give the assistant one Project (in ChatGPT or Claude) or one Gemini skill (Google is replacing Gems with skills, which began rolling out in October 2026) holding your name, brokerage, tone and the rule that it must never invent a market figure. Then ask for one opener per group rather than one script for everybody.

Write three 40-second phone openers for a real estate agent. Use only the
facts I give you and put anything unknown in [brackets].
Agent: [first name] at [brokerage]. Tone: calm, plain, no hype.
A: past client whose purchase closed 14 months ago.
B: web enquiry about a specific home, 9 days ago.
C: open-house guest who signed the agreement line to be contacted, 6 days ago.
For each: say who I am and why I'm calling, ask one question that checks it is
a good time, and give two polite ways to end the call if the answer is no.
Do not invent statistics, prices, sales or urgency.

These are edited versions of what such a prompt returns, written as spoken lines for a call.

A, past client: "Hi [first name], it's [your name] from [brokerage]. We worked together on your purchase last year, and I'm calling because it's about a year since you moved in. Have you got two minutes? I'm offering past clients a short update on what similar homes have sold for, using sales I can show you. Shall I email it, or talk it through now? If now's not good, no problem, and I'll note that."

B, web enquiry: "Hi [first name], it's [your name] from [brokerage]. You asked about [address] on our website on [date], so I'm following up. Is this a good moment? Did you get what you needed on the house, or is there something I can check, like the listing history or the HOA fees? If you've moved on to other homes, tell me and I'll adjust what I send, or stop if you'd prefer."

C, open-house guest: "Hi [first name], it's [your name] from [brokerage]. You came to the open house at [address] on [date] and ticked the box to hear from me, so I wanted to follow up. Is now alright? What did you make of the house? If it helps, I can set up an alert for similar homes in your price range. And if you'd rather I didn't call again, say so and I'll record it today."

Compare those with a typical first draft and you can see what editing adds. The raw version of A included "Homes on your street have gone up 9% this year", which nobody had supplied and nobody could source, so it came out. Version B opened with "I noticed the property recently came off the market", a line copied from an expired-listing pattern that had nothing to do with a web enquiry. Version C ended with "I'll try you again tomorrow", which assumes permission to call again; the edit replaced it with an offer to stop. Each fix is the same kind: remove a claim you can't verify, a source that isn't true, or a promise of further calls. The broader sales-script tutorial covers voice and rhythm, and reading each opener aloud twice before a live call catches lines that only work on paper.

Objection replies that stay truthful

Objection handling is where scripts tend to drift into pressure. Ask the assistant for replies that accept a no, and keep the ones that tie back to a rule. The table pairs six common lines with a reply and the reason behind it.

What they sayA reply that holds upThe rule behind it
"Not interested.""Understood, thanks for telling me. Would you like me to stop calling altogether, or is an occasional email fine?"A request to stop goes on your own list the same day
"I already have an agent.""Good to hear. If anything changes, you have my number. I won't call again unless you ask me to."No pressure; note it so nobody rings twice
"How did you get my number?"State the real source and date: "You signed the open-house sheet on [date]."If you can't name the source, the number shouldn't be on the sheet
"Take me off your list.""Done. I'm recording it now and you won't hear from me again."Written policy, recorded request, honoured for five years
"Is this a recording or AI?""No, it's me, [name]. I use software to prepare my notes, but I'm the one on the line."Calls with a computer-generated voice need written consent
"Call me next month.""I will. Is mornings or evenings better?" Then log the date and the time they chose.Treat it as permission for that one call

One AI habit to watch is the "reframe": a reply that answers "not interested" with another pitch. Ask for a version that accepts the no and offers a way to stop, then compare it with the original. If the assistant keeps producing the pitch, add "never ask a second time after a no" to the Project instructions.

The area code is not where the person is

Here is a slip that is easy to make. An agent sorts the call list by area code, assuming it tells them who is in their own time zone, and starts dialling at 9:40 a.m. One former client moved two time zones west years ago and kept the old mobile number, so the call lands at 7:40 a.m. for them. The call isn't malicious and the script is polite, but it breaks the hours rule, and nothing on the sheet could have prevented it because the sheet had no time zone column. The fix is a column filled from the client's current address, never from the phone number.

AI can help here as long as the addresses are clean: paste the town and postal code of each row (not the names or numbers) and ask for the time zone, then check any that come back as "uncertain" by hand. Set your own call window inside the legal one, say 9:00 to 19:30 in the person's time, so a slow dial or a long hold never pushes a call past 9 p.m. Also show your real caller ID. Telemarketers are barred from blocking caller ID under a separate rule, and a hidden number makes the person on the other end less likely to pick up a second time.

Where a person has to stay on the line

The title of this tutorial puts the dividing line in one sentence: AI prepares and a person dials. The reasons are practical as well as legal. An AI voice agent that phones your list, an automated text sequence, a "voicemail drop" that plays a recording without ringing, and a power dialler that connects calls with no person involved all move you from "an agent making a call" towards the territory where written consent is needed for every recipient. A voice that sounds human does not change this: the 2024 ruling covers cloned and synthetic voices alike.

That does not make these tools useless. An AI voice agent can answer inbound calls, or call people who have given written consent to automated calls; the AI voice agent tutorial for real estate covers setup and consent wording. For outbound cold calls, keep the human in the seat and use AI around the call:

  • Before: script variants, objection replies, list cleaning, call windows.
  • During: nothing automated. You dial, you speak, you note the outcome.
  • After: paste your typed notes (without names) and ask for a two-line summary and a next step, then copy it into the CRM. If you record calls, remember that some places require every party's agreement, so say so at the start and let the person decline.

A one-page policy and a monthly spot-check

The rules expect a written do-not-call policy that you can produce on request, and trained staff. AI can draft it in a minute, and a person has to own it. Use the prompt below, then send the draft to your broker or a lawyer with every [CHECK] line marked.

Draft a one-page do-not-call policy for a real estate team of [number] agents.
Include: who keeps the internal list; the same-day rule for adding a request;
a registry refresh every 28 days; calling hours of 8 a.m. to 9 p.m. in the called
person's local time, with our own window of 9:00 to 19:30; how we record the reason
each number may be called; training for new agents; where records are kept and
for how long (at least five years for stop requests). Plain English, numbered,
no legal conclusions. Mark anything a broker or lawyer must confirm with [CHECK].

To prove the process works, run a monthly spot-check. Pick 20 numbers from last month's call log and, for each, find the call sheet row and confirm four things: the basis was valid on the call date, the registry file was less than 31 days old, the call fell inside the person's hours, and nobody on the internal list was rung. A clean result is 20 out of 20. Any miss is a process fault to fix, not a person to blame: the fix is usually a missing column or a refresh that wasn't diarised. Keep a scrub log with one line per refresh, giving the date, the area codes, the rows before and after, and the initials of whoever ran it. That log, with the written policy, is what you would show if anyone asked how you manage the rules.

Do-not-call questions agents ask before dialling

Can I call a number on the registry after an enquiry?

Usually yes, for up to three months from the date the person enquired or applied, because that creates an established business relationship. The window is counted back from the day you call, and it ends the moment the person asks you to stop. Record the enquiry date on the call sheet so the end date is visible.

Do texts follow the same do-not-call rules?

Yes. The calling rules apply to telephone solicitations and telemarketing calls or text messages sent to mobile numbers, so a text campaign needs the same registry scrub, the same internal list and the same permission as a call. Automated texts raise further consent questions, so ask your broker before using any bulk-text tool.

Does the registry cover business phone numbers?

Most calls made to sell something to a business are outside the registry rules, but an owner's personal mobile does not become a business line because they are selling a house. When a number is personal, treat it as covered. If you cannot tell which kind it is, scrub it as though it were personal.

Can AI keep my registry scrub up to date for me?

No. An assistant cannot see the registry, and it will guess if you ask. What it can do is write the spreadsheet formulas that compare your list with the file you download, draft the written procedure, and remind you to refresh every four weeks. A person downloads the file, runs the comparison and signs the scrub log.

Further reads

Sources: the Telephone Consumer Protection Act and its calling and caller ID rules, the regulator's Q&A for sellers on the Do Not Call Registry (fees checked November 2026), the 2005 order on real estate calls, and the 2024 declaratory ruling on AI-generated voices.

Want your call-list routine set up properly?

On a 1:1 call we'll walk through how leads reach your call sheet, where AI can safely prepare scripts and notes, and which checks stay with a person.

Book a 1:1 call with me