Marketing · Book appointment

Embeds the external appointment-booking tool, with the redirect URL assembled from the centre’s configuration.

AreaMarketing
Routesmarketing.book-appointment · marketing.book-appointment.index
Centre modulesmarketingBookAppointment
Staff levelsroot · admin · manager · crmmanager · weboperator · content_creator
Models—
UI labeltitle.header.book-appointment / menu.navbar.marketing.book-appointment
Coverage3 use cases · 1 happy · 3 failure

How it works

The controller builds the embed address from redirectBaseUrl + fetchExternalURL into bookingRedirectUrl, i.e. the URL is fetched rather than statically configured — which is why this embed has a real error message where the others do not. A matching booking_appointment MOF type exposes it as an app button, and that button type requires a linked activity (error.mof.campaign.required).

Use cases

Why someone opens this (3)

  • Letting customers book a slot for a service (e.g. a gift-wrapping desk or a kids’ workshop).
  • Staff checking or managing today’s bookings.
  • Surfacing booking from the app via a dedicated button.

Path map

flowchart LR
    F(["Book appointment"]):::feat
    F --> H1["Booking tool opened"]:::ok
    F -.-> X1["URL fetch fails"]:::bad
    F -.-> X2["Module disabled"]:::bad
    F -.-> X3["App button without an activity"]:::bad
    classDef feat fill:#b0432c,stroke:#b0432c,color:#ffffff,font-weight:bold
    classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e
    classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13

Happy paths

Booking tool opened

  1. Centre has the book-appointment module enabled.
  2. User opens Marketing → Book appointment.
  3. The redirect URL is fetched and resolved and the tool loads in the frame.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Booking tool opened
  • ⛔ URL fetch fails
  • ⛔ Module disabled
  • ⛔ App button without an activity

Implementation


Generated from doc/feature-inventory.json · id marketing-book-appointment · commit 276788ca6