← Blog

One demo line, many businesses: private demos with caller-ID routing on Retell

Steve Ford

  • Retell
  • demos
  • Cloudflare
  • webhooks

If you run a trades business, you already know the problem. The phone rings while you’re on a ladder, under a house, or elbow-deep in an air handler. You can’t answer it, and the caller doesn’t leave a message. They call the next name on the list.

An AI receptionist fixes that, and I can tell people so all day. Our public demo line at (615) 583-8217 helps more than any explanation. It answers as Summit Comfort, a made-up HVAC company, and it’s a good demo. But I noticed something talking with owners: a demo for somebody else’s business is interesting. Hearing your own business name answer the phone is what makes it real.

So on October 5 I built a way to give one prospect a private demo of their own business, on the same demo number everyone else calls. Here’s how it works, and why I built it the way I did.

A five-minute form, mostly filled in already

It starts with a private link, one per lead. It isn’t on the website and it isn’t in search. It goes to one person, and it takes about five minutes.

Before I send it, I fill in what I can from the business’s public website and Facebook page: the name, the hours, the services, the area they cover. The owner doesn’t have to type any of that. They only have to check it and fix what’s wrong.

The question I care about most is this one: what counts as an emergency for you? A no-heat call in January is not the same as a squeaky blower in April, and every shop draws that line a little differently. It’s the answer that decides whether the receptionist interrupts your dinner or takes a message for the morning, so it’s worth five minutes of an owner’s attention.

The last part is the fun part. They pick a voice, male or female, and a name. It’s their receptionist, so it should sound like they want it to.

There are two forms on purpose. Leads get this short demo form. Paying clients get the full intake, which goes much deeper. When a lead becomes a client, the full intake comes prefilled from the demo answers, so nobody answers the same question twice.

The first one went to an HVAC company owner in Middle Tennessee. The form came back 19 minutes after I sent it.

Caller-ID routing on one shared line

The obvious way to give each prospect their own demo is to buy each one a phone number. I didn’t want to do that. It costs money, it means more numbers to keep track of and release later, and it asks the owner to save yet another number.

Instead, the owner calls the same public demo line everybody calls, from the mobile number they gave me on the form. The line recognizes them.

Here’s how a call flows:

Owner dials the demo line from their mobile
        |
Retell receives the call and fires its inbound call webhook
        |
A small Cloudflare Worker gets the caller's number and asks:
"Is there an active demo for this number?"
        |
   yes -> answer with that owner's own receptionist, using their business name
   no  -> answer with the regular front desk, same as always
   lookup fails or is slow -> Retell falls back to the front desk on its own

That last line matters most to me. The worst case is exactly what the demo line already does today. If my Worker has a bad day, nobody hears an error or dead air. They hear the regular front desk.

I tested it live before trusting it. I called from a test number with an active demo and got the demo agent. I removed the route and called again, expecting the front desk, and got the demo agent again. That was a real-world gotcha: Cloudflare KV changes can take up to a minute to reach every location, so my second call hit the old route. A minute later the front desk picked up, like it should. If you build something like this, wait a minute between changing a route and testing it.

The demo does what the product does

When someone books an appointment with a client’s receptionist, the client gets an email summary of the call: who called, what they needed, and what got booked.

On a private demo, that same summary goes to the lead. So when an owner calls their demo and plays a customer with a broken AC, a few minutes later they get the same email a paying client would. They don’t just hear the product, they get to use it. That’s the difference between “it sounds nice” and “oh, this is what my mornings would look like.”

Demos clean up after themselves

I’m one person. If every demo left behind an agent and a route I had to remember to delete, I’d be drowning in leftovers within a month. So each demo has an end date built in:

  • The route expires after 14 days on its own. After that the owner’s mobile gets the regular front desk again.
  • On day 12, an automatic email goes out: your demo ends Sunday, do you want to keep it?
  • On day 14, the agent’s configuration is archived and the agent is deleted from Retell. If they come back later, I can rebuild it from the archive.

Deleting things automatically makes me nervous, so the cleanup has one firm safety rule. It will only delete an agent that is recorded for that lead and whose name starts with LEAD ·. Both have to be true. I proved it with a throwaway agent that was missing the prefix. The cleanup refused and left it untouched.

That prefix is part of a bigger habit. Retell’s API can’t put agents into dashboard folders, so the names do the organizing: TEMPLATE, DEMO, LEAD, CLIENT, and OWN for my own agents. One glance at the agent list tells me what each one is, and the cleanup has a name it can check before it touches anything.

Where this is going, and why not yet

Right now I build each demo by hand from the form answers. The next step is building the demo automatically, with a one-tap approve from me before it goes live. After that, maybe a public “get your own demo” page on this site.

I’m not rushing either one, for three reasons:

  1. Quality. If a website scrape pulls the wrong hours or an old service area, the demo will repeat it with total confidence. A demo that’s confidently wrong about your business is worse than no demo.
  2. Cost and abuse. A public page that spins up a live phone agent for anyone who asks needs limits before it exists, not after.
  3. A human look first. For now, every demo gets a look from me before the owner hears it. The one-tap approve keeps that, it just makes it faster.

What this means for you

For the folks at Retell: all of this sits on pieces Retell already provides. The inbound call webhook decides who answers. The agent API creates the demo agents, and later archives and deletes them. The safe fallback is Retell’s own behavior when the webhook doesn’t answer in time. I added a small Worker and a few rules on top. I didn’t have to fight the platform for any of it.

For a small business owner, it means this: before you spend a dollar, you can call one number from your own phone and hear your business answer. Your name, your hours, your idea of an emergency. And when the caller books, you get the email.

If you’d like to hear the general version first, call our demo line at (615) 583-8217. If you want a private demo of your own business, call me at (629) 217-2310 and I’ll send you the form.

HIPAA-ReadyBAA ProvidedBuilt on a SOC 2 Type II Platform