Behind The Scenes: Public API
Clint Beeken·
Cliniko is ever-growing and in this Behind The Scenes feature we explore our Public API and how it lets you use other applications that work seamlessly with Cliniko!
Drop the jargon!
Have you attempted to have a conversation on the phone with someone who speaks a different language? While you can understand the tone, you have no idea what they’re actually saying! When it comes to programming, it’s much the same: there are many different languages out there, so if someone uses one language to talk to a program written in another language without any rules in place, things can get messy.
In order for other programmers to build something that talks to Cliniko, we need to set rules for how they talk to us. This allows other programmers to know what to expect when they ask us a question (e.g. “list all availability blocks”) or when they want to tell us something (e.g. “create new appointment”). The set of rules for talking to Cliniko makes up the API, which we make public for anyone to use.
Hold up! What about my data?
Don’t worry: no one can see your data unless you specifically allow it!
In order for an outside company to see your data, you have to provide them with an API key. An API key is essentially another level of password: the outside company needs to know your account name and your API key to be able to push or pull any data to or from your account. You also have total control over your keys and can revoke them at any stage. Remember: any company that you give your API key to will have access to your account. You need to make sure that you trust the company you provide your data to.
Phew! Got some examples?
If you are online, you will encounter APIs every day. Have you ever shared an article on Facebook, directly from the article’s website? That’s the website using Facebook’s API, so that you don’t have to copy/paste the link to your News Feed. One of the reasons why APIs have become so prevalent is because it enables your online experiences to become a rich, interconnected tapestry, where everything is connected.
So, how does Cliniko use other company’s APIs? Let’s list out some examples:
- If you have enabled Online Bookings in Cliniko, then we use the Google Maps API, so that your clients don’t have to copy your address and search for it on Google.
- Use our SMS reminders? We send the message to our SMS provider via their API, and then they take care of delivery. Same with confirmation emails!
- Our integrations with Xero, MailChimp, and Facebook Online Bookings all take advantage of their respective APIs, which allows us to provide you with features and functions that could have taken years, or even decades, to build ourselves!
APIs enrich your online experience and, with that in mind, that’s why we focus quite heavily on developing Cliniko’s API!
The possibilities of our Public API are only limited to two things: what we allow, and your imagination. Currently, someone out there could build a tool where a patient fills out a “New Patient Form” on a website built just for you that, when saved, updates the patient file in Cliniko with all their details automatically. Or perhaps, someone could build a link between Cliniko and a video conference program, so that when you open up a phone call to talk to your client, all of their client details have been pulled from Cliniko and onto the video screen, so that you can focus on your face-to-face chat without switching screens.
The more we open up, the more possibilities there are! We’re looking forward to a future where we open up File Attachments to developers, so integrators can push files from one program directly into the patient file in Cliniko. Or, perhaps, we open up the payments area, so that information can come directly from a “Point Of Sale” terminal (such as EFTPOS terminals in Australia) into the payments form, and you don’t have to manually enter a payment again. We’re excited to make lives easier with Cliniko, and with our API, we’re hoping that the future will look a lot more automated!
Humble beginnings
The API was first opened to the public on the 11th of April, 2013, after about a week in beta. Our developer, Bruno (with some help from Joel and Bartosz) launched the API to minimum fanfare, as at the time of launch, we only had the bare minimum of functions out in the open. Here’s what you could access back in April, 2013:
- List all businesses
- Get details for a selected business
- List all practitioners
- Get details for a selected practitioner
- List all appointments for a selected business
- List all appointments for a selected practitioner
Not so humble now!
If we’d left it with just those functions, then none of our current integrations would exist. In the past 2 and a half years, we’ve added so much more functionality, driven by the idea that this will improve Cliniko for all businesses that use us! Right now, through the integrations that have already been created, you can have Chiropractic note-taking ability on your phone, send exercise prescription videos via email, join large searchable databases of practitioners for an extra referral source stream, or even use 3rd party sites to connect to major CRMs.
As for what we currently allow, you can check out everything we have available on our API page. I won’t lie, though: it’s pretty technical in there! Here’s an example what it looks like when you ask Cliniko to provide you with the details of all cancelled appointments:
Example Integration: HealthEngine
We regularly have companies that integrate with Cliniko, which provide functions or external benefits that we don’t have in Cliniko. One such integration that makes use of a bunch of different aspects of the API is the integration that HealthEngine has created. By using our API, HealthEngine is able to create Patient Details in Cliniko as well as appointments in your calendar. It will also pull out data on your availability, as shown in your practitioner information page, and update these in real-time on their website. All that is accomplished by making certain areas of your Cliniko account accessible via the rules that we write for the developers.
HealthEngine is just the tip of the iceberg! We’ll be highlighting some of these companies in this blog over the coming months, but you can find a growing list of integrated companies on our support site.