An example workflow
Four steps: canaries on fast connections first, then cellular canaries, then one city (using tags), then a human decides whether the rest of the fleet follows.The file
Steps run in the order they are listed. Each takes:
The smallest valid workflow is one named step:
Step types
Choosing devices for a step
matching_conditions narrows a step. Omitting a condition means it does not narrow anything.
network_interfaces is what makes it practical to hold metered devices back until a release has proven itself on cheap connections.
Pacing and failure
concurrent_updates sets how many of a step’s devices update at once — the step’s own pace, independent of the others.
failure_tolerance is how many of a step’s devices may fail before the step itself fails and the rollout stops there rather than continuing into the next step. Give either a count or a percentage, not both. It defaults to one device, and a catch_all step never fails.
Each step reports its own status as the rollout progresses: waiting, in_progress, completed, skipped, or error.
Uploading
Open the deployment group, go to Settings, and use Upload Workflow Definition under Deployment Workflows. The file is validated on upload; if it is rejected nothing is stored and the error names the path that failed, sosteps/0 with name means the first step is missing its name.
The two mistakes worth knowing about:
- Every step needs a
name, includingapproval_requiredandcatch_allsteps. It is easy to assume a step with no devices to match needs no name. versionandstepsare both required, andstepscannot be empty.
Approving a step
When a rollout reaches anapproval_required step it stops and the deployment group shows a banner — Waiting on you, the step’s name, and its description — with an Approve and continue button. Approving records who approved it and when, clears the banner, and the rollout proceeds to the next step.
What a workflow supersedes
A workflow takes over two of the group’s own safety controls while it is attached:
The failure and penalty box settings still apply — a workflow changes the order and pacing of a rollout, not what happens to a device that cannot take the update.

