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

json
{
"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.

pending

Execution created and dispatched. Waiting for a device to claim it.

running

A device has claimed the execution and is running the flow steps sequentially.

completed

All nodes executed successfully. Results and logs are available.

failed

One 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.

Next: Flags & @PipeFlag

Remotely controllable variables you can change from the dashboard.