What Fresha gives you
Fresha's online booking is a hosted page at your Fresha address, branded with your logo, colours and photos, showing live availability for every service and team member. Fresha provides a "Book now" button snippet for websites and direct links that open the booking flow on a specific service or team member. Confirmations, reminders, card capture and the client record all live in Fresha.
Fresha does not primarily offer a full iframe widget for embedding the whole flow. That is good for your site's speed: a well-built hosted page reached by a link costs your pages nothing.
The rule
Nothing from Fresha loads on any page until the client wants to book. A Book button is a link; the flow opens when it is tapped. No script on the home page, no widget on the service pages.
Option A: link everywhere (recommended)
Every Book button on the site is a link to your Fresha booking URL, with the service or team member pre-selected where the page implies it.
- In Fresha, open Online booking (under Marketing or Settings depending on version) and copy your booking link.
- From the same area, copy the direct links for each service and each team member, or note the URL pattern Fresha uses so the site's template can build them from IDs.
- Store each service's and stylist's Fresha ID as a field on their record; the template builds the Book link.
- Header Book button: the general booking link. Service pages: the service link. Stylist profiles: the stylist link. Gallery images: service (and stylist if supported) links.
- Add
rel="noopener"; open in the same tab on phones. - Fire a
booking_clickanalytics event on tap, with the page and pre-selection as parameters.
Zero performance cost. The only speed that matters is Fresha's page, which is Fresha's job and is fast.
Option B: a dedicated booking page with the button embed
If the salon wants a booking page on its own domain, /book holds Fresha's "Book now" button snippet (which is a small script that opens Fresha's flow), a row of stylist faces with their direct links, prices, and the phone number. Every other page links to /book or straight to Fresha with parameters.
Keep /book fast: the snippet only, no gallery, preconnect to Fresha's domain in the head. Do not put the snippet on every page.
Deep links per stylist and service
The reason to do this properly: a client on Sam's profile taps Book and sees Sam's diary; a client on the balayage page taps Book and sees balayage availability. Fresha's direct links handle both. Store the IDs as fields so a new stylist's links are correct the moment the manager pastes their ID.
Most Fresha salons' clients arrive from Instagram. Two things:
- The Instagram bio link goes to
/bookor straight to your Fresha booking link, tagged?utm_source=instagram&utm_medium=bio, not to the home page. - Instagram's Book action button connects to Fresha directly (Fresha is a supported partner in most regions), giving a second, tap-saving path.
Test the whole path inside Instagram's in-app browser on a phone, from bio link to confirmation. Fresha's hosted page handles in-app browsers well, which is another reason to prefer links over embeds.
Configure Fresha first
The links only work if Fresha is set up to receive them:
- Services with durations, prices (and tier pricing per team member if used), marked bookable online.
- Team members with their services and online hours.
- New client registration with minimal fields.
- Card capture or deposits per your policy, with the policy wording.
- SMS and email confirmations and reminders in your voice.
- Waitlist on, so a full stylist still captures the client.
Book a test as a client on a phone before wiring the site.
Tracking
booking_clickon every Book button with page, service and stylist parameters.- UTM tags on every external link into the site (Instagram, Google Business Profile, stories).
- Fresha's reports for completed online bookings by client source; compare monthly with clicks.
- Clients who arrive via your own site's links are your clients in Fresha's terms; watch the split between those and marketplace-sourced bookings, because it is the number that tells you the website is doing its job.
Monthly
From the home page, a service page, a stylist profile and the Instagram bio, on a phone: tap Book, complete a booking, cancel it. Fresha updates its booking flow; find out before a client does.
Common mistakes
- The bio link to the home page.
- Book buttons without service or stylist pre-selection.
- IDs hand-pasted into pages rather than stored as fields, so they rot when staff change.
- Any Fresha script on every page.
- Tier pricing on Fresha not reflected on the site's prices.
Where this sits
Fresha is the platform we integrate into salon websites most often, and the setup above, links with parameters built from ID fields, a light dedicated page if wanted, Instagram tested and every button tracked, is the version that keeps the site fast and the client relationship on your own domain. Fresha runs the diary; the website gets every visitor to it in one tap.