An appointment show-rate board for your GoHighLevel front desk

See booked, showed and no showed counts by calendar and rep, work today's schedule, and win back the people who did not turn up.

App
GoHighLevelOperationsSalesMeeting WorkflowsContent Generation
PromptCreate

Build me an appointment operations board for GoHighLevel that whoever runs our front desk opens first thing every morning and again at the end of the day. One main screen carries a show rate scoreboard at the top and the live appointment list underneath, and there is a second page holding the rebooking review queue.

The scoreboard covers a date range I choose, with quick presets for today, last 7 days, last 30 days and this month plus a custom range. Load the calendar list with Calendars: Get Calendars, then fan out across the calendars I have selected and pull Calendars: Get Calendar Events for each one over the window, aggregating everything in the handler. Show total booked, confirmed, showed, no-showed and cancelled counts, then break the same numbers out two ways: one table per calendar and one table per assigned team member. Compute show rate as showed divided by showed plus no-showed so cancellations do not distort it, and display a dash instead of a percentage when that denominator is zero. Alongside show rate, show a confirmation rate, meaning the share of appointments that reached confirmed before their start time, and a no-show recovery rate, meaning the share of no-shows we messaged through the recovery queue who now have a later appointment on the books, which you can check with Contacts: Get Appointments for Contact. Sort the team member table by show rate ascending and visually flag anyone under 60 percent, because the entire point of this view is to see at a glance that one rep sits at 40 percent while another is at 85 percent. Around 3 to 7 percent no-shows is healthy for a service business with reminders running, so show that band next to the no-show figure as a reference point.

Below the scoreboard, list today's and tomorrow's appointments grouped by calendar, with a toggle between the two days. Each row shows the start time, the contact name, the assigned team member and the current status. Clicking a row opens a detail panel carrying the contact's phone number and email from Contacts: Get Contact, the full appointment record from Calendars: Get Appointment, any appointment notes from Calendars: Get Notes, and the recent message history with that person: find their conversation with Conversations: Search Conversations filtered to that contact, then load the last ten or so messages with Conversations: Get messages by conversation id, newest at the bottom. Make the phone number tappable so the front desk can call from the row.

From any row, without leaving the list, I can set the appointment status to confirmed, showed, no-show or cancelled using Calendars: Update Appointment, and both the row and the scoreboard should reflect the change immediately. I can also message the contact through a compose box in the detail panel using Conversations: Send a new message, and create a follow up task for the assigned rep with Contacts: Create Task, taking a title, a due date defaulting to tomorrow morning, and assigning the task to the appointment's assigned user.

Put a Recover no-shows button above the appointment list that kicks off a background agent. The agent takes a look back window, default the last 7 days and adjustable, and collects every appointment in my selected calendars whose status is no-show using Calendars: Get Calendar Events. For each one it pulls the person with Contacts: Get Contact, reads the prior conversation with Conversations: Search Conversations and Conversations: Get messages by conversation id, and reads any appointment notes with Calendars: Get Notes so it understands what that person originally booked about. It then drafts a short rebooking message for them, two or three sentences, referencing what they came for in their own words rather than filling a template with a first name. Each draft goes back into the app's review queue with the contact, the missed appointment, a one line note on what the agent learned from the history, and the draft text. The agent drafts only, it never sends.

The review queue is its own page showing pending drafts as cards. I can edit any draft inline, send it on its own, or select several and approve them as a batch, and every send goes through Conversations: Send a new message. Sent drafts move to a sent section with a timestamp and stay visible for a few days so I can see who has already been contacted and avoid double messaging. If I have the option switched on, sending a draft also raises a follow up task for the assigned rep with Contacts: Create Task so somebody actually chases the rebooking.

Let me choose which calendars are included from a settings panel, and remember that choice per user along with my default date range, my under-performing show rate threshold and my preferred send channel of SMS or email. The appointment record gives an assigned user id rather than a readable name, so let me map friendly names onto the ids I care about in that same settings panel and use those names everywhere else in the app.

Two API details to bake in. Calendar and conversation calls need the Version header 2021-04-15 while contact calls need 2021-07-28. Calendar events are fetched one calendar at a time over a date window rather than as a single global list, so the scoreboard handler has to fan out across the selected calendars and aggregate the counts itself. Keep that fan out gentle enough to stay inside the burst limit of 100 requests per 10 seconds, and cache each scoreboard result per range so flipping between days does not refetch everything.

What does this prompt do?

  • Puts a show rate scoreboard at the top of the screen for any date range you pick, with booked, showed, no showed and cancelled counts broken out per calendar and per team member.
  • Lists today's and tomorrow's appointments grouped by calendar, so whoever runs the front desk can set a status, message the customer or raise a follow up task straight from the row.
  • Calculates show rate as showed against showed plus no shows, so a run of cancellations does not distort the number.
  • Adds a Recover no-shows button that sends a background assistant to read each missed customer's history and write a personal rebooking message for you to review and send.

What do I need to use this?

  • A GoHighLevel account with calendars and appointments in active use, and permission to view and update them.
  • Text or email messaging already set up in GoHighLevel so replies and rebooking messages go out from your usual number or address.
  • A few minutes to pick which calendars belong on the board and to put names against your team members.

How can I customize it?

  • Choose which calendars appear on the board, and save that choice so it is there every morning.
  • Change the date range presets and the show rate threshold that flags a struggling rep.
  • Set how far back the no-show recovery looks, and whether sending a rebooking message also raises a follow up task for the rep.

FAQs

How is show rate calculated?
Showed divided by showed plus no shows. Cancellations are counted and displayed on their own, but kept out of the percentage, so a wave of cancellations cannot make your team look better or worse than it actually was.
Does the recovery assistant send messages on its own?
No. It only writes drafts. Every message lands in a review queue where you can edit it, send it one at a time, or approve several at once.
What if our appointment statuses are not kept up to date?
Then the scoreboard will under-report at first. The board is built so that marking someone confirmed, showed, no-show or cancelled takes one click from the day view, which is usually enough for the habit to stick within a week.
Can I see one person's numbers on their own?
Yes. Every metric is broken out per team member as well as per calendar, sorted so the lowest show rate sits at the top.
Does this work across several calendars at once?
Yes. Pick any combination of your calendars and the board pulls them all in and adds the numbers together, then remembers your selection for next time.
What counts as a good no-show rate?
Service businesses with reminders running typically sit somewhere around 3 to 7 percent. The board shows that band next to your own number so you know whether you have a real problem or a normal one.

Related templates

A revenue and receivables dashboard for GoHighLevel

Pick any date range and see what you collected, what is still owed and how late it is, then chase it without leaving the page.

LeadConnector
GoHighLevel
App
A morning pipeline board for your GoHighLevel deals

See every open deal as a card, spot the ones going stale, and move, edit or reply to them without opening the CRM.

LeadConnector
GoHighLevel
App
Fill tomorrow's empty GoHighLevel slots before they go to waste

Every weekday afternoon, we spot tomorrow's open appointment times, pick the warm leads worth calling in, and offer each one a personal note.

GoHighLevel
Slack Bot
Agentic Task
Alert your team when GoHighLevel messages go unanswered

Every 30 minutes during business hours, find the customer messages nobody has replied to yet and post one quiet Slack nudge.

GoHighLevel
Slack Bot
Google Sheets
Deterministic Code
Turn new GoHighLevel bookings into rep-ready pre-call briefs

When someone books a call, we research them, pull up what your team already told them, and hand the rep a brief in Slack and on their calendar.

GoHighLevel
Google Calendar
Slack Bot
+1
Agentic Task
Triage new GoHighLevel conversations and draft the reply

Every new inbound message gets sorted by intent, urgency and mood, with a ready-to-send reply waiting in Slack before anyone opens the inbox.

GoHighLevel
Slack Bot
Agentic Task

Stop guessing why so many bookings never show up.

Open one board each morning, keep every appointment status honest in a click, and win back the people who did not turn up.