Dograh

AI Voice Agents for HVAC Companies: Gas Calls First, Then Bookings

AI Voice Agents for HVAC Companies: Gas Calls First, Then Bookings
GuideNovember 3, 2026·11 min read

AI Voice Agents for HVAC Companies: Gas Calls First, Then Bookings

Pritesh Kumar
Pritesh Kumar·Co-founder, Dograh AI

Building Dograh, the open-source alternative to Vapi. OSS and Voice AI. Exit founder and YC alum.

AI voice agents for HVAC companies handle the answering service's calls, from repair and tune-up bookings to plan members, arrival questions and after-hours calls. They read open windows from the company's system and write each job back. A gas smell or carbon monoxide alarm gets fixed words to leave and call 911, and dangerous no-heat calls reach the on-call technician.

Key Takeaways

  • A gas smell or carbon monoxide alarm gets fixed words, never model-written ones.
  • Bookings use only windows the company's scheduling system returns during the call.
  • The agent books the visit and leaves diagnosis and repair prices to technicians.

On a freezing night, a no-heat call and a noisy outdoor unit land in the same voicemail box. This guide sets up Dograh for each call, starting with gas, carbon monoxide and dangerous temperatures, then bookings, plan members, the on-call technician and where call data sits.

The calls an HVAC company gets

Most calls to an HVAC company follow a handful of patterns, and the answers already sit in its field-service software. A homeowner has no heat or no cooling and wants a technician. A maintenance-plan member wants the spring tune-up. Someone with a 20-year-old system wants a replacement estimate. Others ask when the technician will arrive, and a few report something dangerous.

The calls arrive when the office is busiest. The Bureau of Labor Statistics outlook for HVAC technicians counts about 440,900 jobs in 2025 and projects 11% growth to 2035, with about 40,600 openings a year. It notes that technicians may be on call for emergencies and work overtime during peak heating and cooling seasons. The first cold snap fills the phone lines and the schedule on the same morning.

An answering service takes a message, and someone in the office books the job the next day. A voice agent can book it during the call, if it reads each answer from your own system. In Dograh, an HTTP API tool asks your field-service software for open arrival windows, and a second tool writes the job back. Each tool points at your software's own API, such as ServiceTitan, Housecall Pro or Jobber, or at a small service your team runs in front of it.

Plumbers get a similar mix, with water instead of air, and AI voice agents for plumbing companies covers their calls. This guide stays with heating and cooling, where a few calls can put someone in danger.

Gas, carbon monoxide and dangerous heat or cold

Write the dangerous calls first, because they need fixed words and a person, not a booking slot. Furnaces burn gas or oil inside the house. The CDC says more than 400 Americans die each year from unintentional carbon monoxide (CO) poisoning not linked to fires, and more than 100,000 visit an emergency department. Gas- and oil-burning furnaces are among the household sources it names.

A gas smell changes what a good call looks like. Guidance from the Pipeline and Hazardous Materials Safety Administration tells people not to use a telephone or cell phone near a suspected leak, because it can ignite the gas, and to call 911 from a neighbor's house or somewhere well away from the leak. So the agent never troubleshoots and never asks follow-up questions. Every extra sentence keeps the caller on a phone inside the house.

The line the agent plays is short and fixed: "If you smell gas or your carbon monoxide alarm is going off, leave the building now and call 911 or your gas company from outside." Inside a step, the language model writes its own words, so a prompt cannot guarantee this wording. Fixed text can.

Put the line in two places. The Greeting Text plays word for word to every caller before the model has decided anything, so after naming your company it can carry the warning to someone who never says the word gas. Allow Greeting Interruption is on by default and lets a caller cut in after two words, so switch it off on the Start Call node and the full line plays. Then add a "gas smell or CO alarm" pathway whose Transition Speech repeats the line. Transition Speech plays with the caller muted, so it runs in full.

The model picks that pathway by reading the condition you wrote, so check its judgement with the words callers really use, such as "it smells like rotten eggs in the basement" or "the detector keeps beeping". After the line plays, the agent ends the call. A Webhook node then sends the caller's number and the outcome to your system, which alerts your on-call person.

Four frames: a homeowner calls with a gas smell and a carbon monoxide alarm going off, the voice agent plays the fixed line "If you smell gas or your carbon monoxide alarm is going off, leave the building now and call 911 or your gas company from outside.", the agent ends the call while the homeowner is somewhere well away from the leak, and a Webhook node sends the caller's number and the outcome to the company's system, which alerts the on-call person.
So the agent never troubleshoots and never asks follow-up questions. Every extra sentence keeps the caller on a phone inside the house.

Dangerous temperatures go to a person instead. No heat in freezing weather, or no cooling with an infant or an older person at home, transfers to the on-call technician, covered in the after-hours section below. If the caller says someone already feels unwell, the agent's fixed line is "If this is a medical emergency, please call 911 now."

Booking repairs, tune-ups and estimates

Booking is the most common call, and it starts by sorting the job type. Repairs, tune-ups, member visits and replacement estimates need different slot lengths, and an estimate may need a comfort advisor instead of a technician. The agent asks which one the caller needs, checks the ZIP code against your service area, and records the symptoms as the caller describes them.

Then it offers only the arrival windows your system returns during the call, reads the job type, window and address back, and writes the job. The booking counts once your software returns a job number. Our post on AI voice agents for home-services appointment booking follows that loop across trades.

HVAC adds its own wrinkles, such as tune-ups that bunch up before each season and plan members who get priority windows. AI voice agents for HVAC appointment booking covers each of them, including what the agent says when the booking request fails.

Dograh

Open Source Alternative to Vapi / Retell

Self-hosted voice agent platform — no per-minute fees

dograh-hq/dograh

Star on GitHub

Maintenance-plan members

Members of a maintenance plan expect to be recognized, and the lookup can start before the agent says hello. Pre-Call Data Fetch on the Start Call node can send the caller's number to your system as the call connects and load the matching member record.

A matching number points to a record, yet anyone could be holding that phone. Every call runs greet, verify, then disclose. Tell the agent in the prompt to keep the record unspoken until the caller passes a check your company approves, such as stating the service address on the account. A caller who fails the check still gets a normal booking, with nothing said about the plan.

Once verified, the agent can book the included tune-up into the priority windows your system returns. The priority rules live in your scheduling software, not in the prompt, so the agent never promises a faster visit than the schedule allows.

Outbound calls to members need more care. A reminder about a visit the member already paid for is generally a service call. The FCC's 2024 ruling on AI-generated voices puts an agent's voice under the Telephone Consumer Protection Act (TCPA) as an artificial voice, so that reminder to a mobile needs the member's prior express consent. A call that pitches a plan renewal or an upgrade is telemarketing, and generally needs prior express written consent. Keep the two calls apart, and confirm your own setup with counsel. AI voice agents for service reminders in home services covers the reminder call in full.

After-hours calls and the on-call technician

Most night calls can wait for the morning, and the agent's job is to tell the difference using your own list. A noisy outdoor unit at 11 p.m. gets the first morning window. No heat on a freezing night with a baby in the house goes to the on-call technician now.

An HVAC company on Twilio, Telnyx, Plivo, Cloudonix or Asterisk ARI hands the call over with Transfer Call. Whoever is on call gets rung first, and the homeowner is connected only once that person answers. On Twilio, the on-call person and the homeowner can both hear a short spoken introduction before the line joins.

The on-call technician changes every night, so set the destination source to Dynamic HTTP Resolver. During the call, Dograh asks your rota system for a number, and it returns whoever is on call right now. No summary travels with the call by default, so the agent first writes the address and the problem to your field-service software through an HTTP API tool. The technician picks up already knowing the job.

A technician who has not answered after the 30-second default leaves the homeowner talking to the agent. Tell it in the prompt to take a callback request and to trigger your paging system through an HTTP API tool, so the call never ends with a promise and no record.

Business hours decide which path a call takes. A prompt can read the local time through the built-in variable {{current_time_America/Chicago}}, with your own time zone in place of Chicago. Our post on AI voice agents for after-hours coverage covers the night shift in more depth.

Join the Dograh Community

Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.

Questions the agent hands to a technician

The agent books visits and never judges equipment. It does not diagnose a fault or price a repair. It can read fixed prices your company publishes, such as the diagnostic fee, from a Knowledge Base file you upload with your service area and hours. Everything else is priced on site.

Refrigerant questions show why. Under the EPA's refrigerant rules, new residential air conditioners and heat pumps installed from January 1, 2025 must use refrigerants with a global warming potential under 700. Systems whose parts were all made before 2025 have no installation deadline, and parts used to repair existing systems are not restricted.

A homeowner who asks "do I have to replace my system?" is really asking for a repair-or-replace judgement about their own equipment. That belongs to a technician who has seen it. Tell the agent to record the question as the caller stated it and offer an estimate visit, so the comfort advisor walks in already knowing the concern.

Where the call data sits

HVAC calls carry home addresses and gate codes, so decide where that data lives before the first call. Dograh is self-hostable. Run it on your own servers and Dograh never receives your customers' calls.

Under each call, Dograh orchestrates the flow, the tools and the telephony, and the HVAC company chooses the speech and language models as a separate layer. Bringing your own keys (BYOK) puts the model contract in your name, yet each homeowner's audio still travels to that provider. The audio stays in-house only with open-weight models on your own servers, such as Qwen3.8 27B for language, Parakeet TDT 0.6B v2 for speech-to-text and Magpie TTS for the voice.

Anonymous usage telemetry is on by default in a self-hosted install, and turning it off takes ENABLE_TELEMETRY=false plus removing POSTHOG_API_KEY. An HVAC company that self-hosts Dograh pays no per-minute platform fee, though it still pays for servers, model keys and phone minutes. Dograh Cloud instead adds a 1¢-a-minute platform fee. Our page on self-hosted voice agents for HVAC and plumbing companies sets out that setup.

Which call to hand over first

Start with nights, because those calls reach voicemail today. Build and test the gas, CO and dangerous-temperature paths before anything else, then let the agent take night calls and book the first morning windows. Daytime bookings come next, and member lookups last, once the verification check works.

Test on a real phone line before any customer hears it. Most phone calls reach the agent as 8 kHz audio, while a browser test runs at 16 kHz, so model names and addresses can sound different to the speech model. Add trade words such as SEER2 and your equipment brands to the Dictionary in the agent's Settings, and spell hard names in the Greeting Text the way they sound.

Then try the gas line with every phrasing your dispatchers have heard, and read the transcripts to check it played each time. The booking call above has its own deep dive:

Glossary

Maintenance plan
A paid agreement that gives a homeowner scheduled tune-ups and often priority service. The agent finds the member by phone number, verifies them, and books only the priority windows the company's system returns.
Transition Speech
Fixed text or a recorded clip that Dograh plays word for word when a call moves to a pathway, with the caller muted. It is where the gas and carbon monoxide line lives, because a prompt cannot guarantee exact words.
Dynamic HTTP Resolver
A Transfer Call setting where Dograh asks your system for the destination number during the call. An HVAC company's rota system returns whoever is on call that night.
Global warming potential (GWP)
A measure of how much a refrigerant warms the climate compared with carbon dioxide. The EPA limits new home air conditioners and heat pumps to refrigerants under 700, which is why homeowners call asking whether they must replace their system.

Frequently Asked Questions

Get started with Dograh

Build, deploy, and scale AI agents with Dograh. Join the community of developers building the future.