SpolettaDocs

Running and debugging

Running a flow

A run is one execution of a flow. Start one by hand or let a schedule start it, then watch it on the board: each process lights up as it runs, each object as it is generated, and every step keeps what it did.

Starting a run

  1. Connect the start

    The round play button at the right of the toolbar, Run flow, stays disabled until the Start node points at a process. Its tooltip then reads Connect the start node to a process first.

  2. Press Run

    A run always runs the whole flow, from the start. If the board changed since its last saved version, starting a run saves a new version first, so every run knows exactly which board it ran.

  3. Watch it on the board

    The new run opens on the board, which turns read-only and shows the run's version. A banner says Run #12 is running on version 7. Press Back to the board to return to editing while the run goes on.

Reading the board during a run

The open run refreshes every second and a half. Each process card takes the colour of its step, and its subtitle says the status in words:

RunningThe step is going; the card pulses.
DoneIt succeeded and handed in its output.
FailedIt failed after any retries.
SkippedIts condition didn’t hold, or it could get nothing.
Already processedIt generated a unique value another run stored.
Waiting for a personA human step waits for a decision; it pulses.

Objects turn green as they are generated, with the subtitle Generated, or In state approved when they are in a state, and that state's pill is highlighted. Hover an object to see what it holds. Double-click a process or object to focus the run panel on it.

The run panel

The panel beside the board tells the run's story, top to bottom:

  • Run #N and its status, and where it came from: The run of X in run #P for a run of a procedure or recorded flow process, A re-run of run #R from X for a re-run.
  • Started … by …, took …; its agents used …: who started it, how long it took, and the tokens and cost its agents used.
  • Stop run, while it is going.
  • Its steps, in order. Each folds open; a step that is done starts folded. What a step shows is covered in Debugging a run.

Stopping

ButtonWhat it stops
Stop runThe whole run: steps still going are cancelled, and the run ends interrupted.
Stop stepOne agent, script or Sentry step. That step fails and its branch ends, while the rest of the run goes on. A stopped step is not retried, and no failure handler takes it.

While a run is shown, the button on a running card is a Stop button too.

How a run ends

StatusMeans
RunningSomething is still going, or a person has yet to decide.
DoneNothing is left to run, and no failure went unhandled.
FailedSome branch failed and no failure handler took it.
InterruptedA person stopped it, or the server restarted while it ran.
TerminatedA step generated a unique value another run already stored, a duplicate. Reviews still waiting end undecided. See Stored objects.

Past runs and their data

The Runs group in the sidebar lists the flow's runs, newest first: Run #N with its status, its version, when it started and how long it took, and a clock for one a schedule started. Nested under a run are the runs of its recorded flow processes (one per list item) and its re-runs. Click one to open it on the board. A flow that never ran says No runs yet. Press play to run the flow.

Data in the toolbar opens a table of every run, one row each: the run, its status, when it started, the item it worked on, and a group of columns per object with its state and each field. Pick the columns with Columns. Click a cell to see it in full, or Show the whole object. Values a run was given rather than generated, such as the item a run of a recording flow process worked on, are styled apart: It was given to the run.

Searching and sorting the data

The query bar at the top of the Data page searches the runs the way Datadog's log explorer searches logs. The search runs on the server over every stored run, up to 20 000, not only the 200 the table shows. The footer says how many match, such as 12 of 340 runs match, and says when the 20 000 limit was reached. A shared struct's Records page is searched the same way.

As you type, the bar colours the query and underlines a key that doesn't exist. It suggests keys, then their values with how many rows have each; pick one with Tab or ↓. A row has to match every term, and matching ignores case.

QueryFinds the rows
timeout, "in sync"With a value holding the text, or the phrase
status:failedWhose value for a key is that
-status:done, NOT status:doneThat don't match
status:(failed OR interrupted), a OR bThat match either; brackets group terms
title:*crash*Matching a wildcard: * stands for any text
@Invoice.amount:>100, :<=5, :[10 TO 20]With a number above, at most, or between
started:>now-1d, started:2026-10-16From a time: now-15m, now-4h, now-7d, or a date
@Bug.owner:*, [email protected]:*With any value for the key, or with none

The table's own columns are keys as they are: run, status, started, started_by, item and parent on the Data page, and id, state, updated and run on the Records page. An object's fields take an @ and the object's name: @Invoice.amount, @Invoice.state, or @Invoice for an object without fields. The @ can be left out, and so can the object: title finds @Bug.title. Spaces in names become underscores, as in @Exception_Details.subject.

  • Facets. Facets shows a panel on the left listing each column's values with how many rows have each. Tick values to include them, click a value's name to show only it, or tick no value. The other values keep their counts while one is ticked. A facet whose values are mostly all different starts folded. Values over 200 characters, such as an agent's long write-up, aren't listed, but searching for their text finds them.
  • Time range. The menu beside the query bar, from Any time to Past 30 days, writes started:>now-… into the query, or updated:>now-… on the Records page.
  • Sorting. Click a column's name to sort by it one way, again for the other way, and a third time to stop. Times sort newest first on the first click. Columns you've hidden can still be searched and sorted by.
  • From a cell. Click a short value in a cell for Show only these and Leave these out, which add it to the query.
  • Links. The query and the sort are kept in the page's address, as ?q=…&sort=…, so a link opens the same view. The page also remembers each flow's last search.
Spoletta · spoletta.comBusiness processes, drawn and run.