SmileLineDocs
Online booking

Set up online booking

Let patients book real appointments themselves — from your website, your ads, or a link in any message.

By the end of this page patients will be able to pick a real slot in your diary, pay a deposit to secure it, and land on your journeys board as a fully attributed lead — without anyone at the practice lifting the phone.

What online booking does

SmileLine gives every practice a hosted booking page and a one-line website embed. The AI chat assistant can also offer the same funnel when a visitor explicitly asks to book. Patients choose an appointment type, a practitioner (or "any"), and a time computed from your practitioners' real working hours minus everything already in the diary. While they finish, the slot is held so nobody else can take it; if the appointment type carries a deposit, a Stripe payment secures the booking.

Every online booking creates (or matches) the patient and records a full attribution touch — an abandoned booking still leaves you a lead with a Call now card on Today. SmileLine normally opens a journey for the type's default treatment; a booking started from AI chat can continue the matching patient's active journey when its treatment agrees.

Before you start

Add your clinicians under Settings → Practitioners — bookings are always with a practitioner.

Give each bookable clinician a rota under Settings → Practitioner rotas: their weekly working hours, plus date overrides for holidays or extra clinics. A practitioner without a rota never appears online. Location opening hours (Settings → Locations) still apply on top.

To take deposits, connect Stripe under Settings → Payments & deposits first — without it, types with a deposit simply book without payment.

Choose what's bookable

Open Settings → Online booking. The Bookable appointment types table controls the whole offer:

  • Bookable online — the type appears on the page. Everything else stays phone-only.
  • Practice confirms — bookings land as requests your team approves from Today before the patient's confirmation goes out. Recommended for high-value consultations.
  • Deposit — the amount in the practice's accounting currency that a patient pays to secure this type. Leave empty for no payment step.

Durations, buffers and the minimum notice patients must give all come from the type itself — edit them under Settings → Appointment types.

Go live

Still under Settings → Online booking, set the heading and intro patients see, and pick the lead source stamped on every booking (create an "Online booking" source under Settings → Lead sources so your reports can segment it).

Flip the Online booking switch at the top of the page on — the badge next to it turns from Paused to Live. While it says Paused, the hosted page and the embed answer "not available" and the link can't be copied, so set everything else up first and switch on last.

Share the hosted booking page link anywhere — Google Business Profile, ad campaigns, email signatures — or paste the embed snippet into your website to show the funnel inline:

<script async src="https://widget-eu.smileline.io/booking.js" data-key="YOUR_KEY"></script>

The EU hostname above is illustrative. Copy the generated snippet: US organizations use widget-us.smileline.io, and the regional hostname must not be changed.

With AI answers enabled under Settings → Chat widget, visitors who explicitly ask to book receive a Book an appointment button in that reply. It opens the hosted funnel in a new tab and carries the chat context into the booking; the patient still chooses their visit type and enters their details in the funnel. The button appears only while online booking is live and at least one appointment type is bookable. If booking is unavailable, the assistant falls back to the team.

The key identifies your practice — no login or API key ever touches your website. Regenerate link invalidates the old link and snippet immediately if it leaks; remember to update your site afterwards.

At a location mapped to a practice management system, online booking reads availability from the PMS diary and the SmileLine rotas for that location are not used — Settings → Practitioner rotas shows them read-only and names the provider. Working hours are changed in the PMS, not here; they are never synchronised in either direction. See Integrations. Creating a new patient at the PMS is temporarily disabled until provider outcomes can be durably reconciled, so a PMS-backed booking can complete only for a CRM patient already linked to that PMS. Link existing patients from their CRM record first. Provider appointment creation is stored before it is sent and recovered by a stable appointment UID. A paid hold is never finalized locally until the provider appointment is confirmed; an ambiguous response stays pending for reconciliation instead of being submitted a second time.

On this page