Tour
Guided walkthroughs over the running app, written by each Module for its own screens and editable without a deploy.
Tour plays guided walkthroughs over the running app. A flow walks one job ("Take a booking") one
screen at a time, and each step spotlights one element on the page. Other Modules write the flows
for their own screens (Booking,
Customers, POS,
Staff and others), so a flow exists only while both Tour and the
Module it belongs to are on. Staff start flows from Guided tour in the admin's Help menu.
People with tour:manage can reword, hide and reorder steps, write their own flows and choose
where the launcher sits, from the running app and without a deploy. Tour has no flows of its own.
What it handles
- Only the flows a person can use. A flow for a screen a person's role can't open isn't listed for them, flows come in the language of the page, and a signed-in customer can't read the back office's tour. Tested: "Tour: flows"
- Edits that stay inside the app. An editor can reword a step in Thai without changing the
English, or hide a step and restore it later, and every edit is audited. A step address that
points off the app is refused, and staff without
tour:manageare refused every edit. Tested: "Tour: runtime edits" - Sample data for a demo. A flow can play on sample data. Starting it creates the data with a sample prefix on every name, and leaving removes exactly those rows. Two starts at once by one presenter make one set, a failed start cleans up after itself, only the presenter can remove their data, and a demo left open for 12 hours has its data removed on its own. Tested: "Tour: sample worlds"
- Broken flows caught before the app runs. A flow put in the wrong place in a Module, a step that points at something other than an anchor name, or sample data used off the flow's home screen fails when the app is composed instead of in front of staff. Tested: "Tour: flow slices"
What you build on top
- Flows for your screens. Add
data-touranchors to the elements a step points at, then a flow withtour.flowfrom your app or Module. Anchors are public: renaming one breaks every step that points at it. See your app'sAGENTS.md § "Guided tour"and Extend a Module. - Who may edit. Only Admin starts with
tour:manage. Every staff member can play flows. - In code. Your coding agent imports Tour only through its public API:
index.tsandserver/index.tsinapps/web/src/modules/tour/. See Build on a Module.
Limits
- A step can point only at an element with a
data-touranchor. Pick target refuses an element without one.
Facts
- Kind: feature Module, can be switched on and off
- Needs: Audit log, i18n, Identity, Infra, Standard UI
- Needed by: Nothing
- Adds to these when they're on: Nothing
- Added to by: Audit log, Booking, Customers, Finance, Guest ordering, Outbox, POS, Queue, Staff
- Off by default for these business types: none
Pages
| Where | Path |
|---|---|
| Admin | /admin/tour |
Permissions
Admin holds every key. The other roles listed hold it when the app first gets the Module; after that, roles are yours to change under Settings → Roles & Permissions.
| Permission | What it allows | Organization roles that start with it |
|---|---|---|
tour:manage | Edit the guided tour: reword, hide, reorder and retarget steps, author flows, and set each surface's launcher. | Admin |
Data
- Tables:
tour_override,tour_flow,tour_surface,tour_run
Slots
Places other Modules and your app code can add to. See Extend a Module.
tour.flow
Tested workflows
- Tour: flow slices
- Tour: flows
- Tour: runtime edits
- Tour: sample worlds