Integrations
Last updated on May 21, 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
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
Workflows and provider credentials are managed by Admins and Owners. Developers can read existing workflows but cannot edit them or rotate provider credentials, and Viewers and Operators do not see workflows at all.
How is this guide?