Concepts
Guides
A guide is an ordered set of steps with a trigger, targeting rules and a look.
A guide walks a user through one task, such as creating their first invoice. It has:
| Part | What it is |
|---|---|
| ID | A lowercase id like create-first-invoice. Developers use it with playstep.start(), and analytics use it. |
| Steps | 1 to 20 steps, shown one at a time in a compact step strip. |
| Trigger | When it starts: first visit, a page or screen, one of your events, or manually. See triggers. |
| Targeting | Which platforms, and which users by their traits. |
| Theme | An accent colour, where anchorless cards sit, and light or dark. |
| Launcher | Whether it is listed in the "?" launcher so people can replay it. |
What the user sees
- A guide starts from its trigger.
- The first step's clip plays muted and loops, and the step's element is spotlighted.
- When the user does the step, it checks itself off and the next clip plays.
- Finishing shows a short celebration.
A user can close a guide at any time. Guides with once: true triggers do not start again for that user, but they can replay any guide from the launcher.
Status
In the dashboard a guide is a draft until you publish it. Published guides are live in the environments you published to, and can be paused everywhere at once. Every publish saves an immutable version you can roll back to.
The guide spec
Published guides are JSON documents validated against the guide spec. You can keep guides in your repository and publish them from CI with the server API:
JSON
{
"spec_version": 1,
"id": "create-first-invoice",
"version": 1,
"trigger": { "type": "event", "name": "invoice_page_opened", "once": true },
"targeting": { "platforms": ["web", "flutter"], "segments": [] },
"steps": [
{
"id": "tap-new",
"anchor": "new-invoice-btn",
"title": { "en": "Tap New" },
"body": { "en": "Start a new invoice from here." },
"clip": { "source": "hosted", "url": "https://clips.playstep.app/…/tap-new.mp4" },
"complete_on": { "type": "tap_anchor" }
}
]
}