← Dialkeep journal

Four questions to ask an AI receptionist vendor

August 18, 2026 · Dialkeep Staff

You can't tell one of these apart from another by reading about it. Not because anybody is lying to you, but because the parts worth knowing don't fit on a pricing page, and you have a truck to load and a supply house to hit before nine. Nobody is spending a Saturday auditing software.

So do not read. Ask.

Four questions, below. Each one is answerable in a sentence. Each one has an answer that costs you money on a real job and an answer that doesn't. Ask them of whoever has you on the phone, and ask them of me, because I'm on that list. I'll answer each one as it comes.

"Where does that fee come from, a lookup or the model?"

Say it plainly: when your software tells my customer what a service call costs, is it reading that number out of my settings, or is it remembering it?

That's not a technicality. A number the model was told once, somewhere back in its instructions, is a number being recalled, and recall drifts. A digit moves. A "starting at" appears out of nowhere. A lookup can't drift, because a lookup either goes and gets the number or it has no answer to give.

Mine goes and gets it. When a caller asks what it costs to come out, the model isn't allowed to answer from memory; it calls a function that does exactly one thing, which is pull the service-call fee out of that shop's own pricing config. Then the sentence the caller hears is built from what that function returned, not reworded on the way out. Two separate pieces stacked on purpose — the model has to make the call, and even after it does, it doesn't get to paraphrase the number.

Ask the other half of the same question too, because for a plumber it might be the more important half: what does it say when the caller pushes for a repair total? Mine refuses. Flatly, every time. There is no tool that can price a repair sight unseen, so there is no number, so it doesn't produce one.

Here's why this lands harder in plumbing than in most trades. Your service-call fee is the only number anybody can honestly say out loud before the job starts, because what is wrong is unknowable until somebody's hands are on the valve. That is the whole reason the fee exists. So that one number carries all the weight, and it is the number the homeowner writes down and repeats back to you at the door. A fee quoted light by five dollars is a fee you either eat or argue about while you are on your back under their sink.

"Is the area check exact, or does it guess?"

Ask how it decides an address is yours. Does it compare, or does it judge?

Mine compares. There's a coverage list, the towns and ZIPs you drive, and the check is an exact match: normalize the text, then require equality. Not a substring. Not close enough. Not a name that sounds like one on the list. A town either equals something you serve or it doesn't, and that is the plainest possible piece of code, plain on purpose. The alternative is a judgment call about geography made by something that has never driven your route, which is a coin flip with your morning riding on it.

Then ask a follow-up, because "it checks the area" can mean two very different things. I built mine so it can't write the call up as one where a time was offered and taken unless that coverage check already came back confirmed. That's not a line in the instructions hoping to be obeyed. It is a refusal in the code: ask for that record without the confirmed check and an error comes back instead. So the follow-up is worth asking of anybody, in exactly these words: is the check advice, or is it a gate?

The plumbing version of getting this wrong isn't abstract, and I want to be concrete about it. You loaded for a water heater swap. New tank in the bed, expansion tank, flex connectors, the pan, a permit if the county wants one. That is a load you built for one address and one job, and building it took the first hour of your day. Forty minutes the wrong direction and the tank is still in the truck at eleven, the swap you could have done became Thursday, and the customer who actually is in your area got moved for somebody who never was. A fuzzy match does not feel like anything at the moment it happens. It feels like something when the address turns out to be a town whose name merely starts the same way as one of yours.

"What does it ask first, the name or the problem?"

This is the cheapest of the four to check and the most revealing. Ask what the first real question is, after the greeting.

Mine asks what is wrong. Not the name, not the address: the problem, and it says back what it heard before it asks for anything else. Name, service address, callback number come after that, one at a time, instead of four questions crammed into one breath.

I put the problem first for a boring reason. A name is worth nothing to you until you know whether something is running. What's wrong is the fact that decides everything downstream, including which of a few pre-written scheduling windows gets offered, and that choice comes from a classifier sorting the caller's own wording into a response window, making no safety judgment of any kind. Everything else on the call is bookkeeping, and bookkeeping can wait ninety seconds.

But the reason it's a good question to ask a vendor is what the answer tells you about who built the thing. A form asks who you are, because a form is going to be read later by somebody with time. A dispatcher asks what is wrong, because a dispatcher has to do something about it before the call is over. That ordering is the entire difference between those two jobs, and you can hear which one a system was built as inside the first ten seconds.

There's a plumbing-specific version of it, and you've heard this call. The person on the other end of a supply line that just let go isn't in a position to spell a street name. One hand has the phone, the other is holding a towel against something, and the first thing out of their mouth is what it is doing, not who they are. Answering that with "can I get your name?" is asking somebody to do paperwork while water is moving.

"What happens after the hangup, and can I see it?"

Ask this one last and ask it hardest, because it's the question where an answer can sound complete while covering only half of what you asked. Split it in two and make it get answered twice: what gets written down, and what gets to you.

Here's mine, both halves. The second half is the worst thing in this post.

What gets written: at the end of the call, the model calls a record tool, and that writes a structured record. Name, service address, callback number, what the caller said was wrong, which urgency class it landed in, and how the call ended. It happens when that tool gets called, which is not the same as firing automatically on every call that comes in, and that distinction is worth making out loud rather than rounding off. The fee it quoted isn't in the record; that is not one of the fields.

What gets to you: nothing goes out. No text, no email, no push notification. There is an owner-facing calls list built, real code and a real page, and every finished call gets appended to that list's index specifically so the list has something in it. What is not built is your way in — self-serve signup isn't live, so there is no account of yours to sign into and open it. A surface with no door.

The plumbing version of why that is the half that counts: you're not opening a browser tab while your hands are inside a wall. The place a plumber finds anything out is the phone in his pocket, in the truck, in the four minutes between a crawlspace and the next address. That is the exact channel with nothing on it. I am telling you this inside a post that is asking you to consider buying the thing, because it is the first gap you would notice in week one, and something you find out in week one was never a secret worth keeping anyway.

Ask all four, then go check one yourself

That is the sales beat and it is the only one in here: I am building Dialkeep, the answers above are mine, and what I want is you asking these of everybody, me included.

None of the four is fully checkable in a chat window, but you can watch the habit underneath them. The demo is a chat window: type your business name in, it works from your own site, and you ask it what a caller would ask you. Know what it is before you judge it. It's text, not a phone call, so it doesn't run the intake order I described up there; what it will show you is whether the answers hold together and where it declines to guess instead of filling the silence. It won't put a repair price in front of you in the chat either, on the same principle that keeps it off the phone.

If you want the longer walk through what one of these is built to do on a burst-pipe call, I wrote that one separately. That post tells you what mine does. This one hands you the test for anybody's, and it goes a layer deeper on mine than that post did: which fields the record actually carries, when it gets written, and where the coverage check stops being an instruction and becomes a hard stop.

There's a fifth spot worth checking that I didn't turn into a question here. A rule I wrote and a tool I built disagreed with each other — I wrote that one up separately.

Four sentences to say out loud to whoever is selling. If all four answers come back vague, you've learned something. If all four come back specific, you've learned something better, and now you have four things you can go check.

Give the burst-pipe test a try

See the demo at dialkeep.ai/demo — type your business name, then ask it what a 2am caller would ask about your shop — and judge the answers. It's a chat, not a phone call, and it won't quote you a price, on purpose. Or leave your email below and we'll follow up instead.

Plumbers — the moment the phone matters, a dusk scene with one amber light on

Built for plumbers

Burst pipe at 2am doesn't care that you're asleep. Neither does this. It answers, asks what's happening and where, and gets the details while they're still on the line — instead of a beep they hang up on before dialing the next plumber.

Catch the 2am burst-pipe call (it picks up so you don't have to) →