Overview
A workflow is a named, ordered sequence of steps that Trix runs to completion. Unlike a one-off API call, a workflow is durable: each run is tracked, steps retry on failure, and you can inspect exactly where a run is. Use them to automate recurring work over your memory — nightly summaries, enrichment passes, hand-offs to a bot, and more.
Manage workflows in the web app under Account → Automations, or via the API, SDKs, and MCP.
Defining a workflow
A workflow has a name, an ordered list of steps, and optional
limits. Set max_concurrent_runs (1–100) to bound how many runs execute at once so
a busy trigger can't stampede.
POST /v1/workflows # create
GET /v1/workflows # list
GET /v1/workflows/:id # get
PATCH /v1/workflows/:id # update
DELETE /v1/workflows/:id # deleteWorkflows are versioned: every edit creates a new version, and you can review or roll back to an earlier one.
GET /v1/workflows/:id/versions
GET /v1/workflows/:id/versions/:version
POST /v1/workflows/:id/rollback/:versionTriggering runs
Start a workflow on demand, or attach a trigger that fires it for you:
POST /v1/workflows/:id/trigger # run now
GET /v1/workflows/:id/triggers # list triggers
POST /v1/workflows/:id/triggers # add a trigger (e.g. a cron schedule)
PATCH /v1/workflows/:id/triggers/:triggerId
DELETE /v1/workflows/:id/triggers/:triggerIdScheduled triggers use a cron expression that's validated up front — an unparseable schedule is rejected when you create the trigger, not silently dropped by the scheduler.
Runs, retries & cancellation
Each execution is a run. List a workflow's runs, inspect a single run, cancel one in flight, or retry a failed run from its failed step instead of starting over:
GET /v1/workflows/:id/runs # runs for a workflow
GET /v1/workflow-runs/:runId # one run's status + steps
POST /v1/workflow-runs/:runId/cancel # cancel an in-flight run
POST /v1/workflow-runs/:runId/retry # resume from the failed stepHuman approvals
A step can pause for human approval before the run continues. Pending approvals collect in an approvals inbox for your account; approving or rejecting a step advances (or stops) the run. This keeps a human in the loop for sensitive actions without blocking the rest of your automation.
Approvals also surface in the web app's Inbox, so a teammate can act on them without touching the API.