Skip to content

A nightly records mirror that staff can build on

Three Make scenarios copy a clinic's daily activity out of its medical-records system into Airtable (patients, visits and links to diagnosis, medication and billing tables), feed a narrower copy to a follow-up team, and keep a drug-reference sheet aligned.

Sync & integrationFlow2026

Where this applies

Clinics, practices and any business whose system of record has an API but poor reporting: mirror its daily activity into a base where staff can build views, formulas and follow-up lists.

modules in the nightly mirror
98
billed-item categories linked per visit
10
nightly runs in a row, all successful
16

The problem

A system of record holds the truth but is rarely where staff want to work. Building a follow-up list, a recall rule or a report inside a clinical system is slow and often impossible, while a flexible base such as Airtable lets staff shape views and formulas themselves, if the data is in it, reliably and without duplicates.

So the job is a sync that runs every night, can be run again safely, links each record to the right reference rows, and never writes the same visit twice.

What we built

01

A day-window sync, not a full copy

The main scenario runs in one window a day, at the end of the clinic's day, and asks the records system only for that day's records (from and to both set to today), so each run is small and a re-run on the same day is safe. It reads a cached API token from a shared data store rather than logging in itself.

02

Upsert by lookup

Each patient is found in Airtable by patient number and created only if absent; their latest doctor, department and last-visit date are updated either way. A visit is created only if none exists for that patient, date and doctor, so the existence check is the deduplication key.

03

Fanning out to the reference tables

Every visit then links itself to reference rows: each diagnosis code, each medication by local code, and billed items across ten categories from procedures and investigations to vaccines, dental and home healthcare. The native link update would overwrite, so the scenario rebuilds each link array by hand and appends only if the link is not already there.

04

A narrower copy for a follow-up team

A second nightly scenario feeds a separate base used by a team that phones patients after an acute illness. It picks visits not yet marked synced, within the last 30 days and capped at ten a night, parses vitals out of text (blood pressure split into systolic and diastolic), derives the specialty from the department, and creates a prescription row per drug with a medicine-class tag and an antibiotic flag.

05

Reference data reconciled

A third scenario compares a drug-reference spreadsheet against the medication table in Airtable. Each unprocessed row is marked 'Update' if its code exists, with a flag set in Airtable, or 'NF' if not; the status column is both the marker and the queue, so a processed row drops out of the next read.

The outcome

  • The main mirror has 30 runs and 68,440 operations in Make's counters. Since an expansion in September it has run 16 nights in a row without a failure, at 2,100 to 4,100 operations a night (about 25 to 40 per visit, because every diagnosis, medication and billed item is its own lookup and link).

  • The follow-up copy has 311 runs and 1,293 operations with no errors; since September it runs nightly at 43 to 71 operations.

  • The mirror has three errors, all at its first request to the records system: two authorisation failures on manual runs and one 400 on a night, from which the next night recovered. The reference reconciliation is built and switched off and has not run.

Where it stops

None of the scenarios has an error route, so a bad token fails that night's run and the missed day is not backfilled. A code missing from a reference table is skipped without an alert. The follow-up copy marks a visit synced before its prescriptions are created, so a failure part-way leaves a synced visit with missing prescriptions, and it handles at most ten visits a night. Values joined with commas could misalign if they themselves contain commas. The token is refreshed by a separate small scenario that is not described here.

Built with

  • Make.com
  • Airtable
  • Google Sheets
  • Make data store
  • HTTP API

Patterns used

  • Day-window sync
  • Upsert by lookup
  • Link arrays appended by hand
  • Marker field as work queue

Page copy drafted with AI assistance. Skofi is accountable for it. Editorial policy

Start here

Have something shaped like this?

If any part of the above resembles a problem you are living with, a short call is the fastest way to find out whether it is the same problem underneath.

Book a 15-minute callsaveez@skofi.tech

What happens on the call

  • 15 minutes, no deck
  • We map the process on the call
  • A written scope, or an honest no
Book a call