A UK medical laboratory, connected in real time.
Anonymised at the client's request. Details of the systems and the fix are accurate; the business is described only as "a UK medical laboratory."
Situation
A UK medical laboratory took patient bookings through its website — WordPress, with Formidable Forms and Simply Schedule Appointments handling the booking flow. Clinical records and billing lived entirely separately, in Semble, a practice management platform built for UK clinics. The two systems had never been connected. Every booking made online existed only on the website until a member of staff copied it into Semble by hand.
The cost of the problem
Staff re-typed each booking into Semble individually, several times a day. Cancellations and reschedules made on the website weren't reflected in Semble at all, so the record clinical staff were working from was often already out of date by the time they saw it. The practice was paying skilled clinical staff to do manual data entry, and running a real risk of double-booking or missed appointments whenever the two records drifted apart.
Diagnosis
The diagnosis mapped the actual path a booking took: website form, to Formidable Forms, to Simply Schedule Appointments, to an inbox, to a person, to Semble — by hand, at the very end. No connection existed between the booking layer and Semble beyond that person. Semble exposes both a GraphQL API and REST endpoints, and can fire webhooks on booking events, but nothing off-the-shelf connects it to a WordPress booking stack. The verdict: build a custom middleware layer — no pre-built plugin covered this combination of systems.
The fix
A Node.js middleware service now sits between the two systems. A webhook receiver listens for booking events from the website; GraphQL and REST clients talk to Semble's API to create, update, or cancel the matching appointment; and a polling fallback checks for anything a webhook missed, so a dropped notification never causes a booking to go quietly unrecorded. New bookings, cancellations, and reschedules now reach Semble within seconds, automatically, without anyone touching either system by hand.
Result
Bookings appear in Semble moments after they're made online. Staff who spent part of each day re-keying appointments got that time back. And the clinical team now works from a record that's actually current, rather than one that's accurate only once someone has caught up on the day's data entry.