Flows & Execution
Flows are compositions of registered nodes into executable workflows. Create them in the dashboard, trigger them via API, and observe every execution in production.
What is a Flow?
A flow is an ordered sequence of nodes that PipeKit executes on a target device. Flows are defined remotely in the dashboard and dispatched to connected devices over WebSocket.
Because flows reference pre-registered nodes by identifier, they cannot execute arbitrary code. The device only runs logic that was compiled into the application at build time.
Creating a Flow
Flows are created in the Flows section of the dashboard. Select nodes from your catalog, define execution order, and optionally provide default parameters for each step.
Flow structure
{"name": "maintenance-routine","steps": [{"node": "clear-cache","params": {}},{"node": "toggle-feature","params": { "name": "debug-overlay", "enabled": false }},{"node": "set-log-level","params": { "level": "warning" }}]}
Triggering Execution
Flows can be triggered from the dashboard UI. You specify which devices to target — a single device, a list of device IDs, or all connected devices.
Via Dashboard
Open a flow, select target devices, optionally override parameters, and click Execute. The execution status updates in real time as devices claim and complete nodes.
Execution Lifecycle
Each execution passes through a defined set of states. The dashboard exposes real-time status for every execution.
pendingExecution created and dispatched. Waiting for a device to claim it.
runningA device has claimed the execution and is running the flow steps sequentially.
completedAll nodes executed successfully. Results and logs are available.
failedOne or more nodes returned a failure. The error and partial results are recorded.
Execution Observability
Every execution is linked to the device's session telemetry. From the execution detail view in the dashboard, you can access:
Session Replay
Visual recording of device state at the time of execution.
Console Logs
Logs emitted during node execution, filterable by severity.
Network Requests
API calls made during execution with request/response detail.
Execution Log
Per-node timing, result data, and failure messages.
Versioning
Flows are versioned automatically. Each edit creates a new version. Executions are recorded against the flow version that was active at trigger time, so historical execution data always references the correct flow definition.
Best Practices
Start with single-node flows
Validate that individual nodes work correctly before composing multi-step flows.
Use environment scoping
Test flows against development devices before targeting production.
Provide default parameters
Set sensible defaults in the flow definition so operators can execute without manual input.
Monitor execution status
Use the dashboard or webhook callbacks to track execution outcomes at scale.
