Skip to content
ZenOptix

Two lines of code

Take bookings from
your own website

Paste the ZenOptix booking widget into your practice website and visitors can request an appointment from the times you can actually work. Every request comes to your team to accept, so new patients arrive without your diary being opened to the internet.

No web developer needed Requests, not instant bookings Included with ZenOptix

What is the ZenOptix website booking widget?

The ZenOptix website booking widget is an embeddable appointment request form for an optical practice's own website. A practice owner copies two lines of code from ZenOptix and pastes them into their site. Visitors choose a branch, an appointment type, a day and a time from the next two weeks, then leave a first name, last name and phone number. It creates a request rather than a confirmed booking: the request arrives in ZenOptix straight away, and the practice accepts it or phones the person to arrange another time.

Patient portal Appointments & diary Rota & capacity

Installation

This is the whole installation

Two lines, pasted where you want the widget to appear. There is no plugin to maintain, no separate booking website to keep in step with your practice, and nothing for a developer to build.
  • Works on WordPress, Wix, Squarespace or a custom-built site
  • Sits wherever you paste it and fits the space it is given
  • Takes your website's own fonts, so it does not look bolted on
  • Isolated from your site's styles, so neither design can break the other

Your embed code

Copied from ZenOptix
<div id="zenoptix-booking"></div>
<script src="https://app.zenoptix.co.uk/api/widget/booking.js" data-key="zw_…" async></script>

The key in data-key identifies your practice. Issue a new one at any time and every old copy of the embed stops working.

How it works

A request, not a booking your team never agreed to

The widget never writes an appointment into your diary on its own. Someone at the practice always decides.
  1. 01

    A visitor asks

    They pick a branch, appointment type, day and time from your real availability, and leave a name and phone number.

  2. 02

    You know immediately

    The request lands in the Website Booking Requests queue, with a dashboard prompt and a notification for your staff.

  3. 03

    Your team accepts

    Accepting creates or matches the patient record and books the appointment, all inside ZenOptix.

  4. 04

    Or you call them

    If the time no longer works, phone the person and arrange another. Nothing was promised on your behalf.

Worth being clear: the widget sends an appointment request. It does not confirm the appointment to the visitor, and it cannot book into your diary without a member of your team accepting it.

Real availability

It offers what you can actually work

The widget runs on the same booking engine as the patient portal, so it inherits everything you have already set up. There is no second diary to maintain and no risk of a website offering a slot the practice cannot staff.

Opening hours and capacity

Only the times your branch is open and has room to see someone.

Clinician cover

Coverage rules apply, so an uncovered slot is never offered to a visitor.

Bank holidays and closures

Practice closures and GOV.UK bank holidays gate the widget automatically.

Branch choice

Multi-branch practices let visitors pick the branch; single-branch practices never see the step.

The next two weeks are shown, and the same rules that protect your rota and capacity protect the widget.

Your brand

The same widget, on two different practice websites

You set the accent colour and corner style inside ZenOptix and every page updates automatically. The widget takes the fonts from the site it sits on, so it reads as part of your website rather than someone else's product.

Blue accent, rounded corners

Teal accent, square corners

Illustrations of how the widget could look on a practice website. On your own site it inherits your fonts and fills the space you give it.

Control

Yours to switch off, and protected while it is on

Putting a form on the public internet should come with a way to close it again, and with sensible defences in front of it.

Switch it off any time

Turned off, the widget shows your practice phone number instead of a form, so visitors still know how to reach you.

Issue a new key

A new key invalidates every old copy of the embed code, wherever it was pasted.

Bot and abuse protection

Rate limits, a honeypot field and phone number validation are built in.

Contact details do not linger

Contact details on old, settled requests are removed automatically.

Why it earns its place

New patients, without opening the diary to the internet

New patient acquisition

Someone who finds your website at 9pm can ask for an appointment there and then, instead of deciding to ring tomorrow and forgetting.

Requests arrive overnight

Your team starts the day with requests already waiting rather than a queue of voicemails.

Fewer phone calls

The routine "when can I come in?" call becomes a request your team accepts in a couple of clicks.

You stay in control

A human accepts every request, so nothing reaches your diary that your practice did not agree to.

No second website

No separate booking site to buy, brand and keep in step with your practice details.

No extra cost

The booking widget is part of ZenOptix, not an add-on with its own fee.

FAQ

Booking widget questions, answered

No. You copy two lines of code from ZenOptix and paste them into your website where you want the widget to appear. It works on WordPress, Wix, Squarespace or a site a developer built for you. If you do have a developer, there is nothing further for them to do.

No, and that is deliberate. The widget creates a request, not a confirmed booking. The request appears in ZenOptix immediately, in a Website Booking Requests queue with a dashboard prompt and a staff notification. Your team accepts it, which creates or matches the patient record and books the appointment, or phones the person to arrange a different time.

Yes. The widget uses the same booking engine as the patient portal, so your opening hours, capacity, clinician cover, bank holidays and practice closures all apply automatically. Visitors cannot request a time you could never work.

It takes your website's own fonts and fits whatever space you give it, and you set the colours and corner style inside ZenOptix. Changes apply to every page automatically. The widget is isolated from your site's styles using Shadow DOM, so it cannot break your design and your design cannot break it.

A first name, last name and phone number, along with the branch (for multi-branch practices), appointment type, day and time they have chosen. Nothing more is asked for at the request stage.

Yes, at any time. When switched off, the widget shows your practice phone number instead of a form, so visitors who reach the page still know how to contact you. You can also issue a new key, which invalidates every old copy of the embed code.

Rate limits, a honeypot field and phone number validation are built in. Contact details on old, settled requests are removed automatically, so the queue does not become a store of personal data.

No. It is part of ZenOptix rather than a separate booking website product or an add-on with its own fee.

Already booked patients have the patient portal for their own appointments, prescriptions and details. The booking widget is for the people who have not walked through your door yet.

See it in your practice

Put your practice website to work

Book a demo and we will show you the widget, the request queue your team accepts from, and the settings that keep it yours.