Workflows are Rollout's automation control plane. Build business processes by connecting triggers, AI, code, integrations, client-device actions, and utility nodes on a visual canvas. The editor continuously autosaves your Draft; publishing freezes it as an immutable, automatically numbered Release for production.
Status: Alpha (features may change).
Creating a workflow
- Open Workflows and click New Workflow
- Add a trigger node (Manual start, Schedule, Incoming webhook, Record created / updated, ...)
- Add action nodes and connect them by dragging from outputs to inputs
- Configure each node's settings in the sidebar
- Click Test to try the current Draft, then click Publish workflow when it is ready for production
Editing the canvas
Draft, Publish, and Current Release
- Draft is your editable working copy. Canvas and settings changes autosave continuously, but the Draft is never a production target.
- Publish validates the exact visible Draft, creates the next immutable Release (
v1,v2, ...), and makes it the Current Release in one operation. - Current Release is the only source for new production runs. If a workflow has not been published, it has no production target.
- Running allows triggers to start new production runs from the Current Release. Paused rejects new production entries without changing the Current Release or interrupting runs already in progress. A workflow's first Publish leaves it Paused so you can review it before clicking Start.
- Publishing changes while a workflow is Running switches new runs to the new Current Release. Runs already admitted keep the release and execution settings they started with.
- Branches let you develop variants side by side. Each branch has its own autosaved Draft; publishing a branch creates the next workflow-wide Release and records which branch it came from. Selecting a different branch or Release brings its graph into view automatically; selecting the same one keeps your current view.
- Release history is read-only. Open a Release to inspect it, use Restore to make that Release Current without changing your Draft, or use Copy to Draft from a run when you want to edit what that run used.
Disabled nodes and edges remain visible in the Draft and in published history, but they are excluded from execution. A disabled trigger cannot start a run, a disabled action is not scheduled, and a disabled edge does not carry execution to its target.
Organizing larger flows
- Select two or more nodes and click Group in the toolbar (⌘⇧G) to put them in a canvas container. The group's header holds its controls: the arrow collapses or expands it, click the title to rename it, and hover it for Tidy (arrange the nodes inside and fit the group to them) and ⋯ (Collapse, Tidy, Lock position, Ungroup, Delete; right-click opens the same menu). Expanding a group moves the nodes beside and below it out of its way. Resize a group by dragging its corners; its nodes re-arrange into the new shape.
- Right-click a long connection and choose Hide wire to declutter the canvas. The connection still works; a small badge beside each end names the node at the other end, and clicking it jumps there. Hover or select either node to see the hidden wire faintly; right-click a badge and choose Show wire to bring it back.
- Use Auto Layout to tidy larger graphs. Layout and edge routing run on the server, so everyone sees the same arrangement. The layout reads like a story: each AI step (or a step that combines several inputs) stands beside a column of the inputs that feed it, branches stay side by side, and simple chains too long for your screen stack into short columns. Edits made through MCP are laid out the same way whenever they add, remove or rewire nodes.
- Lock a node or group to keep it exactly where you put it: right-click it and choose Lock position, use Lock in the toolbar when several nodes are selected, or press ⌘⇧L (Ctrl+Shift+L). A locked node can't be dragged, and Auto Layout and MCP edits arrange everything else around it. Click the lock mark in its header to unlock it.
- Any plain setting can take its value from another node instead: click the link button beside its name in the inspector and the node gains an input for it. Wire a value in and the node runs with that value (a number setting gets a number, a checkbox gets true or false); unwired, the value you typed stays. Click the button again to turn the input back into a setting. Security settings such as approvals, network access, allowed tools and secrets always stay as typed.
- Text settings support
{{ }}templates. Use Insert variable to pick outputs from the trigger or any upstream node without retyping handle names. Templates also support expressions: comparisons, arithmetic, and functions.
Running workflows
Click Test to execute the current Draft as a debug run. The editor first autosaves the exact visible graph, then runs that Draft even when production is Paused. Watch nodes highlight as they execute, then inspect outputs by clicking completed nodes.
For an on-demand production run, publish a workflow that contains an executable Manual start trigger, click Start, then use Run now from the Workflows list. Production runs always use the Current Release.
Run types
- Full run - execute the whole workflow from the trigger
- Step run - execute a single node for testing
- Subgraph run - execute a node and everything downstream of it
- Retry run - re-run a previous run with the same inputs
Debug mode
Runs started from the editor are debug runs by default. Use the Show debug runs filter in history to toggle their visibility.
Action nodes
Core actions
- HTTP request - call any REST API with query params, headers, auth, and body editors
- Run JavaScript - run JavaScript in a sandbox
- AI agent - prompt an AI model with structured output and optional tool calling; pick a managed model (Gemini by default) or bring your own provider key through a Connection
- Query workspace - query tasks, projects, objectives, milestones, teams, activities, and custom records; supports dotted response projection, latest-per-group reads, explicit truncation policy, and bounded fetch-all
- Query saved view - pull records from a saved view's query
- Search - retrieve tasks, projects, documents, records, and attachments by keyword
- Search the web (Perplexity) - web research with citations (requires a server API key)
- Send email via SMTP - send email via the configured mailer
- Convert files - convert and merge files (HTML, text, images, PDFs) into a PDF bundle
- Subflow - call another workflow and return its outputs
- Loop - run a workflow repeatedly until an exit condition or an iteration cap
Record and document actions
- Save to workspace - create a workspace record or sparsely update one selected by exact ref or durable key
- Archive record - archive records of one Object
- Link resources and Identify resource
- Save to workspace also handles supported Document fields, edits to a Document's text (find a passage, replace it with Markdown) and admitted Activity notes or comments
Integration actions
- Gmail - send, reply, search, get, update, manage labels, archive, trash
- Sheets - read, append, update, clear
- Drive - upload, download, search, move, create folders
- Jira - create, update, get, search, comment, transition issues
- GitHub - open, get, and list pull requests
- Telegram - send messages and parse updates
Delivery actions
- Shell - execute shell commands in the workflow runtime
- Git - branch, checkout, commit, push, tag
- Build image and the Kubernetes nodes - build images, apply manifests, update deployment images, run jobs, wait for rollouts
Device actions (experimental)
- Run command - run a shell command on a connected device
- Claude Code and Codex - run coding-agent tasks on a connected device
- Run browser script - run Playwright scripts in a connected Chrome session
Control flow and utility
- If - send the input down the true or the false path by a condition
- Switch - send the input down the first matching path
- Merge - combine wired values into a list, the first to arrive, or one object
- Wait - pause the run for a while, or until a time
- Ask a person - pause the run until a person answers a question
- End run - end the run as a success; nothing after it runs
- Fail run - stop the run with an error message you write
- Transform list - reshape, filter, group, expand, total and join lists without code
- Save cache / Restore cache - cache workspace files between runs
- Note - annotate the canvas
See Node Reference for a full list and status notes.
Execution details
Parallel execution
Full runs can execute independent branches in parallel (up to 10 concurrent steps by default).
Timeouts and retries
- Runs time out after 30 minutes by default; each workflow can configure 1-180 minutes
- Failed runs retry with exponential backoff (10s, 20s, 40s; max 3 attempts)
Retention
Workflow runs are archived after 30 days and permanently deleted 90 days after archival.
Troubleshooting
Workflow not triggering from webhook
- Verify you are hitting the correct URL
- Publish the Draft after adding the webhook node
- Verify the webhook trigger node is not disabled and the workflow is Running
- A 429 response means the webhook is rate limited; retry later
Cannot connect two nodes
- The canvas rejects connections between incompatible output and input types
- Pick a source port whose type matches the target input
HTTP request returning errors
- Check the URL, method, and headers
- Verify authentication credentials
- Inspect the response body for error details
Gmail trigger not finding new email
- Verify your Google connection is active
- Check the trigger's filters are not too restrictive
AI agent returning errors
- Verify the prompt is not empty
- Check for rate limiting from the provider
- Try a smaller prompt if hitting token limits
Run stuck in "running" state
- Check for nodes with long timeouts
- Look for external API calls that might be hanging
- Runs time out automatically after the workflow's run timeout (30 minutes by default)