Gohighlevel Voice AI with Cliniko
Build an AI receptionist inside Gohighlevel that answers calls, finds patients in Cliniko, checks practitioner availability and books, reschedules or cancels appointments while the caller is on the line.
This guide covers adding the MCP server in Gohighlevel with Streamable HTTP, setting the upkey header, selecting tools, and pasting the ready-made front-desk receptionist system prompt.
A Voice AI receptionist only earns its place if it can complete the booking. With MCP connected, the agent answers the call, identifies the patient, checks live Cliniko availability, offers real slots and writes the appointment into the diary - then the ordinary Gohighlevel confirmation and reminder sequences take over.
The system prompt on this page is a working starting point rather than a demo script. It sets the receptionist's tone, the questions to ask, how to handle new versus returning patients, what to do when the requested time is unavailable, and when to escalate to a human callback.
Copy it into your agent, adjust the clinic name, services and hours, and test it against your own diary before pointing your phone number at it.
What a booking receptionist needs to handle
A receptionist agent worth putting on a live line has to do more than answer politely. It needs to identify whether the caller is new or returning, understand the reason for the visit well enough to choose the right service, offer only times that are genuinely open, confirm the details back before saving, and know when a request is outside what it should decide alone.
The system prompt on this page covers each of those cases as a working starting point rather than a demonstration script, so the first version you put live already behaves sensibly on the awkward calls.
Adapting the prompt to your clinic
Replace the clinic name, the list of services and practitioners, opening hours and the cancellation policy with your own. Decide explicitly what the agent may not do - discussing clinical advice, quoting prices you would rather confirm in person, or booking a first appointment for a service that requires screening - and state it in the prompt rather than hoping the model infers it.
Keep escalation simple: when the agent is unsure, it should take a callback request and hand off, which is still a better outcome than a missed call.
After the call
Because the appointment is written into the diary through MCP, it syncs to Gohighlevel like any other booking. Confirmation, reminders, intake forms and review requests all run from the same sequences you already use, so an AI-handled call ends up indistinguishable from one taken at reception.