1Enter the canvas

Step 1.1

From the gallery

Click + Create New Workflow for a blank canvas, or click ✏️ Edit on a workflow card to open an existing one. The gallery slides out and the canvas slides in β€” the URL stays at /visual-designer.

Step 1.2

Back to the list

The canvas top toolbar has a ← Back button (aria-label "Back to list"). If you have unsaved changes a confirmation appears.

2Canvas anatomy

The canvas has four regions that work together: the left library, the centre canvas, the right activity bar, and the bottom IDE panel. Each is collapsible.

Orchestration Studio Β· canvas /visual-designer

Library

β–Ύ ⭐ Favorites
β–Ύ 🟒 Lifecycle
StartEndCancel
β–Ύ πŸ”Œ Systems
EntraID β€Ί Get userWorkday β€Ί SyncServiceNow β€Ί New ticket
β–Έ πŸ€– AI Agents
β–Έ 🧠 Logic
β–Έ πŸ‘€ Human
β–Ά Start
EntraID Β· Get user
ServiceNow Β· Ticket
β›³ End
EDITOR
EDGES
DATA
AI
TEST
PINS
RUN
Console Problems (0) Timeline
[ready] Workflow loaded Β· 4 nodes Β· 3 edges
RegionWhat you do there
Left librarySearch and drag nodes onto the canvas. Categories: Lifecycle (Start/End/Cancel), Systems (auto-loaded from your connected systems), AI Agents, Logic (Set Variable, For Each, If/Else, Log), Human (User Interaction).
Centre canvasThe React Flow canvas itself. Drag nodes around, draw edges, pan with the middle mouse button, zoom with the wheel.
Right activity barVertical strip of tabs that swap the right panel content. EDITOR (JSON), EDGES, DATA, AI, TEST, PINS, RUN, plus a contextual NODE tab when a node is selected.
Bottom IDE panelConsole (run logs), Problems (validation issues), Timeline (per-node duration). Collapsible with Ctrl + `.
Floating actions (bottom-right of canvas)Auto-layout, preview / read-only mode, last-run overlay, minimap, canvas settings.
Top toolbarBack, workflow name, status badge, panel toggles, Save, Execute, AI describe-and-go strip.
β—§ ⊟ β—¨
Three layout toggles

The top-right of the toolbar has three buttons that show/hide the left, bottom, and right panels independently. Use them when you want a "focus mode" with just the canvas visible.

3Node library

The left panel is a tree of node templates organised by category. The library is searchable and remembers your favourites.

Step 3.1

Categories

  • ⭐ Favorites β€” nodes you starred for quick access.
  • 🟒 Lifecycle β€” Start (one per workflow, mandatory), End (final state), Cancel (terminate run).
  • πŸ”Œ Systems β€” every command from every system you registered in the System Editor. Each command becomes a node template (e.g. EntraID β€Ί Get user, Workday β€Ί Get worker).
  • πŸ€– AI Agents β€” agents available in your tenant. Each agent appears as a node you can call.
  • 🧠 Logic β€” Set Variable, For Each, Log, If/Else conditional, Try/Catch.
  • πŸ‘€ Human β€” User Interaction (pauses the workflow until a person submits a form).
Step 3.2

Search the library

Type into the search box at the top of the library to filter across all categories. Matches highlight inline. Clear the search to restore the full tree.

⭐
Star a node to make it sticky

Click the star next to any node template to add it to Favorites. Favorites move to the top of the library and persist across sessions.

Step 3.3

Where new system actions come from

System actions in the library are pulled from the System Editor. To add a new action, open the System Editor and add a command to the relevant system; refresh the canvas and the new command appears under its system in the library.

4Drag a node onto the canvas

Step 4.1

Drag, drop, snap

Click and hold a node template in the library, drag it over the canvas, and release. The node snaps to the nearest grid intersection. A new node always starts disconnected β€” you draw the edge yourself.

Step 4.2

Move, multi-select, delete

  • Click and drag a node to reposition it.
  • Hold Shift and click to add to a multi-selection. Drag the selection as a group.
  • Press Delete or Backspace to remove selected nodes (this also deletes their edges).
  • Right-click a node for the context menu: Configure, Test node, Run to this node, Pin output, Manage input pins, Duplicate, Delete.

5Configure a node

Click any node and the right activity bar adds a contextual NODE tab β€” that's the node properties editor.

Step 5.1

The NODE properties panel

The properties panel shows everything about the selected node: identity, parameters, output mapping, advanced options.

Node Β· ServiceNow Β· Create incident

Namecreate_ticket
Typeaction (system call)
Systemservicenow
Actionincident.create
short_description *"New hire {{ inputs.full_name }}"
assignment_group *"IT Onboarding"
caller_id{{ inputs.user_id }}
role_requiredworkflow:execute
retry_on_error3 attempts, 2s backoff
Step 5.2

Pick a system action

For action nodes (system calls), the panel offers two cascading dropdowns: System first, then Action. Once chosen, the parameter list rebuilds automatically from the command definition (in the System Editor). Required parameters show a red *.

Step 5.3

Bind values

Each parameter accepts a literal, an expression, or a token from the data context.

  • Literal β€” type a plain value: "IT Onboarding".
  • Token β€” click the {{ }} button next to the field to open the context picker. Pick from inputs, variables, or any upstream node's output.
  • Expression β€” switch to expression mode for inline templating: "{{ inputs.first_name }} {{ inputs.last_name }}".
{{ }}
The context picker

Lists everything you can reference at this point in the graph. Greyed-out entries are downstream of the current node β€” they don't exist yet.

Step 5.4

Role required

The role_required field is an authorization gate per node. When the workflow runs, the running identity must hold this role for the node to execute. Use it for sensitive actions (e.g. workflow:approve on an approval node).

6Draw edges between nodes

Step 6.1

Connect two nodes

Hover the source node β€” small handles appear on its edges. Click and drag from a handle to the target node and release. A line snaps in. Edges are directional: from "this finished, do that next".

Step 6.2

Edge actions overlay

Right-click any edge for the Edge Actions menu: Edit Edge, Enable / Disable, Duplicate, Delete.

  • Enable / Disable grey-outs the edge without deleting it β€” handy for temporarily routing around part of the graph during testing.
  • Duplicate creates a parallel edge between the same two nodes (useful when you want two independent conditions).
Step 6.3

The EDGES panel

Click EDGES on the right activity bar to open a list of every edge in the graph. Useful when you have many edges and want to bulk-edit conditions or labels.

7Edge conditions and branching

By default an edge is unconditional β€” once the source node finishes, control flows along it. Add a condition to make the edge a branch.

Step 7.1

Open the Edge Inspector

Right-click an edge β†’ Edit Edge. The Edge Inspector slides in from the right with three fields: Label, Condition, and Description.

Step 7.2

Write a condition

Conditions are expressions evaluated against the data context. Common patterns:

{{ nodes.create_user.output.status == "OK" }}
{{ inputs.priority == "P1" }}
{{ nodes.risk_score.output.value > 0.7 }}

If the expression evaluates truthy, the edge fires. If false, control does not flow this way β€” useful for if/else branches: two outgoing edges, one with each condition.

Step 7.3

Labels show on the canvas

Whatever you type in Label appears on the edge in the canvas (e.g. "if approved"). Keep labels short and descriptive β€” they make the graph readable.

πŸ’‘
Two edges out, one in

To express if/else, draw two edges out of a decision node β€” one with the condition, the other with the negation. Make sure exactly one will fire for any given run.

8Data manager (DATA panel)

The DATA panel is where you declare what the workflow takes as input, what variables it carries, and what it returns.

Step 8.1

Inputs

Each input is a typed field the workflow expects when it runs. Define them in the DATA panel; they appear automatically in the Workflow Runner modal so callers can fill them. Common types: string, number, boolean, object, array.

Step 8.2

Variables

Variables hold intermediate state during a run. Set them with a Set Variable node and read them anywhere downstream via {{ vars.name }}. Variables are useful when several nodes need the same computed value.

Step 8.3

Outputs

Outputs are what the workflow returns to its caller. Bind each output to a node result or variable. The Workflow Runner displays outputs at the end of a run.

Step 8.4

Last-run context

After a run, the DATA panel switches to Last-run context mode: every node's actual input and output is shown alongside the schema. Use this to debug why a downstream node received an unexpected value.

πŸ“¦
Token picker references

Anything in the DATA panel becomes pickable in the {{ }} context picker on every parameter field across the canvas.

9Keyboard shortcuts

All shortcuts are active when the canvas has focus and you are not in an editable field.

KeysAction
EToggle the EDGES panel.
DToggle the DATA panel.
AToggle the AI panel.
LAuto-layout the graph (re-flow nodes).
Ctrl + BToggle the left library sidebar.
Ctrl + Shift + JToggle the JSON Editor panel.
Ctrl + `Toggle the bottom IDE panel.
Ctrl + SSave workflow.
Ctrl + Z / YUndo / redo (50 steps).
F11Maximise the canvas (hide all panels).
?Open the keyboard-shortcut help overlay.
EscClose any open panel or modal.

10The JSON editor panel

Every visual change has a textual representation. The EDITOR tab on the right activity bar shows that representation.

Step 10.1

What's inside

The editor shows the workflow's intermediate representation (IR): nodes, edges, inputs, outputs, variables. Edits in this panel can be synced back to the canvas.

Step 10.2

Toolbar actions

  • Format β€” re-indents the JSON.
  • Copy β€” copies the entire document.
  • Download β€” saves the JSON to a file.
  • Sync to canvas β€” applies your text edits to the visual graph. The canvas re-renders.
⚠️
Edits don't auto-sync

Until you click Sync to canvas, the canvas and the JSON editor are independent. The editor toolbar shows a yellow dot when there is unsynced text.

Step 10.3

Maximise the editor

Click the β€’ icon (or use the right-panel mode buttons) to switch the editor to maximised mode β€” the canvas dims and the editor takes over the viewport. Helpful for long workflows.

11Validation & the Problems tab

Step 11.1

Where validation runs

The studio validates the graph continuously. Any issue surfaces in the Problems tab of the bottom IDE panel and as a red dot in the activity bar.

Common problems: required parameter is empty, edge references a deleted node, expression has a syntax error, the graph has no Start node, two Start nodes exist.

Step 11.2

Click to jump

Click any row in the Problems tab to focus the offending node or edge in the canvas. The properties panel opens automatically.

πŸ›‘
Save lets you save with problems

The Save button does not block on warnings; it lets you persist a workflow that doesn't yet validate. Execute, however, refuses to start a run while errors are present.

12Save the workflow

Step 12.1

Click Save (or Ctrl+S)

The πŸ’Ύ Save button on the canvas top toolbar persists the workflow back to the server. The toast confirms "Workflow saved"; the status badge moves from Draft to Active if this is your first save with no problems.

Step 12.2

Versioning

Every save creates a new version. The card meta in the gallery shows the latest version number; older versions are kept for audit.

Step 12.3

Permission required

Save is hidden when your role does not have visual-designer:workflow Β· edit. You can still open and read the canvas (view-only).