The call came in on a Tuesday at 2:43 PM. A homeowner, AC unit dead in the middle of summer, ready to book on the spot. The phone rang six times. Nobody picked up. By Wednesday morning, she had already scheduled with a competitor. This wasn't a rare event for our client — it was happening 40 to 60 times per week.
Marcus runs a 12-truck HVAC operation covering a mid-sized metro market. Annual revenue sat around $2.8M. He knew he was losing calls — his dispatcher mentioned it constantly — but he didn't know the actual dollar figure until we ran a three-week audit of his inbound call logs against his job completion data. The gap was staggering.
The Problem with Voicemail
Every HVAC operator knows the pattern. Technicians are on the roof, under a crawlspace, or driving between jobs. The dispatcher is juggling the schedule board and three other calls. The phone rings. Nobody picks up. The caller hears a generic voicemail greeting — if they're lucky — and roughly 62% of them hang up without leaving a message. They move on to the next result on Google Maps.
The ones who do leave messages? Marcus's team was averaging 3.2 hours to return those calls. In HVAC, that's an eternity. Heat-of-summer urgency evaporates fast.
The first 60 seconds of a missed call is when you lose the customer. Not the voicemail. Not the slow callback. The moment the phone stops ringing without a human voice.
— Marcus, Owner, [Client Name Withheld]What We Built
The architecture wasn't complicated, but the configuration took three iterations to get right. We deployed a voice AI agent using a stack built around a real-time telephony layer connected to a large language model with a tightly scoped system prompt. The agent answers every call within two rings, 24 hours a day.
Call Flow Design
The single biggest mistake operators make when deploying voice AI is treating it like an IVR menu. Callers hate IVR. They want to feel heard. So the agent is trained to open naturally — identify the business, ask what's happening, and listen. No "press 1 for service." No robotic branching trees.
- Answer inbound calls, capture caller name, address, and issue description
- Qualify urgency (emergency vs. standard booking window)
- Check dispatcher calendar availability in real time via API integration
- Book appointments and send SMS confirmation to the caller
- Route emergency calls to on-call technician mobile
- Handle after-hours with accurate next-day availability
The Integration Stack
Marcus was already using ServiceTitan as his field management software. The agent connects to it via a webhook integration — when an appointment is booked through the AI, it writes directly into ServiceTitan as a pending job, with the customer record auto-created if they're not already in the system. No double entry. No dispatcher manual input.
Inbound Call
→ Voice AI Agent (answers in <2 rings)
→ Intent Classification (emergency / standard / inquiry)
→ Calendar Check (ServiceTitan API)
→ Appointment Booking
→ SMS Confirmation (Twilio)
→ Job Record Created (ServiceTitan)
→ Dispatcher Notified (Slack)
The dispatcher notification piece is underrated. The first version of the system didn't include it. Dispatchers felt out of the loop — they'd show up to their screen in the morning and find jobs already booked without context. Adding a structured Slack message with the call summary and booking details fixed that friction almost immediately.
What Didn't Work (First)
The agent initially struggled with two specific call types, and we had to rebuild those workflows from scratch.
Warranty & Recall Calls
About 12% of inbound volume is customers calling about warranties, recalls, or prior work. These calls require pulling job history — something the Phase 1 agent couldn't do. Callers got frustrated when the agent couldn't tell them whether their unit was under the service plan they'd purchased eight months ago. We integrated a read-access ServiceTitan job lookup for Phase 2, which resolved this.
Objection Handling on Pricing
When callers asked about pricing before booking, the first version of the agent gave a flat disclaimer — "pricing depends on the job, a technician will provide a quote on-site." Technically accurate. Conversationally dead. Callers wanted a ballpark. We rewrote this segment with a tiered response that gives ranges by service category while still setting expectations around the on-site diagnosis. Booking conversion on these calls improved by 31% after the change.
The Numbers at 90 Days
We don't publish case studies with vague percentages. Here's the actual data from Marcus's operation, with his permission, at the 90-day mark post-deployment.
The after-hours number is the one Marcus brings up first in every conversation now. Before the agent, after-hours calls went to voicemail. The next-day callback rate was poor, and most callers had already booked elsewhere. The AI agent books them in real time, at 11 PM, on a Sunday. That's where a significant portion of the $340K came from.
The revenue wasn't hidden in new marketing spend or a bigger service area. It was already knocking — calls were coming in that nobody was answering. Voice AI doesn't generate demand. It captures the demand you're already generating and currently losing.
Should You Deploy This?
Voice AI isn't a fit for every business at every stage. The economics make sense when your inbound call volume is high enough that missed calls represent meaningful lost revenue, and when your team doesn't have the capacity to handle every call in real time. For most established HVAC, plumbing, and electrical operations with more than 6 trucks, the math almost always works in favor of deployment.
If you're averaging fewer than 15 inbound calls per day, the ROI timeline extends and the prioritization question changes — there are likely higher-leverage automation moves to make first. We can walk through this with you in a discovery call.