HVAC & Air Conditioning// CASE STUDY · April 15, 2026
// The build

AI receptionist captures 99% of after-hours emergency calls

A Phoenix HVAC company was losing emergency leads to voicemail every night after 6pm. Deploying an AI receptionist plus a dispatch workflow recaptured the after-hours pickup rate and freed the office manager from 47 hours a week of triage.

Hours saved per week
47
from ~6 hrs/day to under 30 min
// Demonstration scenario — realistic for this category, not a named client

The problem

Before this build, the shop's after-hours line went straight to voicemail. The office manager spent the first 90 minutes of every morning triaging messages, calling people back, and watching three or four of them get booked by a competitor who'd answered live the night before.

The owner could see the leak — water-heater calls coming in at 9pm, booked elsewhere by 7am — but couldn't justify $4,500/month for a human answering service that wouldn't actually book the job, only take the message.

What we built

We deployed a Vapi voice agent on a dedicated number that the main line forwards to after 6pm. The agent triages the call live: water heater emergency, AC out in a heatwave, drain issue, or routine quote. It collects the address, scores urgency from the conversation, books the right on-call tech on the shared calendar, and SMS-pings the dispatcher with the booking and a one-paragraph summary.

VOICE_AGENTLIVE

After-hours emergency receptionist

02:14Incoming :: water heater leak
02:14Triage :: P1 emergency
02:15Booked :: Mike, Tue 6am
02:15Dispatcher SMS sent

Behind the agent, an n8n workflow handles the post-call work — writes the booking to the CRM with a P1 tag, updates the on-call tech's calendar, and posts the transcript to Slack for morning review.

agent.transcript --post-call
→ CRM updated :: lead_id=4821
→ calendar synced :: tech=mike
→ slack posted :: #dispatch
READY

The triage prompt itself is intentionally short — the conversational behavior comes from the tool definitions and the fallback rules, not from a 3,000-word system prompt.

// agent.config.ts
export const dispatcherAgent = defineAgent({
  voice: 'vapi:warm-female-01',
  fallback: { transferTo: ON_CALL_SUPERVISOR },
  tools: [bookOnCalendar, lookupCustomer, classifyUrgency],
})

The numbers

before :: After-hours pickup
0%
after :: After-hours pickup
99.4%
Hours saved per week
47
office manager now does morning ops, not voicemail triage
before :: 6 hrs/day
after :: < 30 min/day

"I haven't listened to a voicemail in three weeks. I didn't know that was a thing you could be free from." — owner, week 4 post-launch

The stack

Vapin8nServiceTitanTwilioSlack

Want one of these?

[ TL ][ TR ][ BL ][ BR ]

Stop clicking. Start automating.

15 minutes. No pitch deck. No sales theater. Just a real conversation about what's slow, what's broken, and what we'd automate first.

Book a 15-min Intro Call
Prefer email? sergio@alphaprism.net