---
title: "Connect Openlayer and Cliniko - APIANT.ai"
description: "When \"New Project\" fires in Openlayer, your agent runs \"Create contact\" in Cliniko."
canonical: "https://apiant.ai/connect/openlayer-to-cliniko"
---

# Connect Openlayer and Cliniko

When **New Project** fires in [Openlayer](https://apiant.ai/connections/openlayer), your agent runs **Create contact** in [Cliniko](https://apiant.ai/connections/cliniko), or **Cancelled individual appointment** in Cliniko to **Publish Record** in Openlayer. Describe the whole flow and it is built, tested on every scenario and kept running.

Openlayer **2** triggers Openlayer **22** actions Cliniko **17** triggers Cliniko **36** actions

What the catalog holds today. Ask for anything missing and your agent reads the API documentation and adds it.

## What do you want Openlayer and Cliniko to do together?

Give your AI client this address.

`https://mcp.apiant.ai`

One connection does both: ask your client to act in an app once, or have it build an automation that keeps running. Any client that takes a remote MCP server. Nothing to install. Create your free account, then sign in once in your browser.

### Set it up in your client

### Claude Code

Run this in the directory you want to work in.

`claude mcp add --transport http -s project apiant-ai https://mcp.apiant.ai`

Start Claude Code there, approve the server, and sign in in the browser page it opens.

[Claude Code guide (opens in a new tab)](https://apiant.ai/docs/mcp/claude-code)

### Claude, web and desktop

Open Customize, then Connectors, then Add custom connector, and paste the address. On Team and Enterprise an owner adds it first.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

### Cursor

Add the address to your MCP configuration as a server URL. Cursor signs you in in your browser.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

### Zed

Open Settings, then AI, then MCP Servers, then Add Server, then Add Remote Server.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

### Codex and the ChatGPT desktop app

Open Settings, then MCP servers, then Add server, and choose Streamable HTTP. From the terminal, Codex takes the address with its own add command and then signs you in.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

### Any other MCP client

Paste the address where the client asks for a remote MCP server URL, and name the server apiant-ai where it lets you. APIANT's skills reach the client over the same connection.

[Setup guide (opens in a new tab)](https://apiant.ai/docs/mcp)

Cliniko runs the clinic — patients, appointments, invoices and notes — while Openlayer watches the AI models a practice builds on top of that activity. Connecting them lets appointment, patient and note events in Cliniko feed records and tests in Openlayer, and lets Openlayer test results and new projects reach back into Cliniko patient and contact records.

Example flows

## What Openlayer and Cliniko can do together

### From Openlayer to Cliniko

- When **New Project** in Openlayer then **Create contact** in Cliniko
- When **New Test Result** in Openlayer then **Find patient by email** in Cliniko

### From Cliniko to Openlayer

- When **Cancelled individual appointment** in Cliniko then **Publish Record** in Openlayer
- When **New or updated business** in Cliniko then **Create Project** in Openlayer

Starting points drawn from the triggers and actions in the catalog today. Describe the flow you need, at any depth, and your agent builds it and tests every scenario before it ships.

Everything your agent can do with Openlayer and Cliniko

## Triggers and actions 19 triggers · 58 actions

- Trigger

**New Project**

Triggers when a new project is created in your Openlayer workspace.

- Trigger

**New Test Result**

Triggers when a new test result is available for a data source. Useful for alerting on passing or failing model tests.

- Action

**Create Data Source**

Creates a new data source in a project for streaming production data to Openlayer.

- Action

**Create Project**

Creates a new AI or ML project in your Openlayer workspace.

- Action

**Create Test**

Creates a data quality test in a project. Checks for duplicate rows, null values, or row counts.

- Action

**Delete Inference Pipeline**

Delete an inference pipeline by its ID.

- Action

**Delete Project**

Delete a project by its ID.

- Action

**Delete Test**

Delete a test by its ID.

- Action

**Evaluate Test**

Evaluates a test for a specific time range. Use after publishing records to get immediate results.

- Action

**Find Data Source**

Finds a data source (inference pipeline) by name in a project.

- Action

**Find Project**

Finds a project by name in your Openlayer workspace.

- Action

**Find Test Result**

Finds test results for a data source, including whether each test passed or failed. Filter by outcome or test type to branch an automation on the result.

- Action

**Get Inference Pipeline**

Retrieve the details around a specific inference pipeline.

- Action

**Get Project**

Retrieves one project by its id. Openlayer has no single-project endpoint, so this reads the workspace's first 100 projects and returns the one matching the id.

- Action

**Get Test**

Retrieve a test by ID.

- Action

**Get Test Result**

Retrieves one test result by its id. Openlayer has no single-result endpoint, so this reads the data source's 100 most recent results and returns the matching one.

- Action

**List Inference Pipelines**

List the authenticated user's inference pipelines under a project.

- Action

**List Projects**

Lists the projects in your Openlayer workspace, optionally narrowed to one kind of project. Returns up to 100 projects.

- Action

**List Test Results**

List all results for a test/goal under an inference pipeline.

- Action

**List Tests**

Lists the tests in a project, optionally narrowed by kind, archived state or monitoring mode. Returns up to 100 tests.

- Action

**Publish Record**

Publishes an LLM inference record to a data source for monitoring. Streams the model input, output, and metadata to Openlayer.

- Action

**Update Inference Pipeline**

Update an inference pipeline.

- Action

**Update Project**

Update a project.

- Action

**Update Test**

Update a test (partial updates allowed).

- Trigger

**Cancelled individual appointment**

Triggered when an individual appointment is cancelled.

- Trigger

**New cancelled attendee**

Triggered when an attendee is cancelled.

- Trigger

**New or updated attendee**

Triggered when an attendee is created or updated.

- Trigger

**New or updated business**

Triggered when a business is created or updated.

- Trigger

**New or updated communication**

Triggered when a communication is created or updated.

- Trigger

**New or updated contact**

Triggered when a contact is created or updated.

- Trigger

**New or updated daily availability**

Triggered when a daily availability is created or updated.

- Trigger

**New or updated group appointment**

Triggered when a group appointment is created or updated.

- Trigger

**New or updated individual appointment**

Triggered when an individual appointment is created or updated.

- Trigger

**New or updated invoice**

Triggered when an invoice is created or updated.

- Trigger

**New or updated patient**

Triggered when a patient is created or updated.

- Trigger

**New or updated patient case**

Triggered when a patient case is created or updated.

- Trigger

**New or updated practitioner**

Triggered when a practitioner is created or updated.

- Trigger

**New or updated treatment notes**

Triggered when treatment notes is created or updated.

- Trigger

**Patient added or removed for group appointment in date range**

Triggered when a patient is added or removed for a group appointment within the specified date range.

- Trigger

**Two-way sync new or updated contacts**

A trigger for two-way syncing new and updated contacts, with enhanced on-the-fly mapping. Can only be used with enhanced two-way sync actions that support on-the-fly mapping.

- Trigger

**Two-way sync new or updated patients**

A trigger for two-way syncing new and updated patients, with enhanced on-the-fly mapping. Can only be used with enhanced two-way sync actions that support on-the-fly mapping.

- Action

**Archive patient**

Archives a patient. An error will occur if the patient is not found.

- Action

**Create contact**

Creates a new contact.

- Action

**Create patient**

Creates a new patient.

- Action

**Find Appointment by Patient Id**

Returns appointment details for the specified patient if the Patient ID exists.

- Action

**Find cancelled appointment**

Searches for a cancelled appointment. If no matching appointment is found, an error occurs.

- Action

**Find contact by email**

Returns details of the contact having the specified email address. An error occurs if zero or multiple are found.

- Action

**Find patient by email**

Returns details of the patient having the specified email address. An error occurs if zero or multiple are found.

- Action

**Find Patient by Email and Date of Birth**

Finds the single active patient whose email and date of birth both match, returning the patient ID and the match count.

- Action

**Get appointment**

Returns details of the specified appointment.

- Action

**Get appointments by practitioner ID**

Returns appointment details by practitioner ID.

- Action

**Get appointment type**

Returns details of the specified appointment type.

- Action

**Get appointment type billable item**

Returns details for a billable item.

- Action

**Get billable item**

Returns details of the specified billable item.

- Action

**Get business**

Returns details of the specified business.

- Action

**Get cancelled appointment**

Returns details of the specified cancelled appointment.

- Action

**Get contact**

Returns details of the specified contact.

- Action

**Get group appointment**

Returns details of the specified group appointment.

- Action

**Get group appointment attendees**

Returns attendee information for the specified group appointment.

- Action

**Get individual appointment attendees**

Returns attendee information for the specified individual appointment.

- Action

**Get invoice**

Returns details of the specified invoice.

- Action

**Get patient**

Returns details of the specified patient.

- Action

**Get patient attachment**

Returns a patient attachment from Cliniko, including its filename, file type and description.

- Action

**Get patient case**

Returns details of the specified patient case.

- Action

**Get patient referral source**

Returns the referral source for the specified patient.

- Action

**Get practitioner**

Returns details of the specified practitioner. An error occurs if not found.

- Action

**Get practitioner availabilities**

Returns availability information for the specified practitioner.

- Action

**List Appointments in Date Range**

Returns every individual appointment that starts within a given time window, with the total count.

- Action

**List invoices for patient case**

Emits all invoice IDs for the specified patient case.

- Action

**List Patients**

Returns Cliniko patients, optionally filtered (e.g. updated after a date) and sorted, with the total count.

- Action

**Two-way sync add or update a contact**

An action for two-way syncing new and updated contacts, with enhanced on-the-fly mapping using contact email addresses for matching. Can only be used with enhanced two-way sync triggers that support on-the-fly mapping.

- Action

**Two-way sync add or update a patient**

An action for two-way syncing new and updated patients, with enhanced on-the-fly mapping using patient email addresses for matching. Can only be used with enhanced two-way sync triggers that support on-the-fly mapping.

- Action

**Update contact**

Updates a contact.

- Action

**Update patient**

Updates a patient.

- Action

**Update patient custom field**

Updates the value of the specified custom field for the specified patient.

- Action

**Update patient referral**

Sets or changes a patient's referral source. Choose the referral source type; supply a Referrer ID only for types that take one (e.g. Patient or Contact).

- Action

**Upload patient attachment**

Uploads a file, such as a PDF, to a patient's record in Cliniko as an attachment.

## Each app on its own

- [ **Openlayer** Openlayer is a platform for monitoring, evaluating, and testing AI and ML models in production.](https://apiant.ai/connections/openlayer)
- [ **Cliniko** Cliniko is a practice management platform — manage patients, appointments, invoices, contacts, and...](https://apiant.ai/connections/cliniko)

Reviews

## What our customers say

## More from Openlayer

- [ **Openlayer to Astroworld** Astroworld serves reference data about the game Minecraft.](https://apiant.ai/connect/openlayer-to-astroworld)
- [ **Openlayer to Byabbe** Seach histories from wikipedia for a particular day](https://apiant.ai/connect/openlayer-to-byabbe)
- [ **Openlayer to Enrich CRM** Enrich CRM helps you perform real-time contact and company enrichment.](https://apiant.ai/connect/openlayer-to-enrich-crm)
- [ **Openlayer to Evervault** Evervault provides secure encryption infrastructure for developers.](https://apiant.ai/connect/openlayer-to-evervault)
- [ **Openlayer to Postman** Postman is a platform for building and testing APIs.](https://apiant.ai/connect/openlayer-to-postman)
- [ **Openlayer to Prerender** Prerendering service that converts JavaScript-heavy web pages into cached HTML for search engine and AI...](https://apiant.ai/connect/openlayer-to-prerender)

## More into Cliniko

- [ **Mailchimp to Cliniko** Mailchimp marketing automation and email platform.](https://apiant.ai/connect/mailchimp-to-cliniko)
- [ **Shopify to Cliniko** Shopify is a commerce platform for online stores and retail point-of-sale.](https://apiant.ai/connect/shopify-to-cliniko)
- [ **Airbrake to Cliniko** Airbrake collects errors generated by other applications, and aggregates the results for review.](https://apiant.ai/connect/airbrake-to-cliniko)
- [ **Aplos to Cliniko** Aplos is fund accounting and donor management software for churches and nonprofits: contacts and donors...](https://apiant.ai/connect/aplos-to-cliniko)
- [ **AWeber to Cliniko** AWeber provides professional email marketing software and services.](https://apiant.ai/connect/aweber-to-cliniko)
- [ **Beanstalk to Cliniko** Beanstalk is a code hosting and deployment workflow tool for Git and Subversion.](https://apiant.ai/connect/beanstalk-to-cliniko)

Questions

## Openlayer and Cliniko, answered

###

### Can clinical activity from Cliniko be sent into an Openlayer model for monitoring?

Yes. A trigger such as new or updated treatment notes or a cancelled individual appointment in Cliniko can find a data source in Openlayer and publish a record with the model input, output and metadata. You can then evaluate a test for that time range.

###

### What can Openlayer do inside Cliniko when a test result arrives?

A new test result in Openlayer can drive Cliniko actions such as finding a patient by email, updating a patient custom field or creating a contact. The connection only uses the listed Cliniko actions, so it reads and writes patient and contact records rather than changing appointments.

###

### What can start an automation from Openlayer?

Any of Openlayer's 2 triggers in the catalog, including New Project and New Test Result. Describe the moment in plain language and your agent picks the right one.

###

### What can your agent do in Cliniko when something happens in Openlayer?

Any of Cliniko's 36 actions, including Create contact, Find patient by email, Create patient and Update contact. Your agent maps the data both ways and tests every scenario before it ships.

###

### Can it also run from Cliniko to Openlayer?

Yes. When something happens in Cliniko, your agent can act in Openlayer too. This page covers both directions: Cliniko's triggers and Openlayer's actions are listed here as well.

###

### Do I have to build a connector for Openlayer or Cliniko?

No. Both are in the catalog with their triggers and actions. You describe the automation; your agent builds it, tests every scenario and keeps it running.

###

### Can my AI client use Openlayer and Cliniko without building an automation?

Yes. With your AI client connected to APIANT, ask it to do something in either app once and it runs that action on the spot. Ask for an automation and your agent builds it, tests every scenario and keeps it running. One connection covers both.

###

### What happens when something fails?

Your agent works that out for you. It plans the failure paths along with the happy path, then tests every scenario before it ships.

###

### Is there a free plan?

Yes. Every plan includes the agent, including free, and building from your own AI client spends no assistant credits.
