Linking to the hosted page
When you do not need the flow inside your own page, link straight to it.
Every organisation has a booking page at their slug:
https://book.ops25.com/harbour
That page is the full flow, branded with the organisation's logo and colour, and it is the same flow the widget embeds. Linking to it takes no integration at all — no script, no CSP change, no origin allowlisting.
When to link rather than embed
- The organisation wants one canonical booking URL to put in ads, invoices and email signatures.
- Your site's layout is hostile to iframes — heavy sticky headers, scroll hijacking, fixed heights.
- You want the shortest possible path to live.
Embed instead when the booking step should feel part of your own page, and you care about visitors never leaving it.
Campaign parameters
Query parameters you add to the link are preserved through the flow, so the usual UTM tags work:
https://book.ops25.com/harbour?utm_source=google&utm_medium=cpc&utm_campaign=spring
A bare origin is not a booking page
https://book.ops25.com with no slug returns 404 by design — no slug names no organisation, and
redirecting to an arbitrary one would be worse than an honest miss. Always link to the slug.