Skip to content

Canvas and nodes

The canvas is the central area of the Designer where the automation flow is built. Activities are shown as cards stacked from top to bottom on a line that joins them: the visual order is the execution order.

Each card shows the activity icon, its name, a summary line with its key parameters and, if the activity produces a result, the output variable (→ variable). On the left, each step carries its number (hierarchical inside containers: 3.2) and a dot on the line that takes the color of its state: selected, running, finished or failed.

Open Browser browser-open
  • browser = "chrome"
  • url = company.Url
→ page

Fixed text goes in quotes ("chrome"); anything else is an expression evaluated at run time, such as company.Url.

Some activities, such as For Each, If, Try Catch, Retry or While, group other activities in lanes. Each lane hangs from the container with its label and has its own sequence of steps. The container header says what kind of container it is: Loop, Condition, Errors, Retry or Scope.

For example, a For Each runs its Body lane once for each item in a collection:

For Each foreach
  • items = items
  • itemVariable = item

An If has the Then and Else lanes. A Try Catch has Try, Catch and Finally. Inside each lane, the execution order is also top to bottom.

  • Collapse and expand: the chevron on the container card collapses its body (with the keyboard, ← and →). The Collapse all / Expand all button, above the canvas, collapses or expands every container in the playbook.
  • Focus a container: a double click on its card shows only that container, with breadcrumbs at the top to go back to the upper levels. Esc leaves it.
  • Empty lane: shows Add activity — click here or drag one from the palette. Clicking it opens the command palette and the chosen activity goes into that lane.
  • Drop a playbook: drag a playbook from the Project panel onto the canvas or into a lane and an Invoke Playbook activity pointing to it is created.
  • Target lane: while you drag, the lane under the pointer is highlighted and a line shows where the activity will land.

In practice a playbook combines several activities in sequence. The following example processes an invoice queue: it gets an item, opens the browser, invokes another playbook for the invoice and marks the item as successful.

Process pending invoices main
Queue Get Item queue-get-item
  • queueName = "pending-invoices"
→ item
Open Browser browser-open
  • browser = "chrome"
  • url = "https://erp.client.com"
→ page
Invoke Playbook invoke-playbook
  • path = "playbooks/RegisterInvoice.play"
Queue Set Transaction Status queue-set-transaction-status
  • item = item
  • status = "successful"
ActionHow to do it
Add an activityDrag it from the palette; or select it in the palette and press Enter; or search for it with Ctrl+K. With the keyboard or Ctrl+K, it goes right after the selected activity.
SelectClick the card. With the keyboard, ↑ and ↓ move through the activities.
MoveDrag the card. With the keyboard: Alt+↑ / Alt+↓ moves it up or down, Alt+→ puts it into the container above and Alt+← takes it out of its container.
Cut / Copy / PasteCtrl+X / Ctrl+C / Ctrl+V
DuplicateCtrl+D
Enable / disableRight-click → Enable/disable activity. A disabled activity is dimmed and skipped at run time.
BreakpointClick the step number, or F9. See Debugging.
DeleteDelete
Undo / RedoCtrl+Z / Ctrl+Y (or Ctrl+Shift+Z)
ScaleThe percentage indicator above the canvas (100 %, 110 %, 125 %, 90 %, 80 %): each click moves to the next one.

While a playbook is running, the canvas is read-only: stop the run to edit.

Activities run from top to bottom and, inside a lane, also from top to bottom. There are no visual connections between cards: the order comes from the position, not from arrows.