Skip to main content

    Dental & Orthodontics · project showcase · booking and intake

    Project ShowcaseReal client work that shipped. No performance figures are published, because none have been verified and approved for release.

    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

    1. 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.

    2. 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.

    3. 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.

    4. 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.

    A dental booking flow that separates emergency, hygiene and elective before anyone picks up the phone — sequenceA sequence of 8 steps running from "Enquiry arrives" to "Confirmation and reminders".Enquiry arrivesAppointment type selectedEmergency: call route andsame-day slotHygiene: recall slotElective: consultation slotType mapped to practice systemcodeSource tag preserved on therecordConfirmation and reminders

    The sequence

    How it was delivered

    1. Week 1

      Appointment type inventory

      Every practice management system code listed, with duration and owner

      Owner: OmniFlow + practice

    2. Week 1–2

      Mapping table

      Site-side types mapped to practice codes, signed off by the person who runs the schedule

      Owner: Practice

    3. Weeks 2–4

      Route build

      Three routes live, emergency path above the form, source tag written at creation

      Owner: OmniFlow

    4. 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

    Demo
    Acquisition overview
    Last 12 months vs. preceding period

    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

    AprJunAugOctDecFeb

    Dashed line marks the month the engagement started.

    Session default channel groupSessionsKey eventsRate
    Organic Search1,377725.2%
    Paid Search954384.0%
    Direct692324.6%
    Referral400153.8%
    Organic Social322103.1%

    CRM pipeline

    Dental & Orthodontics · inbound and outbound

    Demo
    Pipeline by source
    Last 12 months

    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

    AprJunAugOctDecFeb

    Dashed line marks the month the engagement started.

    First-touch sourceLeadsQualifiedMeetings
    Google Ads — high intent533014
    Organic search462612
    Business Profile — call33188
    LinkedIn outbound24136
    Referral1584

    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.

    We use your details only to respond to this request. No lists, no resale.