Workflow Builder
A workflow runs its steps on its own: it starts on a schedule, from an API call, from a WebSocket message or by hand, then reads and writes data, applies your rules, calls other services and returns a result. You build it on a visual canvas, by hand or by asking Vira.
Opening the builder
- Studio - click Start a workflow on the Workflow card.
- An existing workflow - open it from Studio. Workflows that Qira and Vira created for a web app are there too.
- Import a flow - have a workflow as JSON already? Click Import a flow under the cards in Studio.
The canvas
| Area | What it does |
|---|---|
| Top left | The workflow's name (click the pencil to rename it) |
| Canvas | The nodes and the lines between them. Data flows from the trigger at the top through each node in turn |
| Undo, redo and zoom | Top right of the canvas, with a button that fits the whole workflow on screen |
| Mini map | Bottom right. Drag it to move around large workflows |
| Active | Turns the workflow on or off. An inactive workflow does not answer its API address or run on its schedule |
| History | Earlier versions of the workflow. Open one to see it or go back to it |
| Publish | Puts your changes live |
| Ask Vira | Bottom left. The chat where Vira builds and changes the workflow for you |
Click any node to open its settings. Double-click on the canvas to add a node: the Add Node dialog lets you search by name or browse all 32 nodes in five groups, Flow Control, AI & Models, Data, Code & Transform and Integrations & I/O. Each one has its own page in the Workflows part of these docs.
Triggers
Every workflow starts with a trigger:
| Trigger | Starts the workflow when |
|---|---|
| Manual | You click Run in the editor |
| Schedule | A time you set comes round: every morning, every Friday at 17:00, every 5 minutes |
| API | Something calls its address. You set the allowed methods, authentication, rate limit, timeout, IP allow-list and CORS |
| WebSocket | A message arrives on a WebSocket connection |
Agents start with a Chat trigger instead. See Agent Builder.
Building with Vira
Click Ask Vira to open her panel. Describe what the workflow should do the way you would explain it to a colleague, and Vira picks the nodes, sets them up and connects them on the canvas in front of you.
Next to the message box:
- @ - point Vira at something in your workspace, such as a table
- Upload - attach a file, for example an example request or a spec
- Microphone - speak instead of typing
- Trash - clear the conversation
- Model picker - the AI model Vira uses. Your remaining credits are shown underneath
The clock icon at the top of the panel opens your earlier conversations with Vira.
Changing a workflow
Vira works on the workflow that is open, so you can ask for changes as well as new workflows:
- "Add a step that emails me when the order total is over €500"
- "If the customer isn't found, return a 404 instead of an empty list"
- "Wrap the payment call in a try/catch and log the error to the errors table"
Every change shows up on the canvas, and History keeps the version from before it.
Example requests
Daily summary
"Every morning at 8, read yesterday's new signups from the users table and email me a list."
Trigger: Schedule. Then Query Data, Code to format the list, and Mail.
Contact form endpoint
"An API endpoint that takes name, email and message, checks the email is valid, saves it to a contacts table and returns 201."
Trigger: API. Then Data Validator, Write Data and Simple Output.
Order alert
"When an order comes in through the API, look up stock in the products table. If it's below 5, post a message to our Slack."
Trigger: API. Then Query Data, Condition and an MCP Server node connected to Slack. See Apps.
Testing and following runs
Run the workflow from the editor to test it. Every run, from the editor or live, shows up in Activity with its status, timing, input and output, and its step-by-step Execution Logs.
Next steps
- How Workflows Work - nodes, connections and variables
- Triggers - every way a workflow can start
- API Reference - call your workflows from your own code