Waitlist auto-fill, and why it took a year
The feature is four sentences to describe. Getting it to behave well when a clinic has three practitioners and one room took considerably longer.
Waitlist auto-fill shipped this month. When an appointment is cancelled, the slot is offered automatically to clients who asked to be told about earlier availability. First to accept takes it.
Four sentences. It took about a year, and the reason is worth writing down.
The easy version works for one practitioner
If a practice has one practitioner and one room, the logic is trivial. Slot frees, notify everyone waiting, first response wins.
We built that in a fortnight. It was fine, and it was useless to about half our customers, because the moment a second practitioner exists the question “who is this slot for?” stops having an obvious answer.
The questions that took the year
A cancelled 2pm with Rosa is not interchangeable with a 2pm with Daniel. Some clients on the waitlist would take either. Some are mid-treatment and will only see the practitioner who has been treating them. Some need the treatment room with the plinth, which is only free because Rosa’s client cancelled.
So the real questions were:
- Does this client accept a different practitioner, and did anyone ever ask them?
- Does the freed slot have the resources their session type needs?
- If two people accept within the same second, who gets it, and what does the other one see?
- How many people should be offered a slot at once? Notify everyone and you create a race that annoys most of them. Notify one at a time and a slot that frees at 11am for a 2pm appointment expires while you wait politely for a reply.
None of that is technically difficult. All of it required deciding what the right behaviour actually is, which meant sitting with clinics and watching them do it manually.
What we landed on
Offers go out in waves. The first wave goes to clients whose requirements the slot matches exactly, capped at three people. If nobody accepts within a window that scales with how soon the appointment is — twenty minutes for tomorrow, three minutes for this afternoon — a second wave widens to clients who marked themselves flexible on practitioner.
If two people accept simultaneously, the first write wins and the second sees “that slot has just gone” rather than a booking that silently fails later.
What we removed
The first build let practices write custom priority rules — longest waiting, highest value, most cancellations absorbed. Nobody used it. Three clinics tried, all three misconfigured it, and one spent a fortnight quietly not filling slots because of a rule that excluded everyone.
We took it out. The rule is now: exact match first, flexible second, first acceptance wins. It is less clever and it fills more slots.