This walks through building the smallest real workflow (something that runs on its own, without a button press) end to end: create it, wire two nodes together, apply it, and confirm it actually ran. For the concepts behind values, events, and the editor's own display conventions, see
Understand workflows.
Before you begin#
- Access to create and edit workflows.
Create the workflow#
- Open Workflow and select Create.
- Give it a Label and select Create.
This opens straight into the workflow editor, with an empty canvas and the Node Pool panel on the right.
Add a node that fires on its own#
- In Node Pool, search for Interval and drag it onto the canvas.
- Set Interval (ms) to how often it should fire: for example,
30000 for every 30 seconds.
An Interval Timer exposes two outputs:
Timestamp (a value, updated on every tick) and
Event (fires once per tick). The white dot marks a value handle; the amber dot marks an event handle; see
Understand workflows for what that distinction means for how nodes can connect.
Add an action to respond to it#
- Search Node Pool for Internal Action and drag it onto the canvas next to the Interval Timer.
- Drag from the Interval Timer's Event output to the Internal Action's own Event input to connect them.
- In the Internal Action's Action field, search for and select Log Message.
- Enter text in Message.
This is the same Internal Action / action-picker pattern used on a button (see
Internal actions reference) placed on a workflow canvas instead, and triggered by an event rather than a press.
Apply and confirm it ran#
Select Apply. The button changes to show Completed {N}s ago once the workflow has initialized, and both nodes' borders settle to their saved, error-free state.
Wait for the interval to fire, then expand the Internal Action node's own Debug section. A real run shows "status": "done" along with the action's resolved options; confirming the node actually executed, not just that it saved correctly.
If you get stuck#
What you see | What to try |
|---|
Nothing happens after Apply. | Confirm the Interval Timer's own enable toggle is on, and that the wire actually connects to the Internal Action's Event input, not its Action input. |
A node keeps a dashed amber border. | It hasn't initialized yet: select Apply again. |
You're not sure whether it's actually running. | Expand the node's Debug section rather than trusting the canvas alone: see Troubleshoot a workflow for the full set of signals. |
Where to go next#