"Call us in three months" is not a recall system. Here is how to compute due, overdue and lapsed every night, and book the next visit before the patient leaves.
A patient finishes a visit, the clinician says "come back in three months," and the patient walks out. Nothing in your stack now knows a clock has started. Three months later nothing fires, because the only candidates were a report somebody runs when they remember, a spreadsheet a nurse keeps because the report is not trustworthy, and the memory of whoever has worked there longest. At month five the patient is not late, they are gone, and the practice reads it as soft demand rather than a retention failure in a population it already won.
"Call us in three months" transfers the scheduling burden to the person least equipped to carry it, and the chasing exists only because that handoff failed. The way to stop chasing is to stop needing to.
It fails for structural reasons, not motivational ones: the instruction is given at the one moment the patient is least able to act on it, by a practice that has not written the date anywhere a system can read. Four things then go wrong, reliably:
The last one is the expensive one. A patient who misses one visit in a series is far more likely to miss the next, and the drift compounds quietly until the patient stops thinking of themselves as your patient at all.
Everything in a working recall program follows from making three states explicit and computing them nightly rather than noticing them by accident.
A due date alone is not enough; you need a window. Define acceptable early and late tolerance in days, agreed in writing with the clinician who owns the program. Without one, every visit is either early or late and "due" means nothing.
This is the single change that moves adherence most, and everything else in a recall program is remediation for it failing. The mechanism is a habit rather than a technology: when a visit is marked complete, a task appears on the checkout screen naming the due window, and it cannot be cleared without one of two outcomes. An appointment, or a recorded reason.
The recorded-reason half matters as much as the booking half. A patient leaving without a next visit is not neutral; it is the leading indicator of a lapse. Flag it and that patient gets an earlier, warmer outreach path instead of resting in the schedule's blind spot.
Measure it as one number: the share of completed visits where the next was booked before the patient left. It predicts everything downstream and a front-desk habit change moves it within days. Once a visit is on the calendar, it is the appointment reminder ladder that gets the patient through the door, not the recall path.
You cannot configure this from guesses. For each program, get from the owning clinician: the exact interval in days and whether it counts from the last completed visit or a fixed anchor; the early and late tolerance; the number of visits in the series, or a statement that it runs until the clinician ends it; the gap at which a late patient needs clinician review before rebooking; and which visits a nurse can deliver rather than a provider, which determines whether short-notice rebooking is possible at all.
One card per patient per enrollment, not one per visit. It persists for the life of the program and moves between states as the clock turns, and a patient in two programs has two cards with two intervals. Write the interval, tolerances, series length and owning clinician at enrollment, then compute due date, window open and window close from the last completed visit.
Nothing here should depend on a human noticing a date. A job runs daily before the recall block opens: recompute days until due and days overdue, set the adherence state, move newly open windows onto the unbooked list, move cards past window close into overdue, raise readiness checks for visits inside two weeks, and publish the day's worklist. Without that job you have a report, not a program.
For cards still unbooked, start about three weeks out with a self-booking invitation, then an email naming the clinician and two concrete slots inside the window, then two specific times claimable with a one-character reply. Once the window opens the cadence tightens and escalates to humans fastest: a call attempt, a second at a deliberately different time of day, then an open-ended ask: "is there a day or time that would actually work for you?", which outperforms another booking link, because the obstacle is rarely the link.
Put two blocks a day on a named person's calendar and cap the published list at what those blocks can absorb; an uncapped list is abandoned by Thursday. Record every attempt (count, date, channel) every time, because attempt history is what makes the next attempt smarter and the reporting honest. If attempt four almost never reaches anyone, stop at three and spend the effort elsewhere.
These programs fail on logistics as often as on patient behavior. Fourteen days out, confirm any required authorization is valid through the appointment date, the order is placed and supply is on hand. All three clear and no patient message is needed. Anything unresolved a week out escalates to a named owner; unresolved three days out means a person phones and offers a date the practice can honor. A patient who travels for a visit that cannot happen is a patient the program loses.
Escalate by tier, not by volume. Around a month past due: one message, one call attempt, and a notification to the clinician. At two months, stop the texting entirely (the channel has demonstrated it does not reach this patient) and switch to a scheduled human call and a clinician-signed letter where mail consent allows. Past roughly three months the job is one good human contact: a real fifteen-minute call slot, a script leading with the question rather than the pitch, and three concrete options (a different location, an early or late slot, a virtual check-in first) because the lapse was usually caused by one of those being unavailable.
The full stage model, field list and workflow specification (cadence engine and readiness pipeline included) is in the recall and recurring visit program build guide.
Recall carries more disclosure risk than new patient scheduling, because the existence of the recall can itself reveal a condition. A text naming an injectable therapy, a lab panel or a program title discloses a diagnosis to anyone who sees the screen. So the rule practices commonly adopt is deliberately narrow: the permitted patient-facing payload is the date, time, location, clinician's name and a link. The phrasing is "your next scheduled visit with Dr X" and nothing more specific.
It applies to more channels than people expect:
Keep the program name as an internal code used in staff-facing views only, so nothing readable can be merged into a message by accident. Never solicit clinical detail by reply: a barrier survey offers logistical options only. Hard to get here, work schedule, childcare, cost, I moved, I would rather talk to someone, and any free-text reply routes to a human rather than being parsed by an automation.
Then the groundwork: signed business associate agreements with every vendor that touches patient data before any loads, the print-and-mail vendor included; separate unbundled consent for SMS, email and mail at enrollment, each with its own wording and timestamp; recorded permission for voicemail and alternate contacts; quiet hours in the patient's own time zone; and a suppression check for anyone flagged deceased, transferred out or clinician-paused, verified in testing. None of this is legal advice and none of it guarantees compliance. Confirm every decision with your practice's own compliance counsel and risk assessment before launch.
When a patient replies STOP, the texting stops. The recall card does not close, and the call, mail and clinician paths continue: set the preferred channel to phone and carry on. Conflating the two is how practices lose patients from a clinical program over a messaging preference.
If four messages on one channel produced nothing, the fifth performs exactly like the first four. Lapse escalation changes channel rather than increasing volume, and the switch point is a tier in the workflow, not a judgment call.
When a patient asks to move a visit, the slots you offer back must sit inside the remaining due window only. A convenient date three weeks after window close is the difference between a reschedule and a lapse, and it is easy to get wrong because the booking link looks identical either way.
Whether a patient four months late can be rebooked into the same visit type, or needs clinician review first, is a clinical rule written into the workflow as a branch with a threshold the clinician sets. Where a long gap changes what the next visit must be, self-booking is disabled on that card until a clinician clears it. Rebooking someone into a visit that is no longer the right visit is worse than not rebooking them.
Baseline these for a full cadence interval before changing the outreach cadence itself, or you will mistake a seasonal effect for a result.
To get intervals, tolerances and escalation tiers mapped against your own programs and clinical system before anything is built, book a call and we will work through yours.
Early enough that the patient has time to find a slot inside the window, usually a few weeks before it opens for anyone still unbooked, escalating once it opens. Patients who already have a booked visit get nothing from the recall path, only the reminder ladder for that appointment. Let due-window capture rate and contact rate by attempt tell you whether to start earlier or stop sooner.
Many practices do, with explicit per-channel consent captured and timestamped, carrier registration completed for care-coordination messaging separately from marketing, and a strict content rule keeping anything clinical out of the body and the subject line. The constraints are about disclosure and consent evidence rather than the channel itself. What that means for your practice depends on your jurisdiction and risk assessment, so confirm the specifics with your compliance counsel before launch.
Treat them as a separate population with a slower, more human campaign, loaded in stages rather than all at once. Lead with a scheduled call from a named person rather than another text, open with the question (what got in the way) rather than the pitch, and offer concrete alternatives on location, time of day and format. Capture the reason as structured data; the distribution is usually the most useful thing you learn.
One named person per program, with a named backup, working protected blocks on their own calendar rather than fitting it around other duties. Assign by program rather than by rota: these programs reward a single familiar voice, and patients answer a number they recognize. The practice manager gets three numbers each morning (due today, overdue past a month, and yesterday's book-at-checkout rate) which is enough to manage the program without reading the list.
Every article on this blog sits on top of a build guide in the AppBO library. It is the same system, written out end to end: the problem it solves, the architecture behind it, every workflow with its triggers and conditions, and what measurably changes once it is live. If this piece made the case, the build guide shows you the wiring.
Open the build libraryBring us how your business actually runs today and we will tell you which system to put in first, what it will take, and what it should change.
Book a call