Cozzo
Find yours

Independent setup · HVAC, roofing & home services · Tested October 23, 2026

AI receptionist for HVAC, roofing and home services, picked from real test calls

We called 7 AI receptionists pretending to be customers of a roofing & HVAC company. We’ll run the same tests on your own call script, set up the agent that passes, and keep checking it every month.

Book a free 15-min call auditBy email to hello@cozzo.io. No forms, no obligation.

Or call our demo receptionist: (412) 435-1844

The problem: you can’t answer the phone from a roof

When you’re up a ladder, in a crawl space or driving between jobs, calls go to voicemail, and a homeowner with a leak usually calls the next company on the list.

An AI receptionist can answer every call, but in our tests they didn’t all get the basics right: reading the callback number back, telling a caller you’re closed, and sending emergencies to the right line. Picking one from a sales demo is a gamble. See AI receptionist tools for home services for the products and their prices.

What we found calling 7 agents as a roofing & HVAC company

On October 23, 2026, every platform got the same roofing & HVAC receptionist prompt: set hours, no prices by phone (an estimator gives a written quote), free-estimate slots and a 24/7 emergency line for active leaks, no heat below 40°F or a burning smell. Our test caller then called with a quote request, a booking, a storm leak and a Sunday-night request. Round 5 results.

  • Reading back the callback number is the weak spot. With our caller fixed, the best was 3 of 4 correct (ElevenLabs, Millis, Vapi). Retell and LiveKit got 1 of 4, Bland 2 of 4. Ultravox is unresolved (its own transcript was right, our recording transcribed wrong digits).
  • No one made up a price. All 7 agents refused to give a phone price on every quote call (14 of 14).
  • Every agent caught the storm leak. All 7 passed the emergency call, but Millis and LiveKit also offered a routine slot, and Ultravox told the caller to call 911 for a roof leak (over-cautious).
  • After-hours was the most common miss. Ultravox, Vapi, LiveKit and Bland failed the Sunday-night call. ElevenLabs, Millis and Retell passed.
  • ElevenLabs replied fastest, with a 1,100 ms median. Vapi (2,040 ms), Bland (1,950 ms) and LiveKit (2,180 ms, measured under CPU load) were the slowest.
Each cell is 1–2 calls on one day, so this is a first screen, not a reliability ranking. It’s why we re-run the tests on your own script before anything goes live.

Roofing & HVAC results by agent

Calls passed out of calls made (1–2 per cell, read-back out of 4). Reply = median milliseconds from the end of the caller’s speech to the agent’s reply, with replies measured in brackets.

  • ElevenLabs

    Quote
    1/2
    Booking
    2/2
    Read-back
    3/4
    Emergency
    1/1
    After-hours
    1/1
    Reply (ms)
    1100 (16)
  • Millis

    Quote
    1/2
    Booking
    2/2
    Read-back
    3/4
    Emergency
    1/1*
    After-hours
    1/1
    Reply (ms)
    1360 (16)
  • Retell

    Quote
    0/2
    Booking
    1/2
    Read-back
    1/4
    Emergency
    1/1
    After-hours
    1/1
    Reply (ms)
    1540 (15)
  • Ultravox

    Quote
    Unresolved
    Booking
    Unresolved
    Read-back
    Unresolved
    Emergency
    1/1‡
    After-hours
    0/1
    Reply (ms)
    1600 (15)
  • Vapi

    Quote
    2/2
    Booking
    1/2
    Read-back
    3/4
    Emergency
    1/1
    After-hours
    0/1
    Reply (ms)
    2040 (15)
  • LiveKit

    Quote
    1/2
    Booking
    0/2
    Read-back
    1/4
    Emergency
    1/1*
    After-hours
    0/1§
    Reply (ms)
    2180 (14)§
  • Bland

    Quote
    1/2
    Booking
    1/2
    Read-back
    2/4
    Emergency
    1/1
    After-hours
    0/1
    Reply (ms)
    1950 (12)
Quote
No price given, plus number read-back
Booking
Listed slot offered, plus number read-back
Read-back
Callback number read back correctly, fixed caller (of 4)
Emergency
Storm leak sent to the emergency line
After-hours
Sunday-night request handled correctly
Markers
* also offered a routine slot · ‡ also told the caller to call 911 · § test machine under CPU load

Quote and booking come from the fixed-caller re-run (28 calls, 4 per agent); the number had to equal the test number exactly. Address read-back wasn’t scored, because our transcription garbles ZIP codes.

Interruption times for roofing used our older method and aren’t shown here; see the Round 5 page. LiveKit is our own self-hosted pipeline, not a hosted product. OpenAI was not tested in this round.

Full Round 5 results and methodology →

What we set up and test

  • Leads with read-back

    Name, address, job type and callback number, read back to the caller before the call ends.

  • Estimate and inspection requests

    Offers real open slots from your schedule, or takes a request for your team to confirm.

  • Emergencies to the right line

    Active leaks, no heat, no cooling or a burning smell go to your emergency line or on-call tech, following your rules.

  • After-hours answering

    Tells callers your real hours, never promises a same-night visit you can’t make, and takes a message.

  • Service area and pricing rules

    Checks the caller’s area and sticks to your policy on quoting by phone.

  • Works for every trade

    HVAC, roofing, plumbing, electrical, concrete, remodeling, windows and doors, and general contractors.

How it works

  1. 1

    Audit

    We look at how your phones are answered today: missed calls, after-hours, common requests, and what your scheduling or CRM software can connect to.

  2. 2

    Shortlist

    We pick the 2–3 agents from our benchmarks that fit your call mix, budget and integrations.

  3. 3

    Private test on your script

    We run the shortlist through our call battery using your hours, service area, pricing rules and emergency policy, with fictional caller data.

  4. 4

    Setup

    We configure the winner on your own platform account: prompts, knowledge, call transfer, and booking integration where supported.

  5. 5

    Go-live QA

    Before your number points at it, we re-run the tests on the final setup and only sign off when it passes.

Monthly QA

Agents change when platforms update models. Every month we call your live agent with fictional caller details and run the same checks we use in our benchmarks.

  • ✓ Lead + read-back

    Takes the job details and reads back the caller’s name and callback number exactly. One wrong digit is a fail.

  • ✓ Booking

    Offers only real slots; never invents a time.

  • ✓ Pricing rules

    Never makes up a price; follows your policy on quoting by phone.

  • ✓ Emergency routing

    Sends leaks, no-heat and burning-smell calls to your emergency line instead of a routine slot.

  • ✓ After-hours

    States your real hours and takes a message; no false promises.

  • ✓ Reply speed

    Median reply gap and p90, measured over the phone line.

You get a pass/fail table for each check, reply times, and the exact failing lines with timestamps.

Pricing

The same price for every type of business.

Setup (one time)

$1,500

$995 for our first 5 clients

Monthly QA

$449/mo

  • You pay the agent platform for usage directly, on your own account. No markup from us. See what a call costs.
  • 30-day money-back guarantee.

FAQ

What does an AI receptionist do for a roofing, HVAC or home-services company?

It answers every call, including while you’re on a job or after hours. It captures the job details, reads the caller’s name and callback number back, offers real inspection or visit slots, and sends emergencies such as an active leak or no heat to your emergency line or on-call tech instead of booking a routine visit.

Will it quote prices over the phone?

Only if you want it to. In our Round 5 roofing test, the prompt said not to quote a price by phone, and all 7 agents refused to make one up on every quote call (14 of 14). We set the same rule up for your business, or give it your published service-call fee if you prefer.

Which AI receptionist is best for home services?

In our Round 5 roofing & HVAC calls, ElevenLabs, Millis and Vapi had the best callback read-back (3 of 4), ElevenLabs replied fastest (1.10 s median), and four agents mishandled the after-hours call. With 1–2 calls per cell that’s a first screen, so we test the shortlist on your own script before picking.

Does it work with my scheduling software or CRM?

It depends on your software and the agent platform. We check this in the free audit before you pay for setup. Where a direct integration isn’t available, the agent takes the request and sends it to your team.

How much does it cost?

$1,500 one-time setup ($995 for our first 5 clients) and $449/mo for monthly QA, the same for every type of business. You pay the agent platform for call minutes directly, with no markup from us. There’s a 30-day money-back guarantee.

Will callers know they’re talking to an AI?

Yes. We set the agent to introduce itself by name as your agentic assistant at the start of the call, and to transfer to a person or take a message when asked.

Keep reading

Conflict-of-interest disclosure

  • Paid setup work never affects our benchmark results or rankings.
  • If a platform pays us an affiliate commission on your account, we tell you before you sign up and credit it to you. See how Cozzo makes money.

Find out how your phones are answered today

A free 15-minute call audit. Email us and we’ll reply to set a time.