How a Clinic Can Use AI to Cut Missed Appointments

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for How a Clinic Can Use AI to Cut Missed Appointments.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for How a Clinic Can Use AI to Cut Missed Appointments.

Use AI to find out which appointments go missing and why, then act on the pattern: time reminders per appointment type, write short messages with an easy cancellation link, follow up patients who didn't arrive, and refill freed slots from a waitlist. The reminders are ordinary practice-software features; AI makes them targeted.

Set expectations before you start. In the physiotherapy clinic walked through below, most of the improvement came from plain text-message reminders sent at the right time and a cancellation link patients could actually use. AI earned its place in three narrower jobs: spotting the high-risk bookings in a year of data, writing messages that fit in a single text, and sorting cancellation reasons so the follow-ups said the right thing.

Follow me on Instagram@sagnikteaches

The clinic, and what its empty slots were costing

This is an illustration, with figures chosen to be typical rather than taken from any one practice. Three physiotherapists share one receptionist and see about 120 appointments a week between them, at an average fee of $75. The clinic runs on Cliniko, which lists $95 a month for two to five practitioners, with text messages bought separately as prepaid credits at 10 cents each.

Connect on LinkedInSagnik Bhattacharya

Before any change, the only reminder was an email sent the evening before, and the cancellation link in it worked right up to the appointment time. The owner pulled Cliniko's missed appointments report for the previous 12 weeks, which lists both "Did not arrive" appointments and cancellations:

Subscribe on YouTube@codingliquids
  • 1,440 appointments booked
  • 86 marked "Did not arrive" (6.0%)
  • 58 cancelled with less than 24 hours' notice, of which reception refilled 12, leaving 46 empty (3.2%)
  • So 132 lost slots, about 9.2% of the diary, or 11 a week

At $75 a slot, that's about $825 a week, or roughly $39,600 over a 48-week year. The owner's goal was modest and measurable: halve the lost slots within eight weeks without adding more than 20 minutes a day of reception work.

Week 1: asking AI where the missed appointments cluster

A missed-appointment rate is an average, and averages hide the fix. The first job was to split a year of bookings into groups and see which ones were leaking. Cliniko's data exports cover when each appointment was created, its type, its practitioner and whether it was cancelled, plus how many reminders each patient was sent. The owner exported twelve months, about 5,700 appointments, then stripped the file down before any AI saw it: names replaced with a patient number, no phone numbers, no email addresses, no clinical notes.

A spreadsheet formula added one extra column, the visit number within each patient's course, because physio drop-off often happens mid-course, once people start feeling better. The file then went into the clinic's ChatGPT Business workspace, which doesn't use business data for training by default, with this prompt:

This CSV is one year of appointments at a physiotherapy clinic.
Columns: appt_id, patient_no, appt_type, practitioner, start_datetime,
created_datetime, status (Arrived / Did not arrive / Cancelled),
cancelled_datetime, cancel_reason, visit_no.

Definitions:
- "Missed" = status "Did not arrive", OR cancelled less than 24 hours
  before start_datetime.
- Lead time = days between created_datetime and start_datetime.

1. Give the overall missed rate.
2. Break the missed rate down by: appt_type, weekday, start hour,
   lead-time band (0-2, 3-7, 8-14, 15+ days) and visit_no (1, 2, 3, 4+).
3. Show the appointment count for every group and ignore any group
   with fewer than 50 appointments.
4. List the 3 groups that lose the most slots in total (count, not rate).
Present results as tables. Don't guess at causes.

The reply (illustrative) came back as a set of tables. The summary the owner cared about was the last one:

Groups losing the most slots (12 months)
Group                                   Appts   Missed rate   Missed slots
Follow-ups, visit 4 or later            1,596       13.0%          207
Initial assessments, lead time 8+ days    399       19.0%           76
Monday appointments starting before 9am   342       16.1%           55
All other appointments                  3,363        5.5%          185

Two corrections came before anyone trusted it. The first draft of the prompt had no definition of "missed", and the model counted every cancellation, including ones made a week ahead, which put the missed rate at 17% and made the whole diary look broken. Defining the term fixed it. The second draft listed "Friday after 4pm" as the worst group, based on 23 appointments. The rule to ignore groups under 50 went in after that, because a small group's rate swings wildly on two or three patients.

One finding came from the export itself rather than the AI: 14% of active patients had no mobile number on file, and Cliniko can't text someone it has no number for. Reception started asking for a mobile number at every visit, and the handful who preferred not to give one got a phone call before initial assessments instead.

Week 2: a reminder cadence for each appointment type

Cliniko attaches reminder templates to appointment types, and one type can have several. Each template has a reminder period of up to 9 days before the appointment, a time window for sending (for example between 10:00 and 11:00), and a skip-weekends option. Cliniko's own help page makes the point that a Pilates class may need a different policy from an initial physiotherapy session, and the clinic's data agreed. The owner settled on this cadence:

Appointment typeEmailText messageReasoning
Initial assessmentConfirmation at booking, reminder 5 days before7 days before and 2 days before, 10:00 to 11:00Highest missed rate when booked far ahead; the 7-day text catches forgotten bookings
Follow-upReminder 3 days before2 days before, 10:00 to 11:00Leaves a full working day to refill a cancelled slot
Pilates classReminder 2 days beforeNoneLow missed rate, and a class absorbs one empty place

The timing links to the cancellation rule. Cliniko lets you stop patients cancelling through the link within a set notice period, and the clinic chose one day. A text two days out, arriving mid-morning, gives patients a clear day to cancel online before the link locks, and gives reception time to offer the slot to someone else.

The message itself, before and after

The old evening email was polite and long:

Dear [first name], this is a courtesy reminder of your appointment tomorrow at 9:15am with [practitioner] at [clinic name]. If you are unable to attend, please let us know as soon as possible. We look forward to seeing you. Kind regards, the team at [clinic name].

It arrived too late to refill the slot and never said how to cancel. The owner asked the AI for five text versions under 120 characters of fixed wording, each naming the day and time, the deadline to cancel, and why it matters. The chosen one:

Hi [first name], physio Thu 9:15am with [practitioner]. Can't come? Cancel by Wed 9:15am so a waiting patient gets it: [link]

The 120-character target isn't fussiness. Cliniko charges one credit per text and an extra credit once a message passes 160 characters, and placeholders such as names and links expand when the text is sent. Cliniko shows an estimate of credits per reminder as you edit, so check it every time you change a template.

The quick sum on credits: about 120 two-day texts a week, 8 seven-day texts for initial assessments, and around 15 follow-up messages come to roughly 143 texts a week, or 615 a month. At 10 cents each that's about $62 a month. Let the template drift over 160 characters and the same volume costs about $123.

Week 3: follow-ups for patients who didn't arrive or stopped booking

Reminders prevent some missed visits; follow-ups recover the patient afterwards. Cliniko's follow-up messages can go out anywhere from one day to two years after an appointment, by email or text, and can be filtered by attendance ("Did not arrive only", for example) and set to skip patients who already have a future booking. The clinic set up two.

The first goes one day after a "Did not arrive", by text. The owner asked the AI for three versions of a warm, blame-free message under 140 characters with a rebooking link and no clinical detail. The illustrative output:

1. Hi [first name], we missed you yesterday. Hope all is well.
   Rebook whenever suits: [link] - [clinic name]
2. Hi [first name], sorry we didn't see you yesterday. If you'd like
   another time, it's quick to rebook: [link]
3. Hi [first name], you missed yesterday's session. Your recovery
   depends on regular treatment, so please rebook: [link]

Version 1 went live. Version 3 shows what to watch for: it lectures, it makes a clinical claim in a text message, and "you missed" reads as blame. None of that belongs in an automated message, and a physio conversation at the next visit does the job better.

The second follow-up targets mid-course drop-off. It goes 14 days after an attended follow-up, only to patients with no future appointment of the same type, asking whether they'd like to book the next session or let the clinic know they're managing well. Because Cliniko links follow-up templates to appointment types, the clinic created a separate "Discharge review" type without this message, so patients the physio had signed off never received a nudge. The wording that went live, after two rounds of AI drafts and one edit by the physios:

Hi [first name], it's been two weeks since your last physio session. Want to book the next one, or are you managing well? Book here: [link] or just reply to let us know.

The "or just reply" line matters. Patients who were doing well said so, reception noted it on their record, and the physio could decide whether a quick call was worth making. An earlier AI draft had asked patients to "complete your treatment plan", which the physios struck out: whether someone needs more sessions is a clinical judgement, not something a scheduled text should imply.

What the cancellation reasons revealed

When reception cancels an appointment in Cliniko, they can pick a reason and add a note. The owner exported 12 weeks of those notes (again with no names) and asked the AI to sort them into no more than six categories and quote two examples of each. The illustrative result:

CategoryShareExample notes
Feeling better31%"knee much improved", "doesn't think he needs it"
Work or childcare clash24%"meeting moved", "no childcare Thurs"
Unwell (other illness)17%"flu", "child sick"
Cost11%"will book when paid", "insurance limit reached"
Forgot or double-booked10%"forgot", "thought it was next week"
Other7%"car trouble", "moving house"

Nearly a third cancelling because they felt better wasn't a reminder problem at all. The physios agreed to explain at the third visit what the remaining sessions were for and when it would be reasonable to stop, so patients who left early did so knowingly. The work-clash group led to more early-evening follow-up slots on two days a week. AI sorted the notes in minutes; deciding what to do about them took a staff meeting.

Week 4: refilling freed slots before they go to waste

An early cancellation only helps if someone takes the slot. Cliniko's wait list records which appointment type, days, practitioners and location each waiting patient can manage, whether it's urgent, and when to drop them from the list. Cliniko's help page describes it as a list staff filter and book from, not something that contacts waiting patients by itself. So the clinic built a routine around the reminder window:

  1. 11:30 every weekday: reception checks the day's cancellations and Cliniko's communications log, which shows text replies received back from patients. Replies such as "can't make it Thursday" are actioned there and then.
  2. Straight after: filter the wait list by practitioner and day, and text the first two matching patients individually. First to reply gets the slot.
  3. 15:00: a second, shorter check for afternoon cancellations and replies.

That's about 15 to 20 minutes a day, inside the owner's limit. The clinic considered an AI phone service for early-morning cancellation calls. Smith.ai, for example, lists its AI Receptionist as free for 25 calls, then $150 for 75. Before buying anything like that, ask whether it can change bookings in your practice system or only take a message, because a message still needs a person to act on it. Here most cancellations came through the link or a text reply, so the clinic skipped it; a comparison of AI receptionists and answering services helps if calls are your main channel. The wider safety questions about letting AI handle patient contact are covered in using AI at a clinic front desk safely.

Three slips that quietly cost the clinic reminders

None of these was an AI failure, and all three would have been easy to miss without the weekly numbers.

  • A second location with reminders switched off. The clinic runs a Tuesday session from a partner gym, set up as a separate business in Cliniko. Its "Enable appointment reminders and follow-up messages for this business" setting was off, so for three weeks those patients got nothing. The symptom was a missed rate that stayed flat on Tuesdays while every other day improved.
  • Clinical detail on a lock screen. An early template used the appointment type placeholder, which printed "Pelvic health follow-up" in a text that anyone glancing at the patient's phone could read. The fix was plain wording ("physio") in every text.
  • A template that cost two credits. Adding the practitioner's full name and the clinic's full name pushed one message past 160 characters. Cliniko's estimate showed two credits per reminder; the owner had simply not looked at it.

Eight weeks later: the clinic's numbers

The comparison uses the same 12-week baseline against weeks 5 to 12 after the changes (illustrative figures):

MeasureBeforeAfter
Appointments a week120121
Did not arrive6.0%3.4%
Late cancellations left empty3.2%1.6%
Lost slots a week116
Value of lost slots a week (at $75)$825$450
Text-message credits a month$0about $62
Reception time on reminders and refillsad hoc15 to 20 minutes a day

Five slots a week recovered is about $375 a week in fees against roughly $62 a month in credits, plus a few hours of the owner's time in the first fortnight. The lost-slot rate fell from about 9% to 5%, which met the goal of halving it. Late cancellations didn't disappear; more of them simply arrived early enough to refill. The biggest single improvement was among initial assessments booked more than a week ahead, where the 7-day text caught people who had forgotten booking at all.

The clinic now repeats the Week 1 analysis every quarter with a fresh export. If a new group starts leaking, such as a new practitioner's early starts, it shows up there before it shows up in takings.

If your clinic runs different practice software

The same plan works in most systems, but check these features first, because they decide how much reception work is left over:

  • Can reminder templates differ by appointment type, and can one type have more than one reminder?
  • What does a text cost, and at how many characters does it become two?
  • Do text replies come back into the system, and does anyone get notified, or does someone have to look?
  • Can patients cancel from a link, and can you lock the link inside a notice period?
  • Can follow-up messages target "did not arrive" and skip patients with a future booking?
  • Is the wait list automatic (it offers freed slots itself) or manual?
  • Can you export appointments with created dates, types and outcomes for the analysis?

The broader method for any appointment business is in reducing no-shows with AI reminders and automatic rebooking, and dental practices, whose recalls run on longer cycles, have their own version in how dental practices use AI for recalls and reminders. If you're still choosing software, the round-up of AI tools for physiotherapy clinics shows what each type of tool actually does.

Missed-appointment questions clinic owners ask

Can AI predict exactly which patient will miss their next appointment?

Some systems and add-ons now offer risk scores, but a small clinic rarely has enough history for a reliable per-patient prediction. Segments work better: new patients booked far ahead, later visits in a course, early-morning slots. If a vendor offers a no-show score, ask what data it uses, how it was tested and whether you can see why a booking was flagged.

Is it safe to put our appointment data into ChatGPT or Claude?

Only after you strip it down. Replace names with a patient number, remove phone numbers, emails and clinical notes, and keep just dates, times, appointment types, practitioners and outcomes. Use a business plan that doesn't train on your content by default, and check with your data-protection adviser if you're unsure whether your records count as health data in your situation.

Should we charge a fee for missed appointments as well?

Many clinics do, but it's a policy decision, not an AI one, and professional bodies and payers sometimes have rules about it. If you introduce a fee, say so in the booking confirmation and every reminder, apply it consistently, and give staff discretion for genuine emergencies. A fee people didn't know about mostly produces complaints, not attendance.

How many reminders are too many?

For most clinics, two reminders per appointment plus one follow-up after a missed visit is the ceiling. Watch for replies asking you to stop, opt-outs and patients mentioning it at the desk. If an appointment type already has a very low missed rate, drop it to a single reminder and save the credits for the risky ones.

Further reads

Sources: Cliniko Help (Set up SMS appointment reminders; A quick overview of appointment reminders and confirmations; A quick overview of follow-up messages; Using the wait list; Restrict when a patient can cancel an appointment; Using the communications log; Cancel an appointment; Export appointment calendar and attendees data); Cliniko pricing page (USD); facts on ChatGPT Business and Smith.ai from vendor pages.

Want missed appointments tackled in your own system?

On a 1:1 call we'll look at how your practice software handles reminders, replies and follow-ups, pick the appointment types to fix first, and plan where AI actually helps.

Book a 1:1 call with me