TofuPilotTofuPilot

Workflows

Automate actions when events happen in TofuPilot. Send emails, call APIs, create Linear issues, and more — triggered by test runs, units, or schedules.

Overview

A Workflow automates actions when events happen in TofuPilot. Each one follows this flow:

Trigger — an event fires (test run created, schedule, manual).

Control Flow — optional filters or branches decide the path.

Action — steps execute in sequence (send email, call API, create issue).

Create a Workflow

Go to Workflows and click New Workflow. This creates a draft workflow and opens the visual editor.

Select a trigger to define what starts the workflow.

Optionally add a control flow node to filter or branch executio.

Add your first action.

Chain more actions as needed — see Add Actions for the full list.

Set the status to Active to start processing events.

Workflows follow a status lifecycle: DraftActivePausedArchived.

Configure Triggers

A trigger defines what starts a workflow. Each workflow has exactly one trigger.

TriggerFires when
Run createdA test run is created
Unit createdA unit is created
Batch createdA batch is created
Part createdA part is created
Revision createdA revision is created
ScheduleTime-based (daily/weekly/monthly), with timezone and day selection
ManualOn demand from the editor

Each trigger type exposes variables from the event (run name, unit serial, part number, etc.) that you can reference in downstream actions.

Rate limits: 100 automatic triggers per minute and 10 manual triggers per minute per organization.

Add Control Flow

Control flow nodes let you add conditional logic to your workflow.

  • Filter — single condition gate that stops downstream execution if not met.
  • If/Else — two-path branching based on a true/false condition.
  • Switch — multi-path branching with up to 20 cases plus a default path.

Conditions support operators like equals, contains, starts with, greater than, regex match, and is null. Combine multiple conditions with AND/OR logic.

Add Actions

Actions are the steps your workflow executes after a trigger fires.

Email

Send Email

Send to up to 50 recipients with variable interpolation in subject and body.

HTTP

HTTP Request

Call external APIs (GET/POST/PUT/PATCH/DELETE) with configurable headers, body, timeout, and retries.

Discord

Send Message

Send a message via webhook URL.

Odoo

Create Record

Create a record in Odoo.

Update Record

Update an existing Odoo record.

Post Message

Post a message on an Odoo record.

Linear

Create Issue

Create an issue with optional assignee, labels, and estimate.

Add Comment

Comment on an existing Linear issue.

Utilities

Delay

Pause execution for 1 second to 1 hour.

Math Operation

Compute a value with add, subtract, multiply, divide, or modulo.

Celebrate

Trigger confetti in the UI.

HTTP Request limits: 30-second timeout, 1 MB max body size, up to 3 retries. Email limit: 50 recipients max.

Use Variables

Variables let you pass data between nodes.

  • Trigger variables — fields from the event that started the workflow (e.g., run name, unit serial number, part number).
  • Control flow variables — results from conditional nodes: whether a filter condition was met, which branch was taken in an If/Else or Switch.
  • Action output variables — results from upstream action nodes (e.g., HTTP response status, created record ID).

Reference any upstream variable using the syntax {{nodeId.fieldKey}}.

Missing variables render as [not set] at execution time.

Use the Editor

Build workflows visually by dragging and connecting nodes on a canvas.

  • Click + below any node or use the bottom toolbar to add nodes.
  • Click a node to configure it in the right panel.
  • Connect nodes by dragging between handles.
  • Add notes to annotate your workflow.
  • Use Organize actions to auto-layout, and Cmd+Z to undo.
Limits: 100 nodes, 200 edges, and 50 notes per workflow.

View Execution History

Switch to the Executions tab to see past runs. Click any execution to see its status, runtime, trigger source, and per-node results directly on the flow visualization.

Maximum execution time: 5 minutes per workflow run.

Versioning

Changes are auto-saved and versioned automatically as you edit. While in Draft, click Save as new version to create a named snapshot. Browse and preview past versions from the version badge in the header, and restore any previous version if needed.

How is this guide?