Evalgent
Back to Blog
Voice AI Testing

Locksmith AI Answering Service: Verify Before Dispatch

Deepesh Jayal
14 min read
Locksmith AI Answering Service: Verify Before Dispatch
On this page

Your agent answers a lockout call at 11 p.m. The caller is on a curb, in wind, talking fast. Within four minutes the agent has to write a job record that a technician will drive to. If one digit or one street name is wrong, nobody sees an error. A truck goes to the wrong block, or a callback rings a stranger.

This post is for teams that run a locksmith AI answering service inside a dispatch or field-service product, across many shops. It covers the fields to capture, why phone audio corrupts them, and the gates that stop a bad record. It ends with a test plan for your next prompt change.

39%
average street-name transcription error across 15 speech models on a San Francisco street dataset (Together AI write-up)
5.8%
Whisper-Small word error rate on spoken digits at 8 kHz, vs 1.8% for a purpose-built digit model (arXiv 2402.01931)
31
children who died of heatstroke in vehicles in 2025 (NHTSA)
13
states that required locksmith licensing as of January 2025 (ALOA)

What a lockout call really writes into your system

A lockout call looks like a conversation. Underneath is a short agentic workflow: capture, system action, confirmation, write-back. This holds for any AI receptionist for locksmiths, and for any locksmith answering service that swapped a human line for an agent.

1. Capture. The agent hears a location, a number, a lockout type, a vehicle, a name and a request.

2. System action. It creates a job and offers it to a technician.

3. Confirmation. It texts or reads back an arrival window and a price.

4. Write-back. The job record, the invoice draft and the customer thread all inherit the captured fields.

Each step trusts the one before it. A mis-heard cross street becomes a wrong pin in the technician's app. A wrong callback digit sends the confirmation text to a stranger. Nothing throws an exception. The job fails at the curb, forty minutes later.

Locksmith work adds two pressures most booking agents do not face. The caller is stressed and often outdoors. The job is also an entry request, so the shop has a real reason to check caller authority.

Other trades share the same record logic. See our posts on 2 a.m. vacation rental lockouts, emergency plumbing triage and after-hours electrician calls. This post stays on what is unique to locks: verification before dispatch.

The verify-before-dispatch record

Treat the job record as a form with hard gates. Some fields can be soft. These cannot.

FieldWhat counts as confirmedTypical failure
Safety flagAgent asked "is anyone or any animal inside?" and stored the answerQuestion skipped, so "no" is assumed
LocationStreet number, street, city and one cross street or landmark, read back and acceptedSimilar street names, "Fifth" vs "Fifteenth"
Callback numberAll ten digits read back in groups and acceptedOne digit wrong, voicemail on arrival
Lockout typeOne of: home, car, commercial, safe, otherSafe or commercial job booked as a car
VehicleYear, make, model for car jobs, and key type if knownWrong model, wrong tools and no key blank
AuthorityCaller says they own it, rent it, or act for the ownerNever asked, or asked and not stored
Price termsAgent stated only what the shop has approvedA quote the shop never authorised

A good record also stores how each field was confirmed. "Address: read back, caller said yes" is evidence. "Address: heard once" is a risk flag.

Why phone audio corrupts addresses and numbers

Most callers reach your agent over the phone network. Twilio's documentation says its Media Streams audio is `audio/x-mulaw` at 8000 Hz. That is narrowband, 8 kHz phone audio. Consonants that separate "fifteenth" from "fifth" lose energy. Wind, traffic and a car alarm make it worse.

Two speech recognition studies help size the risk. Neither is about locksmiths, so treat them as direction.

Street names. A Together AI write-up covers the SF Streets dataset: 2,262 utterances from 78 U.S. speakers saying San Francisco street names, run through 15 speech models. The average street-name error rate was 39%, though the same models scored low on general speech. Speakers whose first language was not English saw an 18-point accuracy gap (46% vs 64%). For that group, mis-transcribed destinations landed 2.40 miles away on average.

Digits. The paper Digits micro-model for accurate and secure transactions tested spoken digits converted to 8 kHz audio. Whisper-Small scored a 5.8% word error rate and Whisper-Large 4.6%. A purpose-built micro-model scored 1.8%. The authors note Whisper errs more on two-digit numbers, such as "sixteen" heard as "sixty". Results are self-reported and cover spoken numbers only.

Worked example: a ten-digit callback number

These numbers are an illustrative assumption, not a measurement. If each digit is heard right with probability p, the whole number is right with probability p to the tenth power.

Per-digit accuracyWhole 10-digit number correctChance of at least one wrong digit
99.5%95.1%4.9%
99%90.4%9.6%
98%81.7%18.3%
95%59.9%40.1%

Now add a read-back. The agent repeats the number in groups, and the caller catches 90% of wrong digits (an assumption to measure). A 2% per-digit error becomes 0.2%. The chance of a bad number falls from 18.3% to about 2.0%. Read-back is the cheapest control in the flow.

Bar chart showing how a 10-digit callback number's chance of being fully correct falls as per-digit accuracy drops, with and without a caller read-back confirmation step.

Addresses need the same discipline. A street name can be valid and still wrong. Ask for a cross street or landmark and check the pair against your geocoder. Our posts on pizza delivery address errors and entity accuracy in speech-to-text go deeper on the mechanics.

The failure taxonomy for lockout calls

Seven failure classes cover most of the damage. Each has a different downstream effect, so each needs its own test.

Table-style diagram of seven locksmith call failure classes, what the agent stores, and what happens at the curb, from wrong address to a safety call routed as dispatch only.

Lockout type confusion

"I'm locked out" fits a house, a car, a shop and a safe. Each needs different tools, time and price. A caller may say "my door" and mean a vehicle door. If the record says "residential" and the tech brings a home kit, the job becomes a reschedule.

The agent should ask a closed question: "Is this a home, a car, a business, or a safe?" Then it should branch. Car jobs need year, make and model. Commercial jobs need a business name and a person on site. Safe jobs usually need a human.

Price promises that become disputes

A "$19 service call fee" is the classic bait. It covers the trip, not the work. The caller hears one price and the invoice shows another. The dispute lands on the shop, and the shop blames the agent.

Regulators describe the pattern plainly. Connecticut's Department of Consumer Protection calls it a bait-and-switch: a low advertised price, then a higher one on site (DCP alert, July 16, 2026). It advises a full price up front, including service and travel, and a written quote before work begins. Minnesota's Attorney General says a quote should cover total cost for all work, additional fees and parts.

For your agent, that means a rule. It may state only prices the shop loaded into a rate table, and it must name the components. If the job type is unknown, it says a technician will confirm the total before work starts. It should never improvise a price quote.

Children, pets and medical risk

A caller says a child is locked in a car. A dispatch-only agent books a truck for thirty minutes out. That is the worst outcome in this post.

NHTSA's guidance for anyone who sees a child alone in a locked car is to "act immediately and call 911". NHTSA also reports 31 child heatstroke deaths in vehicles in 2025 and says a child's body temperature rises three to five times faster than an adult's.

So the safety question comes first. If the answer is a child, an animal in heat, or a medical risk, the agent tells the caller to call 911 now, then offers to dispatch in parallel. It does not collect an address first. Your policy and local rules set the exact wording. A prompt tweak must not be able to skip that 911 instruction.

Missing authority check

A technician opening a door acts on the caller's word. The agent should ask whether the caller owns the property or vehicle, rents it, or acts for the owner, and store the answer. Then the shop's policy applies on arrival, such as ID or proof of ownership. Connecticut and Minnesota both advise customers to check the technician's ID, so a shop that checks the caller in return is consistent.

This is not legal advice. The authority rules a shop must follow depend on its state, insurer and policy. Have the shop owner set them, and write them into the gate.

Surge

Emergency locksmith call answering is bursty. A storm, an ice morning or a big event can send dozens of lockouts in an hour. Say 60 calls arrive in an hour and each takes 3.5 minutes. That is 3.5 concurrent calls on average (illustrative numbers). A voice agent can answer all of them at once. Technician dispatch cannot.

Suppose 8 technicians each finish a job in about 65 minutes including driving. That is roughly 7 completed jobs an hour. If the agent promises "about 30 minutes" from a static prompt, most callers get a promise the shop cannot keep. An ETA must come from the live queue. When the queue is deep, the agent says so and offers a callback slot.

The scam shadow: do not sound like a lead-gen call center

Locksmith fraud is a long-running consumer problem. The FTC warned in 2008 that some locksmiths in local phone listings are not actually local. Minnesota's AG describes operators who use local-sounding names and numbers but run out-of-state call centers that forward the caller to a local contractor. Its warning signs include a vague greeting, such as just saying "locksmith", instead of a business name.

Connecticut adds more signals. It tells consumers to hang up if the caller cannot give an exact address, to check for multiple out-of-state numbers, and to refuse service from technicians with no ID or registration number.

Your shops' agents can fail these tests without bad intent. Read them as a checklist:

  • It should answer with the shop's real name, every time.
  • It should state the shop's city or service area when asked.
  • It should never give a price it cannot back.
  • It should be able to say who will arrive and how the caller will recognize them.
  • It should never say "licensed and bonded" unless that is a verified fact for that shop.

Licensing: say only what a source supports

Some states license locksmiths and others do not. ALOA's advocacy page says that as of January 2025, 13 states require locksmith licensing. It lists Alabama, California, Connecticut, Illinois, Louisiana, Maryland, Nevada, New Jersey, North Carolina, Oklahoma, Oregon, Texas and Virginia. The same page notes that Illinois lawmakers voted to let its locksmith licensing sunset on January 1, 2029, so it is still licensed today. Minnesota's AG says Minnesota does not require a locksmith license or bond. Connecticut requires individuals who perform locksmith services to register.

Two conclusions follow. First, the agent must never call a shop a licensed locksmith unless a verified field says so. Second, if you serve shops in several states, store licensing status per shop. One global prompt line will be wrong somewhere. The count may have changed since, so check each state's regulator.

How to test a locksmith AI before it takes live calls

Manual test calls miss the cases that hurt: noise, accents, interruptions and unscripted callers. Use this sequence for every prompt, model or speech-provider change on your locksmith AI answering service.

1. Move the gate out of the prompt. Put the dispatch decision in code that reads the confirmed fields. A prompt can drift. A function that refuses to dispatch cannot.

2. List 12 core scenarios. Home lockout, car lockout, commercial lockout, safe, a lost key, a child in a car, a pet in a car, a tenant without the landlord's consent, a caller who will not give an address, a price-shopping caller, a caller who changes the address mid-call, and a surge call with a long queue.

3. Script ground truth. Each test caller has a fixed address, number, vehicle and story. You know what the record should contain.

4. Vary the conditions. Test accents, fast speech, interruptions, delayed answers, wind or traffic noise, and Spanish as well as English. Run each scenario across several conditions, not once.

5. Compare the stored record to ground truth. Check every field, not only the final outcome. A call can sound fine and still store the wrong digit.

6. Set hard bars. Safety scenarios need a zero-miss bar: the 911 instruction must appear on every run. Treat callback number and address as exact-match fields, and set your own thresholds from your risk tolerance.

7. Re-run on every change and compare. A prompt that fixes price quotes can quietly break the read-back. Our guide to shipping prompt changes safely covers the release gate.

A minimal dispatch gate looks like this. It is simplified, so adapt the fields to your schema.

from dataclasses import dataclass

@dataclass
class LockoutJob:
    safety_risk: str | None = None      # "child", "animal", "medical" or None
    safety_asked: bool = False
    address_readback_ok: bool = False
    callback_readback_ok: bool = False
    lockout_type: str | None = None     # home, car, commercial, safe
    vehicle_ok: bool = False            # year, make, model captured
    authority_stated: bool = False
    price_terms_stated: bool = False

def dispatch_gate(job: LockoutJob) -> tuple[str, list[str]]:
    if not job.safety_asked:
        return "ask_safety_first", ["safety question not asked"]
    if job.safety_risk:
        return "give_911_instruction", [f"safety risk: {job.safety_risk}"]
    missing = []
    if not job.address_readback_ok:
        missing.append("address not read back")
    if not job.callback_readback_ok:
        missing.append("callback not read back")
    if job.lockout_type not in {"home", "car", "commercial"}:
        missing.append("lockout type needs a human")
    if job.lockout_type == "car" and not job.vehicle_ok:
        missing.append("vehicle details missing")
    if not job.authority_stated:
        missing.append("authority not stated")
    if not job.price_terms_stated:
        missing.append("price terms not stated")
    return ("hold_for_human" if missing else "dispatch"), missing

The decision tree below shows the same order in diagram form.

Decision tree for a locksmith AI call: safety triage first, then address and callback read-back, lockout type, authority, and price terms, ending in dispatch or hold for a human.

What a good test matrix looks like

ScenarioConditions to varyWhat to check in the record
Home lockout, similar street namesAccent, wind noiseStreet, cross street, number
Car lockout, rare modelFast speechYear, make, model, key type
Child in a hot carInterruptions, panic pace911 instruction before anything else
Tenant, owner unreachableHesitationAuthority stored, job held per policy
Price shopperRepeated asksOnly approved price terms stated
Surge, deep queueConcurrent callsETA from live queue, callback offered

Testing and monitoring a locksmith AI answering service with Evalgent

Most evaluation tools judge a voice agent by reading its transcript. For a locksmith line, the referee is deaf. A transcript can show "five five five oh one four seven" while the caller said "two". The failure lives in the audio, and in the gap between your prompt and what callers do. Evalgent evaluates from the audio, not only the transcript, so the recording itself is the evidence.

Evalgent generates test scenarios from your agent's prompt and flows, including states, branches, policies and hard constraints. Caller profiles cover accent, pace, interruption level, response delay, background noise and language. The call simulator reaches your agent over phone, SIP or WebRTC. It is set up with your team for your first agent, not as a self-serve product.

After launch, its production monitoring takes your call recordings, transcribes them, maps them to scenarios and judges them. It flags PII leakage, tool-call failures, latency spikes and policy failures, with fix recommendations. For locksmith AI dispatch, a custom metric such as "did the agent read back the callback number before dispatch" can run on every call. Our posts on monitoring AI voice agents in production, silent tool failures and transcript versus audio evaluation explain the approach. If you also run roadside or towing flows, see towing company dispatch calls and our roadside vendor evaluation guide.

Frequently asked questions

Can an AI answering service verify a caller before dispatching a locksmith?

It can capture and store a claim of authority, such as owner, tenant or agent for the owner. It cannot prove identity over the phone. The shop's policy then decides the on-site check, such as ID. The agent's job is to ask every time, record the answer, and hold the job when the answer is missing.

How does an AI capture a lockout address correctly?

Ask for number, street and city, then a cross street or landmark. Read the full address back and require a clear yes. Check it against a geocoder. Narrowband phone audio confuses similar street names, so a read-back plus cross street catches errors that a single pass would store.

Should an AI quote a price on a locksmith call?

Only a price the shop has approved and loaded into a rate table, with its components named. Connecticut and Minnesota consumer guidance both stress a full price up front. If the job type is unclear, the agent should say a technician will confirm the total before work begins.

What should an AI do if a child is locked in a car?

Tell the caller to call 911 immediately, before collecting details. NHTSA's guidance for a child alone in a locked car is to act immediately and call 911. The agent can then offer to dispatch in parallel. Write that rule in code so a prompt edit cannot remove it.

How can a shop's AI avoid sounding like a locksmith scam call center?

Answer with the shop's real name, give a real service area, state price terms plainly, and never claim a license without a verified record. State consumer alerts flag vague greetings, non-local numbers and callers who cannot give an exact address as warning signs.

How do you test a locksmith AI receptionist?

Script callers with known addresses, numbers and stories. Vary accent, noise, pace and interruptions across scenarios. Then compare the stored job record to ground truth, field by field. Treat safety routing as zero-miss, and re-run the suite on every prompt, model or speech-provider change.

Does a car lockout job need year, make and model?

Usually yes, because tools, key type and time depend on the vehicle. Capture year, make and model, read them back, and flag unusual models for a human. A wrong model can mean the technician arrives without the right tools, so the job becomes a second visit.

Do all states require locksmiths to be licensed?

No. ALOA's page lists 13 states as of January 2025 and notes Illinois licensing is scheduled to sunset in 2029. Minnesota's Attorney General says Minnesota requires no license or bond. Store licensing status per shop and state, and have the agent claim a license only from a verified field.

The bottom line

A locksmith AI answering service earns trust when it refuses to dispatch on unverified fields. Gate the job in code, read back every digit, and test with noisy audio before every change.

Related Articles