Cliniko Two-Way Sync Setup

Set up real-time two-way sync between Cliniko and Gohighlevel. Add your Cliniko API key and location ID in Universal Plugins, toggle sync on, and patients and appointments stay in step in both systems automatically.

  • Get your Cliniko API key and location ID
  • Enter your credentials in Universal Plugins
  • Toggle sync on
  • Map calendars and go live

Two-way sync is the recommended way to connect Cliniko, because it keeps the diary and the CRM aligned without anyone maintaining both. Appointments created, changed, cancelled or marked as no-shows in Cliniko update Gohighlevel in seconds, and bookings taken in Gohighlevel or by a Voice AI agent are written straight into Cliniko.

The eight setup steps are: install the plugin, generate your secure key, map businesses and practitioners to calendars, import the custom fields, add the webhook in Cliniko, run a test booking, verify the contact and appointment in Gohighlevel, then activate your workflows.

Nothing sensitive is stored: your Cliniko API key is exchanged for a Universal Plugins key, appointment data passes through as it syncs, and the connection can be revoked from the dashboard at any time.

The eight setup steps in detail

Install the plugin in the Gohighlevel sub-account for the clinic. Generate a secure Universal Plugins key from your Cliniko API key so the raw key is never stored. Map Cliniko businesses and practitioners to Gohighlevel calendars, deciding in advance how multi-location or multi-service practices should be split. Import the custom fields so appointment detail has somewhere to land.

Then paste the webhook URL into Cliniko and save it, create a test appointment, confirm the contact and appointment appear in Gohighlevel with the practitioner, service, date and time populated, and finally switch on the workflows you want running. Each step is configuration; none of it requires development.

What happens once it is live

Changes flow both ways within seconds. A booking, reschedule, cancellation or no-show recorded in Cliniko updates the Gohighlevel contact and appointment; a booking taken from a Gohighlevel calendar, form or Voice AI agent appears in Cliniko against the right business, practitioner and appointment type.

That continuous alignment is what makes downstream automation dependable - reminders reference real visits, recalls fire at the right interval, and reporting reflects the diary rather than an approximation of it.

Troubleshooting a test that does not arrive

Check four things in order: the webhook is saved on the same Cliniko account you connected, the calendar mapping is complete for the practitioner you tested, the custom fields were imported before the test, and no field key has been renamed. Each is verifiable in about a minute from the dashboard.

If all four are correct and the test still does not land, email apps@universalplugins.com with the clinic name and the time of the test and we will trace it with you.

Before you start the eight steps

Two things make the setup quick. First, decide which Cliniko businesses and practitioners belong in Gohighlevel, because mapping is easier when you already know the answer than when you are deciding halfway through. Second, do the custom field import before your first test booking - fields imported afterwards leave your earliest appointments without the values your workflows expect, and re-testing is faster than repairing.

You also want an account you can safely experiment in. A single test patient with an obviously fake name and your own mobile number is enough, and it means you can create, move and cancel appointments freely while you learn what each change looks like on the Gohighlevel side.

What the sync keeps aligned

Contacts, appointments and appointment custom fields stay aligned in both directions. A booking taken at the desk, a time moved, a cancellation, a no-show marked after the fact - each reaches Gohighlevel within seconds. An appointment created from a Gohighlevel calendar, a form or a Voice AI agent is written into Cliniko against the correct business, practitioner and appointment type.

That two-way behaviour is why reminders stop going out for cancelled visits and why recall sequences reference real appointment dates instead of an approximation. It also means reception never maintains two diaries.

After the connection is live

Run the connection for a week before you build anything elaborate. Watch a normal week of bookings, reschedules and cancellations flow through, then start with an appointment reminder and a no-show recovery sequence - the two automations that pay for themselves fastest. The examples page shows both, along with treatment plan recalls and review requests.

When you trust the data, add MCP so a Voice AI agent can answer availability questions and book directly into Cliniko. Most clinics find that ordering less stressful than switching everything on at once.

Related guides

Start your free trial