An HVAC company lives or dies on whether the phone gets answered. That much has always been true. What's changed is that you now have a third option beyond hiring a dispatcher or letting calls roll to voicemail, and almost nobody selling you that third option will tell you what it costs.
So this piece does both halves. First, what an HVAC answering service actually costs, using rates the providers publish themselves. Then how to build one with an AI agent that triages emergencies, books routine work, and doesn't need to sleep through a January cold snap.
What an HVAC Answering Service Costs
Start with the part the market is coy about.
Of the providers ranking for "HVAC answering service" right now, exactly one publishes a rate card. Specialty Answering Service lists its plans openly:
| Plan | Monthly base | Included minutes | Per-minute rate |
|---|---|---|---|
| Economy | $44 | None | $1.54 |
| 100 Minute | $159 | 100 | $1.44 |
| 500 Minute | $649 | 500 | $1.34 |
| 1,000 Minute | $1,199 | 1,000 | $1.29 |
| 10,000 Minute | $10,599 | 10,000 | $1.09 |
The others won't say. Nexa points you to a phone number. MAP Communications offers "a custom quote." AnswerPro describes "affordable monthly packages" without a figure anywhere on the page. That's the reason the most common question Google surfaces for this term is some version of "what does this cost," and it's a fair question to be annoyed about.
Run your own numbers against that table. A shop taking 300 calls a month at a three-minute average is using about 900 minutes, which lands on the 1,000-minute plan at $1,199 a month. Call it $4 a call. The per-minute rate only improves meaningfully at volumes a single-location contractor rarely reaches.
For a reference point outside the answering-service industry, Gartner's customer service cost benchmarks put the median cost per contact at $13.50 for assisted channels and $1.84 for self-service. Outsourced human answering sits between the two. It's cheaper than staffing your own assisted desk and several times the cost of a self-service interaction.
Why "The Technician Can Answer It" Is the Expensive Option
Here's the comparison that traps people. The US Bureau of Labor Statistics puts median pay for heating, air conditioning and refrigeration mechanics and installers at $61,010 a year, or $29.33 an hour. That's about 49 cents a minute, which makes a technician answering the phone look three times cheaper than any answering service on the table above.
It isn't, because you're not buying a minute of talk time. You're buying an interruption. The technician is on a roof, in an attic, or holding a torch, and the call either goes unanswered or the job stops. Neither outcome shows up in a per-minute rate.
The labour market makes the dedicated-dispatcher route harder too. BLS counts 440,900 people in the trade in 2025 and projects 11% growth through 2035, with roughly 40,600 openings a year. Hiring for a phone seat means competing in that market for someone who isn't billable.
None of which means AI is automatically the answer. It means the honest comparison is between a published per-minute rate, the cost of an interrupted billable hour, and a system whose cost stops tracking call volume. Which of those wins depends on how many calls you actually take, and it's worth doing the arithmetic before anyone sends you a quote.
Where AI Changes the Structure
The reason AI shifts this decision isn't that a model answers the phone more warmly than a person. It's that the cost curve flattens. A human service charges you per minute, so a February emergency spike costs more than a quiet October. An AI agent's cost is a platform subscription plus telephony minutes plus per-call inference, and inference is a rounding error next to the other two. Volume stops being the variable you fear.
That flattening is worth most in the two places HVAC shops bleed:
- After hours. Nights and weekends are when a no-heat call becomes a competitor's job. An answering service bills those minutes at the same rate as Tuesday afternoon. Coverage that doesn't have a shift pattern is the clearest case for automation. If you only automate one thing, automate this one, and see out-of-hours call answering for how the pattern generalizes.
- Seasonal spikes. The first hard freeze and the first heatwave produce call volumes you can't staff for and won't pay for year-round.
The honest caveat: at low volume this doesn't pay. Twenty calls a month is a $44 Economy plan, and the effort of building and maintaining an agent won't earn it back. Automation earns its keep somewhere above a few hundred calls a month, or wherever the after-hours misses are costing you real jobs.
Zendesk's CX research is a useful check on how little tolerance you're working with: 85% of CX leaders report that customers will drop a brand over unresolved issues, even on the first contact. One bad after-hours experience is often the whole relationship.
What You're Building
The rest of this is the build. The target is an agent that:
- Recognizes an emergency and gets the caller to a human fast, with the right safety instruction first
- Qualifies routine service calls by collecting system details, property information, and scheduling preferences
- Books against your real calendar and writes the contact back to your CRM
- Answers questions about services and coverage from your own documentation
- Runs overnight and through weekends without a shift pattern
If your trade isn't HVAC, the same structure applies with different emergency language. The plumbing and general contractor versions differ mainly in what counts as urgent, and property management adds a layer because the caller often isn't the person who pays the invoice.

How to Build It
Get the Architecture Right First
This is the decision that determines whether the thing works, and it's the one most builds get wrong by putting everything on one canvas.
A Voiceflow project is one agent. Inside it, the global agent is the thin layer that greets the caller, works out what kind of call this is, and hands off. Keep it thin. Its only real job is classification, and every piece of logic you pile into it makes that classification worse.
Below it, two different primitives for two genuinely different problems:
- A Playbook for emergency triage. A playbook is a goal plus a set of tools, and the model reasons its way there. Triage needs that, because "my furnace is making a banging noise and I smell something" doesn't map to a menu option. You give the playbook the goal of establishing whether there's a safety risk and the tools to act on it.
- A Workflow for booking. A workflow is a deterministic graph with explicit steps and edges. Booking wants exactly that: collect details, check availability, offer slots, confirm, write back. The path is fixed and you want it auditable, because a booking that half-completed is worse than one that failed.
Splitting them this way also means you can change the booking logic without retesting your emergency path, which you'll appreciate the first time you adjust your service hours.
Write the Triage Instructions
The playbook needs an instruction set that's specific about what counts as an emergency in your trade. Vague instructions produce an agent that escalates everything or nothing.
You are an HVAC emergency dispatcher and service coordinator.
Keep callers safe, collect the details a technician needs, and get
the request to the right place.
Tone: calm, steady, professional. Safety first. Brief.
On every call:
1. Establish whether there is an immediate safety risk
(gas, carbon monoxide, electrical, flooding).
2. Classify: Emergency, Routine Service, or General Question.
3. Collect name, callback number, and service address.
4. Emergency: give the safety instruction, then forward the call.
5. Routine: qualify, check availability, and book.
Treat as emergency:
- gas smell, gas leak, carbon monoxide
- sparks, burning smell, electrical fault
- no heat below freezing, no cooling in extreme heat
- flooding, major leak, loud banging or grindingA note on models, since this changes faster than most build guides get updated. Voiceflow's default is claude-4.6-sonnet, and starting there is the right instinct unless you have a reason not to. Older GPT-4 class models are still selectable and still show up in walkthroughs written a year ago, but they sit well down the current capability ranking and there's no reason to reach for one on a call where safety classification matters. Keep temperature low. You want the same answer to the same emergency every time, not variety.
Connect Your Knowledge
Point the agent at what you've already written rather than encoding your service catalogue by hand.
Add your website, service area pages, equipment manuals, and warranty documentation as knowledge sources. The knowledge_base_search system tool then answers coverage, warranty, and capability questions without you maintaining a parallel copy of facts that change.
The practical constraint: the agent will be exactly as accurate as your documentation. If your site still lists a service area you left two years ago, the agent will confidently offer it.

Route the Call
Three destinations, decided by the global agent's classification rather than by a keypad menu:
Emergency. The safety instruction, then a transfer. Use the call_forward system tool: you configure a destination number, optionally a caller ID, and optionally a whisper message that plays to your technician before the caller is connected. The whisper is worth setting up. Waking someone at 2am is a lot more effective when the first thing they hear is "no heat, freezing, address collected."
One behaviour to design around: after a call forward, the agent's session ends. There's no coming back to it for a follow-up question. Collect everything you need before the transfer fires, not after.
Routine service. Into the booking workflow.
General questions. Answer from the knowledge base, then offer to book.
Where a keypad genuinely beats speech, the dtmf system tool captures digits: account numbers, invoice numbers, anything where a misheard character wastes the call. Speech recognition on a seven-digit number read out by someone standing next to a running blower is not a fight worth picking. If you're replacing a phone tree rather than adding to one, AI IVR covers how the routing layer differs from a traditional menu.

Book Against a Real Calendar
Inside the booking workflow, an API tool calls your calendar's availability endpoint and returns open slots. Then the agent offers them.
This is where voice builds usually go wrong, so it's worth being precise. On a phone call, the agent's output is spoken by a text-to-speech engine, and it reads what you give it literally. Markdown bullets get read as the word "bullet." A dollar sign gets mangled. Write for the ear:
I've got a few openings next week. Wednesday at one in the afternoon, Friday at nine in the morning, or Monday the week after at eleven. Which of those works?
Not a bulleted list of times, which is what the same content looks like in a chat widget and what a lot of copied-in prompts produce. Spell numbers out. Keep one thought per sentence. Read your own output aloud before you ship it, because if it sounds wrong to you it will sound worse through synthesis.
On confirmation, two steps: create the calendar event, then write the contact to your CRM. For HubSpot, Salesforce, or Zendesk use the integration tool for that service rather than hand-rolling the REST call. You get the auth handling and the field mapping instead of maintaining them.
Booking mechanics carry more edge cases than they look like they do, from timezone handling to double-booking under concurrent calls. Answering service appointment scheduling goes deeper on those, and AI scheduling assistants covers the standalone version of the same problem.

Test the Emergency Path Harder Than Anything Else
Run scripted calls down all three routes and confirm the variables populate and the right tools fire. Then go back and test the emergency path again, with bad audio, with a caller who talks over the agent, with someone who describes a gas smell in the middle of a sentence about a thermostat.
That path is the one with real consequences if it fails, and it's the one your scripted happy-path test is least likely to break. Everything else can be fixed next week.
Launch on a quiet window rather than the first cold snap. Watch transfer rate, classification accuracy, and average call length, and read actual transcripts for the first fortnight rather than trusting the dashboard. The failure you're looking for is the agent handling a call it should have escalated, and that shows up in transcripts long before it shows up in a metric.

Where to Start
If you're weighing this against a quote from an answering service, do it in this order.
Get the published rate card, or push for a per-minute number in writing. Multiply by your actual call minutes, not your call count. Then decide whether the gap between that figure and a flatter cost curve is worth the build, honestly, at your volume. For a comparison across the human providers themselves, the best answering services for small business is the wider survey.
If you build, start with after-hours only. It's the highest-value window, the lowest-risk place to learn how your callers actually talk, and it fails softly, because the alternative to an imperfect agent at 11pm on a Friday is voicemail. Once the transcripts stop surprising you, extend the hours.
The technology here isn't the hard part any more. Deciding what your phone not ringing is costing you is, and no vendor is going to do that arithmetic honestly on your behalf.
For the wider picture on automated phone handling, AI phone calls and voicebots cover the ground beyond the answering-service use case.