Win back no-show and cancelled appointments every morning
Every weekday morning, every appointment that fell through yesterday gets a personal text or email inviting them to rebook, plus a task for the right rep.
Every weekday at 10am I want an agent to recover the appointments that fell through in my LeadConnector sub-account. Run it against a single sub-account (locationId) that I configure once, and use that sub-account's own timezone when working out what counts as yesterday.
Start by pulling yesterday's appointments with List Calendar Events across every calendar in the sub-account, covering the full day from midnight to midnight. Keep only the events whose appointment status came back as no-show or cancelled. Appointment status lives on the calendar event itself, so this is a status filter on the events you already pulled rather than a separate lookup. If nothing fell through, post a one line Slack note saying so and stop.
For each missed appointment, pull the person with Get Contact so you have their name, phone, email, tags and assigned user. Then read what was already said: Search Conversations scoped to that contact, and Get Messages by Conversation on their most recent thread, so you know the history and the tone before you write.
Before writing anything, check the upcoming calendar events for the next 30 days with List Calendar Events and skip anyone who has already rebooked. Also enforce a cap of one recovery message per contact per week: skip a contact who is already carrying the no-show-recovery tag from a recent run, and cross check the last seven days of rows in the tracker with Get Values so repeat no-shows do not get spammed.
For everyone left, draft a short and specific rebooking message. Name the actual service or meeting they missed and the day it was booked for, offer to get them back on the calendar, and match the tone of the existing thread, so a casual thread gets a casual message and a formal one stays formal. Keep it to a couple of sentences with one clear question, and never invent details you did not read in the thread or on the appointment. Send it with Send Message as SMS when a mobile number is on file, and as email otherwise with a plain subject line. If a contact has neither a mobile number nor an email address, skip them and call it out in the summary.
After a message goes out, tag the contact with Add Tags to Contact using no-show-recovery, and create a follow-up task due in two days for the rep assigned to the appointment with Create Contact Task. Use List Users to turn the assigned user id on the calendar event into a rep name for the task and for the tracker row.
Append one row per missed appointment to a Google Sheets tracker with Append Values: date, contact, calendar, rep, whether it was a no-show or a cancellation, the channel used, and the message that was sent. Append rather than overwrite so the sheet builds a no-show rate trend over time.
Finish by posting a short Slack summary with Send a Message: how many appointments fell through, the no-show rate versus last week (read the earlier rows out of the tracker with Get Values to work that out), how many people you reached out to and on which channel, who you skipped and why, and the highest value people you contacted so the team knows who to watch for a reply.
LeadConnector calls need the Version header and a locationId. Never send more than one recovery message to the same person in a single run, and if a send fails, report the failure in the Slack summary rather than retrying in a loop.
What does this prompt do?
- Finds every appointment from yesterday that ended as a no-show or a cancellation, across all of your calendars
- Skips anyone who has already rebooked, and never messages the same person more than once a week
- Writes a short, personal message that names the visit they missed and sends it by text when you have a mobile number, or by email when you do not
- Tags the contact, puts a two day follow up task on the rep who owned the appointment, and logs every row to a tracker so you can watch your no-show rate over time
- Posts a morning Slack summary with the count, how you compare to last week, and the highest value people it reached out to
What do I need to use this?
- A GoHighLevel (LeadConnector) sub-account where you book appointments on calendars
- Text messaging and email turned on in that sub-account, so replies land where your team already works
- A Google Sheets spreadsheet to hold the tracker, with a tab and a header row ready
- A Slack workspace and a channel for the daily summary
How can I customize it?
- Change the run time and which days it runs, for example every morning including weekends if you are open on Saturdays
- Rename the tag it applies, change how far out the follow up task is due, or send the task to a front desk owner instead of the booking rep
- Loosen or tighten the one message per person per week cap, and set the tone and length of the rebooking message
FAQs
Will it message someone who already rebooked?
Does it cover cancellations as well as no-shows?
What happens if a contact has no mobile number?
Will repeat no-shows get spammed?
Do I need to set up the Google Sheet first?
Related templates
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.
Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.
Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.
Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.
Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.
Stop letting missed appointments walk away.
Every no-show and cancellation gets a personal invitation to rebook before the day even starts, without anyone on your team remembering to do it.