Skip to content

Workflow Editor

The Workflow Editor lets you create visual automation workflows that automatically update building states based on sensor inputs and conditions.

Workflow Editor

Overview

Workflows connect inputs (sensor data, building states) to outputs (building state changes, traffic control) through logic operators.

Example workflow:

"If Database AND API Server are both offline, set the Status Dashboard to critical"

Interface Layout

The Workflow Editor has three panels:

  • Left Panel - Assets and Operators palette
  • Center - Canvas for building workflows
  • Right Panel - Saved workflows list

Left Panel - Assets

City Layout Selector

Select which layout's buildings to use in the workflow.

Groups

Buildings are organized by their groups (as defined in Control Center):

  • app-deco - Application decoration buildings
  • db-deco - Database buildings
  • front-deco - Frontend buildings

Click a group to expand and see its buildings.

Asset List

Each asset shows: - Building type icon - Asset name - Count of instances

Drag assets from this list onto the canvas to create input nodes.

Left Panel - Operators

Logic Operators

Operator Symbol Description
AND & Both inputs must be true
OR | At least one input must be true
NOT ! Inverts the input (true→false)
EQUALS = Compare two values

Actions

Action Description
SET STATUS Change an asset's status
SET GROUP Set status for all group members
SET TRAFFIC Control traffic density/speed
SET CAMERA Control camera path playback

Center Canvas

Canvas Controls

  • Zoom +/- - Adjust zoom level
  • Reset View - Center and reset zoom
  • Clear All - Remove all nodes from canvas
  • Workflow name - Input field at the top

Creating Nodes

  1. Drag an asset or operator from the left panel
  2. Drop it on the canvas
  3. The node appears ready for configuration

Node Types

Input Nodes (Blue)

Created from assets. Configure: - Status equals: Value to match (offline, online, warning, critical)

Example: db0 checks if the building's status equals "offline"

Logic Nodes (Orange)

Created from logic operators. Connect multiple inputs: - AND: All inputs must be true - OR: Any input can be true - NOT: Single input, inverts result - EQUALS: Compare two values

Output Nodes (Pink/Red)

Created from action operators. Configure: - Target Asset: Which building to modify - Set to: New status value - Latch: Lock output (see below)

Connecting Nodes

  1. Click on a node's output socket (right side)
  2. Drag to another node's input socket (left side)
  3. A connection line appears

Deleting Connections

Click on a connection line to select it, then press Delete.

Deleting Nodes

Click on a node to select it, then click the X button or press Delete.

Example Workflow

Workflow Example

This workflow demonstrates:

  1. db0 (input) - Checks if db0 status equals "offline"
  2. db1 (input) - Checks if db1 status equals "offline"
  3. AND (logic) - Both must be true
  4. SET: app0 (output) - Sets app0 to "critical"
  5. SET: app1 (output) - Sets app1 to "critical"

Result: If both databases are offline, both app servers show critical.

Latch Feature

The Latch option on output nodes locks the output value:

  • When triggered, the output stays at that value
  • Even if conditions become false, it remains latched
  • Manual reset (changing status via Control Center) clears the latch
  • Useful for "alert once and hold" scenarios

Latch Configuration

  • Latch checkbox - Enable latching
  • Latch Value - Value that triggers latch (default: any non-online status)

Right Panel - Saved Workflows

Workflow List

Shows all saved workflows: - Workflow name - Active badge (if enabled) - Enable/disable toggle - Delete button

Creating a New Workflow

  1. Click New button in header
  2. Build your workflow on canvas
  3. Enter a name
  4. Click Save

Editing a Workflow

  1. Click on a workflow in the list
  2. It loads into the canvas
  3. Make changes
  4. Click Save

Enabling/Disabling

Toggle the switch next to a workflow to enable or disable it. Disabled workflows don't process inputs.

Workflow Execution

When Workflows Run

Workflows execute when: - Sensor data is received - Building state changes - Workflow is enabled

Execution Order

  1. Inputs evaluate current building states
  2. Logic operators process conditions
  3. Outputs apply state changes if conditions are met
  4. Changes broadcast to all connected clients

Multiple Workflows

You can have multiple active workflows. They execute independently and can affect the same buildings.

Circular dependencies

Avoid creating workflows that trigger each other infinitely. The system has protection, but it's best to design carefully.

Use Cases

Dependency Alerts

Database offline → API shows critical
API offline → Frontend shows warning

Aggregated Status

Any service critical → Status Dashboard critical
All services online → Status Dashboard online

Automated Recovery Display

Service recovered (online) → Reset related warning indicators

Traffic Based on Load

High CPU (warning) → Increase traffic density
Low activity → Decrease traffic density