Two HVAC operators book the same number of appointments on Monday. On Thursday morning, one sends a technician to a locked door. The other has a 95% confirmation rate before the truck leaves the yard and a recovery SMS already queued for the 5% who don’t answer.
The difference isn’t the customers. It’s the system running between booking and appointment day.
TL;DR
- HVAC no-show rates run 12-18% without a formal confirmation process. A three-touchpoint cadence (48 hours, 24 hours, 2 hours before) drops them to 3-5%.
- The prevention workflow runs automatically from the moment an appointment is booked, firing three timed reminders without dispatcher involvement.
- The recovery workflow runs when a no-show is logged, reaching back out within an hour to rebook and flagging the contact in the CRM so future bookings trigger additional confirmation steps.
- Both workflows are built in the ServiceAgent Workflow Builder and run on separate triggers: appointment.booked for prevention and appointment.cancelled for recovery.
Why HVAC No-Shows Happen?
No-shows are not a customer character problem. They’re a touchpoint problem.
A homeowner books a Thursday appointment on Monday. Between booking and Thursday, nothing happens: no confirmation message, no reminder, no signal that the appointment is still active. By Thursday morning, the homeowner has forgotten the exact window, assumed a spouse would handle it, or confused the date. The technician arrives. No one answers. The slot is lost.
The same homeowner, given a 48-hour confirmation with one-tap reply, a 24-hour reminder with the technician’s name, and a morning-of heads-up, confirms 95% of the time. The appointment hasn’t changed. The information environment around it has.
The structural fix is not calling customers more aggressively. It’s automating the three-touchpoint cadence so it runs on every appointment, every time, without anyone on your team remembering to do it.
What the Three-Touchpoint Cadence Does?
Each touchpoint serves a distinct purpose in reducing no-shows.
48-hour SMS. The homeowner is far enough from the appointment to still remember booking it. A confirm-or-reschedule message at 48 hours captures the 5-10% of customers who would have been a same-day cancellation or no-show and converts them into a clean reschedule. A free dispatch slot beats a wasted one.
24-hour technician intro SMS. By the day before, the appointment is concrete. Introducing the technician by name makes the appointment feel like a commitment to a person, not an abstract calendar entry. HVAC operators using a named technician intro in their 24-hour reminder see measurably lower cancellation rates than those sending a generic “your appointment is tomorrow” message.
2-hour same-day SMS. The morning-of reminder catches the homeowner before they leave for an errand and confirms the appointment window is still active. Customers who receive this message show up at the door. Customers who don’t receive it sometimes don’t.
Together, these three touchpoints move no-show rates from 12-18% down to 3-5% without adding staff or requiring dispatchers to manually chase confirmations.
The Recovery Sequence (What No One Else Has)
Preventing the no-show handles 95% of the problem. The other 5% still happen regardless: the homeowner forgot, the door wasn’t answered, the message bounced.
Most HVAC companies log the no-show and move on. The technician files a door-tag. The dispatcher notes it in the CRM. The homeowner is never contacted again. That’s a lost customer and a lost job from a lead that already made it to the calendar.
A post-no-show recovery workflow changes that math. Within an hour of the no-show being logged, an automated sequence fires: a message acknowledging the missed appointment, an offer to rebook, and a CRM flag that tags the contact for additional confirmation steps on future bookings.
The homeowner who forgot still needs HVAC service. The company that reaches back out within the hour gets the rebook. The one that doesn’t gets ignored when the homeowner calls someone else.
Operators running both the prevention workflow and the recovery sequence cut their effective no-show rate to under 2% over 90 days, because the 5% who slip through prevention still have a recovery path.
Introducing the Workflow Builder
The Workflow Builder is a visual drag-and-drop canvas inside ServiceAgent where you build automated sequences that run the moment a trigger event fires. Each workflow starts with a trigger (the system event that starts the sequence) and runs through a chain of nodes, which are individual actions the system takes automatically without staff involvement.
For HVAC no-show reduction, two workflows run from two separate triggers: appointment.booked launches the prevention cadence the moment a job is confirmed, and appointment.cancelled launches the recovery sequence when a no-show is logged.
Book a 20-minute demo to see both workflows built for HVAC appointment management.
Workflow 1: The Prevention Cadence (appointment.booked)
This workflow fires the moment an appointment is booked. It runs on every confirmed HVAC appointment without dispatcher involvement.
Trigger: appointment.booked
Configure the trigger in the Workflow Builder by selecting “New Workflow” and choosing appointment.booked as the event. No additional filter conditions are required unless you want to exclude specific job types (warranty callbacks, for example, where a reminder may create confusion about what’s being serviced).
What to check: book a test appointment and confirm the workflow activates in the activity log. If it doesn’t fire, verify that the trigger event name matches what your scheduling module writes when an appointment is confirmed.
Node 1: Wait/Delay (to 48 hours before the appointment)
What it does: Pauses the workflow from the moment of booking until 48 hours before the scheduled appointment time, then advances to the first confirmation message.
Why it matters: A reminder sent immediately after booking is redundant. The homeowner just booked. The useful window for a confirmation ask is 48 hours before the appointment, when enough time has passed that their schedule may have shifted but they can still reschedule cleanly. The Wait/Delay node holds the workflow in pause until that exact moment.
What happens: Configure the delay as a relative offset: appointment time minus 48 hours. The node advances automatically when that timestamp is reached.
What to check: Book a test appointment 72 hours in the future. Confirm the workflow holds for 24 hours (to the 48-hour mark) then advances. If it fires immediately, the offset is configured from booking time rather than appointment time.
Node 2: Send SMS (48-hour confirmation)
What it does: Sends a confirmation SMS to the customer with the appointment date, arrival window, address, and a one-tap reply to confirm, reschedule, or call.
Why it matters: The one-tap confirm reply is the key mechanic. About 60-70% of customers reply YES within an hour of this message. The 5-10% who reply RESCHEDULE are the customers who would have been a same-day no-show. Converting them to a clean reschedule frees the slot for another job while the dispatcher still has time to fill it.
What happens: “Hi [Name], this is [Business Name]. We have you scheduled for HVAC service on [Day], [Date] between [Window Start] and [Window End] at [Address]. Reply YES to confirm, RESCHEDULE if the time no longer works, or call [Number] to speak with our office.”
What to check: Confirm the merge fields (name, date, window, address) populate correctly from the appointment record. Test a RESCHEDULE reply and confirm it routes to a CSR task rather than being silently dropped.
Node 3: Wait/Delay (to 24 hours before the appointment)
What it does: Pauses 24 hours from Node 2 firing, then advances to the technician intro message. For customers who confirmed at 48 hours, this is a courtesy reminder. For customers who didn’t reply, it’s the second chance to confirm or reschedule before the dispatcher escalation window.
What to check: After a YES reply in Node 2, confirm the workflow still advances to Node 3 (the 24-hour reminder is sent regardless of 48-hour confirmation status). Both confirmed and unconfirmed customers receive the technician intro.
Node 4: AI Generate + Send SMS (24-hour technician intro)
What it does: The AI Generate node drafts a personalized 24-hour reminder that introduces the technician by name, pulling the assigned tech’s name from the job record. The Send SMS node delivers it.
Why it matters: A message that says “Marcus will be your technician tomorrow” converts at a higher rate than “your appointment is confirmed.” The technician name makes the appointment concrete and creates a social commitment that an anonymous window does not. HVAC operators using personalized technician intros in their 24-hour reminder see fewer same-day cancellations, particularly on replacement and installation calls where trust matters more.
What happens: AI Generate pulls the technician’s name and the service type from the job record and populates a template: “Reminder: [Name], your HVAC service appointment is tomorrow [Day] between [Window Start] and [Window End]. Your technician will be [Tech Name]. Questions? Call [Number] or reply here.”
What to check: Run a test with an appointment that has a technician assigned. Confirm the tech name populates in the message. If the field is blank, the job record’s technician assignment field may not be mapped to the merge variable in AI Generate.
Node 5: Wait/Delay (to 2 hours before the appointment)
What it does: Pauses until 2 hours before the appointment’s scheduled start time, then fires the same-day reminder.
What to check: Confirm the 2-hour offset is calculated from appointment start time, not from when Node 4 fired. A misconfigured offset can send the morning-of reminder at the wrong time.
Node 6: Send SMS (2-hour same-day reminder)
What it does: Sends a brief same-day message confirming the technician is on schedule for the appointment window.
Why it matters: The morning-of reminder is where no-shows are prevented for the customer who planned to be home but got pulled out on an errand. A message two hours before the window gives them time to return or let someone else know to be there. Customers who receive this message show up at the door at significantly higher rates than those who don’t.
What happens: “Good morning [Name], this is [Business Name]. [Tech Name] is scheduled to arrive between [Window Start] and [Window End] today for your HVAC service. Questions? Call or text [Number].”
What to check: Confirm the message sends correctly for early-morning appointments (a 7-9am window should receive this message at 5-7am; verify this is acceptable for your market or adjust the window timing).
The complete prevention workflow
appointment.booked → Wait/Delay (to 48h before) → Send SMS (confirm/reschedule) → Wait/Delay (to 24h before) → AI Generate + Send SMS (technician intro) → Wait/Delay (to 2h before) → Send SMS (same-day reminder)
Operators running this workflow see 77% fewer no-shows on calls that come in outside business hours and measurably better show rates overall, because the confirmation cadence runs on every appointment at every hour.
Workflow 2: The Recovery Sequence (appointment.cancelled)
This workflow fires when an appointment is marked cancelled or a no-show is logged in ServiceAgent’s scheduling module. It runs automatically, without dispatcher involvement, to recover the homeowner before they call a competitor.
Trigger: appointment.cancelled
Configure the trigger by selecting appointment.cancelled as the event. Add a condition to filter for cancellations with a reason code of “no-show” or “no-answer,” so the workflow distinguishes genuine no-shows from homeowner-initiated cancellations (which need a different message). The recovery sequence runs only on no-show events, not on customer-requested reschedules.
What to check: log a test no-show in the scheduling module and confirm the workflow activates. If it also fires on intentional cancellations, check the reason-code condition on the trigger.
Node 1: Wait/Delay (1 hour)
What it does: Pauses 1 hour from the no-show event before the first recovery message fires.
Why it matters: A message sent the instant the no-show is logged (“we missed you”) can feel accusatory if the homeowner had a genuine emergency. One hour gives them time to realize the appointment passed and creates room for a re-engagement message rather than a complaint. It also gives the technician time to leave a door tag and return to the yard before the automated follow-up arrives.
What to check: Confirm the delay is 1 hour from the trigger event, not from the appointment time. A no-show logged at 11am should trigger the recovery message around noon.
Node 2: AI Generate + Send SMS (re-engagement)
What it does: Drafts a personalized re-engagement message referencing the missed appointment and offering an easy path to rebook, then sends it to the homeowner’s number.
Why it matters: A no-show is not always a disinterested customer. Homeowners forget, get pulled away, or have the wrong date. A non-accusatory message that acknowledges the missed appointment and offers a simple rebook path recovers a portion of these leads that would otherwise go silent. The homeowner still needs HVAC service. The question is whether you or a competitor gets the rebook.
What happens: AI Generate pulls the homeowner’s name, the service type, and the tech name from the job record. The message: “Hi [Name], this is [Business Name]. It looks like we missed you today for your [Service Type] appointment. We’d like to get you rescheduled. Reply here with a preferred day and time, or call [Number] and we’ll find the next available slot.”
What to check: Run a test no-show and confirm the message fields populate correctly. Verify the tone reads as helpful, not punitive. A message that opens with “you missed your appointment” will not recover the homeowner. A message that opens with “we missed you” will.
Node 3: Wait/Delay (24 hours)
What it does: Pauses 24 hours from Node 2 before the final recovery touch fires.
Why it matters: A homeowner who didn’t respond to the first message may not have seen it, or may need until the next day to think about rebooking. A 24-hour second touch doubles the recovery rate on the 5% of no-shows who slip through the first message.
Node 4: Send SMS (final rebook offer)
What it does: Sends a single final message offering to rebook, then the workflow ends regardless of response.
Why it matters: Two messages is the appropriate limit. A third recovery message reads as pressure and can permanently damage the customer relationship. The second message is the last courtesy the business extends before the no-show is closed in the CRM.
What happens: “Hi [Name], one more note from [Business Name] about the missed appointment. When you’re ready to reschedule, reply here or call [Number]. We’re happy to get you back on the calendar.” After this node, Update CRM runs regardless of response.
Node 5: Update CRM (no-show flag)
What it does: Tags the contact record with a no-show flag and a timestamp, and sets a field that triggers additional confirmation steps on any future bookings from this contact.
Why it matters: Without this node, a homeowner who no-shows once goes back into the general appointment pool. The next time they book, the prevention workflow treats them identically to a first-time confirmation. With the flag in place, future bookings from this contact can trigger additional confirmation steps or a manual dispatcher call in addition to the automated cadence.
What happens: Writes “No-show: [date]” to the contact’s status field and sets a “deposit-required” or “enhanced-confirmation” flag that your booking workflow can read on the next appointment.
What to check: After a test no-show sequence, open the contact record and confirm both the no-show date and the flag field are populated. Test a second appointment booking for the same contact and confirm the enhanced confirmation condition is visible in the Workflow Builder.
The complete recovery sequence
appointment.cancelled (no-show condition) → Wait/Delay 1h → AI Generate + Send SMS (re-engagement) → Wait/Delay 24h → Send SMS (final rebook) → Update CRM (no-show flag)
What to Track
Two metrics tell you whether both workflows are performing.
Confirmation rate by touchpoint. What percentage of appointments confirm at each of the three prevention messages? If your 48-hour rate is below 60%, the message or the timing needs adjustment. If your 24-hour rate isn’t adding at least 10 points on top of the 48-hour rate, the technician intro isn’t landing. Track these weekly for the first 30 days after launch.
No-show recovery rate. Of contacts who receive the recovery sequence, what percentage rebook within 7 days? This number tells you how many no-shows were genuine reschedules versus genuine disinterest.
A recovery rate of 15-25% is typical. If it’s below 10%, review the re-engagement message tone. If it’s above 30%, your prevention cadence may be under-triggering, which means strong demand that the prevention workflow is not reaching.
How ServiceAgent Is the 24/7 AI Office Manager
ServiceAgent’s Workflow Builder runs both sequences on every appointment automatically, including bookings that come in at 9pm on a Sunday. The confirmation cadence fires at the correct relative offset for every job. The recovery sequence fires within an hour of every no-show. No dispatcher decides who gets a reminder or whether to chase a missed appointment.
Operators using ServiceAgent for appointment management see 77% fewer no-shows compared to manual confirmation processes, because every appointment gets the full three-touchpoint cadence without exception. The recovery sequence closes the loop on the remaining cases before the homeowner moves on.
Book a demo or sign up free and build both workflows today.
Frequently Asked Questions
What is a good HVAC appointment no-show rate?
HVAC companies without a formal confirmation process typically see no-show rates of 12-18%. A single 24-hour reminder text brings this down to 8-12%. The full three-touchpoint cadence (48-hour, 24-hour, 2-hour) with automated confirmation reply tracking consistently produces rates of 3-5%. A rate below 3% usually indicates either a very loyal existing-customer base or an enhanced confirmation process that includes manual dispatcher calls for unconfirmed appointments on top of the automated cadence.
Should HVAC companies send the same reminders to service agreement holders as to new customers?
No. Service agreement holders have an ongoing relationship with your company and almost never no-show. Sending them the same three-message cadence as a first-time customer can feel excessive. A single 24-hour reminder is appropriate for agreement holders. Reserve the full 48-hour, 24-hour, and 2-hour sequence for first-time customers and any contact who has previously no-showed. The no-show flag in Node 5 of the recovery workflow makes it easy to identify which contacts need enhanced confirmation on future bookings.
How long should you wait before giving up on rebooking a no-show?
Two messages over 24 hours is the appropriate limit for an automated recovery sequence. Beyond that, the homeowner is either not ready to rebook or has already called a competitor. Continuing to message past two recovery touches does more damage to the customer relationship than it recovers. The Update CRM node in the recovery sequence flags the contact so the next booking attempt from this customer triggers enhanced confirmation steps, which is the more useful long-term action than extended follow-up on the original missed slot.