Guide

Stop the 3 PM Ghost: The 3‑Message Confirmation Playbook + Hot‑Fill System

A practical, paste‑ready playbook for home service owners to install a 3‑message confirmation flow and a hot‑fill waitlist that stabilizes the board without adding headcount. Includes SMS copy, tool setup tips, a non‑responder call script, compliance checks, and a 7‑day rollout.

A direct, shop‑floor guide to install a three‑message confirmation flow and a simple hot‑fill waitlist so empty driveways stop wrecking your day. Built for owner‑operators and dispatch leads who want fewer no‑shows without adding headcount. Use the paste‑ready copy, tool tips, and the 7‑day rollout at the end.

Why this works (and what “good” looks like)

No‑shows aren’t random. They’re created by (1) weak confirmation, (2) vague windows, and (3) no backup plan. The fix is a tight cadence with one ask per message plus a waitlist you can trigger in seconds. Your goals: 85%+ of tomorrow’s jobs confirmed by 6:00 PM the night before; a clear, 30–45 minute ETA text the morning of; and a hot‑fill text ready the moment a slot opens.

The 3‑message cadence

Send three messages. Keep each to one action.

  1. Immediately after booking (lock it in):
  • Purpose: Get on the customer’s calendar and set expectations.
  • One action: Add to calendar.
  • Channel: SMS first, then email backup an hour later.
  1. Day before (the money message):
  • Purpose: Force a simple “yes” or make rescheduling easy without a call.
  • One action: Reply C to confirm OR click a single reschedule link.
  • Cutoff: If no confirmation by 6:00 PM local, trigger your call protocol (see Section 6).
  1. Morning of / On‑my‑way (kill window confusion):
  • Purpose: Tight, believable arrival window so customers are actually home.
  • One action: Expect us in ~30–45 minutes; optional track link if your tool supports it.

Pro tips:

  • Use the same cadence for landline‑only customers via voice calls (see Section 7).
  • Keep the reschedule link scoped to real, limited options (today/tomorrow/next best).

Paste‑ready message templates (SMS + email)

Copy it, paste it, and swap in your details. Include opt‑out language on first contact of a thread.

Booking (send immediately after scheduling)
```
Thanks for scheduling with [COMPANY] for [DAY, DATE] between [START–END]. Add to calendar: [CAL_LINK]. Reply STOP to opt out.
```

Day‑before (send ~24 hours prior)
```
Tomorrow: your appointment is set for [TIME WINDOW]. Reply C to confirm. Need to reschedule? [RESCHEDULE_LINK]. Reply STOP to opt out.
```

Morning of / On‑my‑way (tech taps the button)
```
Your technician [TECHNAME] is on the way. ETA ~[30–45] minutes. Track: [TRACKLINK]. Reply STOP to opt out.
```

Hot‑fill (send to waitlist when a slot opens)
```
Opening today at [TIME] just came free. First to confirm gets it. Reply Y to claim. Reply STOP to opt out.
```

Hot‑fill follow‑up (to others once filled)
```
That [TIME] slot is filled. You’re next on our list—watch for the next opening.
```

Email subject lines (belt‑and‑suspenders)

  • Please confirm your [DATE] service window
  • We’re on for [DATE] [TIME WINDOW]? Reply C by 6 PM

Spanish opt‑out/HELP add‑on (use when texting in Spanish)

  • “Responda ALTO para cancelar. Responda AYUDA para ayuda.”

Tool setup notes (ServiceTitan / Housecall Pro / Jobber)

ServiceTitan

  • Confirmations: Enable reply‑to‑confirm SMS so “C” marks the job confirmed on the Dispatch Board. Add your reschedule URL (portal/online booking) in the day‑before template.
  • On‑My‑Way: Have techs use the mobile “On My Way” button for a 30–45 minute ETA text.
  • Same‑day fills: Use the Dispatch Board Holding Area to drag unassigned work into freed slots.

Housecall Pro

  • Reminders: Turn on day‑before reminders and edit copy to include a confirm/reschedule single action.
  • On‑My‑Way: Train techs to tap “On My Way” from the app; set realistic arrival windows in Settings so notifications reflect them.
  • Reschedule: Point your link to Online Booking or Customer Portal (limited options work best).

Jobber

  • Reminders: In Client communications, enable SMS reminders; use the manual text from Calendar for ad‑hoc nudges.
  • Client Hub: Route reschedule clicks to Client Hub with constrained options.
  • Field: Coach techs to send an “on my way” text from the visit when appropriate.

Low‑lift shop setup

  • Add one reschedule URL you’ll use everywhere.
  • Create two canned SMS snippets (day‑before and hot‑fill) and one call script (Section 6).
  • Default ETA text to 30–45 minutes; don’t promise 10–15 unless you can hit it year‑round.

The hot‑fill waitlist (turn cancellations into revenue)

Build it once; trigger it in seconds.

  1. Build the list
  • When a customer asks for an earlier time, tag the job/customer “waitlist”.
  • Keep basic fields: name, phone, zip, service type, flexibility (today only vs. any day this week).
  1. Prioritize fast
  • Sort by: proximity to the opening, service type match, and flexibility.
  1. Text the list
  • Send the hot‑fill SMS (Section 3) to the top 5–10 people. First Y wins.
  • Log the winner; auto‑reply the rest that the slot is filled and they’re next.
  1. Two backup plays if it’s still open at noon
  • Call a morning job that wanted add‑ons: “We’ve got a 3 PM opening if you want to handle [SECOND ISSUE] today.”
  • Pull from your unassigned/holding queue (e.g., ServiceTitan Holding Area) and schedule it now.

Implementation tip: If your platform lacks a native waitlist, tags + a saved filter is enough to run this.

Night‑before non‑responder protocol (the 10‑minute habit)

Treat non‑responders like a risk signal, not a mystery.

Cutoff

  • If no SMS confirmation by 6:00 PM the night before, call. Not text.

Call script (40 seconds)

  • “Hi [NAME], this is [DISPATCHER] with [COMPANY]. We’re set for [DAY] at [TIME WINDOW]. Can you confirm now so we keep the slot?”
  • If yes: “Great, you’re locked in. See you then.” Mark confirmed.
  • If no / conflict: “No problem—here’s a link to pick another time: [RESCHEDULE_LINK].” Free the slot and trigger hot‑fill.
  • If no answer: Leave a brief voicemail and send the day‑before SMS again. If still no response by [7:30 PM], release the slot and work the waitlist.

Policy for high‑value / half‑day jobs

  • Hold with card‑on‑file or deposit. Say it plainly at booking: “We’ll hold your [DAY] slot with a card on file. No charge unless you cancel inside 24 hours or no‑show.” Use this selectively (installs, peak‑season work).

Compliance and accessibility quick check (read this once)

Minimum to launch safely:

  • Consent at booking: “We’ll text you appointment reminders. Message/data rates may apply.” Capture yes in your system.
  • A2P 10DLC: Make sure your business number’s SMS is registered (brand + campaign) through your provider.
  • Opt‑outs: Honor STOP/HELP (and ALTO/AYUDA when you text in Spanish). Don’t text again until they opt back in.
  • Landlines: Ask at booking, “Is this a mobile number for texts, or should we call?” Also set up a number‑type check so landlines route to voice calls.
  • Redundancy: Send the email version an hour after each SMS on high‑value jobs.
  • Keep first messages short and on‑purpose; carriers penalize long, multi‑ask texts.

Metrics and a 7‑day rollout

Track a tiny set of numbers every week.

  • Day‑before confirmation rate (by 6 PM): confirmed jobs ÷ all next‑day jobs. Target: 85%+.
  • Rolling 7‑day no‑show %: no‑shows ÷ (completed + no‑show). Target: cut your baseline in half over 30 days.
  • Reclaimed‑slot %: same‑day cancellations filled ÷ same‑day cancellations. Aim for 50%+ in peak weeks.
  • Opt‑out rate: STOPs this week ÷ SMS sent on first‑touch messages. If this spikes, your copy is too long or too frequent.

7‑day rollout (90 minutes total)

  • Day 1 (20 min): Turn on SMS reminders in your tool; add the consent line to your booking script.
  • Day 2 (15 min): Paste the templates (Section 3). Wire the single reschedule URL into the day‑before SMS.
  • Day 3 (10 min): Train techs to tap “On My Way.” Set default ETA to 30–45 minutes.
  • Day 4 (15 min): Create a “waitlist” tag and a saved filter. Save the hot‑fill SMS as a snippet.
  • Day 5 (10 min): Define your cutoff (e.g., 6:00 PM) and paste the call script into your phone system notes.
  • Day 6 (10 min): Dry‑run on tomorrow’s board; place 1–3 calls to non‑responders.
  • Day 7 (10 min): Review metrics above. Adjust message timing or copy as needed.

One question to ask this week

  • What was your day‑before confirmation rate last week, and where in the flow did it fail?