Freeze the promise. Record what “book,” “schedule,” “request,” and each displayed slot mean operationally. A requested window is not a confirmed appointment unless dispatch treats it that way.
Build task scenarios. Test an active leak, routine repair, high-value estimate, out-of-area address, after-hours request, returning customer, and customer who cannot finish the form.
Use realistic devices and states. Run the flow on a narrow phone, keyboard-only desktop, slow connection, validation error, unavailable slot, expired session, vendor outage, and duplicate tap.
Verify the handoff. With owner approval and synthetic test data, reconcile the browser success state with the scheduling or CRM record, notification, assigned queue, timezone, source, and consent.
Inspect acquisition routes. Check every homepage, service-page, ad, email, and Google Business Profile booking link. Google permits appointment links, but the destination and operational promise still need to match.
Release with a rollback. Preserve phone fallback, tracking, privacy text, field mapping, canonical tags, and confirmation behavior; then retest both successful and failed submissions after deployment.