Online bookings
How to add Cliniko online bookings to a Wix website
Paste Cliniko's embed code into Wix's Custom Embeds > Embed a Widget panel. Wix's HTML and URL elements are iframes with a fixed pixel height, set separately for desktop and mobile, so resize both. Tracking is partial: install Cliniko's GTM container through Wix's Marketing Integrations, not its Custom Code tool, which Wix says pixels do not run through reliably.
Last checked 25 Sep 2026 against the sources listed at the end of this page.
- Method
- Custom Embeds > Embed a Widget (Cliniko's code inside a Wix iframe), or a button linking to the Cliniko hosted booking page
- On mobile
- Wix treats desktop and mobile embeds as two separate objects with their own fixed height, so a booking flow that fits on desktop can still be cramped or scrolled inside a scrolled page on mobile until you resize the mobile view on its own. If the clinic runs paid ads, a full width Book now button that opens the Cliniko hosted page is a reasonable default for mobile, since it sidesteps the resize fiddling and keeps the referral source without any workaround script.
- Can you track bookings?
- Partly. Booking pages inside the Wix embed still run on Cliniko's own domain, so the same iframe limit applies: Cliniko says embedded bookings report as Direct because referral data cannot cross into the iframe, and it blocks third party code inside its booking pages. On the Wix side, Google Tag Manager has to go in through Marketing Integrations. Wix's own help centre says tracking scripts such as Google Analytics, Google Tag Manager and Facebook or TikTok pixels do not work through its general Custom Code tool, so that tool is only for the small listener script, not the tag manager itself.
Add Cliniko bookings to Wix
- In Cliniko, sign in as an Administrator and go to Settings > Online bookings. Confirm bookings are switched on for the business, practitioners and appointment types you want patients to see.
- Still in Cliniko, under Code to embed in your website, click Copy code. If you only want a filtered page, for example one appointment type, use the Bookings URL builder on the same screen first and copy the filtered code instead.
- In the Wix Editor, click Add on the left panel, choose Embed, then Custom Embeds, then Embed a Widget.
- Click Enter Code, paste the Cliniko code into the HTML Settings box, and click Update.
- Wix's HTML and URL elements are iframes with a fixed pixel height, and embedded content is not responsive even when the source page is. Drag the embed box taller than Cliniko's booking flow, or set width and height to 100 percent in the Settings panel, so patients are not scrolling inside a small window inside your page.
- Switch to mobile view in the editor and resize the embed again. Wix sizes and positions the desktop and mobile versions of an embed separately, so a fix on one view does not carry to the other.
- Publish the site, then make a real test booking on a phone and a desktop.
Track the bookings
- Create a Google Tag Manager web container and a GA4 property if you do not already have them, and note your GA4 Measurement ID from Admin > Property > Data Streams.
- Paste the GTM container ID into Cliniko under Settings > Online bookings and save. Cliniko lists Google Analytics 4, Google Ads, Meta Pixel, AdRoll Smart Pixel and Bing Ads UET as the tag types it supports there.
- In Wix, go to Marketing & SEO > Marketing Integrations and connect Google Tag Manager with the same container ID, rather than pasting it as Custom Code. In that container, add a Google tag using your Measurement ID on All Pages, and a GA4 Event tag on a Page View trigger where Page Path contains bookings/confirmation. This is the basic count, it will not carry the referral source through an embed.
- To keep the source, add Cliniko's postMessage listener as Wix Custom Code instead: Settings > Custom Code > Add Custom Code, paste the script, set placement to Body - end, scope it to This page only (your booking page), and load it on each page the visitor opens so the listener is attached every time the page loads.
- Back in the GTM container, add a Custom Event trigger named clinikoBookingCompleted and a GA4 Event tag that fires on it. Use only one of the two GA4 events (the path trigger or the custom event) as your conversion, not both.
- In GA4, mark the event as a key event. In Google Ads, go to Goals, create a conversion action, choose Import, then Google Analytics 4 properties, and select it. You need at least Marketer access in Google Ads.
- Book a real test appointment from a tagged link, confirm it in GA4 DebugView with that source attached, then cancel the test in Cliniko.
Wix puts the booking flow inside a fixed size box
Wix's Embed a Widget option, reached through Add > Embed > Custom Embeds, drops Cliniko's code into what Wix's own help centre calls an HTML or URL element, and says plainly these are iframes. That matters for two reasons. First, an iframe on Wix keeps whatever width and height you set on the embed box itself, it does not grow or shrink to match how tall Cliniko's booking screens turn out to be, so the default box is often too short once a patient reaches the calendar or the confirmation step.
Second, Wix warns that content inside these elements is not responsive even if it is originally, which is exactly the case here since Cliniko's own booking pages do adapt to their container. The practical fix is to set the embed's width and height to 100 percent rather than leaving it at whatever pixel size Wix picked when you pasted the code, and to check the result on both the desktop and mobile views in the editor, since Wix stores their sizes separately.
Only HTTPS content will display in a Wix embed, which Cliniko's booking pages already are, so that part needs no attention.
Google Tag Manager goes in through Marketing Integrations, not Custom Code
Every Cliniko online bookings tracking setup starts the same way regardless of builder: a Google Tag Manager container ID pasted into Cliniko under Settings > Online bookings. What changes on Wix is how that container gets onto the website side. Wix's help centre is specific that tracking scripts such as Google Analytics, Google Tag Manager and the Facebook or TikTok pixels are not meant to run through its general Custom Code panel, and directs you to Marketing & SEO > Marketing Integrations instead.
Once the container is connected on both sides, the same limit as any embed applies. Cliniko's booking pages are served from Cliniko's own domain, so referral information from the Wix page does not pass into the iframe, and Cliniko itself says embedded bookings report as Direct traffic. Its booking pages also block third party code, including the Custom HTML tag type in Google Tag Manager, for patient security.
Where the workaround script belongs on a Wix site
Cliniko publishes a small script that listens for a message the iframe sends when a booking is confirmed, containing the text cliniko-bookings-page:confirmed, and pushes a dataLayer event so Google Analytics still has the original session source. That script is not a tracking pixel itself, it is a page level listener, so it does belong in Wix's Custom Code tool rather than Marketing Integrations.
Add it under Settings > Custom Code, place it at Body - end, scope it to the booking page only, and set it to load on each page the visitor opens rather than once per visit, since the listener needs to be present every time that page loads. Cliniko is upfront that this workaround can be hit and miss depending on the implementation and that it will not troubleshoot it, so test it after any change to the page or the embed, and fall back to a button linking to the hosted booking page if it proves unreliable.
Sources
- In the Wix Editor, embedding Cliniko's booking widget uses Add > Embed > Custom Embeds > Embed a Widget, where you click Enter Code and paste the code copied from Cliniko, then preview the desktop and mobile views before publishing. Cliniko Help, checked 25 Sep 2026.
- Wix's HTML and URL elements are iframes. Only HTTPS content displays, some external sites block embedding, embedded content is not responsive even if it originally is, and Wix does not troubleshoot third party code. Wix Help Center, checked 25 Sep 2026.
- Custom Code in Wix can be placed in the head, body start or body end, applied to all pages or specific pages, and loaded once per visit or on each page opened. Tracking scripts such as Google Analytics, Google Tag Manager and Facebook or TikTok pixels do not work through Custom Code and require Marketing Integrations instead. Wix Help Center, checked 25 Sep 2026.
- The GTM container ID is entered in Cliniko under Settings > Online bookings. Supported tags include Google Analytics 4, Google Ads, Meta Pixel, AdRoll and Bing Ads UET. Cliniko Help, checked 25 Sep 2026.
- Due to iframe limitations, referral data is not passed from the website to the embedded booking iframe, iframes do not support cross domain tracking, embedded bookings report as Direct or from the parent website, and Cliniko blocks third party code including the Custom HTML tag type in its booking pages. Cliniko Help, checked 25 Sep 2026.
- Cliniko's workaround script listens on the parent page for a message containing cliniko-bookings-page:confirmed and pushes a clinikoBookingCompleted event to the dataLayer. Cliniko says it can be hit and miss and that it cannot offer troubleshooting support for it. Cliniko Help, checked 25 Sep 2026.