All posts
The 3 AM Call: Building an Agent Receptionist That Never Misses One
TutorialBy Dial Engineering·5 min read·October 12, 2026·0

The 3 AM Call: Building an Agent Receptionist That Never Misses One

A pipe bursts at 3 AM and the plumber's phone goes to voicemail. This is a design walkthrough for an agent receptionist: what it says, what it captures, when it wakes a human, and what the owner reads over coffee.


Imagine a plumber named Marisol who runs a small company with three trucks. At 3:07 AM a stranger's basement starts filling with water. They call the first plumber they find. It rings six times and goes to voicemail. They call the next one.

Marisol never knew. That call was the most valuable lead of her week, and it went to a competitor because she was asleep, which is what a person is supposed to be doing at 3 AM.

Small businesses lose calls like this constantly. An agent receptionist is the obvious fix, but "just add an AI" is not a design. This walkthrough covers the decisions that make the difference between a receptionist that helps and one that makes things worse. The pseudocode below is illustrative and not tied to any particular product.


Step 1: The greeting

The first ten seconds decide whether the caller stays on the line.

A good greeting does four things:

  • Discloses honestly. Say it is an AI assistant and who it works for. This is the right thing to do, and for many jurisdictions it is also what regulation is moving toward. The ACES whitepaper treats disclosure as an enforced first turn rather than a suggestion.
  • Names the business. The caller needs to know they reached the right place.
  • Offers a path. Tell them what the assistant can do right now.
  • Stays short.
  • Something like: "Hi, you've reached Marisol's Plumbing. I'm an AI assistant. I can take down the details and get a plumber moving. What's going on?"

    Notice the last line is a question, and an open one. At 3 AM the caller is stressed. Let them talk.


    Step 2: Intent capture

    The agent has one job here: understand the situation well enough that a human can act without calling back. Think of it as filling out a form through conversation.

    For a plumbing business, the form might be:

    call_record:
      caller_name:        required
      callback_number:    confirm from caller ID, then read back
      address:            required, read back to confirm
      problem_type:       burst pipe | leak | blocked drain | no hot water | other
      severity:           active flooding | slow leak | inconvenience
      safe_right_now:     yes | no | unsure   (water near electrics?)
      can_shut_off_water: yes | no | unsure
      best_time_to_reach: now | morning | specific

    Design notes that matter:

  • Ask one thing at a time. Stressed people cannot answer a four-part question.
  • Read back the critical fields. Addresses and phone numbers get misheard. A read-back costs five seconds and saves a wasted truck roll.
  • Help in the meantime. If the caller says water is gushing and they do not know where the shutoff is, the agent can give simple, safe, pre-approved guidance, such as where main shutoffs are commonly found. Keep this list short, vetted by a human, and clearly limited. The agent should not improvise safety advice.
  • Allow the caller to leave the script. If they ask something outside scope, say so plainly and return to the capture.

  • Step 3: Escalation rules

    Not every 3 AM call deserves waking Marisol. Some do. The rules must be explicit, written down, and boring.

    escalation_rules:
      wake_owner_now if:
        - severity == "active flooding"
        - OR safe_right_now == "no"
        - OR caller_says_emergency_keywords (gas smell, sparks, sewage backing up)
        - OR caller_is_existing_customer AND problem_type != "other"
    
      queue_for_morning if:
        - severity in ["slow leak", "inconvenience"]
        - AND safe_right_now == "yes"
    
      never_decide_alone:
        - quoting a final price
        - promising an arrival time
        - anything involving gas or electrical danger beyond "leave the building, call emergency services"

    Three principles to build in:

    Err toward waking a human on danger. A false alarm costs Marisol a bad night. A missed gas leak costs far more. Asymmetric costs mean an asymmetric threshold.

    Escalate with the context, not just the alarm. When the agent wakes the owner, it sends a text with the whole case, not "missed call from unknown number." Something like: "Active flooding, 41 Alder St, caller Priya, safe, water shut off. Call back: the number below." Marisol can act from her pillow.

    Have a second human. If the owner does not respond within a set time, the agent tries the next person on the list, and tells the caller honestly what is happening: "I've alerted our on-call plumber and will let you know as soon as someone responds."

    The agent must never promise what it cannot deliver. "Someone will be there in twenty minutes" is a lie unless a human said so.


    Step 4: The follow-up to the caller

    Calls end, and anxiety does not. Before hanging up, the agent should:

  • Summarize what it captured and what will happen next
  • Offer to text the summary and the business number
  • Honor the caller's channel choice
  • After the call, a short text goes out: "Thanks for calling Marisol's Plumbing. We have your details for 41 Alder St and have alerted our on-call plumber. If you don't hear back within 15 minutes, call or text this number." Giving the caller a thread to continue on, one that keeps the context, means that when they reply "he's here, thanks" or "water's rising," the agent still knows who they are. That continuity across channels is the problem the whitepaper calls the cold start.


    Step 5: The morning summary

    The next morning, Marisol should open one message that tells her everything she needs, in order of what needs action.

    summary_message:
      headline:    "3 calls overnight: 1 emergency handled, 2 for today"
      per_call:
        - time, caller, address, problem, severity
        - what the agent said and promised
        - what was escalated, to whom, and the result
        - recommended next action
      at_the_bottom:
        - link to the full transcript for any call

    By text or email? Use text for the headline, since she will read it with her coffee, and email for the full detail with transcripts, since email carries structure well. This is the channel-matching question: short and urgent goes to text, long and structured goes to email.

    Let the summary be honest about uncertainty: "Caller was unsure whether the water was near electrical outlets. Recommend calling first." An agent that hides doubt is worse than one that flags it.


    What to test before you trust it

    Run it through scripted callers: the panicked one, the one who cannot hear, the one who gives the wrong address twice, the one who asks if it is a real person. Check that every danger keyword escalates, every call produces a summary, and nothing is promised that a human did not authorize.


    The takeaway

    A good agent receptionist is not a clever conversationalist. It is a disciplined one: honest in the greeting, structured in the capture, conservative in the escalation, and thorough in the handoff. It does not replace Marisol. It makes sure that the 3:07 AM caller reaches her at the moment it matters, with everything she needs to know, and that the next morning she knows exactly what happened.

    Voice, text, email, one thread, one identity: that is the shape of the infrastructure problem Dial works on, so the receptionist can focus on the conversation.

    Did you enjoy this post?

    0 claps