Dental & Orthodontics · project showcase · booking and intake
A dental booking flow that separates emergency, hygiene and elective before anyone picks up the phone
One "Book an appointment" button is asked to do three completely different jobs, and does none well. This build splits the enquiry at the point of arrival and carries the split all the way into the practice-management system.
At a glance
The engagement in brief
Services
- Booking Intake
- Landing Pages
- Web Development
- CRO
- CRM
Stack
- Scheduling platform
- practice management system
- call tracking
- form router
- CRM
The situation
What we walked into
A cracked tooth at seven in the morning, a six-month hygiene recall, and a Sunday-evening enquiry about whitening are three different businesses sharing one form. They have different urgency, different slot types, different staff, and completely different tolerance for a callback tomorrow. The default website sends all three into the same inbox in the order they arrive, and the front desk performs the sorting by hand every morning, from memory, under time pressure.
The cracked tooth and the whitening enquiry arrived through the same form, into the same queue, and were opened in the order they happened to land.
What we found
The diagnosis
01
Appointment type is the only routing key that matters, and it is the field practices leave out
Forms ask for name, email, phone and a free-text message. The free-text box is where the appointment type is hiding, unstructured, waiting for a person to read it. Asking the question directly costs one field and removes the entire manual sorting step.
02
The site and the practice management system speak different vocabularies
Websites say 'emergency', 'check-up' and 'cosmetic consultation'. Practice management systems carry their own appointment type codes, set up years ago, that nobody wants to change. The build needs an explicit mapping table between the two, owned by the practice, or the routing degrades the first time someone adds a type.
03
An emergency route belongs above the form, not inside it
Someone in pain is not going to fill in a five-field form and wait. The phone number and the same-day path sit above the form, and the form is what the other two audiences use.
04
The source tag has to survive the handoff or the whole build is decorative
If the campaign source is lost when the enquiry crosses into the practice management system, the practice can route perfectly and still not know which channel produced which chair. The tag travels with the record.
The number behind it
What this is built around
Dental is one of the few categories where **Meta costs more per lead ($76.71) than Google search ($72.97)** (WordStream/LocaliQ 2026), and **61% of practices cite cost of care as the top reason patients delay treatment** (Sunbit *2026 State of Dental*) — so routing the right enquiry to the right path, fast, is worth more than buying more of them.
What we built
The system
Three routes, one page. The emergency path is a phone number and a same-day slot type, placed above the form. The recall path books directly into hygiene availability. The elective path books a consultation slot with a longer duration and a different confirmation. A mapping table, owned by the practice and version-controlled, translates each site-side type into the practice management system's own appointment code, and the acquisition source tag is written into the record at creation so it survives into the schedule. No clinical detail is collected anywhere in the marketing layer: the form asks what kind of appointment, never what is wrong.
The sequence
How it was delivered
Week 1
Appointment type inventory
Every practice management system code listed, with duration and owner
Owner: OmniFlow + practice
Week 1–2
Mapping table
Site-side types mapped to practice codes, signed off by the person who runs the schedule
Owner: Practice
Weeks 2–4
Route build
Three routes live, emergency path above the form, source tag written at creation
Owner: OmniFlow
Week 4
Front-desk handover
Script matched to each route, so the phone and the page give the same answer
Owner: OmniFlow + practice
Outcome
What shipped
This entry makes no performance claim. It documents a booking architecture and the mapping discipline that keeps it working after launch. The artefact that matters most is the least interesting one: a maintained table connecting what the website calls an appointment to what the practice's own software calls it. That table is the part that decays first, because appointment types get added to the practice system by whoever is running the schedule that month and nobody thinks of the website. It has a named owner and a review date for exactly that reason.
Reporting
What you would actually see
These are the surfaces this engagement is run and measured from, shown with representative figures built around the benchmarks cited on this page. Every account we run reports into views like these, and you keep ownership of all of them.
These are demo dashboards. They show the reporting surfaces this engagement is run and measured from, with representative figures generated around the published benchmarks cited on this page — not a client account and not a client result. Live reporting for your own account replaces every number here.
Google Analytics 4
Dental & Orthodontics · all web data
Sessions
3,745
+61.1%
Key events
148
+76.3%
Session key event rate
3.9%
+1.1%
Engagement rate
54.4%
+4.7%
Sessions by month
Dashed line marks the month the engagement started.
| Session default channel group | Sessions | Key events | Rate |
|---|---|---|---|
| Organic Search | 1,377 | 72 | 5.2% |
| Paid Search | 954 | 38 | 4.0% |
| Direct | 692 | 32 | 4.6% |
| Referral | 400 | 15 | 3.8% |
| Organic Social | 322 | 10 | 3.1% |
CRM pipeline
Dental & Orthodontics · inbound and outbound
Leads created
172
+86.2%
Qualified
96
+99.1%
Meetings booked
45
+103.5%
Answered on first attempt
75.0%
+9.7%
Leads created by month
Dashed line marks the month the engagement started.
| First-touch source | Leads | Qualified | Meetings |
|---|---|---|---|
| Google Ads — high intent | 53 | 30 | 14 |
| Organic search | 46 | 26 | 12 |
| Business Profile — call | 33 | 18 | 8 |
| LinkedIn outbound | 24 | 13 | 6 |
| Referral | 15 | 8 | 4 |
Honestly
What we would do differently
We built the first mapping table outward from the website's vocabulary and then asked the practice to fit its codes to ours. That is backwards. The practice management system is the thing that cannot be changed, so the table has to be built inward from its codes, and the site's language bends to fit. Rebuilding it that way cost a week we did not need to spend.
Next
Start the same conversation
Start the same conversation
Tell us what you are working on and we will say plainly whether this is the right shape of engagement for it.