AI Cold Caller
A short film about a sales call no human made.
Fictional people. Real machines.
Scroll to play
The problem
Call list · today
(512) 555-0117
“Hi, is this the business owner? I’m calling about…”
hung up · 0:07
(512) 555-0188
“Hi there, do you have a moment to talk about…”
voicemail
(512) 555-0142
“Hello, I’m reaching out to discuss solutions…”
not interested · 0:19
(737) 555-0163
“Hi, is this the owner? Quick question about…”
hung up · 0:05
What the caller knew about them
Who they arenothing
How bignothing
What they’re proud ofnothing
What hurtsnothing
A cold call opens with a script. The owner hangs up in seconds.
Nobody had time to learn who they were calling.
The fix · one real workflow
One workflow. It studies each person, then calls them.
Every lead gets a script written for them, minutes before the call.
Lead sheet · name as typedcompany
dr. SARAH miller 🚀CoolAir Heating & Air
JOHN o'neilO'Neil Comfort Co.
Mrs. kate BRANDTBrandt Mechanical
🔥 tony ruizRuiz Air Pros
jean-pierre DUVALDuval Climate
↻ one lead at a time
- titlesRemove prefixes such as Mr., Mrs., Dr., Prof., Cpt., etc.
- caseConvert to Title Case (e.g., "john" becomes "John").
- emojiRemove emojis, special characters, and extra whitespace.
- hyphensIf the first name is hyphenated (e.g., "Jean-Pierre"), keep the hyphen and both parts.
- Sarah
- John
- Kate
- Tony
- Jean-Pierre
“Hey dr. SARAH miller 🚀…”→“Hey Sarah, this is Brian…”
It works down the lead sheet, one person at a time.
First, an AI cleans each name. No call opens with “Hi, dr. SARAH”.
Deep researchPerplexity · sonar-deep-research
- ✓Business background
- ✓Online presence
- ✓Reviews snapshot
- ✓Personal/professional background
- ✓Recent activity
Look specifically for the prospect personal profile, rather than just the company one
Their websiteGET coolair-hvac.example → markdown
- …
- …
- …
- …
The workflow’s parser, live · …
LinkedInfound in the research → Apify
regex sweep…
profile id…
LinkedIn profile enrichment (public actor) · wait 30 seconds“Owner, CoolAir Heating & Air · Keeping Austin cool since 2009”
Both scripts ran in your browser · …
Three sources at once: a deep-research AI, their website, their LinkedIn.
The workflow’s own code reads the site. It just ran in your browser.
research website LinkedIn
Sarah owns CoolAir (est. 2009, ~12 staff, Austin). Runs same-day summer repairs; was on a local podcast about peak-season demand. Offers a $14.99/month Comfort Club.
The call script11719 characters
Prospect info
Sarah owns CoolAir (est. 2009, ~12 staff, Austin). Runs same-day summer repairs; was on a lo…
Current date and time
Monday, November 09, 2026 at 09:14 AM
Voice & tone
Guardrails
Max 3 sentences per response · Never ask IF. Ask WHEN.
Service
Closing mechanics
Example conversation
Made JSON-safe by the workflow’s code, live · …
An AI turns everything it found into a short brief.
The brief is stitched into a 11,719-character script, for this one call.
{"assistantOverrides": {"firstMessage": "Hey Sarah, this is Brian…",his opener"firstMessageMode": "assistant-speaks-first",he talks first"model": { "model": "gpt-4o-mini-2024-07-18",the brain"messages": [{ "role": "system", "content": "‹11,719 chars›" }] },the script"transcriber": { "provider": "deepgram", "model": "flux-general-en",the ears"eotThreshold": 0.7, "eotTimeoutMs": 2600 }when to reply}} POST api.vapi.ai/call
Calling Sarah
CoolAir Heating & Air
One request hands the AI voice its brain, its ears and its script.
Then the phone rings. He speaks first.
SarahUh, yeah, I’ve got a minute. What’s this about?
BrianMm, gotcha. Quick one: when your guys are up on a roof in July, how many calls slip through?
script · “Let them talk — ask, don't pitch”
SarahHonestly? A lot. Summer’s crazy.
BrianYeah… that’s rough. We built a voice agent that picks up every call, books the job.
script · “Don't quote price or explain features. That's for the specialist call.”
SarahWe tried an answering service. Didn’t love it.
BrianTotally fair. That’s exactly what the specialist walks you through, fifteen minutes.
script · “Objections = curiosity. Acknowledge. Reframe. Redirect to booking.”
BrianI got Thursday afternoon or Friday morning. What’s better?
script · “Never ask IF. Ask WHEN.”
SarahThursday afternoon. Two o’clock?
BrianDone. I’ll shoot you a calendar invite right now. Appreciate you, Sarah.
script · “Confirm day + time”
Every line he says follows a rule in his script.
He never asks if. He asks when.
POST api.vapi.ai/call→ call c3f9…e21a · queued
wait 1 minute · GET /call/{id}→ in-progress loop back
wait 1 minute · GET /call/{id}→ in-progress loop back
wait 1 minute · GET /call/{id}→ in-progress loop back
wait 1 minute · GET /call/{id}→ ended proceed
transcript + summary→ the verdict
status = “ended” → proceed anything else → wait 1 minute, ask again
While they talk, the workflow checks in every minute.
The moment the call ends, it moves on.
Invented times. Real calls, real rule.
The transcript, last lines
BrianI got Thursday afternoon or Friday morning. What’s better?
SarahThursday afternoon. Two o’clock?
BrianDone. I’ll shoot you a calendar invite right now. Appreciate you, Sarah.
now: Monday, November 09, 2026 at 09:14 AM (Texas)
A booking is only confirmed when BOTH parties agree on a specific date and time
{
"STATUS": "BOOKED",
"startDate": "2026-11-12 14:00"
} Parsed by the workflow’s code · …
- STATUS
- …
- startDate
- …
BOOKED NOT BOOKED
An AI reads the whole call. “Thursday, two o’clock” becomes a real date.
It only says booked when both sides agreed a day and a time.
Google Calendar
Thu 12 Nov
14:00 → 14:30
end = start + 30 * 60 * 1000 ms · Meet link generated
SMS to Sarah · Twilio
Hey Sarah, this is Brian
Congratulations on making the first step to improve your business!
Here is where the second step begins
meet.google.com/xqk-trwa-pvn
Will meet you there on 2026-11-12 14:00
Team alert · Telegram
Sarah Miller
💰Call Booked💰
🔍Details: Owner open to a demo; summer call volume is the pain. Booked Thursday 2 pm.
📧Email: sarah@coolair-hvac.example
Call Id: c3f9…e21a
📅Date&Time (their timezone): 2026-11-12 14:00
⏰Google Meet: meet.google.com/xqk-trwa-pvn
CRM record created · Airtable
lead sheet updated
Not booked?☎️Called but not booked · CRM record · sheet updated
↻ next lead on the sheet
Booked: a 30-minute invite with a Meet link, and a text to Sarah.
The team gets the summary. Then it dials the next lead.
AI Cold Caller
One click41 nodes9 services3 AI agents