AI for Healthcare Clinics: Referral Tracking and Chase Letters

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI for Healthcare Clinics: Referral Tracking and Chase Letters.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI for Healthcare Clinics: Referral Tracking and Chase Letters.

A small clinic can track outgoing referrals with a simple log (one row per referral, with sent date, urgency, status and next-chase date), run a 20-minute overdue sweep each week, and use AI to draft chase letters that carry only a reference number, the service and dates. A staff member checks each draft against the log before it goes.

The weak point in most clinics is not the referral itself but the silence afterwards. A letter goes out, nothing comes back, and nobody notices for weeks because no one owns the question "has this been answered?" The log creates the owner. The AI saves the typing. The weekly sweep is the habit that makes it work, and it is the part nobody can automate away.

Follow me on Instagram@sagnikteaches

The referral log: columns that earn their place

Build the log before you involve AI. If the data is unreliable, no tool will rescue it. Keep it narrow: every column should be something you act on.

Connect on LinkedInSagnik Bhattacharya
ColumnExampleWhy it exists
RefR-2026-0412Your own number; the only identifier that goes to AI
Patient IDFrom practice systemStays in the log; never leaves it
Referring clinicianInitialsWho to tell if it stalls
ServiceOrthopaedic outpatientsWhere it went
UrgencyUrgent / Soon / RoutineSets the chase interval
Date sent2026-10-06Starts the clock
MethodPortal / post / fax / secure emailWhere to look when chasing
StatusSent / Acknowledged / Appointment booked / Seen / Outcome received / Closed / LostOne word, from a dropdown
Acknowledged date2026-10-09Proof the other end has it
Chase dueFormulaThe date the sweep acts on
Chase count0, 1, 2Escalate after a set number
OwnerInitialsThe person who chases
Notes"Phoned, told wait 4 weeks"Free text, never clinical

Use dropdown lists for Urgency and Status so the formulas can rely on exact words. A status typed as "sent" in one row and "Sent " in another breaks every filter downstream, which is why a list matters more than a clever formula. Record the outcome date when the report comes back, so you can see how long the loop takes, which is the number you will later use to set realistic chase intervals.

Subscribe on YouTube@sagnikteaches

Let AI write the formulas, then test them

A clinic manager who has never written a spreadsheet formula can get a good one from a chat tool. Describe your columns and the rule, not the data.

I have a spreadsheet with these columns: A Ref, B Service, C Urgency (Urgent/Soon/Routine),
D Date sent, E Status (Sent/Acknowledged/Appointment booked/Seen/Outcome received/Closed/Lost),
F Chase count.
Write a formula for column G "Chase due" that:
- returns blank if Status is Outcome received, Closed or Lost
- otherwise adds working days to the date sent: 5 for Urgent, 10 for Soon, 15 for Routine,
  plus 5 more working days for each chase already made
Write a second formula for column H that shows "OVERDUE" if Chase due is before today.
Give me the formulas for Excel and for Google Sheets, and say what each part does.

The working-day numbers in that prompt (5, 10, 15) are placeholders to show the shape. Replace them with intervals agreed by your clinicians, and with the receiving service's published waiting times where they exist. Test the formulas on five rows where you already know the answer, including one closed row and one that should be overdue. If you need help with the spreadsheet side generally, the Google Sheets AI prompts tutorial covers asking for formulas and checking them.

Illustrative result, in Excel: =IF(OR(E2="Outcome received",E2="Closed",E2="Lost"),"",WORKDAY(D2,IF(C2="Urgent",5,IF(C2="Soon",10,15))+5*F2)) for Chase due, and =IF(AND(G2<>"",G2<TODAY()),"OVERDUE","") for the flag. The tool should also warn you that WORKDAY skips weekends automatically but skips public holidays only if you give it a list of dates as its third argument, such as a range of closure days. Add one if your clinic closes on them.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

The weekly overdue sweep

Pick a fixed slot: Monday at 9.30, twenty minutes, same person, same chair. The sweep is a routine, and routines die when they depend on whoever happens to remember.

  1. Filter the log for OVERDUE. Sort by urgency, then by days overdue.
  2. For each row, check the method column and look in the right place first: portal status, fax confirmation, secure email thread, the receiving service's acknowledgement.
  3. Decide for each: already answered (update status, close), chase by letter (draft), chase by phone (urgent, or second chase), re-send (it was never received), or escalate to the referring clinician (chase count at the limit).
  4. Export the "chase by letter" rows as de-identified columns and run the drafting prompt.
  5. Check each draft against the log, send, and update Chase count and Chase due.
  6. Write one line in a sweep sheet: date, rows reviewed, closed, chased, escalated, time taken.

The sweep sheet matters more than it looks. After two months it shows how many referrals go quiet, which services are slowest, and whether twenty minutes is enough. That is the evidence you take to a practice meeting if someone asks whether this is worth doing.

Chase letters with no clinical detail

A chase letter has one job: get a reply. It does not need symptoms, diagnoses, or a story. It needs to identify the referral and ask a clear question. Writing it that way means the AI never needs sensitive information, and a letter that goes astray reveals almost nothing.

The ingredients: your clinic's name and contact route, your reference number, the date sent, the method, the urgency category, the receiving service, what you are asking (acknowledge receipt, give an appointment date, confirm the referral was accepted), a reply-by date, and a named contact.

Patient identification is the delicate part. Many services need a name or date of birth to find a record. Handle that outside the tool: the draft carries "[patient identifiers: see attached]" and the staff member adds them, from the practice system, using your normal secure method. Never paste identifiers into the chat to save the step.

Draft a short, polite letter chasing an outgoing referral. Use only the facts below.
Do not mention any clinical information, symptoms or diagnosis. Do not invent dates or names.
Leave "[patient identifiers: see attached]" exactly as written.
Tone: courteous and direct. Maximum 120 words. Plain English.

FACTS:
Our reference: R-2026-0412
Sent: 6 October 2026 by secure portal
Urgency category: Soon
Receiving service: [service name]
This is chase number: 1
What we need: confirmation that the referral was received and an expected appointment date
Reply by: 23 October 2026
Our contact: Referrals desk, [clinic name], [phone or secure address]

Also write a one-line phone script for the same chase, for use if there is no reply.

Illustrative output: "Dear Referrals Team, We are writing about our referral R-2026-0412, sent by secure portal on 6 October 2026 (category: Soon) for [patient identifiers: see attached]. We have not yet had confirmation that it was received. Please could you confirm receipt and let us know the expected appointment date by 23 October 2026? You can reach our referrals desk at [contact]. Thank you for your help. Kind regards, [name], Referrals desk, [clinic name]." The phone script: "Hello, I'm calling from [clinic] about referral R-2026-0412, sent on 6 October by the portal. Could you confirm you have it and when the appointment is likely to be?"

What you would change by hand: the letter says "we have not yet had confirmation". If the log shows an acknowledgement on 9 October that someone forgot to record, that sentence is wrong. That is what the check below is for.

Three tiers of chase

A single template does not suit every stage. Write three variants once and let the tool fill them.

  • First chase: friendly, assumes it may have been missed, asks for confirmation of receipt and a date.
  • Second chase: mentions the first chase date, sets a shorter reply-by date, copies the named clinician's secretary or the service's manager if you have a route to do so.
  • Escalation note, internal only: to the referring clinician, stating the reference, the dates of both chases and the options (re-refer elsewhere, phone the consultant's secretary, tell the patient). The clinician decides. No patient detail beyond the reference goes through the tool.

The check step: every draft against the log

This is the step that makes the whole routine safe. The tool can transpose a digit in a reference, round a date, or write "second chase" on a first. A person with the log open catches it in ten seconds.

  1. Reference in the letter equals the Ref in the log.
  2. Date sent and method equal the log.
  3. Chase number is the Chase count plus one.
  4. Reply-by date is in the future and not on a closed day.
  5. The status is still Sent or Acknowledged, with no outcome logged since the sweep started.
  6. No clinical wording crept in. Search for the words "symptom", "diagnosis", "pain", "results", and any medication name.
  7. The sender's name and the contact route are the real ones.

Make it auditable: add two columns, "Draft checked by" and "Sent date". If a row has a chase but no checker's initials, the sweep for that week is not finished. For a batch of 20 letters, checks take about 10 minutes. You can speed it up by pasting the tool's drafts into a sheet with a lookup formula, such as =VLOOKUP(A2,Log!A:D,4,FALSE) (reference in A2, and the log laid out as in the formula prompt above, with Ref in column A and Date sent in column D), that pulls the log's sent date next to the date in the draft, and highlight mismatches. That is the sort of job the Copilot data analysis tutorial shows in more detail.

Worked example: a clinic that sends 60 referrals a month

Illustrative figures for a four-clinician clinic that sends about 60 referrals a month across ten services.

Setup: one afternoon (about 3 hours) to build the log from the last three months of letters, add dropdowns and formulas, and agree intervals: 5 working days for urgent, 10 for soon, 15 for routine, plus 5 per chase. Ask AI for the formulas in 10 minutes and test them for 30.

First sweep: of 170 open rows, 31 flag as overdue. Eleven turn out to be answered already (letters filed, status never updated). Fourteen need a letter. Four need a phone call. Two are escalated because they have been chased twice. That first sweep takes 70 minutes, mostly cleaning up. By week four the routine is 20 minutes: about 8 flagged, 5 letters, 2 calls, 1 escalation.

Time per letter: before, about 8 minutes (find the file, write the letter, edit); after, about 3 minutes including the check. For 5 letters a week, that is 25 minutes saved weekly, not dramatic. The real gain is finding the referrals that vanish. Say one of the four phone calls reveals a referral that was never received: it is re-sent that day, rather than discovered when the patient rings six weeks later. You cannot put a figure on that, and you shouldn't try to invent one. Count the "referrals found lost" in the sweep sheet and let the number speak for itself.

Setting chase intervals from your own data

The 5, 10 and 15 day figures above are starting points. After two months of logging, your own data tells you more. Add one column, "Days to acknowledge", as the acknowledged date minus the sent date, and another, "Days to outcome". Then ask the tool to summarise the de-identified export, not the patients.

Here is a de-identified referral log export: Service, Urgency, Date sent, Acknowledged date, Outcome date.
For each Service give: number of referrals, median days to acknowledge, median days to outcome,
and the number with no acknowledgement after 10 working days.
Present it as a table, slowest service first. Do not draw conclusions about quality; just report the numbers.
List any rows where a date looks wrong (outcome before sent, for example).

Illustrative result: one service acknowledges in a median of 2 working days, another in 9, and a third never sends acknowledgements at all, so your "no acknowledgement" rule would flag every single referral to it. That is a finding that changes the rule: for the third service, skip the acknowledgement step and set the first chase against the expected appointment window instead. The "dates that look wrong" list also catches typing slips, such as an outcome date in the wrong year, before they distort the medians. Ask your clinicians to confirm the new intervals, since an interval that is too long is a clinical risk, not just an admin choice.

A before and after for one letter

Here is an illustrative first draft a rushed receptionist might write by hand, and the tightened version the routine produces.

Before: "Hi, we sent a referral for Mrs [surname] a few weeks ago about her knee and haven't heard anything. Can you let us know what's happening? She's been in a lot of pain. Thanks."

After: "Dear Referrals Team, we are writing about referral R-2026-0412, sent by secure portal on 6 October 2026 (category: Soon) for [patient identifiers: see attached]. Please could you confirm receipt and the expected appointment date by 23 October 2026? Our referrals desk is on [contact]. Thank you."

The first version names the patient, mentions the body part and the pain, gives no reference, no date, no deadline and no contact route, and so it forces the other end to search. The second removes every clinical word and adds everything the recipient needs to find the record in seconds. The tool does not make a clinic polite; it makes the letter complete and the same every time. The wording about "pain" is the one that matters most: a rule of "no symptoms in chase letters" is easy to state and easy to check, which a rule like "be careful with clinical detail" is not.

Using the AI to triage the weekly list

With 30 or 40 overdue rows, the order in which you work matters. Ask the tool to propose an order from the de-identified export, and treat it as a suggestion. Include urgency, days overdue, chase count and service. Tell it the rules: urgent first, then second chases, then anything over 30 days. It will return a sorted list with a one-line reason each. Illustrative: "1. R-2026-0388, Urgent, 6 days overdue, first chase. 2. R-2026-0301, Soon, second chase, 12 days overdue..." You would change the order if your clinician says a specific routine referral matters more, which the tool cannot know. The final order is a person's decision, and the tool's list simply saves ten minutes of sorting.

Where referral chasing breaks down

Four patterns, in the order they typically appear.

  1. The log goes stale. Staff file replies but forget to update the status. The sweep flags referrals that are already done, and people stop trusting it. Fix: make updating the status part of the job that files the incoming letter, and add the "close" action to the checklist at the front desk.
  2. Chasing a referral the patient has cancelled. A chase goes to a service about a patient who no longer wants the appointment. Add a Status "Withdrawn by patient" and a monthly review of Lost and Withdrawn.
  3. Clinical detail drifts in. A well-meaning staff member types "chest pain" in Notes, and it ends up in an export. Keep the Notes column out of the export and train the team on what Notes are for.
  4. The tool is blamed for a log error. A letter cites the wrong date because the log had the wrong date. The checker, comparing letter to log, sees no mismatch. Spot-check five log rows a month against the sent letters themselves.

Keeping patient information out of the tool

The routine works with a de-identified export: Ref, Service, Urgency, Date sent, Method, Status, Chase count. Nothing in those columns identifies a patient on its own, though the combination in a small clinic may be enough for someone who knows the patient, so treat the export as sensitive and delete the chat afterwards. Business plans of the main chat tools do not train on your content by default, and consumer plans let you switch training off, but neither is a licence to paste identifiers. If your law requires a data agreement with any supplier that handles patient information, get that before any identifier goes near a tool.

If you later want the log to chase automatically, with email reminders to the owner or a Monday summary, that is a separate step with its own checks. Start by running the manual routine for two months. Related tutorials: ten admin tasks a clinic can hand to AI puts referral tracking in context, cutting missed appointments uses a similar weekly habit, and AI for referral letters and the inbox covers the writing side of the clinic's letters.

Closing the loop: outcomes and patients who fall through

Receipt is only half of it. A referral is not finished until the clinician has seen the outcome and, where relevant, the patient has been told. Add two statuses beyond "Outcome received": "Clinician reviewed" and "Patient informed". Chase the missing outcome as you would a missing appointment: another interval, another letter, and a flag if the outcome letter has arrived but nobody has read it.

The log also helps with the quiet patient. If a referral shows "Appointment booked" and then nothing, the sweep can generate a list for the clinician: referrals with a booking date more than four weeks past and no outcome. The clinician decides whether to ring the patient. The tool just builds the list. Keep that list de-identified in the tool and add names only inside your own system.

Finally, review the sweep sheet every quarter. If most chases are going to one service, raise it with that service. If most lost referrals went by one method, stop using it. The log is a small data set, and the useful questions are the ones a manager can answer in ten minutes with a filter.

Questions clinic managers ask about referral chasing

Does AI need patient names to draft a chase letter?

No. A chase letter needs your reference number, the receiving service, the date sent and what you are asking for. Add the patient's name and details in your own system after the draft is made. Keeping identifiers out of the tool is simpler than proving the tool is safe with them.

How soon should a clinic chase a quiet referral?

Set the interval yourself by urgency and write it into the log. A common pattern is a short window for urgent referrals and a longer one for routine ones, each with a named person who chases. Your clinicians and the receiving service's published timescales should set the numbers, not a tool.

Can I let AI send the chase letters automatically?

Not at the start. Automatic sending removes the check that catches a wrong reference or a referral that has already been answered. Draft with AI, check each against the log, then send by the usual route. Revisit automation only after months of clean checks.

Which spreadsheet should hold the log?

Whichever your team already uses, if access can be limited to named staff and changes are tracked. A shared sheet with no access controls is the wrong place for patient references. Many clinics keep the log inside their practice software and export only de-identified columns for AI use.

Further reads

Sources: Microsoft Support and Google Docs Editors Help on the WORKDAY function; OpenAI Data Controls FAQ; ChatGPT Business and Claude plans pages (checked 4 November 2026). Referral timescales come from your own clinicians and the receiving services.

Want referrals tracked without anything slipping?

On a 1:1 call we'll look at how referrals leave your clinic today, design the log and weekly sweep, and decide what AI drafts and what a person always checks.

Book a 1:1 call with me