RIFT - billing leak detection RIKO - the AI front desk RISE - social media (coming soon) Is it for me? Security Philanthropy Blog Login Cart Free leak report
← Back to Help centre RIFT

Connect Zanda, Cliniko or Nookal to RIFT

How RIFT gets your data - a Zanda export or API key, a Cliniko API key or a Nookal API key - how often it syncs, how to switch systems, and what each can show.

This article covers the ways to get your practice data into RIFT from Zanda, Cliniko or Nookal, how often RIFT syncs, how to switch from one system to another, what happens to an uploaded file, and the differences between what each system's data can reveal.

Where do I enter my API key? Nookal users: the Nookal section

There is no separate API button in RIFT. In RIFT, click Settings in the left sidebar, then click the Data source card - that is where every API key is entered. The card has three sections: Zanda, Cliniko and Nookal. Use the Nookal section: paste your Nookal API key in the Connect Nookal row and click Connect. The key is made in Nookal under Setup > Connections > API Keys > Generate API Key, and a new key needs three things switched on before it works: tick every location, tick Invoices, and switch Status on, then Save Changes. Ignore the Zanda and Cliniko sections - they are for practices on those systems, and a Nookal key pasted there is rejected.

Where do I enter my API key? Cliniko users: the Cliniko section

In RIFT, click Settings in the left sidebar, then click the Data source card - that is where every API key is entered. The card has three sections: Zanda, Cliniko and Nookal. Use the Cliniko section: paste your Cliniko API key (made in Cliniko under My Info > Manage API keys) in the Connect Cliniko row and click Connect. Ignore the Zanda section (Your Zanda export, Upload, Zanda API (optional) and Connect for automatic syncing) and the Nookal section - a Cliniko key pasted there is rejected. Physio, allied-health and mixed clinics see the Cliniko and Nookal sections first; other clinic types see the Zanda section first.

Where do I enter my API key or export? Zanda users: the Zanda section

In RIFT, click Settings, then Data source, and use the Zanda section. Click Upload an export under Your Zanda export - that is how almost every Zanda practice gets its data in, because Zanda's API is in closed beta. Only use Connect for automatic syncing if Zanda has already given your practice an API key. Ignore the Cliniko and Nookal sections - a Zanda clinic never needs them.

The Data source card shows all three systems: which one is in use

The Data source card in RIFT Settings always shows three sections - Zanda, Cliniko and Nookal - whichever system your clinic uses. The section RIFT is reading from is headed in use (for example Nookal - in use) and sits at the top. If you have disconnected and nothing is connected, the section your last numbers came from is headed last used. A clinic reads from one system at a time: connecting a system replaces the connection you had before, so RIFT never holds two keys at once.

Switching from Zanda, Cliniko or Nookal to a different system

You can move a RIFT clinic to a different practice-management system yourself. In Settings > Data source, paste the new system's key in its own section and click Connect. RIFT asks once before it switches: open items found through your old system will be closed as practice software changed, and they do not count as recovered. That is deliberate - an item that disappears because you changed software has not been paid. After the switch, RIFT finds your leaks again from the new system's data. If you switch back, items that are still outstanding in the earlier system return with their history, and any notes or dismissals you made on them are kept. Uploading a Zanda export after being on Cliniko or Nookal is a switch too, and RIFT asks the same question first.

I want to upload a Zanda export but the Upload button is greyed out

While a Cliniko or Nookal key is connected, RIFT syncs itself and the Upload an export button in the Zanda section is switched off - the row reads "Disconnect Cliniko first to upload exports instead" (or Nookal). Open the connected system's section, click Disconnect, and the upload becomes available. Disconnecting removes the stored key and stops daily syncs; your items and history stay.

Option 1: upload a Zanda export (Settings > Data source)

This is the default way to get Zanda data into RIFT, because the Zanda API is in closed beta and most clinics cannot get a key yet.

  1. In Zanda go to Tools > Data Export and tick just these seven: Client Profiles, Appointments, Invoices, Payments, Client Session Packs, Medicare Claims and Referrals (not Referrer Profiles). Leave everything else unticked - RIFT never reads clinical files, so Notes, Forms, Communication, Diagnoses and Insurance should stay on your computer.
  2. Zip the folder Zanda gives you (right-click, then Compress or Send to > Compressed folder).
  3. In RIFT, open Settings, click Data source and click Upload an export in the Zanda section. You can also use Upload an export in the header of any RIFT page. Drop the ZIP (up to 40MB) onto the upload card and click Upload and sync.
  4. RIFT reads the export, runs a full sync and reports how many new items it found and the date the export was taken. Any notes about what it could or could not read (for example, no Pack Sessions file) appear under the result.

The export must include appointments: everything RIFT measures, including your active clinician count, is read from them. An export with no appointments is refused rather than treated as "every appointment vanished".

Re-upload whenever you want fresh numbers. The header of every RIFT page shows the date the current numbers are from and how many days old they are.

Option 2: the Zanda API (not available to most practices yet)

Today RIFT works with Zanda from your data export (Option 1). Zanda's API is in a closed beta and is not taking new practices, so for almost every clinic there is no API to connect and the export is the way in. RIFT does not sync itself from Zanda: you re-upload an export whenever you want fresh numbers.

If Zanda has already granted your practice API access, RIFT can use it:

  1. Check with Zanda that your account has API access (it was granted through their Help Menu > Beta Program).
  2. Once you have access, copy the key from Tools > Zanda API Key in Zanda. It is shown only once.
  3. In RIFT, open Settings, click Data source, paste the key under Connect for automatic syncing in the Zanda section and click Connect.

RIFT checks the key against Zanda before saving it: a key Zanda rejects is never stored (a stored key is also what unlocks patient email sending). If Zanda reports the account has no API access yet, you will be told to register for the beta first. When the key is accepted, RIFT runs your first API sync straight away. The section then shows Connected with the last four characters of the key, and the button becomes Replace key. Later syncs run when you click Sync now in the header.

The connection is read-only: every request RIFT makes to Zanda only reads data.

Option 3: connect Cliniko (Settings > Data source)

RIFT works with your Cliniko account through Cliniko's API, which any Cliniko account can use.

  1. In Cliniko go to My Info > Manage API keys and create a key.
  2. In RIFT, open Settings, click Data source, paste the key under Connect Cliniko in the Cliniko section and click Connect.
  3. RIFT checks the key with Cliniko before saving it, then runs your first sync (this can take a minute or two). The section shows Connected with the last four characters of the key.

The connection is read-only: nothing in Cliniko is ever changed, and treatment notes are never read. A step-by-step guide is at /rift-cliniko-setup.

Once Cliniko is connected the section shows a Sync now button, a Replace key button, and Disconnect. Disconnecting removes the stored key and stops daily syncs; your items and history stay.

Option 4: connect Nookal (Settings > Data source)

RIFT works with your Nookal account through Nookal's API, using a key you create yourself in Nookal.

  1. In Nookal go to Setup, then Connections, then API Keys, and click Generate API Key.
  2. On the new key, tick every location, tick Invoices under Additional Options, and switch Status on. A new Nookal key starts with all three off. Leave Clinical Notes, Documents and Logos & Staff Photos unticked - RIFT never reads them. Click Save Changes.
  3. In RIFT, open Settings, click Data source, paste the key under Connect Nookal in the Nookal section and click Connect.
  4. RIFT checks the key with Nookal before saving it, then runs your first sync (this can take a few minutes). The section shows Connected with the last four characters of the key, and lists the locations the key covers: "This key covers: ...".

Once Nookal is connected the section shows a Sync now button, a Replace key button, and Disconnect. Disconnecting removes the stored key and stops daily syncs; your items and history stay.

Nookal keys are not read-only - Nookal says any API key has full access to the account. RIFT only ever reads: it never adds, edits or deletes anything in Nookal, and treatment notes are never requested. You can delete the key in Nookal at any time to end the connection. A step-by-step guide is at /rift-nookal-setup.

RIFT will not accept my Nookal API key

RIFT tests a Nookal key before it saves it, and tells you which of these it found:

A key that fails any of these is never stored, and your existing connection is left exactly as it was. If those options are changed on the key later, a sync stops rather than changing your numbers, and Sync now tells you why.

How often RIFT syncs, and how to sync now

Every sync re-reads your data and reconciles it against the items RIFT is already tracking: new findings become open items, items that are still there are refreshed, and items that have disappeared from your practice software (for example, an invoice that has now been paid) are marked recovered. Your own ticks, notes and dismissals survive a sync. The one exception is a change of system, covered in "Switching from Zanda, Cliniko or Nookal to a different system" above.

What RIFT reads, and what it never reads

RIFT reads appointments, invoices, payments, session packs, claims and referrals, plus the client details it needs to name an item and, for chase emails, the client's email address. It never reads clinical notes, forms, communication logs, diagnoses or insurance files. For a Zanda export, that is why only seven files are ticked. For Cliniko and Nookal, treatment notes are never requested, and on a Nookal key the Clinical Notes and Documents options should stay unticked.

What happens to an uploaded export

A Zanda export you upload to RIFT is unpacked into a temporary folder, read, and deleted before the analysis results are even saved. Nothing from the export is stored - RIFT keeps only the items it derives (invoice numbers, dates, amounts, client names on those items). The same applies to the free report at https://rift.rapidintelligence.com.au/try, where only the totals are kept. On the free report an API key (Cliniko or Nookal) is used for one read, in memory, and discarded.

What RIFT can and cannot detect from Zanda data

Zanda shares the most, so every RIFT check runs on a Zanda export or the Zanda API:

What RIFT can and cannot detect from Cliniko data

RIFT checks these on Cliniko:

RIFT cannot check these on Cliniko:

What RIFT can and cannot detect from Nookal data

RIFT checks these on Nookal:

RIFT cannot check these on Nookal yet:

An invoice with no line items on it is ignored, so an appointment attached to an empty Nookal invoice still reads as uninvoiced.

RIFT uses the name of the system you are connected to

RIFT's wording throughout the dashboard uses the name of the system your numbers came from - Zanda, Cliniko or Nookal - for example on the Paid outside button and the billing-location setting.

How old are my RIFT numbers?

The header of every RIFT page states how old the numbers are. For an uploaded export, that is the date the export was taken, not the day you uploaded it. The line turns amber once the data is 14 days old and red at 30 days. Live API data (Zanda API, Cliniko or Nookal) shows the last sync date instead.

The RIFT header says "sync failing", or the Data source card says the connection needs attention

Cliniko and Nookal clinics are synced once a day. If two days pass without a sync that works, the last-sync line in the RIFT header turns amber and reads "sync failing"; at three days it turns red, the Data source card in Settings reads "Cliniko connection needs attention" (or Nookal), and patient emails are put on hold until a sync succeeds.

To fix it, open Settings > Data source and look at the connected system's section. A Connection problem row says what happened at the last attempt and shows the date of the last successful sync:

As soon as a sync succeeds the warning clears, the card reads connected again, and any held patient emails go out as normal. RIFT emails the recipients of your weekly digest (Settings > Weekly digest) once when a connection has been failing for three days. On the Zanda API there is no daily sync, so after three days the header asks you to click Sync now instead.

RIFT has stopped syncing: "your Nookal key no longer covers" a location

A Nookal API key only reads the locations ticked on it. If a location RIFT was reading is unticked on the key, RIFT stops syncing and shows a banner at the top of every page naming the location. Nothing in your numbers changes while it is stopped. RIFT stops because items it could no longer see would otherwise look like money you had collected.

There are two ways to start syncing again:

RIFT asks the same question if you paste a replacement key that covers fewer locations, or a key from a different Nookal account: nothing is saved until you confirm.

Still stuck?

Ask RIKO Help, the chat bubble in the corner of this page - it answers from these articles. If it cannot help, use the support form in your dashboard or email support@rapidintelligence.com.au. Please do not include patient names or details.