Most of the automations I write about here fix a leak that runs all year: a missed call, a quote that never gets chased, a customer who quietly stops showing up. This one is different. It is a leak with a date on it. Every December 31, patients across dental, optometry, hearing and wellness practices forfeit money they already paid for — unused annual insurance maximums, untouched vision plan allowances, flexible spending account balances that reset to zero at midnight. Nobody told them. The practice that would have benefited from telling them was too busy to run the list.
I am writing this in late August on purpose. As Gideon Wafula, AI Automation Engineer, I have watched enough practices try to build this campaign in the second week of November to know how it ends: a rushed export, a generic blast, a schedule that was already full, and a quiet decision to do it properly next year. The whole point of automating this is that the build happens now, while the calendar is boring, and the system does the work when the calendar is not.
I have written before about the revenue hiding in a dormant customer database, and about recovering unscheduled treatment in dental practices. Both work. But both fight the same headwind: the message asks someone to act on your timetable, not theirs. "You are due for a cleaning" is a fact about your recall interval. It is not a reason to open the calendar app today.
An expiring benefit is different because the loss is concrete, personal, and dated. The patient is not being asked to spend money. They are being told that money they have already spent, through premiums or payroll deductions, disappears in a fixed number of weeks. The industry guidance on year-end campaigns is consistent about this across dental, optometry and practice-marketing sources: the messages that name a specific remaining balance and a specific expiry date outperform the generic "book your appointment" reminder by a wide margin. Optometry recall guidance in particular recommends folding the benefit expiry line directly into the seven-day nudge, because that is the message people act on.
I want to be careful here rather than quote a headline number at you. The published figures on recall performance vary enormously by practice, source and how "reactivated" is defined, and most of the impressive ones come from vendors selling recall software. What I will say from building these is narrower and safer: the same contact list, messaged with a dated financial reason instead of a clinical one, books at a noticeably higher rate, and the difference is large enough that it shows up in the schedule within two weeks. Measure it yourself against a holdout group and you will not need anyone's benchmark.
This is a narrow, scheduled workflow, not an agent that runs your practice. It has one job: every week from late September to the last working day of December, find the people with money about to expire, tell them precisely what they stand to lose, and make booking a single tap. Everything else stays with the front desk.
The workflow queries the practice management system and builds three separate lists, because they need three different messages:
The segmentation is where most of the engineering effort goes, and it is deliberately rule-based. No language model decides who is on which list. A model that hallucinates a remaining balance is worse than no automation at all.
Unlike a clinical recall, every message in this campaign is anchored to December 31. A sequence I have found works well:
Every message goes on the channel the patient actually uses. For most practices that is SMS first, email second, and a voice call reserved for the high-value unscheduled-treatment list where a two-minute conversation is worth the cost.
This is the step practices skip, and it quietly halves the result. If the message ends with "call us to schedule," you have converted an automated campaign into inbound call volume at the single busiest time of the practice's year. The front desk cannot absorb it, calls go to voicemail, and the patient who was ready to book goes back to their day. Every message needs a direct link into real availability. If you cannot expose online booking, at minimum route the reply into an AI voice or messaging agent that can hold the conversation and place the appointment.
Three of them, and they are not negotiable. A staff member approves the segment lists before the first send of each wave, because bad data in a practice management system is normal and a message quoting the wrong balance to the wrong person is a real problem. Anything involving a clinical question routes to a human immediately. And any patient who replies with anything other than a booking — a complaint, a billing dispute, a bereavement — gets pulled out of the sequence automatically and handed to a person.
I use n8n for this, self-hosted when the practice is handling protected health information, which is most of the time. The shape is straightforward:
On compliance: if you are in the United States and touching patient data, you need a business associate agreement with every vendor in that chain, including the SMS gateway and the model provider. In the UK and EU the equivalent conversation is about lawful basis and data residency, which is a large part of why I self-host n8n for clinical clients. This is not the part to improvise.
Running cost for a workflow like this is modest — typically 40 to 120 USD per month across hosting, model usage and messaging, scaling mainly with SMS volume. The messaging is the largest line item, and it is worth noting that it is concentrated into a single quarter rather than spread across the year.
Before you build anything, pull last year's figures so you have a baseline. Then track these:
Nothing here is medical. The mechanism is: a customer holds a balance, the balance expires on a known date, and nobody has told them. That describes prepaid service packages at a salon or gym, unused sessions on a personal training block, expiring gift cards where the law permits reminders, unused annual maintenance visits on a home services plan, and accrued loyalty points. Same automation, different query. If your business sells anything prepaid with an expiry, you are sitting on the identical opportunity, and you have the same four months to build it.
The reason I like this automation is that it is honest. You are not manufacturing urgency or dressing up a discount. You are telling people something true that benefits them, at a moment when it is still actionable. The practice gets a stronger Q4, the patient gets the care they already paid for, and the only loser is the insurer holding the unclaimed balance. That is a rare shape for a revenue automation, and it is worth building properly rather than in a panic in the third week of November.
Gideon Wafula builds custom AI automation systems, n8n, WhatsApp, Voice AI, and more.
See Services →