Cliniko integration
Cliniko holds the record. gema answers the phone.
gema answers every call, text, chat and email, books the appointment in its own calendar, and sends every booking and cancellation straight into your Cliniko calendar.
If you run a physio, chiro, RMT, osteo or podiatry practice on Cliniko, the software is not your problem. Cliniko does what it says: the schedule, treatment notes, invoices, online bookings, all in one place — just not the phone. Cliniko has never claimed otherwise, and that gap is why its Connected Apps directory now carries dozens of apps tagged Artificial Intelligence. If you have gone looking, you have already seen a pile of them.
So the only question worth asking any of them is a narrow one: when a patient rings at 7pm, does the thing on the other end write an appointment, or does it write you a note to deal with in the morning? gema writes the appointment.
Here is the honest architecture, because it changes what you can expect. gema owns the calendar. It is not a voice layer reading availability out of Cliniko and hoping the slot is still free by the time it POSTs. Availability, practitioners, services and durations live in gema. When a caller asks for a 45-minute massage on Thursday, gema checks its own diary, offers real times, takes the booking, reads it back, and emails the patient a confirmation. Then it sends that booking to Cliniko through Cliniko's API, creating the patient record if they are new and attaching the appointment to the right practitioner, appointment type and business. Cancellations go the same way — gema cancels in its own calendar and sends the cancellation through to Cliniko so the slot is not left sitting there.
Day to day this is dull, which is the point. The phone stops ringing out. Calls that arrive while you are in a treatment room get answered rather than going to voicemail. Patients who would rather type get the same answers over SMS, web chat or email, and every one of those threads lands in one activity log so you can see what was said without three tabs open. A caller with a clinical question is told their practitioner will cover it at the visit, and offered the booking; a caller who wants a person is put through during your open hours and flagged for your team after hours.
Syncs do fail sometimes — here's exactly what happens when they do. A transient error gets one automatic retry about five seconds later. If that second attempt also fails, the booking is flagged on your dashboard as needing clinic action with the actual reason attached — practitioner name did not match anything in Cliniko, appointment type did not match, API key rejected. It is not silently dropped and it is not silently retried forever. After five consecutive failures gema pauses that integration rather than hammering it, and tells you. Through all of it the patient's appointment stands: it is real in gema, it is confirmed to the patient, and the only thing outstanding is the copy in Cliniko, which is one click to retry once the mismatch is fixed.
Setup is a short job, not a project. In Cliniko, an admin user turns on API keys under My Info, creates one, and copies it — Cliniko shows the key once and no more. In gema, you paste it into the Cliniko card on the Integrations page and press Test connection. Cliniko appends your regional shard to the end of the key itself, so gema reads the region off the key and there is nothing for you to pick. From then on, gema matches each booking's practitioner and appointment type to Cliniko's by name as it sends it; if one does not match, that booking is flagged on your dashboard with the reason, so you fix the name once and retry. Nothing is sent to Cliniko until you switch the sync on.
Pricing is per clinic location, with credits included and usage past them billed monthly — see /pricing. No commission on bookings, no per-practitioner fees, cancel anytime. Built to PHIPA and PIPEDA. Records stored in Canada — what syncs into Cliniko then sits in your own Cliniko account, in whichever region that account sits.
Sources
- Cliniko's API supports creating individual appointments (POST /individual_appointments) and cancelling them (PATCH /individual_appointments/{id}/cancel), so a genuine appointment write is possible. https://docs.api.cliniko.com/openapi/individual-appointment
- Cliniko's Connected Apps directory carries dozens of apps tagged Artificial Intelligence. https://www.cliniko.com/connected-apps/artificial-intelligence/
- Cliniko itself provides scheduling and online bookings, health records, invoicing and reporting — it does not provide phone answering or a receptionist service. https://www.cliniko.com/features/
- A Cliniko admin user enables API keys under My Info, creates a key, and can copy it only once before it is hidden. https://help.cliniko.com/en/articles/1023957-how-to-get-an-api-key
- Cliniko appends the regional shard ID to the end of every API key (e.g. '-ca1', '-uk1'), which determines the regional API base URL, so the region can be read from the key rather than chosen by the user. https://docs.api.cliniko.com/guides/sharding
Live — not a recording
Talk to gema.
This is the same AI that would answer your clinic’s phone. Click, speak, interrupt it, try to trip it up. No form first.
Try saying
FAQ
Cliniko and gema
Request a demo
See gema running your clinic.
Give us your website and we build you a working demo on your real services, practitioners and hours — then email you the link. No call to sit through, no card, nothing to install.

