Back to all articles
Scheduling

What to do when a customer no-shows, instead of writing off the slot

A no-show is the most recoverable lost sale you have. Here is how to detect it automatically, reopen the conversation in minutes, and resell the empty slot.

Written by
The AppBO Team
Published
October 1, 2026

A no-show is the only kind of lost sale that arrives on a schedule. You know the person's name, you know what they wanted, you know they picked a time, and you know exactly when they did not turn up. Every other lead has to be found, qualified and persuaded. This one did all of that and then failed to walk through a door. And yet in most operations it is the least-worked record in the database: the slot sits empty, somebody mutters about it, the appointment is deleted or left to rot, and the person is never contacted again.

Why a no-show is the most recoverable lost sale you have

Writing the slot off feels like the clean response. It is also the expensive one, because the loss is not just the hour. It is three losses stacked on top of each other:

  • The slot. Capacity you reserved, staffed and paid for, consumed by nobody. Unlike most waste it cannot be recovered later, because time does not carry forward.
  • The acquisition cost. Whatever you spent to produce that booking is written off in full, which quietly inflates your real cost per attended appointment well above the figure in your ad dashboard.
  • The lifetime value. Largest over a year by a wide margin. Someone one appointment away from becoming a customer now never will be.

Against that, the recovery cost is one text message. The person already wanted what you sell, already chose a time, and often simply forgot or had their day fall apart. The question is not whether to chase them, but who chases, how fast, and what they say.

The real failure: nobody owns the fifteen minutes after a missed appointment

When the slot goes idle, the front desk is dealing with the person who did arrive. By the time the day settles down, the window has closed: the customer has moved on emotionally, assumed they are in trouble, or quietly booked with someone else.

Worse, the appointment status usually never gets updated. If nobody marks the record as a no-show, nothing downstream can fire. No event, no tag, no pipeline movement, no report. You cannot even count your no-shows, let alone recover them, because the data that would describe the problem is created by hand by the busiest person in the building.

So the first thing to fix is not the message. It is the detection.

Step by step: what to do after a no-show

Step 1: Create the no-show event from absence, not from memory

Set a grace period in minutes per appointment type and write it down. Ten minutes for a short service slot, fifteen for a consultation and twenty for anything requiring travel to site are sensible defaults. Then run a check every few minutes against appointments that have started: if no arrival has been recorded, the appointment is not canceled or rescheduled, and the grace period has expired, mark it automatically.

Two details matter. Exclude appointments created inside the grace window itself, or walk-ins produce false positives. And build the reversal path before you launch: when a genuinely late customer arrives after marking, the undo has to decrement the counters, remove the tags and cancel every pending message. Without it, your late arrivals get apology texts for missing an appointment they are sitting in.

Step 2: Assign an owner, automatically, every time

The provider who was due to see them, or the front-desk person on shift by rotation. Never "the team". Several branches of this process queue a human task, and if nobody owns those tasks the whole thing becomes a worse experience than silence.

Step 3: Send one blameless message within minutes

Wait a minute, so a manual correction can land, then send. The target for time from marking to first contact is under five minutes. The message has one job: reopen the conversation. It names the time, says you missed them, asks if everything is okay, and gives them one tap that tells you what happened and offers a new time.

The copy rules matter more than the sequence. Never lead with a fee. Never use the word failed. Never write "you did not attend". Never ask for an explanation as a condition of rebooking. If there is a fee conversation to be had, it belongs to a human, later, not to the first automated text.

If the first message gets no reply, the second one, a couple of hours later, should carry two specific times in the body of the text rather than a bare booking link. "I have Thursday at 4:30 or Friday morning free, reply with whichever suits" converts far better than a link, because it removes a step.

Step 4: Capture the reason, because the reason is the whole asset

A one-question picker with six buttons, no login and no name field, served from the link in the first text. Capture on tap rather than on submit, so an abandonment still records the answer. Then branch, because recovery rates and the correct fix vary enormously by reason:

  1. Forgot or wrong time in the calendar goes straight to the rebooking page and flags the contact for a hardened confirmation sequence next time.
  2. Transport gets the address, parking notes, public transport information and a map link, because this is an information problem, not a motivation problem.
  3. Work or childcare gets availability filtered to first-of-day, last-of-day and weekends only. Offering the same mid-morning slot again is why this reason repeats.
  4. Illness suppresses all recovery messaging for seventy-two hours, sends one short get-well note, then offers times. Never apply a fee or a deposit gate on this branch automatically.
  5. Cost concern gets no rebooking page at all. It gets a human conversation, scheduled as a task for the owner within hours.
  6. Booked elsewhere gets one honest message thanking them for saying so, and exits to a win-back audience months later.

The critical mechanical step here is the one most often missed: capturing a reason must cancel every pending step in the chase. That omission is the cause of almost all "why are you still texting me" complaints.

Step 5: Resell the empty slot while it is still worth something

This is the part that pays for the whole exercise, and it is separate from the relationship repair. The moment the no-show is marked, release the slot and offer it to a waitlist: contacts who opted in, who match the service and provider, and whose stated notice window permits today.

Send to the first five only, with a plain first-come message. Wait eight minutes, then the next five, up to three rounds. Sending to everyone produces one booking and a lot of disappointed people. Answer every late yes immediately with a specific alternative rather than silence, because an unanswered yes is how you lose a waitlist.

Step 6: Treat the rebooked appointment as fragile

A rebooked no-show is statistically the most delicate appointment on your calendar. Treating it exactly like a first-time booking is how you get the same empty slot twice. Harden the confirmation: an immediate confirmation with the address and parking, a reminder forty-eight hours out asking for a one-letter confirm, a second reminder and a front-desk call task at twenty-four hours if no confirmation has come, and a final message two hours before.

That human call to an unconfirmed recovered booking is the highest-yield call in the whole process. If there is still no confirmation two hours out, quietly add the slot to the waitlist as at risk so a standby can be warmed up without being promised anything.

Step 7: Cap the chase in a field, then stop

Five contacts across about seven days is a reasonable ceiling, and the last message should say it is the last one: "I do not want to keep bothering you. Book any time here, or no problem at all and we will leave it with you." After that, the record goes to a quarterly win-back audience and nobody touches it again.

Enforce the cap with a counter field rather than by counting steps in the sequence. Otherwise a second no-show re-enters the process, restarts the count, and somebody receives ten messages.

The full build, with every workflow, field and message, is in the no-show recovery pipeline build guide.

Handling repeat no-shows without becoming the bad guy

Decide this by policy and counter fields, not by mood, so the rule applies identically to everyone. That is fairer and far easier to defend on the phone. A workable shape:

  • One no-show: flag the contact for the hardened confirmation treatment. Nothing changes in what they are charged or told.
  • Two, with a reason given both times: one more chance, into a first-of-day or last-of-day slot only, with a card on file.
  • Two, with no contact either time: the booking link is disabled for that contact and a deposit gate applies before any new booking.
  • Three inside ninety days: stop all automated outreach, notify the owner, and let a human decide whether to re-admit them, with the decision logged.

If you do use a deposit, the policy message should be written once, in plain words, approved by the owner, and never improvised. Explain that the deposit comes off the bill, state the refund window, and put it before availability rather than after. Whether a deposit or missed-appointment charge is permissible at all varies by sector and jurisdiction, so have your own adviser review the policy before you switch it on. Never let an automation levy a charge against a stored card without a separate, explicit authorization for exactly that. If the policy cannot be reviewed in time, run everything else and leave the gate switched off. It works without it.

Keep late cancellations in their own column

A customer who cancels four hours out behaved well. One who said nothing did not. Collapsing the two destroys both your reporting and your tone.

Give a late cancellation its own timestamp and tag, do not increment the no-show counter, release the slot to the waitlist immediately, and reply with something genuinely appreciative plus an offer to rebook. Then track the two series separately, because a rising late-cancel rate alongside a falling no-show rate is exactly what success looks like, and it will read as a problem on any dashboard that adds them together.

What to measure

  • No-show rate as a share of scheduled appointments, segmented by appointment type, provider, location, day of week and hour. The segmented view is the useful one. The headline number hides everything, and most businesses find their no-shows concentrated in two or three identifiable pockets rather than spread evenly.
  • Detection coverage, the share of missed appointments marked automatically rather than by hand. Until this is near total, every other number here is understated.
  • Reason capture rate. Driven almost entirely by how fast and how blameless the first message is.
  • Median time from marking to first contact. Target under five minutes. If it drifts above an hour, the process is no longer doing the one thing it exists to do.
  • Recovery rate, both the share that rebook and the honest version, the share that rebook and attend. Report both. The gap between them is where the hardened confirmation earns its place.
  • Rebooking lead time. Shorter lead times attend better. If recovery bookings are all landing three weeks out, your protected recovery slots are too few.
  • Slot refill rate and median minutes to refill. The waitlist's performance, and the clearest financial readout you will get.
  • Second no-show rate among recovered bookings, which tells you whether hardening works.
  • Reason mix over time. A falling "forgot" share means your reminders improved. A rising "booked elsewhere" share means your competitors got faster.
  • Opt-out rate on recovery messages. The early warning that tone or frequency has drifted. Review the copy before touching the cadence.

Two prerequisites decide whether any of this works. First, appointment outcomes have to be recorded, ideally an arrival stamp at reception or on a technician's phone. If outcomes are recorded inconsistently, fix that before automating on top of it. Second, your reminders have to be working already. A recovery process bolted onto a business with no reminder sequence is treating a symptom: recovery should be catching the residue, not the bulk.

Consent also has to predate the first recovery message. A booking is not blanket consent to be texted, so capture messaging consent at booking with the business named, store the timestamp and the exact wording shown, and hold all sends inside daytime hours in the customer's own timezone. A missed-appointment message at 9pm reads as a debt collection notice. Rules on consent, charging for missed appointments and record retention vary by jurisdiction and sector, so have your own counsel review your language and policy before launch.

If you want this running against your real appointment data rather than assembled from scratch, book a call and we will look at where your no-shows actually cluster and decide what to switch on first. If the reason mix comes back heavy on "booked elsewhere", the instant quote request response build is the one to read next.

Frequently Asked Questions

How soon should I contact someone who no-showed?

Within minutes of the grace period expiring, and certainly inside the hour. The window is short because the customer is still thinking about it, still feels slightly awkward, and has not yet booked elsewhere. Waiting until the end of the day means contacting someone who has already resolved the situation in their own head, usually by assuming you are annoyed with them.

Should I charge a no-show fee?

That is a commercial and legal decision rather than an automation one, and it is sector-specific. If you do, two rules hold regardless: never let the automation apply a charge or a refusal on its own, and never send the fee message as the first contact. A deposit requirement applied to repeat no-shows, by written policy, tends to be easier to defend and easier to explain than a charge applied after the fact. Have your own adviser confirm what you are allowed to do where you operate.

What if they say they had the wrong time in their calendar?

Apologize for the mix-up and offer times. Do not argue about what the confirmation said, even when you are right: the argument costs more than the appointment is worth. Then treat it as data: "wrong time in calendar" showing up repeatedly means your confirmations are not legible, which is a fixable content problem.

Is a waitlist worth setting up for this?

It is usually the part that pays for everything else, because it converts a dead hour into a booked one on the same day. The thing to get right is asking for it at booking: an opt-in and a stated notice window, captured as two extra questions. Retro-fitting a waitlist later is far harder than collecting it from the start, and standby offers generally need their own consent basis and their own frequency cap.

Keep going
Read the full build

Every article on this blog sits on top of a build guide in the AppBO library. It is the same system, written out end to end: the problem it solves, the architecture behind it, every workflow with its triggers and conditions, and what measurably changes once it is live. If this piece made the case, the build guide shows you the wiring.

Open the build library

Want this running in your business?

Bring us how your business actually runs today and we will tell you which system to put in first, what it will take, and what it should change.

Book a call