Saving one
Press Save as test on a finished run. What gets saved is what actually worked:- An Enter key the page ignored, recovered by clicking the field’s own submit button, saves as that click.
- A typed value a combobox committed as a selection saves as the selection.
- A click skipped because the page was already there saves as nothing at all.
- Coverage-gap placeholders are stripped.
Running one
Each of those accepts an environment and a base-URL
override, so the same procedure can run against staging, production, or a PR
preview.
Login and auth mode
Every procedure has an auth mode that decides how its browser starts.
New procedures get a conservative guess from their name and steps; change it in
the saved-tests panel if the guess is wrong.
Capturing a login state
Mark a sign-in procedure as the project’s login-setup test. When it passes, the browser’s storage state is captured, encrypted and stored on the project. Every later run that reuses login state starts already signed in. Re-run the login-setup procedure whenever the session expires.Exporting
GET /api/procedures/{id}/export returns the procedure as a standalone
Playwright spec, useful for taking a flow into your own repository, or for
seeing exactly what a step does.
Maintenance
A procedure is only as good as the page it was recorded against. When a redesign moves things:- The flakiness dashboard on the project overview sorts your tests worst-first, so the ones drifting show up before they fail outright.
- A failed replay is attributed:
testmeans the step no longer matches the page,appmeans the site is genuinely broken. - Re-record by describing the flow in chat again and saving the new run.

