What we walked into
Myo operates a multi-location physiotherapy and wellness brand across Canada and the US. Bookings run through a Next.js widget embedded as an iframe on their Webflow site, connected to the Boulevard platform.
Every visitor hit the same selection flow no matter where they came from. Someone clicking Book Now on a clinician profile page still had to manually pick their location, browse service categories, and find that clinician again before they could choose a time. Unwanted steps on every single visit.
The widget also had deeper problems; Data-flow wipes in the booking process. Unauthenticated users were met with login walls causing drop-offs. Infrastructural operative tasks that needed oversight with technologies for maintenance and analysis.
The booking experience was losing people before they reached a time slot.
How we fixed it
We built URL-driven prefill across all three dimensions of the booking flow so any Book Now button on the Myo site can land a user directly on date and time selection with location, service, and clinician already set.
Location prefill reads the locationId parameter, matches it against Boulevard's location data handling both full URN format and bare UUIDs, creates the cart, and bypasses the location screen entirely. Service prefill saves the serviceId into Zustand before any navigation happens, since Next.js clears URL parameters on redirect. A persistent component mounted in the app header then watches for cart readiness and calls the Boulevard addCartSelectedBookableItem mutation once all conditions are met. Clinician prefill matches Boulevard's compound staffVariantId format against the bare UUID from Webflow and pre-selects the dropdown before the user interacts with anything.
Two race conditions were tracked down and resolved. The cart creation mutation was redirecting before service prefill could act, and updateCartId was spreading initial state on every call, quietly resetting prefill IDs each time. Both were fixed so prefill state survives cart initialisation cleanly.
Authentication was pushed to the last possible moment. Users can now browse all the way to date and time selection without being asked to log in. Passwordless OTP only triggers once a time slot is held. Myo improved access controls to backend infrastructure . A three-environment pipeline was configured across dev, staging, and production with automated Vercel hosting. Automated tests were written covering all new prefill logic and passed on handover.
Every project we take on leaves the client with something more valuable than a deliverable: a system that actually works.
