Worked Example

A dental practice's new-patient intake, worked through end to end.

This is a realistic composite, not a real client, walked through in the same detail we'd use to scope actual work. It's here so you can evaluate how we think, not just what we claim.

Illustrative example. Not a completed client engagement. When real project work is public, it will replace this page using the same format.

The situation

A general dentistry practice with two locations gets around 40 new-patient inquiries a week: through the website contact form, their Google Business Profile, and after-hours voicemail. The front desk is handling patients in the chair most of the day, so inquiries typically wait two to six hours for a reply.

Response speed matters here more than most practices realize: scheduling data consistently shows conversion drops sharply once an inquiry sits past the first few minutes, well before a human ever gets to it.

What's actually automatable here, and what isn't

Not every part of this workflow should run without a person. Anything that reads as a dental emergency needs to reach a human immediately, not enter an automated queue. Insurance and clinical questions need firm boundaries on what the system is allowed to say.

The parts that are safe to automate are repetitive and low-ambiguity: reading a new inquiry, checking whether it is a new or returning patient, and proposing real open appointment times.

The five stages

Click a stage to see the technical detail behind it.

An inquiry arrives one of three ways: a website form submission (webhook), a Google Business Profile message (API), or an after-hours voicemail (transcribed via speech-to-text). Each becomes a single normalized event: raw text, source, and timestamp, dropped into a processing queue.

Where this breaks, and what happens then

Garbled voicemailTranscription confidence is low, so it is flagged for manual review instead of guessed at.
Scheduling API is downThe inquiry is held and retried, rather than telling the patient nothing is available.
Genuinely ambiguous messageRoutes to a person by default. Ambiguity is a routing signal, not a reason to guess.

The result

The structural change isn't that a computer replaces the front desk. It's that response time stops depending on how busy the front desk is at that exact moment, while a person still makes every judgment call that isn't mechanical.

Have a workflow like this?

Every engagement is scoped around the problem, systems involved, and desired outcome.