Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

Workflow workflow nodes
Docs for
Overview
Getting started
What is Bitfocus Buttons?
Install Buttons and get started
Manage your Buttons license
Activate Buttons offline
Find your way around Buttons
Create your first backup
Add an ATEM connection
Choose a control method
Choose an installation path
Install Buttons on Debian or Ubuntu
Understand HA clustering
Kubernetes HA
Update or remove Buttons
Positions
Understand positions
Create a position
Add controls and sections to a position
Create your first button
Use a connection's presets
Build more capable button actions
Add more feedback to a button
Organize controls in a section
Shift Section
Organize controls with a Folder Section
Add a Popover Section
Build and reuse a Shared Section
Build a Router Section
Understand Custom Routers
Custom Router panel
Surfaces
Surface compatibility
Add and attach a surface
Device orientation
Connections
Update a connection's module safely
Monitor and troubleshoot a connection
Router integrations
VideoHub and AJA KUMO
Utah Scientific BPS
Generic SW-P-08
Nevion VideoIPath
Arkona BLADE//runner
Routing
Physical routing
Configure ports and labels
Take a physical route
Understand route status
Topology graph
Routing Presets
Get started with virtual routing
Configure Nested Shapes
Reverse routing
Tielines
Routing Projects
Routing settings
Troubleshoot a route
Tally
Understand the Tally system
Send ATEM tally and labels to a UMD
Interpret Active Tally state
TSL/UMD connections
Diagnose tally problems
NMOS
Understand NMOS in Buttons
Connect Buttons to an NMOS Registry
Built-in Registry Server
Configure NMOS connections
Discover and adopt
Browse the NMOS inventory
Manage NMOS multicast addresses
Diagnose NMOS problems
Understand Cuelists
Build a Cuelist
Read and advance a running Cuelist
Control a Cuelist from a Position
Workflows
Understand workflows
Build your first workflow
Reuse a group of workflow nodes safely
Troubleshoot a workflow
Recipes
Sequence a timed automation
Call an HTTP endpoint from a workflow
REST endpoint
Use variables
Understand variable scope
Understand nested variables
Update expressions for v1.8
Plan and use Tags
Access
Create and manage users
Create roles and assign permissions
Grant access to specific resources
Show different controls by role
Sessions
Set up PIN and NFC sign-in
SSO
Get started with SSO
Connect a generic OIDC provider
Connect LDAP or Active Directory
Map identity claims to roles
Secure a Buttons deployment
Integrations
External control
Connect to Bitfocus Listener
USB Relay
Install USB Relay on Windows
Install USB Relay on macOS
Install USB Relay on Linux
Install USB Relay on a Raspberry Pi
Get started with the Control API
Secure and monitor the Control API
Control API reference
API reference
Administration
Enable and manage installable features
Services and health
Configure and monitor scheduled backups
Restore a backup and verify it
Export or import Buttons configuration
Store and rotate connection secrets
Replace the HTTPS certificate
HA backup and recovery
Settings
Collect support information
Reference
Glossary
Button Inspector reference
Network ports reference
Expressions
Internal actions reference
Routing Presets panel reference
Startup configuration reference
Workflow nodes
Connection workflow nodes
Workflow workflow nodes
Internal workflow nodes
Position workflow nodes
API workflow nodes
Utility workflow nodes

Loading...

Previous
← Connection workflow nodes
Next
Internal workflow nodes →
Contact support →
You are viewing documentation for Buttons 1.8.See the docs for Buttons 1.6
Buttons/Reference/Workflow nodes/Workflow workflow nodes

Workflow workflow nodes

Use these nodes to keep values in a workflow, share them with other workflows or positions, and expose value routing.

Choose a node#

  • Workflow Variable: create a named value owned by the current workflow
  • Workflow Variable Read: read a variable from this workflow or another workflow
  • Workflow Variable Write: update a variable in this workflow or another workflow
  • Value Router: expose workflow values as routable sources and destinations on the Router UIs
  • Workflow Action: define an action entry point with typed options for other controls or workflows to trigger

Workflow Variable#

Create a named value owned by the current workflow.

What you see in the editor#

  • Set Variable Key and Type. Set Initial Value for a fresh node's starting value: this field disappears once Persist Value is on, since the last persisted value is used instead. The Name field shown in the card's Details section is a read-only echo of Variable Key, not a separate display name.
  • Enable Persist Value only when the last value should return after the workflow reloads. The card shows Current Value while the workflow runs.

Connections#

Kind
Label
What it provides
Editor control
Current Value
Change the variable while testing or operating the workflow.
Workflow value
The variable
Available to Workflow Variable Read nodes and to supported position controls.

Example#

Create a Boolean variable named automation-enabled, then read it from another part of the workflow to open or close a gate.

Workflow Variable Read#

Read a variable from this workflow or another workflow.

What you see in the editor#

  • Choose Workflow, then choose Variable. The current value appears on the card.

Connections#

Kind
Label
What it provides
Output
Value
The selected variable’s current value.

Example#

Read a shared show-mode variable and connect Value to Case Switch to choose the active branch.

Workflow Variable Write#

Update a variable in this workflow or another workflow.

What you see in the editor#

  • Choose Workflow, then choose Variable.

Connections#

Kind
Label
What it provides
Input
Write
Writes a new value to the selected variable when this input changes.

Example#

Connect a result from Event Switch to Write so named events update a shared operating-mode variable.

Value Router#

Expose sources and destinations from this workflow on the Router UIs in the system, so the resulting routes can drive custom routing functionality.

What you see in the editor#

  • Set Src and Dst to the number of source and destination ports to generate: each is a count from 2 to 200 (default 10), not a list of named entries. Set Lvls (1–10, default 1) to add that many sub-ports to every Src and Dst port, labeled A, B, C, and so on.
  • The card lists one row per port: an input handle labeled Src *N on the left (or A Src *N*, B Src *N*, and so on per level) and an output handle labeled Dst *N* (or **Dst *NA, *Dst *NB, and so on) on the right.
  • The generated ports appear in Buttons routing views (for example Routing → Ports) under a Connection entry named after this workflow, with each port's User Label following the same Src *N* / Dst *N* pattern: confirmed live, no naming controls exist for them beyond the port count.
  • Use this node when a workflow value must participate in routing. Use normal workflow connections when the value stays inside one workflow.

Connections#

Kind
Label
What it provides
Inputs
Src *N* handles (one per source port and level)
A workflow value to publish as a routable source.
Outputs
Dst *N* handles (one per destination port and level)
The value currently routed to that destination, delivered into the workflow.

Example#

Feed a workflow-generated value into a Src handle to publish it as a routable source, then route it to a Dst handle elsewhere (on this workflow or another) to deliver it as an output. Build the actual route from the Routing views, not from this node.

Workflow Action#

Define an action entry point with typed options for other controls or workflows to trigger.

What you see in the editor#

The card only shows the options you've already added, as output handles: Title, Description, and Add Option aren't on the card. Select the node to open its Configuration panel, which is where this node is actually built:
  • Set an optional Title to identify this action wherever it can be triggered from, and a Description shown alongside it there.
  • Use Add Option to define a typed input the caller fills in: Text, Number, True/False, Dropdown, or Multi Dropdown. Each option gets a Label and a Default value; Dropdown and Multi Dropdown also need a list of choices, each with an ID and a Value.
  • Every configured option appears as its own output handle on the card, carrying the value supplied the last time the action ran. States outputs every option's value together as one object, Timestamp outputs when it last ran, and Event fires each time it runs. All outputs are empty until the action has run at least once.
  • Trigger this node from outside its own workflow using the Trigger Workflow Action action, available on button and other control actions and from other workflows' Internal Action node: choose the Workflow, then this node by its Title, then fill in the same options configured here.

Connections#

Kind
Label
What it provides
Outputs
One per configured option, named as configured
That option's value from the last time the action ran.
Output
States
Every option's value together, as one object.
Output
Timestamp
When the action last ran.
Output event
Event
Fires each time the action runs, carrying the same values as its payload.

Example#

Add a Workflow Action with a Dropdown option named Mode, then trigger it from a button's Trigger Workflow Action action to switch the workflow's behavior from outside it.

Was this helpful?

Was this helpful?

0 of 0 users found this page helpful