One run, step by step
This is the demo workflow that ships with Ghost. Four steps: open a form, type a name, submit it, confirm it went through. The third step is the interesting one.
An illustration of the bundled demo workflow, not a recording of a live run.
- 1
Open order form
navigate0.8sOpened the order page in a real Chrome browser.
- 2
Enter customer name
fill0.2sTyped "Ada Lovelace" into the Full name box — found by its label, not its position on screen.
- 3
Submit order
clickClicking this actually places the order, so Ghost stopped. It will not click until a person approves.
The run stops hereNothing has been submitted. The browser is sitting on the form with the name filled in, and Ghost is waiting. It will wait indefinitely — there is no timeout that lets it proceed on its own.
Whoever approves sees the step, the screenshot, and what the click will do. If the workflow is set to require a second person, whoever started the run can’t be the one to approve it.
ApproveRejectRejecting stops the run. It is never restricted to a second person — anyone who can see a runaway run must be able to halt it. - 4
Confirm submission
verifyWill check the page really says "Order submitted". If it doesn't, the run is marked failed.
Once someone approves
It clicks Submit
Only now, and only because a person clicked Approve. The approval is single-use and tied to this exact run and step — it can't be replayed against a different one.
It screenshots the result
The page as it looked immediately after the click, saved against this step so you can see what the browser saw.
It checks the page says "Order submitted"
If that text isn't there, the run is marked failed. Ghost doesn't report success just because the click didn't throw an error.
It writes the log entry
Run started, step finished, approval granted and by whom, run succeeded — each hashed together with the entry before it.
It stays reversible
If this order needed to be walked back, the reversal would be recorded as its own entry — the log never pretends the original didn't happen.
If something goes wrong
The button isn't there any more
The step fails and the run stops. Ghost looks for a button labelled "Submit order" — it does not click whatever now sits at those coordinates.
The worker crashes after clicking Submit
The order may or may not have gone through, and Ghost won't guess. The step is marked unknown, the run raises an incident, and a person decides whether to retry or skip.
The confirmation never appears
The check on step 4 fails, so the run is marked failed — even though every click succeeded. A run isn't finished until the outcome is confirmed.