Running a Workflow
The Run button triggers workflow execution by sending a request to the backend Process Engine. Within milliseconds, the first node begins executing and status events start streaming to the canvas.
Clicking Run
In Execution Mode, the Run button (green play icon) appears in the Top Toolbar. Clicking it:
- Validates the workflow has a trigger node (client-side check)
- Opens the Run dialog (if the trigger is manual-trigger — allows entering trigger data)
- Calls
POST /api/v1/process-engine/execute - Receives
{ executionId } - Connects to SignalR for real-time updates
- All node statuses reset to "pending" and the Observer Panel opens on the Status tab
The Run Dialog
For manual-trigger workflows, a Run dialog appears before execution starts. It provides:
- Trigger Data — A JSON editor for providing the initial data that seeds
$json - Quick Templates — Pre-defined test datasets you can select with one click
- Previous Run Data — Reuse the trigger data from the last execution run
What Happens Backend-Side
Execution Record Created
A new execution record is written to the database with status Running. The ExecutionId is a GUID.
Graph Loaded
The Process Engine loads the workflow graph from the database and builds a topological execution order.
Trigger Node Executes
The trigger node executor runs first, setting up the initial ExecutionMemory with the provided trigger data.
Nodes Execute in Order
Each node executor runs in dependency order. Guard rails check before and after each node. SignalR events push status to all connected clients.
Run Button States
| State | Button Appearance | Meaning |
|---|---|---|
| Ready | Green play icon, "Run" | No active execution; ready to start |
| Starting | Spinner, "Starting..." | API call in flight; waiting for ExecutionId |
| Running | Run disabled; Pause and Cancel enabled | Execution active |
| Paused | Resume button shown; Cancel enabled | Execution suspended |
| Complete | Green play icon, "Run Again" | Previous execution ended; ready for a new run |