Mike: How do I stop the three p.m. ghost? Board looks full at eight, I'm scrambling by lunch.
Chris: The three p.m. ghost.
Mike: You know what I mean. The job that was confirmed last week, scheduled for three today, and when the tech shows up — nobody's home. Or they forgot. Or they scheduled someone else and didn't tell us.
Chris: Right. And now you've got a tech sitting in a driveway, calling the office, burning time.
Mike: Burning time, burning gas, and I've got Mrs. Johnson at four-thirty who could've taken that three o'clock slot if I'd known yesterday this was going to happen.
Chris: Exactly. The ghost job. Here's what kills me though — most shops think no-shows are random. Like weather. They're not.
Mike: They're not?
Chris: They're created. By weak confirmations, vague windows, and no backup plan. You can cut them in half with three messages, one link, and a simple waitlist.
Mike: Three messages.
Chris: Three messages. One link. And you'll fill half the gaps that do happen before lunch.
Mike: If you're running a book of fifty jobs a week and you don't have a structured confirmation sequence, you are losing money you already earned. That's what today is about.
Chris: This is The Service Operator. I'm Chris.
Mike: I'm Mike. And we're talking about the appointment reminder text that actually works — plus the hot-fill system that turns cancellations into same-day revenue.
Mike: Alright, let me paint the real picture here. Tuesday morning, you've got six jobs on the board. By noon, one's a no-show, one rescheduled last minute, and now you've got two techs with dead time and a dispatcher trying to shuffle everything.
Chris: And April's when it gets worse. Spring ramp means tighter schedules. One ghost job doesn't just waste that slot — it cascades through the whole day.
Mike: The whole day falls apart.
Chris: Here's what's actually happening. Most shops are running what I call hope-based scheduling. You book the job, maybe send one reminder, and hope they remember.
Mike: Hope they remember.
Chris: But people don't. Not because they're trying to screw you — they've got seventeen things happening. Kids, work, other contractors. Your Tuesday at three appointment is competing with all of that.
Mike: So what — I'm supposed to text them every day?
Chris: No. Three times. Specific times, specific messages. And here's the key — each message has one action. Not "confirm or call us to reschedule or visit our website." One action.
Mike: One action.
Chris: ServiceTitan figured this out. They built their whole confirmation system around "Reply C to confirm." That's it. One letter. And when the customer hits C, the job updates on the dispatch board automatically.
Mike: Automatically.
Chris: No CSR time. No phone tag. Housecall Pro does the same thing with their day-before reminders. Jobber too. The platforms already support this — most shops just aren't using it right.
Mike: Okay, but what about the people who don't text? My mother-in-law still has a flip phone.
Chris: Right. So here's the thing about that — Twilio has this lookup service that tells you if a number is mobile or landline. Takes half a second. If it's a landline, you route to voice. Same message, different channel.
Mike: Wait, the system knows if it's a landline?
Chris: Instantly. Sinch, all the big messaging providers, they document this. SMS to a landline fails silently. The customer never gets it. So you check first, route accordingly.
Mike: That's... I didn't know that existed.
Chris: Most shops don't. They're sending appointment reminders to landlines and wondering why their confirmation rate is garbage.
Mike: Alright, so walk me through these three messages. When do they go out?
Chris: First one goes immediately after booking. While they're still thinking about it. "Thanks for scheduling with Mike's HVAC for Tuesday 4/15 between 2-4pm. Add to calendar: . Reply STOP to opt out."
Mike: Reply STOP to opt out?
Chris: Required. CTIA regulations. Every initial business text needs opt-out language. The carriers will block you without it.
Mike: Even for appointment reminders?
Chris: Especially for appointment reminders. It's A2P traffic — application to person. You need your brand registered with The Campaign Registry, your campaign approved, the whole thing. But once it's set up, it runs itself.
Mike: How much does that cost?
Chris: Depends on your volume. Most shops under a thousand messages a month, you're looking at maybe fifty bucks all-in for registration and monthly fees. Compared to one no-show, that's nothing.
Mike: Yeah, okay. So that's message one.
Chris: Message two goes the day before. This is your money message. "Tomorrow: Your service appointment is confirmed for 2-4pm. To confirm, reply C. Need to reschedule? . Reply STOP to opt out."
Mike: One action.
Chris: One action. Either they confirm or they click the link. And here's what's smart — that reschedule link doesn't go to a phone number. It goes to your online booking. Housecall Pro, ServiceTitan, they all have customer portals now. The customer sees available slots, picks a new time, done.
Mike: No phone call.
Chris: No phone call. And you know what happens when someone has to call to reschedule?
Mike: They don't.
Chris: They don't. They ghost you instead. But give them a link, let them handle it at ten p.m. when they're thinking about it, and they'll actually reschedule.
Mike: What's message three?
Chris: Morning of. This is your "on my way" text. The tech triggers it when they're finishing the job before. "Your technician Chris is on his way. Arrival in approximately 30-45 minutes. Track: . Reply STOP to opt out."
Mike: The tech sends it?
Chris: The tech triggers it. One button in Housecall Pro — "On My Way." Customer gets the text, tech keeps working. And now you've narrowed that window from "between two and four" to "in the next forty-five minutes."
Mike: That's huge.
Chris: It's huge. Because half your no-shows aren't really no-shows. They're "I thought you were coming at four, not two" problems. The on-my-way message kills that confusion.
Mike: Okay, but let's be real. Some people are still going to no-show. What then?
Chris: Then you run the hot-fill system. This is where most shops leave money on the table. They treat a cancellation like a loss instead of an opportunity.
Mike: How is a cancellation an opportunity?
Chris: Because you've got a list of people who wanted earlier appointments but couldn't get them. Your waitlist. ServiceMonster actually has this built in — a proper waitlist module. But you can do it in any system with tags.
Mike: Tags?
Chris: Tag them "waitlist" when they ask for an earlier slot. When something opens up, you text the list. "Opening available today at 3pm due to cancellation. First to confirm gets it. Reply Y to claim."
Mike: First come, first served.
Chris: First come, first served. And here's what's beautiful — people love getting moved up. They feel like they won something. You just turned a dead slot into a happy customer.
Mike: But you need to know early enough to fill it.
Chris: Exactly. Which is why that day-before confirmation is critical. If they don't confirm by six p.m. the night before, you call them. Not text — call. Because a non-response to the confirmation text means something's up.
Mike: They're wavering.
Chris: They're wavering. And a quick call — "Hey, just confirming tomorrow at two?" — either locks them in or frees up the slot with enough time to fill it.
Mike: What if they confirm but still no-show?
Chris: Then you need a policy. For regular maintenance, maybe you eat it once. But for bigger jobs — half-day installs, peak season work — you take a card on file.
Mike: People hate giving their card.
Chris: Some do. But Square's data on this is clear — when you position it right, most don't care. "We'll hold your Tuesday slot with a card on file. No charge unless you no-show without twenty-four hours notice."
Mike: And that works?
Chris: For bigger jobs? Absolutely. You're not charging every customer a deposit. You're protecting your high-value slots. There's a difference.
Mike: Yeah, I can see that.
Chris: Now, let's talk about compliance real quick because this is where shops get burned. You can't just start blasting texts.
Mike: Right, the STOP thing.
Chris: The STOP thing is just the start. You need explicit consent. When someone books, your intake has to say "We'll text you appointment reminders. Message and data rates may apply." And you need to actually honor the opt-outs.
Mike: What if they opt out but still want the appointment?
Chris: Then you call them. Or email. But you can't text them again unless they explicitly opt back in. The carriers are watching this stuff now. Especially with 10DLC registration.
Mike: 10DLC?
Chris: Ten-digit long code. Your regular business number. If you're texting from it, it needs to be registered as a business campaign. Verified brand, approved use case, the whole process.
Mike: This sounds complicated.
Chris: It's not. Your messaging provider handles most of it. Twilio, Vonage, whoever you're using. Takes maybe an hour to set up initially. And once it's done, you're compliant forever.
Mike: What about Spanish-speaking customers?
Chris: Great question. If you're texting in Spanish, you need Spanish opt-out keywords too. ALTO instead of STOP. AYUDA instead of HELP. Same message, just add "Responda ALTO para cancelar."
Mike: The platforms handle that?
Chris: The good ones do. But you have to configure it. Most shops don't even think about it until they get complaints.
Mike: Alright, let me ask you something. You mentioned that Reddit post about the HVAC shop that went from twenty-three percent no-shows to four percent. Is that real?
Chris: The numbers are probably directional. But here's what is real — when you make confirmation mandatory, not optional, everything changes.
Mike: Mandatory how?
Chris: If they don't confirm by the night before, the appointment isn't happening. Period. You call them, and if you can't reach them, you release the slot.
Mike: That seems harsh.
Chris: It seems harsh until you realize the alternative is a tech in a driveway at three p.m. with nobody home. Which is harsher — asking for confirmation or wasting half a day?
Mike: Yeah, fair point.
Chris: And here's the thing — customers actually prefer it. They want to know you're coming. They want that on-my-way text. They want the ability to reschedule online at midnight when they realize they have a conflict.
Mike: They want control.
Chris: They want control. And when you give it to them — one link, one action, clear windows — your no-show rate drops naturally. Not because you're forcing anything. Because you're making it easier to do the right thing.
Mike: Making it easier to do the right thing. I like that.
Chris: Let me give you the exact language we see working. Booking confirmation: "Appointment confirmed for between . Save to calendar: . Reply STOP to opt out."
Mike: Short.
Chris: Short. Day-before: "Tomorrow's appointment at needs confirmation. Reply C to confirm or visit to reschedule. Reply STOP to opt out."
Mike: Reply C.
Chris: Just C. Morning of: "Your technician is completing a nearby job and will arrive in approximately 30-45 minutes. Reply STOP to opt out."
Mike: No tracking link on that one?
Chris: You can add it if your system supports it. But the key is the time window. Thirty to forty-five minutes. Not "this afternoon." Not "between two and four." A real window they can plan around.
Mike: What about the waitlist message?
Chris: "Good news! A slot just opened for today. Reply Y to claim (first response gets it). Reply STOP to opt out."
Mike: First response gets it.
Chris: Creates urgency. And it's true — you're only filling one slot. The first yes wins.
Mike: Do you tell the others they missed it?
Chris: You can. "Slot has been filled but you're next on our list." Keeps them warm for the next opening.
Mike: What about when you can't fill the slot? Like, it's noon and you've got a three p.m. that just cancelled.
Chris: Two plays. First, check if any of your morning jobs wanted more work done. Call them directly. "Hey, we've got an opening this afternoon if you want to tackle that other issue we discussed."
Mike: Upsell into the dead slot.
Chris: Exactly. Second play — if you're using ServiceTitan, check the Holding Area. Those are unassigned jobs that need scheduling. Perfect for same-day fills.
Mike: The Holding Area?
Chris: New feature they added. Unassigned jobs sit in this visual queue. Drag and drop to schedule. Takes five seconds.
Mike: That's smart.
Chris: It's smart. And if you're not on ServiceTitan, you can do the same thing with tags. Tag jobs "needs scheduling" and sort by priority.
Mike: Manual version of the same thing.
Chris: Right. The tool doesn't matter. The process matters.
Mike: Let me push back on something. This all sounds great if you've got office staff. What if it's just me and maybe one CSR part-time?
Chris: Then you automate everything except the call. The three texts? Automated. The waitlist message? Template you trigger manually. The only thing you're doing live is calling non-confirmations the night before.
Mike: How long does that take?
Chris: Fifty jobs a week, maybe ten percent don't confirm, that's five calls. Two minutes each. Ten minutes, night before, saves you hours of dead time tomorrow.
Mike: Ten minutes.
Chris: Ten minutes. And here's what I tell guys — you're already looking at tomorrow's board the night before, right? Checking routes, making sure you've got parts?
Mike: Yeah.
Chris: So while you're doing that, make the calls. It's not extra time. It's part of the same review.
Mike: That actually makes sense.
Chris: The shops that struggle with no-shows treat confirmation like an extra step. The shops that beat it treat confirmation like part of the job. You wouldn't show up without your tools. Don't show up without confirmation.
Mike: Don't show up without confirmation. That's good.
Chris: One more thing on the tech side. If you're worried about landlines, older customers, here's a simple fix. At booking, ask: "Is this a mobile number for texts, or should we call?"
Mike: Just ask.
Chris: Just ask. Takes two seconds. Saves you from texting into the void. And for the landline folks, you can still run the same cadence — just with voice calls instead of texts.
Mike: Same message, different channel.
Chris: Same message, different channel. The confirmation still happens. You just adapt to what works for that customer.
Mike: What about email?
Chris: Email's your backup. Same cadence, same links, but email open rates for service reminders are maybe forty percent. SMS is ninety-plus. So email's your redundancy, not your primary.
Mike: Got it.
Chris: But here's what's smart — send both. Text goes first, email follows an hour later. Different channels, same message. Covers your bases.
Mike: Belt and suspenders.
Chris: Belt and suspenders. Especially for high-value jobs where a no-show really hurts.
Mike: So let me make sure I've got this. Three messages — booking, day-before, morning-of. Each one has one action. Keep a waitlist for hot-fills. And make confirmation mandatory, not optional.
Chris: That's it. And remember — the platforms already do most of this. ServiceTitan's got the reply-to-confirm. Housecall Pro's got the on-my-way button. Jobber's got the reminders. You're not building something new. You're just using what's already there the right way.
Mike: We've been paying for these features and not using them.
Chris: Most shops are. They're running hope-based scheduling when they could be running a system.
Mike: A system that cuts no-shows in half.
Chris: Without adding headcount. Without complicated software. Just three messages, one link, and ten minutes the night before to call the stragglers.
Mike: Here's my question for you though — and this is what I'm going to check tonight. What was your day-before confirmation rate last week, and where in the flow did it fail?
Chris: That's exactly the right question. Pull your last seven days. Tag every miss — was it no reply to the text, couldn't reach by phone, or was it a landline that never got the message? Once you know where it's breaking, you know what to fix.
Mike: And if most of them are landlines?
Chris: Then you add the line-type check at booking. Takes two seconds. Saves you from texting into nothing.
Mike: This is The Service Operator. I'm Mike.
Chris: I'm Chris. Stop hoping they show up. Start confirming they will.