An AI answering service for HVAC companies picks up every call in the first heatwave, up to the concurrent call limit you set, and plays a fixed gas warning before anything else. It books repairs and tune-ups into windows your scheduling software returns, answers plan questions from your own files and sends dangerous no-cooling calls to the on-call technician.
Key Takeaways
- In the first hot week, the problem is many calls at once.
- Set the concurrent call limit above your busiest hour of the season.
- Urgent no-cooling calls reach the on-call technician with the job written first.
This post is part of our guide to AI voice agents for field service management, where danger calls come first. Below, we cover the heatwave week on top of our guide for HVAC companies. Each section also shows how the agent runs in Dograh, the open-source AI voice agent platform we build.
The first heatwave and a phone that never stops
The first hot week of summer brings a season's worth of calls in a few days. Air conditioners that sat idle since September all get switched on at once, and the ones that fail all call on the same morning. The BLS outlook for HVAC technicians notes that technicians may work overtime during peak heating and cooling seasons, so the people who could answer are already out on jobs.
Volume is the hard part that week. A live answering service has a set number of operators, and an AI agent has a concurrent call limit. Self-hosted, the agent runs 10 concurrent calls by default, and you raise that with DEFAULT_ORG_CONCURRENCY_LIMIT up to what your servers and phone provider can carry. Dograh Cloud's pay-as-you-go plan comes with 10 concurrent calls, and you contact Dograh when you need more.
Set the limit above your busiest hour, because a call that arrives when every slot is in use does not reach the agent. Many shops keep the office line ringing first and forward unanswered calls to the agent's number. Staff take the calls they can, and the agent takes the rest.
What the agent does with each call matters as much as picking up. A message-taking service leaves the office a pile of callbacks in the hottest week of the year. The agent books the job during the call, so the callback pile never forms.

The gas line plays before anything else
Furnaces sit idle in summer, yet gas water heaters and gas dryers still run, so a gas call can come in any week. Guidance from the Pipeline and Hazardous Materials Safety Administration says not to use a phone near a suspected leak and to call 911 from somewhere well away from it. So the agent asks no questions and plays the approved 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 right after the line. A Webhook node then sends the caller's number and the outcome to your system, which alerts the on-call person to follow up once the caller is safe.
Put a short version of the line in the Greeting Text, after your company name, so it reaches a caller who never says the word gas. Allow Greeting Interruption is on by default, so switch it off on the Start Call node and the warning plays in full. Repeat the line as Transition Speech on a "gas smell or CO alarm" pathway, where it plays with the caller muted. On a busy day, keep the greeting to your company name and that one warning, so callers reach the booking quickly.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Booking from live windows when the board fills
Most heatwave calls are some version of "my AC stopped" or "it's blowing warm air". The agent asks whether the caller needs a repair, a tune-up or a replacement estimate, checks the ZIP code against your service area and records the symptoms as the caller describes them.
Then an HTTP API tool asks your scheduling software for open windows, and the agent offers only those. On the busiest days the next window may be two days out, and the agent says so plainly instead of promising a technician today. A short line such as "Let me check the schedule" plays when the tool starts, while the request runs, and a later update covers a lookup that takes a few seconds on a busy day.
The booking counts once your software returns a job number, which the agent reads back with the window and the address. AI voice agents for HVAC appointment booking covers the full booking call, including what the agent says when the write fails.
Maintenance questions from your own files
Between the breakdowns come the questions, about whether a plan covers this visit, what a service call costs or whether you work Saturdays. The agent answers only from what your company wrote down. Upload the plan terms, the diagnostic fee, your service area and your hours as a Knowledge Base file, in PDF, DOCX, DOC, TXT or JSON, up to 5 MB each.
A question about a member's own plan is personal, so it waits for the verify step. A phone number finds the member's record, yet anyone could be holding that phone. The agent asks the caller to state the service address on the account before it names the plan or its visits, and a caller who fails the check still gets a normal booking.
Repair prices and diagnoses stay with technicians. "Is it the capacitor?" and "how much is a new compressor?" get the same treatment. The agent records the question as the caller asked it and offers a visit, so the technician walks in already knowing the concern.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
Urgent calls go to the on-call technician
A few heatwave calls cannot wait for the next open window. No cooling with an infant, an older person or someone with a medical condition at home is the usual case, and your written list decides what else counts. If the caller says someone already feels unwell, the agent plays "If this is a medical emergency, please call 911 now."
For the rest of the urgent list, the agent first writes the address and the problem to your software through an HTTP API tool, because no summary travels with a transfer by default. Then Transfer Call rings the on-call technician, and Dograh joins the caller only when the technician answers. If nobody picks up within the 30-second default, the caller stays with the agent, which takes a callback request and pages the technician.
The routing behind that transfer, from the owner's list to tonight's number, is in AI HVAC dispatch: emergency calls and technician routing. The night shift and its escalation chain are in AI voice agents for after-hours coverage.
Before the season starts, test over a real phone with the words your callers use, such as "it's 95 in here and my mom is 80". After the first hot day, open the trace of any call that mentioned gas to check the pathway fired, and let built-in QA score a sample of the week's calls.
Glossary
- Concurrent call limit
- The most calls an account runs at the same moment. Self-hosted, it is 10 by default and set with DEFAULT_ORG_CONCURRENCY_LIMIT, and a heatwave week needs it above the busiest hour.
- Transition Speech
- Words set in advance, typed or recorded, that play exactly as written once the call enters a pathway, with the caller muted. The gas line lives here so it never changes between calls.
- Knowledge Base
- Files you upload, such as plan terms, fees and hours, that the agent answers from. It accepts PDF, DOCX, DOC, TXT and JSON up to 5 MB per file.
- Transfer Call
- The tool that hands a caller to a person. It rings the on-call technician first and joins the caller only when someone answers. If nobody picks up within the 30-second default timeout, the caller stays with the agent.

