Free Resource -- 30 Proven HVAC Scripts

HVAC Call Scripts -- 30 Proven Scripts That Book More Jobs

Every missed call is a missed job. Every botched call is a lost customer. These 30 field-tested HVAC call scripts give your team (or your AI) the exact words to use for inbound calls, estimate follow-ups, appointment reminders, and after-hours coverage. Copy them. Customize them. Start booking more work today.

No contract · Live in 48 hours · Rated 5.0 by HVAC pros

Why HVAC Call Scripts Matter More Than You Think

Most HVAC businesses lose 30 to 50 percent of their inbound leads before a technician ever rolls a truck. The problem is not your marketing. It is what happens when the phone rings.

When a homeowner calls with a broken AC in July or a dead furnace in January, they are stressed, they are impatient, and they are calling two or three other companies at the same time. The business that sounds professional, asks the right questions, and locks in an appointment on that first call wins the job. Everyone else gets ghosted.

That is where call scripts come in. A script-trained team does not wing it. They do not forget to ask for the address. They do not stumble when the customer asks about pricing. They do not let a hot lead hang up without a booked appointment. Scripts turn every person who answers your phone into your best salesperson, whether they have been with you for five years or five days.

The data backs this up. HVAC companies that use structured call scripts report 25 to 40 percent higher booking rates on inbound calls compared to businesses where staff handle calls with no framework. The reason is simple: consistency. When every call follows a proven framework, fewer leads slip through the cracks.

Below are 30 complete HVAC call scripts covering every scenario your business faces. Each one is written as a full dialogue you can hand to your team, print on a laminated card, or load into an AI voice agent like Flora. Use them as-is or customize them for your company.

HVAC Inbound Call Scripts

These five scripts cover the most common inbound call scenarios your HVAC business handles every day. Each one is designed to qualify the caller, capture their information, and book the appointment in a single conversation.

1. New Customer -- Service Request Call Script

Flora: "Thank you for calling [Company Name], this is Flora. How can I help you today?"
Customer: "Yeah, my AC isn't blowing cold air. It's been running all day but the house is still hot."
Flora: "I'm sorry to hear that, especially in this heat. Let me get some details so we can get a technician out to you as quickly as possible. Can I start with your name?"
Customer: "It's Mike Johnson."
Flora: "Thanks, Mike. And what's the best phone number to reach you at?"
Customer: "843-555-0192."
Flora: "Got it. And what's the address where the system is located?"
Customer: "142 Maple Drive, Summerville."
Flora: "Perfect. Do you know what type of system you have? Is it a central air unit, a heat pump, or a ductless mini-split?"
Customer: "I think it's a heat pump. It's a Carrier unit, probably eight or nine years old."
Flora: "That's helpful. And when did you first notice the issue? Was it today, or has it been going on for a few days?"
Customer: "Started yesterday afternoon. It's blowing air, just not cold."
Flora: "Understood. I have a technician available tomorrow morning between 8 and 10 AM, or tomorrow afternoon between 1 and 3 PM. Which window works better for you?"
Customer: "Morning works. The earlier the better."
Flora: "I've got you booked for tomorrow morning, 8 to 10 AM at 142 Maple Drive in Summerville. Our tech will call you about 30 minutes before they arrive. The diagnostic fee is $89, which gets applied to any repair we do. Does that work for you, Mike?"
Customer: "That sounds good. Thanks."
Flora: "You're all set. You'll get a confirmation text in just a moment. If anything changes before tomorrow, just call us back at this number. Thanks for choosing [Company Name], Mike. We'll get you taken care of."
Why this works: Captures name, phone, address, system type, and issue details in under two minutes. Offers two time windows (not open-ended scheduling) so the customer picks rather than deliberates. States the diagnostic fee upfront to prevent surprises.

2. Returning Customer -- Appointment Booking Script

Flora: "Thank you for calling [Company Name], this is Flora. How can I help you today?"
Customer: "Hi, I've used you guys before. I need to schedule a maintenance visit for my furnace before winter."
Flora: "Great to hear from you again. Can I get your name so I can pull up your account?"
Customer: "Sarah Mitchell. I'm on Broad Street."
Flora: "Found you, Sarah. I see we serviced your Trane system last spring. Is this for the same property at 87 Broad Street?"
Customer: "That's the one."
Flora: "Perfect. Are you looking for a seasonal tune-up, or is there a specific concern with the system?"
Customer: "Just the tune-up. Want to make sure everything's good before it gets cold."
Flora: "Smart move. We have openings this Thursday between 9 and 11 AM or next Monday between 2 and 4 PM. Do either of those work?"
Customer: "Thursday morning is fine."
Flora: "You're booked for Thursday, 9 to 11 AM at 87 Broad Street. The seasonal tune-up is $129, and I see you're on our preferred customer list so you'll get the 10 percent returning customer discount. Our tech will call before heading over. Anything else I can help with?"
Customer: "Nope, that's it. Thanks."
Flora: "Thanks for calling back, Sarah. We appreciate your business and we'll see you Thursday."
Why this works: References past service history to build trust and make the customer feel recognized. Mentions a returning customer discount to reinforce loyalty. Quick booking with no unnecessary questions since their info is already on file.

3. Emergency HVAC Call Script (AC or Heat Failure)

Flora: "Thank you for calling [Company Name], this is Flora. How can I help you?"
Customer: "My heat is completely out and it's 28 degrees outside. I have two little kids in the house. I need someone out here now."
Flora: "I completely understand the urgency, and I want to make sure we get you help right away. Let me get your information quickly. What's your name and address?"
Customer: "Angela Davis, 230 Pine Street, Mount Pleasant."
Flora: "And a phone number where our technician can reach you?"
Customer: "843-555-0347."
Flora: "Got it. Angela, is the system completely off, or is the fan running but no heat coming out?"
Customer: "Nothing. The thermostat is on but nothing is happening at all."
Flora: "Okay. One quick thing to check while I get our on-call tech dispatched: can you look at your breaker panel and see if the breaker for the HVAC system has tripped? It would be labeled something like 'furnace' or 'HVAC' or 'air handler.'"
Customer: "Let me check... no, they all look fine."
Flora: "Alright. I'm flagging this as an emergency service call and sending the details to our on-call technician right now. Someone will call you back within 15 minutes to confirm an arrival time. Emergency service calls do carry an after-hours rate of $149 for the visit, plus any parts or repair costs. Is that okay to proceed?"
Customer: "Yes, that's fine. Just please send someone."
Flora: "Absolutely. Angela, in the meantime, if you have a space heater, use that in one room and close the doors to keep the heat contained. Our tech will call you within 15 minutes. You're at 230 Pine Street in Mount Pleasant and we'll reach you at 843-555-0347. Hang in there."
Why this works: Acknowledges urgency immediately without rushing through qualifying details. Provides a simple troubleshooting step (breaker check) that occasionally resolves the issue. Sets a clear callback expectation (15 minutes). States emergency pricing before dispatch to avoid billing disputes. Offers a practical safety tip to build trust.

4. Call During Business Hours -- Booking to Calendar Script

Flora: "Good afternoon, [Company Name], this is Flora. What can I do for you?"
Customer: "Hi, I need to get my air conditioner looked at. It's making a weird noise when it kicks on."
Flora: "We can definitely help with that. Unusual noises usually mean something needs attention before it gets worse. Let me grab your info and find you an opening. What's your name?"
Customer: "Tom Rivera."
Flora: "Thanks, Tom. Phone number and address?"
Customer: "843-555-0218, and I'm at 55 Oak Lane, North Charleston."
Flora: "And the noise, would you describe it as a grinding, buzzing, or banging sound?"
Customer: "More like a grinding or squealing."
Flora: "Got it. That could be a fan motor or belt issue, and catching it early is definitely the right call. I have two openings this week: Wednesday between 10 AM and noon, or Friday between 1 and 3 PM. Which works best?"
Customer: "How much is it going to cost me?"
Flora: "Our diagnostic visit is $89, and that covers the technician coming out, inspecting the system, and giving you a full breakdown of what's going on and what it'll cost to fix. If you go ahead with the repair, that $89 gets credited toward the job. So you're really just paying for the repair itself."
Customer: "Okay, let's do Wednesday."
Flora: "You're set for Wednesday, 10 AM to noon at 55 Oak Lane in North Charleston. Our tech will call about 30 minutes before arrival. I'll send you a confirmation text right now. Anything else, Tom?"
Customer: "No, that's good. Thanks."
Flora: "Great. Thanks for calling [Company Name], Tom. We'll see you Wednesday."
Why this works: Handles the most common objection ("how much?") with a clear, honest answer that positions the diagnostic fee as a credit toward the repair. Adds light urgency ("catching it early") without being pushy. Confirms every detail at the end to reduce no-shows.

5. Overflow Call Script (When You're Unavailable)

Flora: "Thank you for calling [Company Name], this is Flora. How can I help you today?"
Customer: "I need to talk to someone about getting a new air conditioning system installed."
Flora: "Absolutely, I'd love to help you with that. Our installation team is currently on jobs, but I can get all your details and have them call you back within the next two hours. Or if you'd prefer, I can schedule a free in-home estimate right now. Which would you prefer?"
Customer: "Let's just schedule the estimate."
Flora: "Perfect. Can I get your name, phone number, and the address where the installation would be?"
Customer: "Karen Peters, 843-555-0411, 310 Palmetto Boulevard, Charleston."
Flora: "Thanks, Karen. A couple quick questions so our estimator comes prepared. Is this a replacement of an existing system, or a brand new installation?"
Customer: "Replacement. Our current one is about 18 years old and it's on its last legs."
Flora: "That's right around the end of a system's lifespan, so replacing it now is a smart move. And roughly how many square feet is the home?"
Customer: "About 2,400 square feet."
Flora: "Great. I have estimate appointments available this Thursday at 10 AM or Saturday at 9 AM. The estimate is completely free, takes about 45 minutes, and our estimator will go over all your options including any financing and rebate programs we offer. Which day works for you?"
Customer: "Saturday works."
Flora: "You're all set for Saturday at 9 AM at 310 Palmetto Boulevard. You'll get a confirmation text shortly and a reminder the day before. Is there anything else I can help with, Karen?"
Customer: "No, that covers it."
Flora: "Wonderful. Thanks for calling [Company Name], Karen. We look forward to seeing you Saturday."
Why this works: Instead of saying "no one is available," it immediately offers two options: a callback or a scheduled estimate. Captures qualifying info (replacement vs new, square footage) so the estimator arrives prepared. Mentions financing and rebates to keep high-ticket leads engaged.

HVAC Estimate Follow-Up Scripts

You gave the estimate. They said "let me think about it." These three scripts are the difference between closing that $8,000 installation and never hearing from them again. Timing matters: 24 hours, 7 days, and a final attempt.

6. 24-Hour Estimate Follow-Up Script

Flora: "Hi, this is Flora calling from [Company Name]. I'm reaching out for David. Is this a good time?"
Customer: "Yeah, what's this about?"
Flora: "Our technician was out at your property yesterday on Elm Street for the AC repair estimate. I just wanted to follow up and see if you had any questions about the options he presented."
Customer: "Yeah, I'm still thinking about it. The repair was $1,200 and the replacement was around $7,500. Not sure which way to go."
Flora: "That's a fair consideration. A lot of our customers in a similar situation ask the same question. Here's what I'd think about: your system is 14 years old, and the repair would get you running again, but it wouldn't address the age of the unit. If something else fails in six months, you'd be looking at another repair bill on top of the $1,200. The new system comes with a 10-year warranty, qualifies for utility rebates, and we offer financing as low as $142 a month. Would it help if I had our estimator walk you through the financing options in more detail?"
Customer: "Yeah, send me the financing details. That monthly number isn't bad."
Flora: "I'll have those sent over to you by email within the hour. And just so you know, the rebate program we mentioned expires at the end of this month, so if you do decide to go with the replacement, locking it in sooner saves you that extra $750. I'll follow up in a couple days to see where you land. Sound good, David?"
Customer: "Sounds good. Thanks."
Why this works: References specific details from the estimate (system age, dollar amounts) so the customer knows this is not a generic robo-call. Reframes the repair vs. replace decision with real numbers. Creates natural urgency with the rebate deadline. Sets the stage for the next follow-up without being aggressive.

7. 7-Day Re-Engagement Script

Flora: "Hi David, this is Flora from [Company Name]. Do you have a quick minute?"
Customer: "Sure, what's up?"
Flora: "I wanted to circle back on the estimate from last week for the AC system at your Elm Street property. I know you were weighing the repair versus the full replacement. Have you had a chance to look at the financing info we sent over?"
Customer: "I looked at it but honestly I've been getting other quotes too."
Flora: "Totally fair. You should get multiple quotes on a job this size. Can I ask what the other companies are quoting you? I'm not going to pressure you, but I want to make sure you're comparing the same scope of work, because we've seen cases where a lower bid means they're cutting corners on ductwork or skipping the load calculation."
Customer: "One company came in at $6,800, but they're installing a different brand."
Flora: "Good to know. A few things worth checking: does that quote include a Manual J load calculation, are they pulling the permit, and what's the warranty on labor, not just the equipment? Our quote at $7,500 includes all three of those, plus the $750 utility rebate brings your net cost to $6,750, which actually puts us under that other bid. Would it help if our estimator put together a side-by-side comparison for you?"
Customer: "Actually, yeah. That would help me decide."
Flora: "I'll have that over to you by tomorrow. And David, I want you to feel 100 percent confident in whatever you decide. We're not going anywhere. But I will mention that our install schedule is filling up for the next two weeks, so if you do want to move forward, the sooner we lock in a date, the sooner you'll have reliable cooling. I'll call you after you've had a chance to review the comparison."
Why this works: Does not get defensive about competitive quotes. Instead, educates the customer on what separates a thorough installation from a cheap one. Does the math for the customer showing how the rebate makes the pricing competitive. Adds scheduling urgency without high-pressure tactics.

8. Final Attempt / Last Chance Script

Flora: "Hi David, this is Flora from [Company Name]. I hope I'm not catching you at a bad time."
Customer: "No, you're fine. I've just been busy."
Flora: "I completely understand. I'm just doing a final check-in on the AC estimate for your Elm Street home. I know it's been a couple weeks and I don't want to keep bothering you, so this will be my last call on it. Have you made a decision, or is this something you've decided to hold off on for now?"
Customer: "I think I'm going to hold off until next year. Money's a little tight right now."
Flora: "That makes sense, and I appreciate you being straight with me. Two things before I let you go. First, the current system is still running, but based on what our tech saw, I'd keep an eye on it through the summer. If it does fail completely, call us and we'll prioritize you because we already have your system specs on file. Second, we're running a pre-season installation special in the fall that usually saves customers $500 to $800 on a new system. Would you like me to flag your account so we reach out when that program opens up?"
Customer: "Yeah, actually, that would be great. Reach out in the fall."
Flora: "Done. I've noted your account. And David, if anything changes with the system between now and then, you have our number. No pressure at all. We just want to make sure you're taken care of whenever you're ready. Have a good rest of your day."
Why this works: Respects the customer's decision and removes pressure with "this will be my last call." Turns a lost sale into a warm lead by offering a future discount hook. Keeps the door open for emergency callbacks. Leaves the customer with a positive impression so they call you first when they are ready.

HVAC Appointment Reminder Scripts

No-shows cost HVAC businesses an average of $150 to $300 per missed appointment in wasted drive time and lost productivity. These two reminder scripts cut no-show rates by 40 percent or more.

9. Appointment Confirmation Call (2 Days Before)

Flora: "Hi, this is Flora from [Company Name]. I'm calling for Mike Johnson. Is this a good time?"
Customer: "Yeah, go ahead."
Flora: "Great. I'm just confirming your service appointment for this Thursday between 8 and 10 AM at 142 Maple Drive in Summerville. Our technician will be out to diagnose the AC issue you called about. Does that still work for your schedule?"
Customer: "Yep, that works."
Flora: "Perfect. A couple things so the visit goes smoothly: please make sure someone 18 or older is at the property, and if the system is in the garage or attic, just make sure the tech can access it. He'll call you about 30 minutes before he arrives. The diagnostic is $89 and that gets applied to any repair. Any questions before Thursday?"
Customer: "Nope, all good."
Flora: "We'll see you Thursday. Thanks, Mike."
Why this works: Confirms every detail (date, time window, address, purpose) so there is zero ambiguity. Reminds the customer about access requirements to prevent wasted trips. Restates pricing so there are no day-of surprises. Keeps the call under 90 seconds.

10. Day-Before Reminder Script

Flora: "Hi Mike, this is Flora from [Company Name] with a quick reminder. You have a service appointment tomorrow morning between 8 and 10 AM at 142 Maple Drive. Our technician will call you about 30 minutes before he heads your way. If anything's changed and you need to reschedule, just give us a call at [phone number] or reply to the text confirmation we sent. Otherwise, we'll see you tomorrow. Have a good evening."
Why this works: Short, clear, and to the point. Designed to be left as a voicemail if the customer does not pick up. Gives the customer an easy way to reschedule rather than just no-showing. Pairs with the text confirmation for a multi-channel reminder approach.

HVAC After-Hours Voicemail Scripts

If you still rely on a voicemail greeting after hours, these scripts minimize hang-ups and maximize callbacks. But the better solution is never sending callers to voicemail at all.

11. Standard After-Hours Voicemail Script

Flora: "You've reached [Company Name], your trusted HVAC team in [City/Region]. Our office is currently closed. Our regular hours are Monday through Friday, 7 AM to 6 PM, and Saturday 8 AM to noon. Please leave your name, phone number, and a brief description of what you need, and we'll call you back first thing on our next business day. If this is a heating or cooling emergency, press 1 now and we'll connect you to our on-call technician. Thanks for calling [Company Name]. We look forward to helping you."
Why this works: States hours clearly so the customer knows when to expect a callback. Gives a clear emergency escape route (press 1) so urgent calls do not go unanswered. Asks for a description of the issue so your team can prioritize and prepare before calling back.

12. After-Hours Emergency Redirect Script

Flora: "Thanks for calling [Company Name]. If you're experiencing a heating or cooling emergency, such as no heat, no AC, a gas smell, or a water leak from your HVAC system, stay on the line and you'll be connected to our emergency technician within 60 seconds. For all other calls, please leave a message after the tone with your name, number, and what you need, and we'll return your call by 8 AM the next business day. We appreciate your patience and we'll get you taken care of."
Why this works: Defines what counts as an emergency so you do not get midnight calls about thermostat programming. Gives a specific callback time (8 AM) instead of the vague "as soon as possible." Keeps the message under 30 seconds to reduce hang-ups.

Why These Scripts Work -- And How to Automate Them

Every script above follows the same proven framework: greet warmly, qualify the lead, handle objections, book the appointment, and confirm the details. When your team follows this framework on every call, your booking rate goes up because no steps get skipped.

But here is the problem with scripts: people are inconsistent. Your best CSR follows the script perfectly on Monday morning and starts cutting corners by Friday afternoon. New hires take weeks to get comfortable. During peak season, calls get rushed and qualifying questions get dropped. After hours, calls go to voicemail and 60 to 80 percent of those callers never call back.

That is exactly why we built Flora, the AI voice agent behind FlowSystem AI's HVAC receptionist. Flora uses these exact script frameworks on every single call, 24 hours a day, 7 days a week. She never skips a qualifying question. She never forgets to mention the diagnostic fee. She never lets an emergency call go to voicemail.

Flora handles inbound service requests, books appointments directly to your calendar, follows up on open estimates, sends appointment reminders, and routes emergencies to your on-call tech. She integrates with ServiceTitan, Jobber, and GoHighLevel so every lead lands in your CRM automatically.

The result: HVAC businesses using Flora report 25 to 40 percent higher booking rates on inbound calls, zero missed after-hours leads, and an average of $12,000 to $25,000 in recovered revenue per month from calls that would have gone to voicemail.

If you want to see how Flora handles these scripts in real time, pick up the phone and call her right now at (843) 868-5512. Or learn more about how the full system works as your HVAC AI assistant.

Frequently Asked Questions About HVAC Call Scripts

An effective HVAC call script should include a professional greeting with your company name, qualifying questions about the customer's issue (system type, age, symptoms), urgency assessment, service area confirmation, appointment scheduling with a specific time window, and a clear recap of what the customer can expect next. The best scripts also include objection handling for pricing questions and a warm closing that leaves the customer feeling confident they made the right call.
The key is to treat scripts as frameworks, not word-for-word readings. Have your team practice the scripts in role-play sessions until the flow feels natural. Encourage them to use their own phrasing for transitions while hitting every qualifying question. Record real calls (with permission) and review them weekly. Most teams sound natural within two to three weeks of consistent practice.
Yes. AI voice agents like FlowSystem AI use these exact script frameworks to answer every call to your HVAC business 24/7. The AI qualifies leads, books appointments, handles emergencies, and follows up on estimates without any human involvement. It never forgets a step, never skips a qualifying question, and handles unlimited simultaneous calls. Most HVAC businesses are live with AI call handling within 48 hours.
The most effective follow-up sequence is three touches: a 24-hour follow-up that references the specific issue and asks if they have questions, a 7-day re-engagement that adds urgency or a limited-time incentive, and a final attempt at 14 days that frames it as a courtesy check-in. Each script should reference the original estimate details so the customer feels remembered, not mass-marketed. Companies that follow this three-touch framework close 20 to 35 percent more estimates than those who only follow up once.

Stop Losing Calls. Start Booking More Jobs.

These scripts work. But Flora runs them 24/7 without missing a beat. Every call answered. Every lead qualified. Every appointment booked. Call Flora right now and hear the difference.

No contract · Live in 48 hours · Rated 5.0 by HVAC pros