Skip to main content

What are Workflows?

Workflows in Cyberwave let you create automated sequences of robot operations. Connect nodes visually to build complex behaviors without writing procedural code.
Workflows run on Cyberwave’s cloud infrastructure, ensuring reliable execution even when your local machine is offline.

Workflow Components

Nodes

Nodes are the building blocks of workflows. Each node performs a specific action:

Twin Nodes

Control digital twin position, rotation, and state

Joint Nodes

Set individual joint positions or run trajectories

Condition Nodes

Branch based on sensor data or twin state

Delay Nodes

Add timing between operations

Connections

Connections define the execution flow between nodes:
  • Sequential: Execute nodes one after another
  • Parallel: Execute multiple nodes simultaneously
  • Conditional: Branch based on conditions

Creating a Workflow

1

Open Workflows

Navigate to Workflows in the dashboard.
2

Create

Click Create Workflow.
3

Build

Drag nodes from the palette to the canvas. Connect nodes by dragging from output to input ports.
4

Configure

Configure each node’s parameters (twin UUID, joint values, conditions, etc.).
5

Run

Click Save and Run.

Execution Modes

Workflows can be triggered by:
TriggerDescription
ManualRun on demand from the dashboard or SDK
ScheduleRun at specific times (cron)
EventsRun when sensor data matches conditions
APITrigger from external systems via REST or MCP

Monitoring Executions

Track workflow execution status and results:
runs = cw.workflow_runs.list(workflow_uuid="workflow-uuid")

for run in runs:
    print(f"Status: {run.status}, Started: {run.started_at}")
Each execution tracks status at both the workflow level and individual node level, including started_at, finished_at, and error_message fields.

Example: Inspection Workflow

A typical inspection workflow that captures an image, runs detection, and branches based on results:
┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│ Move to     │───▶│ Capture     │───▶│ Analyze     │
│ Position 1  │    │ Image       │    │ Image       │
└─────────────┘    └─────────────┘    └─────────────┘

                         ┌───────────────────┴───────────────────┐
                         ▼                                       ▼
                  ┌─────────────┐                         ┌─────────────┐
                  │ Pass:       │                         │ Fail:       │
                  │ Move Next   │                         │ Alert       │
                  └─────────────┘                         └─────────────┘

Best Practices

  • Keep workflows focused — create separate workflows for distinct operations rather than one large workflow. This makes debugging and maintenance easier.
  • Add error handling — include condition nodes to handle failure cases gracefully. Consider what should happen if a joint can’t reach its target.
  • Use meaningful names — name nodes and workflows descriptively. “Move to inspection position” is better than “Node 1”.