Venue & Settings
Quick Book Links
Last updated 19 May 2026
Quick Book Links
Deep-link customers into the booking flow with pre-filled service, staff, date, and time via URL parameters. Skip booking-wizard steps for marketing campaigns, QR codes, AI auto-responder replies, share-an-opening, and waitlist offers.
Where to find it — Auto-generated: by AI booking enquiry, share buttons, waitlist offer flows. Manual: build your own URL with the parameters below.
TL;DR
- Four URL parameters:
date,time,serviceId,staffId. - Every combination is valid; missing values fall back to standard booking flow.
- Auto-used by AI booking enquiry replies, waitlist offer SMS, share-an-opening flows.
- Public — no auth required. Tied to existing storefront validation.
- All plans. Free.
URL shape
https://your-slug.openchairpro.com?date=2026-06-15&time=14:00&serviceId={uuid}&staffId={uuid}
On a custom domain:
https://salonsmith.com?date=2026-06-15&time=14:00&serviceId={uuid}&staffId={uuid}
The storefront page reads the parameters and:
- Pre-fills the booking wizard with the relevant selections
- Skips picker steps for any fields you've passed
- Falls through to the standard flow for any fields you haven't
The 4 parameters
| Parameter | Format | What it does |
|---|---|---|
date |
YYYY-MM-DD |
Pre-fills the booking date. Silently dropped if in the past. |
time |
HH:mm (24-hour) |
Pre-highlights this slot on the time picker. |
serviceId |
UUID | Pre-selects the service; customer skips the service-picker step. |
staffId |
UUID | Pre-selects the staff member; customer skips the staff-picker step. |
All four are optional. Examples:
?serviceId=... → service pre-selected; customer picks staff and time
?staffId=...&date=2026-06-15 → staff pre-selected for this date; customer picks service and time
?date=2026-06-15&time=14:00 → customer lands on 2pm; picks service and staff
?serviceId=...&staffId=...&date=...&time=... → fully pre-filled; customer lands at confirmation
Where Quick Book Links are auto-used
| Surface | Auto-builds Quick Book URLs |
|---|---|
| AI Booking Enquiry Auto-Responder | Yes — extracts intent from the customer's SMS/email and replies with a pre-filled link |
| Waitlist offer SMS | Yes — offers a specific opening with the slot pre-filled |
| Share-an-opening from calendar day view | Yes — operator taps share, picks the gap, gets a pre-filled link to send |
| Booking detail share button (mobile) | Yes — same mechanic |
| Flash Deals | No — flash deals use a separate /deal/{token} route with stricter single-use semantics |
Building your own
You can construct Quick Book URLs manually for any external use:
- Instagram bio link: a
serviceIdpre-fill for your most-popular service so taps land at staff selection - Email campaigns: include a Quick Book Link in a "Book now" CTA — the customer skips service selection
- QR codes: print a code at your in-venue display that pre-fills a specific package
- Partner sites: if you have a referral relationship, partners can share a Quick Book URL specific to their referral service
Getting the IDs
- Service ID: from the URL when editing a service (
/app/{slug}/services/{serviceId}) - Staff ID: from the URL when editing a staff member (
/app/{slug}/team/{staffId}) - Customer-facing handle URLs for staff:
/your-slug/team/{handle}resolves the handle to a staff ID; pass the ID in Quick Book
If you don't know the IDs and just want a single-service deep-link, the easier path is the embed widget — but Quick Book Links are simpler for one-off shares.
Share helpers
Two built-in helpers produce share-ready text with the Quick Book URL embedded:
| Helper | What it produces |
|---|---|
| Share an opening | "I have an opening at 10:00 AM on Fri 16 May with Sarah — book here: {url}" |
| Flash deal share | Adds the discount tag and venue name |
Used by the waitlist entry detail (share button) and the calendar day-view share-opening action.
Validation behaviour
Parameters fail silently when invalid — the customer just sees the storefront's standard booking flow. No error pages, no broken state:
- Past
date→ dropped - Bad
dateformat → dropped - Bad
timeregex → dropped - Unknown
serviceId→ dropped (storefront's service list still loads) - Unknown or inactive
staffId→ dropped (storefront's staff list still loads) staffIdthat doesn't perform theserviceId→ both pass through; the storefront's standard validation surfaces the issue at the staff picker
The "skip a step" optimisation only kicks in when the IDs validate. Otherwise the standard flow handles it gracefully.
Mobile and embed compatibility
Quick Book Links work the same in:
- The standard storefront on
openchairpro.com/{slug}and custom domains - The embed widget (
/embed/{slug}/booking?serviceId=...) - Quick Book Links opened from mobile devices — the storefront is responsive
The booking wizard reads the parameters on any surface.
Public-facing — no auth
Quick Book Links don't require any authentication. They're just deep-links into your public storefront — anyone with the URL can use them. The customer experience is identical to typing in your storefront URL directly, just with steps pre-filled.
Tier
All plans. Free. No setup or configuration required.
Tracking conversions from Quick Book Links
If you have conversion tracking configured (GA4, Meta Pixel, GTM), conversions from Quick Book Links flow through the standard tracking pipeline. To track which campaigns drive which bookings, add UTM parameters to your Quick Book URL:
https://your-slug.openchairpro.com?serviceId=...&utm_source=instagram&utm_campaign=balayage_promo
UTM parameters are preserved through the booking flow and end up in GA4 / Meta event properties.
Common mistakes
| Problem | What to check |
|---|---|
| Quick Book URL lands at the wrong page | Confirm the slug is correct in your URL. openchairpro.com/salon-smith vs salonsmith.com (custom domain) are different. |
| Service or staff pre-fill didn't work | Confirm the IDs are current. If you deleted and recreated a service, the old ID is invalid. |
| Customer says the time slot wasn't available | Past or already-booked slots silently fall through to the standard flow. The customer picks a new time on the time-picker step. |
| Want a public-friendly URL with names instead of UUIDs | Not supported on Quick Book — UUIDs are the canonical IDs. The staff vanity handle URLs work for staff profiles only. |
| Embed widget doesn't pre-fill | Embed has its own URL — pass parameters to /embed/{slug}/booking?serviceId=..., not to your main storefront URL. |
FAQ
What's a Quick Book Link?
Your storefront URL with extra query parameters that pre-fill the booking wizard. Pass any combination of date, time, service, and staff to skip the picker steps. Example: yourvenue.openchairpro.com?serviceId=...&staffId=...&date=2026-06-15&time=14:00.
Where do these get used in practice?
AI booking enquiry replies (the Quick Book URL in the SMS reply), waitlist offers (share-this-opening flow), share buttons on the booking detail, marketing campaigns, Instagram bio links pre-filled to a specific service, and QR codes printed for in-venue promo.
What URL parameters are supported?
Four: date (YYYY-MM-DD), time (HH:mm, 24-hour), serviceId (UUID), staffId (UUID). Every combination is valid — pass one, pass all four, or anything in between. Invalid or past values are silently dropped.
Do I need to do anything to enable them?
No. Quick Book Links are part of every venue's storefront automatically. Just append the parameters to your storefront URL and share.
Can I shorten the URL?
Use any URL shortener (bit.ly, opnchr.com if you control it for marketing, your own short-domain). The expanded URL still needs to land on your storefront with the parameters intact.
Will the customer be able to change the pre-filled selections?
Yes — pre-fills are not locks. The customer can pick a different service, staff, or time at any picker step. The pre-fill just skips the step if all values are valid.