Integrations
Last updated on September 29, 2026
TofuPilot integrates with the tools your team already uses through Workflows. A workflow ties a trigger, such as a run landing, a unit being created, or a schedule firing, to one or more actions on a connected provider.
Workflows
The visual editor, triggers, control flow, variables, versioning, and execution history.
Send transactional email to up to 50 recipients with variable interpolation.
Slack
Post messages to a Slack channel through an incoming webhook.
Discord
Post messages to a Discord channel through a webhook URL.
HTTP
Call any external API on run, unit, or schedule events.
Odoo
Create or update records and post to chatter from a workflow.
InvenTree
Create stock items, upload test results, update stock status, transfer stock, and trigger label prints.
Linear
Open issues and comment on existing tickets when a phase or run fails.
How integrations fit together
Every workflow you build has three parts that compose into a single pipeline:
- Trigger: a TofuPilot event such as a run landing, a unit being created, or a schedule firing.
- Control flow (optional): a filter, if/else, or switch that shapes the path downstream nodes take.
- Actions: calls to integration providers that do the actual work.
Each action exposes its result as a variable, and downstream actions can read from it. For example, you can listen on a run_created trigger, filter to failing runs, open a Linear issue, and then post a Slack message that links to the new ticket.
| Integration | Direction | Auth |
|---|---|---|
| Outbound | TofuPilot-managed | |
| Slack | Outbound | Incoming webhook URL |
| Discord | Outbound | Webhook URL |
| HTTP | Outbound | Configurable per request |
| Odoo | Outbound | OAuth or API key |
| InvenTree | Outbound | API token |
| Linear | Outbound + inbound | OAuth app |
Permissions
Connecting a provider and rotating its credentials requires the Admin or Owner role. Developers create, edit and delete workflows on top of the existing connections. Viewers can read workflows and connections, and Operators see neither. See access roles for the full table.
How is this guide?
WSJF
Learn how to import Virinco WATS reports in WSJF (JSON) format into TofuPilot with automatic detection, migrating test history with no column mapping.
Workflows
Learn how to automate actions in TofuPilot when runs, units, batches, parts, revisions, or schedules trigger events with a visual editor.