From 0a79255507c98404055cb6d9e6b0fb6e199fc998 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Mon, 3 Aug 2026 15:56:13 +0200 Subject: [PATCH 01/20] =?UTF-8?q?docs(workflows):=20MCP=20triggering=20?= =?UTF-8?q?=E2=80=94=20tools,=20flow=20and=20trigger=20settings=20(PRD-742?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document the MCP channel added by PRD-49, written from the implementation in the three feature branches rather than from the spec. MCP server page: the three workflow tools (listWorkflows, triggerWorkflow, getWorkflowRun) with their arg/return contracts, the discover -> trigger -> poll flow, and the v1 limitations — no dedicated rate limiter, human-gated runs are report-only. Triggers page: goes from two triggers to three, states that gating is channel-aware, and documents two prerequisites that were missing for the webhook trigger too (Forest Runtime installed, fallback inbox selected). The section is named Triggers, not Process. Screenshot refreshed with the MCP row. Deviations from the spec, followed as implemented: listWorkflows returns no description; getWorkflowRun only exposes MCP-triggered runs; result is the terminal step, not a business payload. Also fixes an unescaped pipe that broke a table in the webhook reference. Co-Authored-By: Claude Opus 5 (1M context) --- images/workflows/webhook-trigger-rows.png | Bin 96022 -> 80229 bytes product/embed/mcp-server.mdx | 145 ++++++++++++++++++ product/execute/workflows.mdx | 2 +- product/process/workflows/forest-runtime.mdx | 4 +- product/process/workflows/overview.mdx | 4 +- product/process/workflows/triggers.mdx | 88 +++++++++-- .../endpoints/trigger-workflow-webhook.mdx | 2 +- 7 files changed, 225 insertions(+), 20 deletions(-) diff --git a/images/workflows/webhook-trigger-rows.png b/images/workflows/webhook-trigger-rows.png index 03b6323c57d7ab8b434c6337262e9f1f02dae867..e9cc6d4fe38e1e0d64bb3e81d5a1c7ed5025c26c 100644 GIT binary patch literal 80229 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

kN0?9a~-~$NBnUj;v@+_`)du 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 z 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 Ts+fu{0}yz+`njxgN@xNA#4`-q literal 96022 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


RPw|p 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 JU@|ZL{tv^UA-ezo diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index aaff870..d3d977b 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -14,6 +14,7 @@ The Forest MCP server lets AI tools like Claude, Dust, and others to: - Access collection schemas - Securely query and browse your data - Execute actions on records +- Start [Workflows](/product/process/workflows/overview) on a record and follow their progress All of this while respecting the Roles & Permissions of your Forest project, and logging every activity, just like if they were performed through the UI. @@ -145,6 +146,18 @@ The Forest MCP server exposes the following capabilities: | `getActionForm` | Get form fields for a smart action | | `executeAction` | Execute a smart action | +### Workflows + +| Tool | Description | +| ----------------- | ------------------------------------------------------------ | +| `listWorkflows` | Discover the workflows enabled for MCP triggering | +| `triggerWorkflow` | Start a workflow run on a record | +| `getWorkflowRun` | Poll the status of a run started through MCP | + + + Workflows are **opt-in per workflow**: only those whose **MCP** trigger is enabled are visible to these tools. See [Triggering workflows from an AI assistant](#triggering-workflows-from-an-ai-assistant). + + ## Restrict tools You can restrict which tools the MCP server exposes using `enabledTools`. Only the tools you list will be available, and **new tools added in future releases will NOT be automatically enabled**, so your configuration stays safe over time. @@ -267,6 +280,135 @@ url = "" Use the MCP transport type `"http"` (not `"sse"` or `"url"`): the Forest MCP server uses Streamable HTTP. Your URL should still use `https://`. Clients that rely on `mcp-remote` (Claude Desktop, Windsurf, JetBrains) require Node.js 18\+ (some versions need 20\+). +## Triggering workflows from an AI assistant + +Three tools let an assistant drive a [Workflow](/product/process/workflows/overview) end-to-end from its own context: pick a workflow that fits the record at hand, start it, then watch the run. + + + A workflow is only reachable through MCP once an editor enables its **MCP** trigger in the workflow's [trigger settings](/product/process/workflows/triggers#the-mcp-trigger). Nothing is exposed by default. + + +### Discover → trigger → poll + +The three tools are meant to be chained, and the split is deliberate: MCP has no push channel, and a run is asynchronous — it can be long, or parked waiting for a person. So `triggerWorkflow` returns immediately with a `runId`, and the assistant polls `getWorkflowRun` for as long as it cares about the outcome. + +```mermaid +flowchart LR + L["listWorkflows
    (pick a workflow)"] --> T["triggerWorkflow
    (→ runId)"] --> G["getWorkflowRun
    (poll runState)"] + G -. "not finished yet" .-> G +``` + +1. **Discover** — `listWorkflows` returns the MCP-enabled workflows the connected user can reach, with the collection each one operates on. Pass `collectionName` to narrow it to the collection of the record in context. +2. **Trigger** — `triggerWorkflow` starts a run on one record and returns its `runId`. The run continues server-side; nothing blocks. +3. **Poll** — `getWorkflowRun` reports the run's state, the step it is on, whether it is waiting for a human, and, once terminal, its result or error. + +### `listWorkflows` + +Lists workflows with the MCP trigger enabled, scoped to the connected user's rendering and permissions. + +| Argument | Description | +|---|---| +| `collectionName` | Optional. Narrows the results to workflows operating on that collection — typically the collection of the record in context. | + +```json Returns +[ + { + "workflowId": "9f1b0c4e-2f7a-4d5b-9e31-6c0a8b7d1234", + "name": "KYC review", + "collectionName": "customers" + } +] +``` + +An empty array means no workflow is MCP-enabled for that user — most often because nobody has turned the toggle on yet. + +### `triggerWorkflow` + +Starts a run of an MCP-enabled workflow on a specific record. + +| Argument | Description | +|---|---| +| `workflowId` | As returned by `listWorkflows`. Its MCP trigger must be enabled. | +| `recordId` | The record to run on. Composite primary keys use the packed form, values joined by `\|` (e.g. `"123\|456"`). | + +```json Returns +{ "runId": 1234, "runState": "loading" } +``` + +`runId` is what every subsequent `getWorkflowRun` call needs. `runState` is only the state at that instant — it depends on the workflow's first step, and it moves on without further calls, so treat it as a starting point, not an outcome. + + + The record is **not** checked when the run is created — the orchestrator has no data access at that point. An id that does not exist, or that the user cannot read, produces a run that fails at its first data step; the assistant sees it through `getWorkflowRun`'s `error`, not as a trigger-time failure. + + +Only **one run per record** can be active at a time. Triggering a record that already has an ongoing run fails and does **not** resume it — the run in flight is left untouched. + +### `getWorkflowRun` + +Reads the normalized status of a run, given the `runId` returned by `triggerWorkflow`. + +| Field | Description | +|---|---| +| `runState` | `pending` or `loading` while a step is queued or executing, `started` when the run is parked, `finished` on completion, `aborted` when stopped. | +| `currentStep` | The step the run sits on — its `name` and `type` (plus a `taskType` on task steps). `null` once the run is finished. | +| `waitingForHumanInput` | `true` when the run is parked on a step a person must handle. | +| `result` | The step the run ended on, populated only once `runState` is `finished`. | +| `error` | The failure recorded on the current step, including a first-data-step failure on an unreachable record. `null` otherwise. | + + + +```json Parked on a human step +{ + "runState": "started", + "currentStep": { + "name": "Review the KYB documents", + "type": "task", + "taskType": "guideline" + }, + "waitingForHumanInput": true, + "result": null, + "error": null +} +``` + +```json Finished +{ + "runState": "finished", + "currentStep": null, + "waitingForHumanInput": false, + "result": { "name": "Customer approved", "type": "end", "context": {} }, + "error": null +} +``` + + + + + `getWorkflowRun` only exposes runs that were **started through MCP**. A run triggered manually or by webhook is not observable here, even by the same user — asking for its id returns a not-found error. + + +### Runs that need a human + +In this first version the assistant can *observe* a parked run but not answer it. When `waitingForHumanInput` is `true`, the run is waiting in the workflow's **fallback inbox**, and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is planned, not available yet. + +### Errors + +Tool failures come back as tool errors with an explanatory message, so the assistant can react rather than crash: + +| Situation | What the assistant gets | +|---|---| +| The workflow's MCP trigger is off, is unknown, or the user cannot reach it | Not found — with a hint to call `listWorkflows` | +| A run is already ongoing on that record | Conflict; no run is started and none is resumed | +| The `runId` is unknown, belongs to another user's rendering, or was not started through MCP | Not found | +| The project has no [Forest Runtime](/product/process/workflows/forest-runtime) installed | Conflict — automated triggering needs server-side execution | + +### Identity, auditing, and limits + +- **Identity** — the run executes as the Forest user of the MCP session, established by the OAuth login. Its permissions bound everything the run can read, write, or trigger. +- **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. +- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication and limits; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no anonymous surface to protect. The single-run-per-record rule also absorbs repeated triggers on the same record. +- **Turning it off** — drop `triggerWorkflow` from [`enabledTools`](#restrict-tools) to remove MCP triggering across all workflows, or disable a single workflow's MCP toggle. Either way, manual and webhook starts of that workflow keep working. + ## Use cases ### AI-assisted operations @@ -286,6 +428,8 @@ Use Claude or other AI assistants to: > "Execute the 'Send Invoice' action on order #12345" +> "Start the KYC review workflow on customer #482 and tell me where it gets to" + ## Security The Forest MCP server: @@ -295,6 +439,7 @@ The Forest MCP server: - Logs all operations for audit purposes - Never exposes sensitive data without proper access - Lets you shorten the OAuth token lifetimes (see [Token lifetimes](#token-lifetimes)) +- Exposes no workflow until an editor opts that workflow in (see [Triggering workflows](#triggering-workflows-from-an-ai-assistant)) Only provide MCP server access to trusted AI tools and users. The server can perform any operation that the authenticated user can perform. diff --git a/product/execute/workflows.mdx b/product/execute/workflows.mdx index 692487f..81c9e3a 100644 --- a/product/execute/workflows.mdx +++ b/product/execute/workflows.mdx @@ -31,7 +31,7 @@ Workflows can be executed from: The workflow opens in a guided panel. The user works through each step; the workflow context accumulates as they go. -Workflows can also be started automatically by an external system through a [webhook trigger](/product/process/workflows/triggers), without a user in the interface. +Workflows can also start without a user in the interface — from an external system through a [webhook](/product/process/workflows/triggers), or from an AI assistant through the [Forest MCP server](/product/embed/mcp-server). When such a run reaches a step that needs a human, it is routed to the workflow's **fallback inbox**, where an operator picks it up and finishes it as usual. ## AI-powered steps diff --git a/product/process/workflows/forest-runtime.mdx b/product/process/workflows/forest-runtime.mdx index c13a69b..e6895d1 100644 --- a/product/process/workflows/forest-runtime.mdx +++ b/product/process/workflows/forest-runtime.mdx @@ -15,13 +15,13 @@ Because it talks to your data through your own Forest agent, **the Forest orches ## Do I need Forest Runtime? -Yes — Forest Runtime is what executes your workflow steps. **[Webhook-triggered workflows](/product/process/workflows/triggers) especially**: a webhook can fire at any time, with no guarantee anyone has Forest open in a browser, so they can only run server-side. +Yes — Forest Runtime is what executes your workflow steps. **[Automatically-triggered workflows](/product/process/workflows/triggers) especially**: a webhook call or an AI assistant can fire at any time, with no guarantee anyone has Forest open in a browser, so those runs can only execute server-side. Until Forest Runtime is installed, both automated triggers stay locked in the workflow's settings. Running on infrastructure you control also keeps the records handled by data steps out of Forest's infrastructure — decisive for compliance or data-residency requirements, or when a step needs access to systems reachable only from within your network. ## How it works -1. A workflow is triggered — by a user or a [webhook](/product/process/workflows/triggers). The Forest orchestrator queues the pending steps. +1. A workflow is [triggered](/product/process/workflows/triggers) — by a user, a webhook, or an AI assistant. The Forest orchestrator queues the pending steps. 2. Forest Runtime polls the orchestrator and pulls the steps assigned to it. 3. Each step runs locally, reaching your data and actions through your Forest agent. 4. It reports the step outcome back to the orchestrator, which advances the workflow. diff --git a/product/process/workflows/overview.mdx b/product/process/workflows/overview.mdx index 6049e0f..3583a63 100644 --- a/product/process/workflows/overview.mdx +++ b/product/process/workflows/overview.mdx @@ -88,10 +88,10 @@ Workflows can also be made available in Summary Views and Workspaces. ### Triggering workflows -By default, workflows are started manually by users from the interface. A workflow can also be triggered automatically by an external system through a **webhook**, configured in the **Process** section of the workflow settings. +By default, workflows are started manually by users from the interface. A workflow can also be started without anyone in the interface: by an external system through a **webhook**, or by an AI assistant through the **[Forest MCP server](/product/embed/mcp-server)**. Both are opt-in per workflow, from the **Triggers** section of the workflow settings. - Enable manual and webhook triggers, and manage the webhook URL and token + Enable the manual, webhook, and MCP triggers, and manage access to each --- diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index 0adf761..2815c1f 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -1,14 +1,38 @@ --- title: "Workflow triggers" -description: "Choose how a workflow starts, manually from the interface, or automatically from an external system via a webhook." +description: "Choose how a workflow starts — manually from the interface, from an external system via a webhook, or from an AI assistant through the Forest MCP server." --- -A workflow can be started in two independent ways. Both are configured in the **Process** section of the workflow settings page, beneath the version card. Each trigger type has its own row with an on/off toggle, and the two can be enabled independently. +A workflow can be started in three independent ways: -- **Manual** — users start the workflow from a matching record in the interface (List View, Summary/Details, or a Workspace). This is the default. See [Executing workflows](/product/execute/workflows). -- **Webhook** — external systems start the workflow via an authenticated HTTP POST. **Disabled by default.** +| Trigger | Who starts the run | Default | +|---|---|---| +| **Manual** | Users, from a matching record in the interface (List View, Summary/Details, or a Workspace). See [Executing workflows](/product/execute/workflows). | Enabled | +| **Webhook** | Any external system, via an authenticated HTTP POST to a stable URL. | Disabled | +| **MCP** | An AI assistant (Claude, Cursor, …) connected to the [Forest MCP server](/product/embed/mcp-server). | Disabled | + +Each has its own on/off toggle and they can be enabled in any combination. Toggling one **never** affects the others: turning MCP off blocks MCP triggering only, and the same workflow keeps starting from the interface and from its webhook. + +All three are available on **all environments**, with no production-only restriction. + +## Where triggers are configured + +Open the workflow settings page and go to the **Triggers** section. **Manual** sits at the top with its own toggle, followed by an **Automated** group holding the **Fallback Inbox** selector and the **Webhook** and **MCP** rows. + + + Triggers section: the Manual row, then the Automated group with the fallback inbox, the webhook, and the MCP toggle + -Webhook triggers are available on **all environments**, with no production-only restriction. +### Before you can enable an automated trigger + +Both automated triggers (Webhook and MCP) share two prerequisites. Until both are met, their toggles stay locked, with a tooltip explaining which one is missing. + +- **[Forest Runtime](/product/process/workflows/forest-runtime) must be installed.** An automated run can fire at any time, with nobody holding Forest open in a browser, so its steps can only run server-side. The tooltip reads *"Ask your tech team to install the Workflow Executor."* +- **A fallback inbox must be selected.** When an automated run reaches a step that needs a human, there is no operator on the other end to hand it to — so the run is routed to that inbox for someone to pick up. See [Inboxes & escalations](/product/manage/inbox). + + + A trigger that is already enabled stays actionable even if its fallback inbox is later cleared, so you can always turn it **off**. It re-locks once disabled. + ## The webhook trigger @@ -21,9 +45,9 @@ Two things are separated by design: For the full HTTP contract, request body, response codes, idempotency, and rate limits, see the [Trigger a workflow via webhook](/reference/api/endpoints/trigger-workflow-webhook) API reference. -## Enabling the webhook +### Enabling the webhook -1. Open the workflow settings page and go to the **Process** section. +1. Open the workflow settings page and go to the **Triggers** section. 2. Toggle **Webhook** on. Once enabled: @@ -32,13 +56,9 @@ Once enabled: - a hint shows the JSON body to send, with the target record's `record_id`; - a **Generate new URL** button lets you rotate the URL (see [Regenerating the URL](#regenerating-the-url)). - - Process section with Manual and Webhook trigger rows beneath the version card - - Copy the URL and use it from your external system with a valid application token. The workflow starts on the record you pass in the request body. -## Regenerating the URL +### Regenerating the URL If a URL may have leaked, or you simply want to rotate it, generate a new one from the **Generate new URL** button below the current URL. @@ -55,7 +75,7 @@ When you confirm: Generate new URL button and the invalidation warning -## Revoking access +### Revoking webhook access You have three independent levers to stop a webhook, without necessarily touching the others: @@ -67,9 +87,43 @@ You have three independent levers to stop a webhook, without necessarily touchin Turning the toggle back on re-enables the *same* URL and token — it is a pause, not a reset. +## The MCP trigger + +When enabled, an AI assistant connected to the [Forest MCP server](/product/embed/mcp-server) can discover this workflow, start it on a record, and follow the run's progress — using three tools: `listWorkflows`, `triggerWorkflow`, and `getWorkflowRun`. + +There is nothing to copy or rotate here: **the toggle is the whole configuration**. The assistant is already authenticated against the MCP server through OAuth, and that session's Forest user is the identity the run executes under — the same model as a manual start, not the webhook's separately-provisioned URL and token. + +Enabling MCP triggering is what makes the workflow visible to assistants at all: + +- `listWorkflows` returns only MCP-enabled workflows, and only those the connected user can reach in the rendering; +- `triggerWorkflow` on a workflow whose MCP toggle is off fails — even if the assistant already knows its id. + +### Enabling MCP triggering + +1. Open the workflow settings page and go to the **Triggers** section. +2. Toggle **MCP** on. + +That's it. Assistants connected to your Forest MCP server pick the workflow up on their next `listWorkflows` call. + +### What an assistant can and cannot do + +- It **can** start the workflow on a record and poll the run's state, current step, and outcome. +- It **cannot** exceed the connected user's permissions — data and actions are gated by [Roles & permissions](/get-started/control/roles-permissions) exactly as in the interface. +- It **cannot** answer a step that needs a human. A run parked on such a step is *reported* to the assistant, but finishing it happens in the Forest UI, from the fallback inbox. + +For the tool contracts and the discover → trigger → poll flow, see [Triggering workflows from an AI assistant](/product/embed/mcp-server#triggering-workflows-from-an-ai-assistant). + +### Revoking MCP access + +| Lever | Effect | +|---|---| +| **Disable the MCP toggle** | The workflow disappears from `listWorkflows` and can no longer be triggered through MCP. Manual and webhook starts are unaffected. | +| **Restrict the MCP server's tools** | Drop `triggerWorkflow` from `enabledTools` to remove MCP triggering across *all* workflows at once. See [Restrict tools](/product/embed/mcp-server#restrict-tools). | +| **Revoke the user's access** | The assistant acts as its connected Forest user; removing that user's access to the rendering or the workflow stops its runs. | + ## Auditing -Every webhook-triggered run is recorded in the workflow run history and in your **Activity Logs**, attributed to the token's user and marked as **webhook-triggered** so you can distinguish automated runs from manual ones. +Every automated run is recorded in the workflow run history and in your **Activity Logs**, attributed to the user the run acted as, and labelled by channel — *via webhook* or *via MCP* — so you can tell automated runs from manual ones, and from each other. ## Learn more @@ -77,6 +131,12 @@ Every webhook-triggered run is recorded in the workflow run history and in your The HTTP contract: body, response codes, idempotency, rate limits. + + The workflow tools, and the discover → trigger → poll flow. + + + Required for automated triggers: run your workflow steps server-side. + Build and manage workflows in the no-code editor. diff --git a/reference/api/endpoints/trigger-workflow-webhook.mdx b/reference/api/endpoints/trigger-workflow-webhook.mdx index 6675eb6..6e312f3 100644 --- a/reference/api/endpoints/trigger-workflow-webhook.mdx +++ b/reference/api/endpoints/trigger-workflow-webhook.mdx @@ -58,7 +58,7 @@ The body is JSON and is validated. Only known fields are extracted; unknown fiel | Field | Type | Description | |---|---|---| -| `record_id` | string | The record the workflow runs on. Composite primary keys are supported in their packed form (e.g. `"123|456"`). | +| `record_id` | string | The record the workflow runs on. Composite primary keys are supported in their packed form (e.g. `"123\|456"`). | The `record_id` is **not** verified when the run is created. If the record does not exist or is inaccessible to the token's user, the run is still created and fails at its first data step during execution — observable via the run state. From 488139ff3b4f0b573a752673a8e72bb2a7bea2cf Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Mon, 10 Aug 2026 18:59:47 +0200 Subject: [PATCH 02/20] docs(workflows): align getWorkflowRun with the full hydrated run contract (PRD-742) The orchestrator endpoint now returns the whole HydratedWorkflowRun instead of the dropped normalized status. Replace the currentStep/waitingForHumanInput/ result field table and JSON examples with runState + triggerType + the workflowHistory shape (each step's resolved definition and per-step context), and reword the poll step, the trigger-time error note and the human-gated section accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) --- product/embed/mcp-server.mdx | 79 +++++++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 20 deletions(-) diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index d3d977b..ede4a1f 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -300,7 +300,7 @@ flowchart LR 1. **Discover** — `listWorkflows` returns the MCP-enabled workflows the connected user can reach, with the collection each one operates on. Pass `collectionName` to narrow it to the collection of the record in context. 2. **Trigger** — `triggerWorkflow` starts a run on one record and returns its `runId`. The run continues server-side; nothing blocks. -3. **Poll** — `getWorkflowRun` reports the run's state, the step it is on, whether it is waiting for a human, and, once terminal, its result or error. +3. **Poll** — `getWorkflowRun` returns the full run: its state plus the complete step-by-step history, each step with its definition and outcome, so the assistant can see exactly where the run is and how it got there. ### `listWorkflows` @@ -338,46 +338,85 @@ Starts a run of an MCP-enabled workflow on a specific record. `runId` is what every subsequent `getWorkflowRun` call needs. `runState` is only the state at that instant — it depends on the workflow's first step, and it moves on without further calls, so treat it as a starting point, not an outcome. - The record is **not** checked when the run is created — the orchestrator has no data access at that point. An id that does not exist, or that the user cannot read, produces a run that fails at its first data step; the assistant sees it through `getWorkflowRun`'s `error`, not as a trigger-time failure. + The record is **not** checked when the run is created — the orchestrator has no data access at that point. An id that does not exist, or that the user cannot read, produces a run that fails at its first data step; the assistant sees it through the failing step's `context.error` in `getWorkflowRun`'s history, not as a trigger-time failure. Only **one run per record** can be active at a time. Triggering a record that already has an ongoing run fails and does **not** resume it — the run in flight is left untouched. ### `getWorkflowRun` -Reads the normalized status of a run, given the `runId` returned by `triggerWorkflow`. +Reads the full run, given the `runId` returned by `triggerWorkflow`. The orchestrator holds no customer record data — that lives in the executor — so the whole run is returned, giving the assistant maximum context about where it is and what each step does. | Field | Description | |---|---| | `runState` | `pending` or `loading` while a step is queued or executing, `started` when the run is parked, `finished` on completion, `aborted` when stopped. | -| `currentStep` | The step the run sits on — its `name` and `type` (plus a `taskType` on task steps). `null` once the run is finished. | -| `waitingForHumanInput` | `true` when the run is parked on a step a person must handle. | -| `result` | The step the run ended on, populated only once `runState` is `finished`. | -| `error` | The failure recorded on the current step, including a first-data-step failure on an unreachable record. `null` otherwise. | +| `triggerType` | Always `mcp` here — only MCP-started runs are readable through this tool. | +| `workflowHistory` | The ordered steps the run has reached. Each entry pairs the step's resolved **definition** (`stepDefinition`: `type`, `title`, an optional `taskType` and `prompt`, and the `outgoing` branches) with its **outcome** (`done`, plus a `context` carrying the selected option, a manual completion, an escalation state, an awaiting-input reason, or an `error`). The last entry with `done: false` is where the run currently sits. | + +Identifying fields — `id`, `workflowId`, `collectionId`, `selectedRecordId`, timestamps — are returned too. ```json Parked on a human step { + "id": 1234, + "workflowId": "9f1b0c4e-2f7a-4d5b-9e31-6c0a8b7d1234", + "selectedRecordId": "42", "runState": "started", - "currentStep": { - "name": "Review the KYB documents", - "type": "task", - "taskType": "guideline" - }, - "waitingForHumanInput": true, - "result": null, - "error": null + "triggerType": "mcp", + "workflowHistory": [ + { + "stepName": "Review the KYB documents", + "stepIndex": 0, + "done": false, + "context": {}, + "stepDefinition": { + "type": "task", + "taskType": "guideline", + "title": "Review the KYB documents", + "prompt": "Check the uploaded documents, then approve or reject", + "executionType": "manual", + "outgoing": [{ "stepId": "approved", "buttonText": "Approve" }] + } + } + ] } ``` ```json Finished { + "id": 1234, + "workflowId": "9f1b0c4e-2f7a-4d5b-9e31-6c0a8b7d1234", + "selectedRecordId": "42", "runState": "finished", - "currentStep": null, - "waitingForHumanInput": false, - "result": { "name": "Customer approved", "type": "end", "context": {} }, - "error": null + "triggerType": "mcp", + "workflowHistory": [ + { + "stepName": "Review the KYB documents", + "stepIndex": 0, + "done": true, + "context": { "manuallyCompleted": true, "selectedOption": "Approve" }, + "stepDefinition": { + "type": "task", + "taskType": "guideline", + "title": "Review the KYB documents", + "executionType": "manual", + "outgoing": [] + } + }, + { + "stepName": "Customer approved", + "stepIndex": 1, + "done": true, + "context": {}, + "stepDefinition": { + "type": "end", + "title": "Customer approved", + "executionType": "fully-automated", + "outgoing": [] + } + } + ] } ``` @@ -389,7 +428,7 @@ Reads the normalized status of a run, given the `runId` returned by `triggerWork ### Runs that need a human -In this first version the assistant can *observe* a parked run but not answer it. When `waitingForHumanInput` is `true`, the run is waiting in the workflow's **fallback inbox**, and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is planned, not available yet. +In this first version the assistant can *observe* a parked run but not answer it. When the run sits on a human step — an incomplete step (`done: false`) whose definition marks it manual — it is waiting in the workflow's **fallback inbox**, and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is planned, not available yet. ### Errors From 17b67745dfe809b5e9b9a085b431693d542957ae Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Wed, 12 Aug 2026 09:09:43 +0200 Subject: [PATCH 03/20] =?UTF-8?q?docs(workflows):=20address=20review=20?= =?UTF-8?q?=E2=80=94=20align=20MCP=20docs=20with=20the=20shipped=20contrac?= =?UTF-8?q?t=20(PRD-742)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - runId is a string; one active run per (workflow, record); Conflict is keyed on the browser engine, not Runtime presence - getWorkflowRun: document executionType/stepName/stepIndex, the trimmed examples note, the id/runId asymmetry, and no dedicated failed state - fix the finished example (static stepDefinition keeps prompt/outgoing) - enabledTools levers rewritten with allowlist semantics + third revocation lever; rate-limiting rationale corrected (no anonymous surface claim) - new from the impl fixes: polling cadence, segments not enforced at trigger time, 4xx row for out-of-bounds ids - onboarding page: workflows bullet in the MCP capability list Fallback-inbox claims stay as written: forestadmin-server 945eae136 now routes parked MCP runs to the fallback inbox. Co-Authored-By: Claude Fable 5 --- get-started/expose-to-ai-agents.mdx | 1 + product/embed/mcp-server.mdx | 38 ++++++++++++++------------ product/process/workflows/triggers.mdx | 2 +- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/get-started/expose-to-ai-agents.mdx b/get-started/expose-to-ai-agents.mdx index 1efa396..afc7e2e 100644 --- a/get-started/expose-to-ai-agents.mdx +++ b/get-started/expose-to-ai-agents.mdx @@ -14,6 +14,7 @@ Through the Model Context Protocol, connected AI agents can: - Browse your collections and their schemas - Query and filter records across collections - Execute actions on records, including approval workflows +- Start [workflows](/product/process/workflows/triggers#the-mcp-trigger) on a record and follow their progress Every operation runs with the permissions of the authenticated Forest user and is logged just like a UI action. diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index ede4a1f..9a1f69a 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -282,15 +282,15 @@ url = "" ## Triggering workflows from an AI assistant -Three tools let an assistant drive a [Workflow](/product/process/workflows/overview) end-to-end from its own context: pick a workflow that fits the record at hand, start it, then watch the run. +Three tools let an assistant start and follow a [Workflow](/product/process/workflows/overview) from its own context: pick a workflow that fits the record at hand, start it, then watch the run. - A workflow is only reachable through MCP once an editor enables its **MCP** trigger in the workflow's [trigger settings](/product/process/workflows/triggers#the-mcp-trigger). Nothing is exposed by default. + A workflow is only reachable through MCP once a workflow editor enables its **MCP** trigger in the workflow's [trigger settings](/product/process/workflows/triggers#the-mcp-trigger). Nothing is exposed by default. ### Discover → trigger → poll -The three tools are meant to be chained, and the split is deliberate: MCP has no push channel, and a run is asynchronous — it can be long, or parked waiting for a person. So `triggerWorkflow` returns immediately with a `runId`, and the assistant polls `getWorkflowRun` for as long as it cares about the outcome. +The three tools are meant to be chained, and the split is deliberate: MCP has no push channel, and a run is asynchronous — it can be long, or parked waiting for a person. So `triggerWorkflow` returns immediately with a `runId`, and the assistant polls `getWorkflowRun` for as long as it cares about the outcome — at a reasonable interval: the tool's own description tells the assistant to wait between calls and not to busy-loop on a long-running or human-gated run. ```mermaid flowchart LR @@ -304,7 +304,7 @@ flowchart LR ### `listWorkflows` -Lists workflows with the MCP trigger enabled, scoped to the connected user's rendering and permissions. +Lists workflows with the MCP trigger enabled, scoped to the connected user's rendering. | Argument | Description | |---|---| @@ -320,7 +320,7 @@ Lists workflows with the MCP trigger enabled, scoped to the connected user's ren ] ``` -An empty array means no workflow is MCP-enabled for that user — most often because nobody has turned the toggle on yet. +An empty array means no workflow is MCP-enabled in that rendering — most often because nobody has turned the toggle on yet. ### `triggerWorkflow` @@ -332,16 +332,16 @@ Starts a run of an MCP-enabled workflow on a specific record. | `recordId` | The record to run on. Composite primary keys use the packed form, values joined by `\|` (e.g. `"123\|456"`). | ```json Returns -{ "runId": 1234, "runState": "loading" } +{ "runId": "1234", "runState": "loading" } ``` `runId` is what every subsequent `getWorkflowRun` call needs. `runState` is only the state at that instant — it depends on the workflow's first step, and it moves on without further calls, so treat it as a starting point, not an outcome. - The record is **not** checked when the run is created — the orchestrator has no data access at that point. An id that does not exist, or that the user cannot read, produces a run that fails at its first data step; the assistant sees it through the failing step's `context.error` in `getWorkflowRun`'s history, not as a trigger-time failure. + The record is **not** checked when the run is created — the orchestrator has no data access at that point. An id that does not exist, or that the user cannot read, produces a run that fails at its first data step; the assistant sees it through the failing step's `context.error` in `getWorkflowRun`'s history, not as a trigger-time failure. Workflow segments are not enforced either: they control where the manual trigger appears in the interface, so an out-of-segment record is accepted — permission scopes still bound everything the run reads and writes. -Only **one run per record** can be active at a time. Triggering a record that already has an ongoing run fails and does **not** resume it — the run in flight is left untouched. +Only **one run of a given workflow** can be active on a given record at a time. Triggering a record that already has an ongoing run of the same workflow fails and does **not** resume it — the run in flight is left untouched. A different workflow can still start on that record. ### `getWorkflowRun` @@ -349,11 +349,11 @@ Reads the full run, given the `runId` returned by `triggerWorkflow`. The orchest | Field | Description | |---|---| -| `runState` | `pending` or `loading` while a step is queued or executing, `started` when the run is parked, `finished` on completion, `aborted` when stopped. | +| `runState` | `pending` or `loading` while a step is queued or executing, `started` when the run is parked, `finished` on completion, `aborted` when stopped. There is no dedicated *failed* state: a step failure surfaces in that step's `context.error`. | | `triggerType` | Always `mcp` here — only MCP-started runs are readable through this tool. | -| `workflowHistory` | The ordered steps the run has reached. Each entry pairs the step's resolved **definition** (`stepDefinition`: `type`, `title`, an optional `taskType` and `prompt`, and the `outgoing` branches) with its **outcome** (`done`, plus a `context` carrying the selected option, a manual completion, an escalation state, an awaiting-input reason, or an `error`). The last entry with `done: false` is where the run currently sits. | +| `workflowHistory` | The ordered steps the run has reached. Each entry pairs the step's resolved **definition** (`stepDefinition`: `type`, `title`, an `executionType` — `manual`, `automated-with-confirmation` or `fully-automated` — plus an optional `taskType` and `prompt`, and the `outgoing` branches) with its **outcome** (`stepName`, `stepIndex`, `done`, plus an optional `context` carrying the selected option, a manual completion, an escalation state, an awaiting-input reason, or an `error`). The last entry with `done: false` is where the run currently sits. | -Identifying fields — `id`, `workflowId`, `collectionId`, `selectedRecordId`, timestamps — are returned too. +The run is returned whole, not trimmed: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. The examples below are trimmed to the load-bearing fields. @@ -400,8 +400,9 @@ Identifying fields — `id`, `workflowId`, `collectionId`, `selectedRecordId`, t "type": "task", "taskType": "guideline", "title": "Review the KYB documents", + "prompt": "Check the uploaded documents, then approve or reject", "executionType": "manual", - "outgoing": [] + "outgoing": [{ "stepId": "approved", "buttonText": "Approve" }] } }, { @@ -428,7 +429,7 @@ Identifying fields — `id`, `workflowId`, `collectionId`, `selectedRecordId`, t ### Runs that need a human -In this first version the assistant can *observe* a parked run but not answer it. When the run sits on a human step — an incomplete step (`done: false`) whose definition marks it manual — it is waiting in the workflow's **fallback inbox**, and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is planned, not available yet. +In this first version the assistant can *observe* a parked run but not answer it. When the run sits on a human step — an incomplete step (`done: false`) whose `stepDefinition.executionType` is `manual` — it is waiting in the workflow's **fallback inbox**, and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is not available in this version. ### Errors @@ -436,17 +437,18 @@ Tool failures come back as tool errors with an explanatory message, so the assis | Situation | What the assistant gets | |---|---| -| The workflow's MCP trigger is off, is unknown, or the user cannot reach it | Not found — with a hint to call `listWorkflows` | -| A run is already ongoing on that record | Conflict; no run is started and none is resumed | +| The workflow is unknown, its MCP trigger is off, or it is outside the user's rendering | Not found — with a hint to call `listWorkflows` | +| A run of the same workflow is already ongoing on that record | Conflict; no run is started and none is resumed | | The `runId` is unknown, belongs to another user's rendering, or was not started through MCP | Not found | -| The project has no [Forest Runtime](/product/process/workflows/forest-runtime) installed | Conflict — automated triggering needs server-side execution | +| An empty or out-of-bounds `recordId` or `runId` (e.g. a record id longer than 255 characters) | Invalid argument — rejected up front, nothing starts | +| The environment's workflows still run in the browser engine | Conflict — automated triggering needs server-side execution ([Forest Runtime](/product/process/workflows/forest-runtime)) | ### Identity, auditing, and limits - **Identity** — the run executes as the Forest user of the MCP session, established by the OAuth login. Its permissions bound everything the run can read, write, or trigger. - **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. -- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication and limits; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no anonymous surface to protect. The single-run-per-record rule also absorbs repeated triggers on the same record. -- **Turning it off** — drop `triggerWorkflow` from [`enabledTools`](#restrict-tools) to remove MCP triggering across all workflows, or disable a single workflow's MCP toggle. Either way, manual and webhook starts of that workflow keep working. +- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication and limits; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule also absorbs repeated triggers on the same record. +- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access is the lever that also stops runs already in flight — see [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). ## Use cases diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index 2815c1f..d96e039 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -118,7 +118,7 @@ For the tool contracts and the discover → trigger → poll flow, see [Triggeri | Lever | Effect | |---|---| | **Disable the MCP toggle** | The workflow disappears from `listWorkflows` and can no longer be triggered through MCP. Manual and webhook starts are unaffected. | -| **Restrict the MCP server's tools** | Drop `triggerWorkflow` from `enabledTools` to remove MCP triggering across *all* workflows at once. See [Restrict tools](/product/embed/mcp-server#restrict-tools). | +| **Restrict the MCP server's tools** | Set an `enabledTools` allowlist that leaves `triggerWorkflow` out to remove MCP triggering across *all* workflows at once — when `enabledTools` is unset, every tool is enabled. See [Restrict tools](/product/embed/mcp-server#restrict-tools). | | **Revoke the user's access** | The assistant acts as its connected Forest user; removing that user's access to the rendering or the workflow stops its runs. | ## Auditing From 4361f161ba237c275dcccd470a4121118c8b5c35 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Wed, 12 Aug 2026 11:25:30 +0200 Subject: [PATCH 04/20] docs(workflows): fix end-step executionType and editor wording (PRD-742) Co-Authored-By: Claude Fable 5 --- product/embed/mcp-server.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 9a1f69a..261c90e 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -413,7 +413,7 @@ The run is returned whole, not trimmed: identifying fields (`id` — the numeric "stepDefinition": { "type": "end", "title": "Customer approved", - "executionType": "fully-automated", + "executionType": "manual", "outgoing": [] } } @@ -480,7 +480,7 @@ The Forest MCP server: - Logs all operations for audit purposes - Never exposes sensitive data without proper access - Lets you shorten the OAuth token lifetimes (see [Token lifetimes](#token-lifetimes)) -- Exposes no workflow until an editor opts that workflow in (see [Triggering workflows](#triggering-workflows-from-an-ai-assistant)) +- Exposes no workflow until a workflow editor opts that workflow in (see [Triggering workflows](#triggering-workflows-from-an-ai-assistant)) Only provide MCP server access to trusted AI tools and users. The server can perform any operation that the authenticated user can perform. From ec3b24d3c6b921243f6631bdf1d441ea4cda51e5 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Mon, 17 Aug 2026 10:46:55 +0200 Subject: [PATCH 05/20] docs(workflows): scope permission and audit claims to what the code enforces (PRD-742) Post-approval review findings: the listing is rendering-scoped (no permission filter), the trigger is bounded by rendering + toggle only, runs carry no record payload but ids/error strings may hold customer data, an MCP trigger writes two via-MCP audit entries, revocation does not abort in-flight runs, fallback-inbox routing needs one configured, and the unavailable-collection rejection joins the error table. Read-tool auditing is deferred to PRD-967 ("every state-changing operation is logged"). Co-Authored-By: Claude Fable 5 --- get-started/expose-to-ai-agents.mdx | 2 +- product/embed/mcp-server.mdx | 11 ++++++----- product/execute/workflows.mdx | 2 +- product/process/workflows/triggers.mdx | 8 ++++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/get-started/expose-to-ai-agents.mdx b/get-started/expose-to-ai-agents.mdx index afc7e2e..97f9c89 100644 --- a/get-started/expose-to-ai-agents.mdx +++ b/get-started/expose-to-ai-agents.mdx @@ -16,7 +16,7 @@ Through the Model Context Protocol, connected AI agents can: - Execute actions on records, including approval workflows - Start [workflows](/product/process/workflows/triggers#the-mcp-trigger) on a record and follow their progress -Every operation runs with the permissions of the authenticated Forest user and is logged just like a UI action. +Every operation runs with the permissions of the authenticated Forest user, and every state-changing operation is logged just like a UI action. ## Turn on the MCP server diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 261c90e..976c666 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -298,7 +298,7 @@ flowchart LR G -. "not finished yet" .-> G ``` -1. **Discover** — `listWorkflows` returns the MCP-enabled workflows the connected user can reach, with the collection each one operates on. Pass `collectionName` to narrow it to the collection of the record in context. +1. **Discover** — `listWorkflows` returns the MCP-enabled workflows in the connected user's rendering, with the collection each one operates on. Pass `collectionName` to narrow it to the collection of the record in context. 2. **Trigger** — `triggerWorkflow` starts a run on one record and returns its `runId`. The run continues server-side; nothing blocks. 3. **Poll** — `getWorkflowRun` returns the full run: its state plus the complete step-by-step history, each step with its definition and outcome, so the assistant can see exactly where the run is and how it got there. @@ -345,7 +345,7 @@ Only **one run of a given workflow** can be active on a given record at a time. ### `getWorkflowRun` -Reads the full run, given the `runId` returned by `triggerWorkflow`. The orchestrator holds no customer record data — that lives in the executor — so the whole run is returned, giving the assistant maximum context about where it is and what each step does. +Reads the full run, given the `runId` returned by `triggerWorkflow`. The run carries no record payload — records live in the executor — so the whole run is returned, giving the assistant maximum context about where it is and what each step does. Identifiers (`selectedRecordId`) and step error messages (`context.error`) may still contain customer data. | Field | Description | |---|---| @@ -429,7 +429,7 @@ The run is returned whole, not trimmed: identifying fields (`id` — the numeric ### Runs that need a human -In this first version the assistant can *observe* a parked run but not answer it. When the run sits on a human step — an incomplete step (`done: false`) whose `stepDefinition.executionType` is `manual` — it is waiting in the workflow's **fallback inbox**, and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is not available in this version. +In this first version the assistant can *observe* a parked run but not answer it. When the run sits on a human step — an incomplete step (`done: false`) whose `stepDefinition.executionType` is `manual` — it is routed to the workflow's **fallback inbox** (when one is configured), and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is not available in this version. ### Errors @@ -438,6 +438,7 @@ Tool failures come back as tool errors with an explanatory message, so the assis | Situation | What the assistant gets | |---|---| | The workflow is unknown, its MCP trigger is off, or it is outside the user's rendering | Not found — with a hint to call `listWorkflows` | +| The workflow's collection is unavailable (renamed or deleted — it may still appear in `listWorkflows` with a null `collectionName`) | Rejected up front, pointing at the workflow's configuration; nothing starts | | A run of the same workflow is already ongoing on that record | Conflict; no run is started and none is resumed | | The `runId` is unknown, belongs to another user's rendering, or was not started through MCP | Not found | | An empty or out-of-bounds `recordId` or `runId` (e.g. a record id longer than 255 characters) | Invalid argument — rejected up front, nothing starts | @@ -446,9 +447,9 @@ Tool failures come back as tool errors with an explanatory message, so the assis ### Identity, auditing, and limits - **Identity** — the run executes as the Forest user of the MCP session, established by the OAuth login. Its permissions bound everything the run can read, write, or trigger. -- **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. +- **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. An MCP trigger writes two complementary log entries: one before the run starts (the audit that blocks the trigger if it cannot be written), and one attached to the run. - **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication and limits; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule also absorbs repeated triggers on the same record. -- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access is the lever that also stops runs already in flight — see [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). +- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access is the lever that also halts runs already in flight — they are not aborted, but their next data step fails once the permissions are gone — see [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). ## Use cases diff --git a/product/execute/workflows.mdx b/product/execute/workflows.mdx index 81c9e3a..af4494f 100644 --- a/product/execute/workflows.mdx +++ b/product/execute/workflows.mdx @@ -31,7 +31,7 @@ Workflows can be executed from: The workflow opens in a guided panel. The user works through each step; the workflow context accumulates as they go. -Workflows can also start without a user in the interface — from an external system through a [webhook](/product/process/workflows/triggers), or from an AI assistant through the [Forest MCP server](/product/embed/mcp-server). When such a run reaches a step that needs a human, it is routed to the workflow's **fallback inbox**, where an operator picks it up and finishes it as usual. +Workflows can also start without a user in the interface — from an external system through a [webhook](/product/process/workflows/triggers), or from an AI assistant through the [Forest MCP server](/product/embed/mcp-server). When such a run reaches a step that needs a human, it is routed to the workflow's **fallback inbox** (when one is configured), where an operator picks it up and finishes it as usual. ## AI-powered steps diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index d96e039..716598e 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -95,7 +95,7 @@ There is nothing to copy or rotate here: **the toggle is the whole configuration Enabling MCP triggering is what makes the workflow visible to assistants at all: -- `listWorkflows` returns only MCP-enabled workflows, and only those the connected user can reach in the rendering; +- `listWorkflows` returns only the MCP-enabled workflows in the connected user's rendering; - `triggerWorkflow` on a workflow whose MCP toggle is off fails — even if the assistant already knows its id. ### Enabling MCP triggering @@ -108,7 +108,7 @@ That's it. Assistants connected to your Forest MCP server pick the workflow up o ### What an assistant can and cannot do - It **can** start the workflow on a record and poll the run's state, current step, and outcome. -- It **cannot** exceed the connected user's permissions — data and actions are gated by [Roles & permissions](/get-started/control/roles-permissions) exactly as in the interface. +- It **cannot** exceed the connected user's permissions on the data the run reads and writes — every data step is gated by [Roles & permissions](/get-started/control/roles-permissions). The trigger itself is bounded by the user's rendering and the MCP toggle only: the record id the assistant supplies is not checked at trigger time (see [the note on unvalidated records](/product/embed/mcp-server#triggerworkflow)). - It **cannot** answer a step that needs a human. A run parked on such a step is *reported* to the assistant, but finishing it happens in the Forest UI, from the fallback inbox. For the tool contracts and the discover → trigger → poll flow, see [Triggering workflows from an AI assistant](/product/embed/mcp-server#triggering-workflows-from-an-ai-assistant). @@ -119,11 +119,11 @@ For the tool contracts and the discover → trigger → poll flow, see [Triggeri |---|---| | **Disable the MCP toggle** | The workflow disappears from `listWorkflows` and can no longer be triggered through MCP. Manual and webhook starts are unaffected. | | **Restrict the MCP server's tools** | Set an `enabledTools` allowlist that leaves `triggerWorkflow` out to remove MCP triggering across *all* workflows at once — when `enabledTools` is unset, every tool is enabled. See [Restrict tools](/product/embed/mcp-server#restrict-tools). | -| **Revoke the user's access** | The assistant acts as its connected Forest user; removing that user's access to the rendering or the workflow stops its runs. | +| **Revoke the user's access** | The assistant acts as its connected Forest user; removing that user's access to the rendering or the workflow halts its runs — runs in flight are not aborted, but their next data step fails once the permissions are gone. | ## Auditing -Every automated run is recorded in the workflow run history and in your **Activity Logs**, attributed to the user the run acted as, and labelled by channel — *via webhook* or *via MCP* — so you can tell automated runs from manual ones, and from each other. +Every automated run is recorded in the workflow run history and in your **Activity Logs**, attributed to the user the run acted as, and labelled by channel — *via webhook* or *via MCP* — so you can tell automated runs from manual ones, and from each other. An MCP trigger writes two complementary entries, both labelled *via MCP*: one before the run starts (the audit that blocks the trigger if it cannot be written), and one attached to the run. ## Learn more From 0684448aa4243e3ab5b72ad8d327a8fad27609f9 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Mon, 17 Aug 2026 12:08:23 +0200 Subject: [PATCH 06/20] docs(workflows): widen the human-step definition and hedge the inbox claim (PRD-742) - A parked run covers automated-with-confirmation steps too, not only manual ones - List the always-present isCardStep / automaticCompletion fields the examples omit - Make the triggers-page fallback-inbox claim conditional, matching the other pages Co-Authored-By: Claude Fable 5 --- product/embed/mcp-server.mdx | 4 ++-- product/process/workflows/triggers.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 976c666..16d8812 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -353,7 +353,7 @@ Reads the full run, given the `runId` returned by `triggerWorkflow`. The run car | `triggerType` | Always `mcp` here — only MCP-started runs are readable through this tool. | | `workflowHistory` | The ordered steps the run has reached. Each entry pairs the step's resolved **definition** (`stepDefinition`: `type`, `title`, an `executionType` — `manual`, `automated-with-confirmation` or `fully-automated` — plus an optional `taskType` and `prompt`, and the `outgoing` branches) with its **outcome** (`stepName`, `stepIndex`, `done`, plus an optional `context` carrying the selected option, a manual completion, an escalation state, an awaiting-input reason, or an `error`). The last entry with `done: false` is where the run currently sits. | -The run is returned whole, not trimmed: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. The examples below are trimmed to the load-bearing fields. +The run is returned whole, not trimmed: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. History entries likewise carry an `isCardStep` flag, and every `stepDefinition` an `automaticCompletion` one. The examples below are trimmed to the load-bearing fields. @@ -429,7 +429,7 @@ The run is returned whole, not trimmed: identifying fields (`id` — the numeric ### Runs that need a human -In this first version the assistant can *observe* a parked run but not answer it. When the run sits on a human step — an incomplete step (`done: false`) whose `stepDefinition.executionType` is `manual` — it is routed to the workflow's **fallback inbox** (when one is configured), and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is not available in this version. +In this first version the assistant can *observe* a parked run but not answer it. When the run sits on a step that needs a person — an incomplete step (`done: false`) whose `stepDefinition.executionType` is `manual` or `automated-with-confirmation` (automated, but awaiting a human confirmation) — it is routed to the workflow's **fallback inbox** (when one is configured), and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is not available in this version. ### Errors diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index 716598e..6b6e5fd 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -109,7 +109,7 @@ That's it. Assistants connected to your Forest MCP server pick the workflow up o - It **can** start the workflow on a record and poll the run's state, current step, and outcome. - It **cannot** exceed the connected user's permissions on the data the run reads and writes — every data step is gated by [Roles & permissions](/get-started/control/roles-permissions). The trigger itself is bounded by the user's rendering and the MCP toggle only: the record id the assistant supplies is not checked at trigger time (see [the note on unvalidated records](/product/embed/mcp-server#triggerworkflow)). -- It **cannot** answer a step that needs a human. A run parked on such a step is *reported* to the assistant, but finishing it happens in the Forest UI, from the fallback inbox. +- It **cannot** answer a step that needs a human. A run parked on such a step is *reported* to the assistant, but finishing it happens in the Forest UI, from the fallback inbox (when one is configured). For the tool contracts and the discover → trigger → poll flow, see [Triggering workflows from an AI assistant](/product/embed/mcp-server#triggering-workflows-from-an-ai-assistant). From 9b2edd5cba6191c3a3da8e958386879457ee5f5f Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Tue, 18 Aug 2026 16:01:02 +0200 Subject: [PATCH 07/20] docs(workflows): correct the parked-run rule and the finished example (PRD-742) The finished example marked the terminal end step done: true, which the code never does - startStepExecution creates every entry with done: false and the End branch only sets runState. Combined with the parked rule (done: false plus a manual executionType) and end steps being pinned to manual server-side, an assistant following this page reported a finished run as awaiting a human. The rule now matches buildHumanInterventionFallback: runState started with no context.error on the last entry, covering both an unanswered step and one awaiting confirmation, and saying not to read executionType. Also drops a selectedOption from a task step - it is only written for condition steps, and carries the branch answer, not the button text. Co-Authored-By: Claude Opus 5 (1M context) --- product/embed/mcp-server.mdx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 16d8812..5f998b1 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -351,7 +351,7 @@ Reads the full run, given the `runId` returned by `triggerWorkflow`. The run car |---|---| | `runState` | `pending` or `loading` while a step is queued or executing, `started` when the run is parked, `finished` on completion, `aborted` when stopped. There is no dedicated *failed* state: a step failure surfaces in that step's `context.error`. | | `triggerType` | Always `mcp` here — only MCP-started runs are readable through this tool. | -| `workflowHistory` | The ordered steps the run has reached. Each entry pairs the step's resolved **definition** (`stepDefinition`: `type`, `title`, an `executionType` — `manual`, `automated-with-confirmation` or `fully-automated` — plus an optional `taskType` and `prompt`, and the `outgoing` branches) with its **outcome** (`stepName`, `stepIndex`, `done`, plus an optional `context` carrying the selected option, a manual completion, an escalation state, an awaiting-input reason, or an `error`). The last entry with `done: false` is where the run currently sits. | +| `workflowHistory` | The ordered steps the run has reached. Each entry pairs the step's resolved **definition** (`stepDefinition`: `type`, `title`, an `executionType` — `manual`, `automated-with-confirmation` or `fully-automated` — plus an optional `taskType` and `prompt`, and the `outgoing` branches) with its **outcome** (`stepName`, `stepIndex`, `done`, plus an optional `context` carrying the selected option, a manual completion, an escalation state, an awaiting-input reason, or an `error`). Read `runState` first to know whether the run is still live — the terminal `end` entry is never marked done, so a `finished` run still ends on a `done: false` entry. While the run is live, the last entry with `done: false` is where it sits. | The run is returned whole, not trimmed: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. History entries likewise carry an `isCardStep` flag, and every `stepDefinition` an `automaticCompletion` one. The examples below are trimmed to the load-bearing fields. @@ -395,7 +395,7 @@ The run is returned whole, not trimmed: identifying fields (`id` — the numeric "stepName": "Review the KYB documents", "stepIndex": 0, "done": true, - "context": { "manuallyCompleted": true, "selectedOption": "Approve" }, + "context": { "manuallyCompleted": true }, "stepDefinition": { "type": "task", "taskType": "guideline", @@ -408,7 +408,7 @@ The run is returned whole, not trimmed: identifying fields (`id` — the numeric { "stepName": "Customer approved", "stepIndex": 1, - "done": true, + "done": false, "context": {}, "stepDefinition": { "type": "end", @@ -429,7 +429,11 @@ The run is returned whole, not trimmed: identifying fields (`id` — the numeric ### Runs that need a human -In this first version the assistant can *observe* a parked run but not answer it. When the run sits on a step that needs a person — an incomplete step (`done: false`) whose `stepDefinition.executionType` is `manual` or `automated-with-confirmation` (automated, but awaiting a human confirmation) — it is routed to the workflow's **fallback inbox** (when one is configured), and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is not available in this version. +In this first version the assistant can *observe* a parked run but not answer it. + +A run is waiting on a person when `runState` is `started` and its last history entry carries no `context.error`. That covers two shapes: the step is still `done: false` and awaiting an answer, or it is already `done: true` and someone has to confirm before the run advances. Don't read `stepDefinition.executionType` as the signal — a terminal `end` step is `manual` too, and a `finished` run is not parked. + +A `started` run whose last entry *does* carry a `context.error` is a failed step rather than a question. Either way the run is routed to the workflow's **fallback inbox** (when one is configured), and someone finishes it from the Forest UI. Relaying the step's question into the chat and submitting the answer through MCP is not available in this version. ### Errors From 72b63a26646497851508395b1152f55aae2ea95a Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Tue, 18 Aug 2026 16:01:02 +0200 Subject: [PATCH 08/20] docs(workflows): align the runtime prerequisite with what is enforced (PRD-742) The lock on the automated toggles depends on the environment's workflow engine, not on whether a runtime is installed: a missing runtime replaces the whole settings page with a "Forest Runtime can't be reached" screen, and the install-executor tooltip only appears on the legacy browser engine. Both pages claimed the tooltip covered the missing runtime. Adds the upgrade-before-enabling warning: a runtime older than the MCP trigger release rejects those runs at validation, so the run is created, never picked up, and nothing warns the operator. Co-Authored-By: Claude Opus 5 (1M context) --- product/process/workflows/forest-runtime.mdx | 6 +++++- product/process/workflows/triggers.mdx | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/product/process/workflows/forest-runtime.mdx b/product/process/workflows/forest-runtime.mdx index e6895d1..24834b8 100644 --- a/product/process/workflows/forest-runtime.mdx +++ b/product/process/workflows/forest-runtime.mdx @@ -15,10 +15,14 @@ Because it talks to your data through your own Forest agent, **the Forest orches ## Do I need Forest Runtime? -Yes — Forest Runtime is what executes your workflow steps. **[Automatically-triggered workflows](/product/process/workflows/triggers) especially**: a webhook call or an AI assistant can fire at any time, with no guarantee anyone has Forest open in a browser, so those runs can only execute server-side. Until Forest Runtime is installed, both automated triggers stay locked in the workflow's settings. +Yes — Forest Runtime is what executes your workflow steps. **[Automatically-triggered workflows](/product/process/workflows/triggers) especially**: a webhook call or an AI assistant can fire at any time, with no guarantee anyone has Forest open in a browser, so those runs can only execute server-side. Until a runtime has reported in, the workflow settings page shows a *"Your Forest Runtime can't be reached"* screen and neither automated trigger can be enabled. Running on infrastructure you control also keeps the records handled by data steps out of Forest's infrastructure — decisive for compliance or data-residency requirements, or when a step needs access to systems reachable only from within your network. + + **Upgrade Forest Runtime before you enable the MCP trigger.** A runtime older than the release that added MCP triggering rejects MCP-started runs when it validates them: the run is created, never picked up, and the assistant sees it sit in `pending` forever. Nothing warns you — the version check happens inside the runtime. Upgrade first, then turn the toggle on. + + ## How it works 1. A workflow is [triggered](/product/process/workflows/triggers) — by a user, a webhook, or an AI assistant. The Forest orchestrator queues the pending steps. diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index 6b6e5fd..5912b0f 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -25,10 +25,10 @@ Open the workflow settings page and go to the **Triggers** section. **Manual** s ### Before you can enable an automated trigger -Both automated triggers (Webhook and MCP) share two prerequisites. Until both are met, their toggles stay locked, with a tooltip explaining which one is missing. +Both automated triggers (Webhook and MCP) share two prerequisites. -- **[Forest Runtime](/product/process/workflows/forest-runtime) must be installed.** An automated run can fire at any time, with nobody holding Forest open in a browser, so its steps can only run server-side. The tooltip reads *"Ask your tech team to install the Workflow Executor."* -- **A fallback inbox must be selected.** When an automated run reaches a step that needs a human, there is no operator on the other end to hand it to — so the run is routed to that inbox for someone to pick up. See [Inboxes & escalations](/product/manage/inbox). +- **[Forest Runtime](/product/process/workflows/forest-runtime) must be running.** An automated run can fire at any time, with nobody holding Forest open in a browser, so its steps can only run server-side. Until a runtime has reported in, the workflow settings page shows *"Your Forest Runtime can't be reached"* instead of the trigger rows. On an environment still configured for the legacy browser engine, the rows do show but both toggles are locked, with the tooltip *"Ask your tech team to install the Workflow Executor."* +- **A fallback inbox must be selected.** Until one is picked, the Webhook and MCP toggles stay locked, with a tooltip saying so. When an automated run reaches a step that needs a human, there is no operator on the other end to hand it to — so the run is routed to that inbox for someone to pick up. See [Inboxes & escalations](/product/manage/inbox). A trigger that is already enabled stays actionable even if its fallback inbox is later cleared, so you can always turn it **off**. It re-locks once disabled. From 19fe1267a476f93675acefeb8b9fc6aca0d70c5e Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Tue, 18 Aug 2026 17:28:44 +0200 Subject: [PATCH 09/20] docs(workflows): scope the audit claim and correct four MCP assertions (PRD-742) Reworked after verifying each claim against the implementation heads. - The global "every operation is logged" sentence is restored rather than weakened: it had been narrowed to state-changing operations only because two new read tools skip the audit wrapper, which under-described the reads that do write one. The exception is now named where it applies, and it covers three tools - getActionForm was already unaudited before this epic. - The Identity bullet no longer implies permissions bound triggering. They bound what the run reads and writes; the trigger is gated by the rendering and the MCP toggle alone. - Hiding a workflow does not withdraw it from MCP. The listing is driven solely by the toggle, and hiding is how people retire a workflow. - The one-run-per-record rule bounds repetition on one record, not the number of records an assistant can fan out over - nothing limits that. - The revocation lever no longer promises that in-flight runs fail on their next data step: nothing in these branches demonstrates it, and the agent's permission cache holds for up to 15 minutes. - An empty listing means something different once collectionName is set, and the locked-toggle tooltip is quoted as the frontend now ships it. Co-Authored-By: Claude Opus 5 (1M context) --- get-started/expose-to-ai-agents.mdx | 2 +- product/embed/mcp-server.mdx | 15 +++++++++------ product/process/workflows/triggers.mdx | 10 +++++++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/get-started/expose-to-ai-agents.mdx b/get-started/expose-to-ai-agents.mdx index 97f9c89..2206a95 100644 --- a/get-started/expose-to-ai-agents.mdx +++ b/get-started/expose-to-ai-agents.mdx @@ -16,7 +16,7 @@ Through the Model Context Protocol, connected AI agents can: - Execute actions on records, including approval workflows - Start [workflows](/product/process/workflows/triggers#the-mcp-trigger) on a record and follow their progress -Every operation runs with the permissions of the authenticated Forest user, and every state-changing operation is logged just like a UI action. +Every operation runs with the permissions of the authenticated Forest user, and is logged just like a UI action — with three read-only exceptions, listed under [Identity, auditing, and limits](/product/embed/mcp-server#identity-auditing-and-limits). ## Turn on the MCP server diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 5f998b1..2af30e1 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -16,7 +16,7 @@ The Forest MCP server lets AI tools like Claude, Dust, and others to: - Execute actions on records - Start [Workflows](/product/process/workflows/overview) on a record and follow their progress -All of this while respecting the Roles & Permissions of your Forest project, and logging every activity, just like if they were performed through the UI. +All of this while respecting the Roles & Permissions of your Forest project, and logging activity just like if it were performed through the UI — see [Identity, auditing, and limits](#identity-auditing-and-limits) for the three reads that are not logged. The Forest MCP Server also enables other third party apps to embed and access Forest data and actions, for example in [Zendesk](/product/embed/zendesk), or [n8n](/product/embed/n8n). @@ -320,7 +320,9 @@ Lists workflows with the MCP trigger enabled, scoped to the connected user's ren ] ``` -An empty array means no workflow is MCP-enabled in that rendering — most often because nobody has turned the toggle on yet. +An empty array means nothing matched. Without `collectionName`, that means no workflow is MCP-enabled in that rendering — most often because nobody has turned the toggle on yet. With `collectionName` set, it usually just means no MCP-enabled workflow operates on that collection: call `listWorkflows` again without the filter before concluding anything. + +Workflows whose collection was renamed or removed are left out, since they cannot be triggered. ### `triggerWorkflow` @@ -450,10 +452,11 @@ Tool failures come back as tool errors with an explanatory message, so the assis ### Identity, auditing, and limits -- **Identity** — the run executes as the Forest user of the MCP session, established by the OAuth login. Its permissions bound everything the run can read, write, or trigger. +- **Identity** — the run executes as the Forest user of the MCP session, established by the OAuth login. That user's permissions bound everything the run **reads and writes**. The trigger itself is gated only by the user's rendering and the workflow's MCP toggle: neither the target record nor the workflow's segments are checked when the run is created. - **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. An MCP trigger writes two complementary log entries: one before the run starts (the audit that blocks the trigger if it cannot be written), and one attached to the run. -- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication and limits; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule also absorbs repeated triggers on the same record. -- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access is the lever that also halts runs already in flight — they are not aborted, but their next data step fails once the permissions are gone — see [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). +- **Three reads are not audited** — `listWorkflows`, `getWorkflowRun` and `getActionForm` leave no Activity Logs entry, because the log route needs a resource these tools have no way to name. Every other tool, read or write, writes one. A write whose log cannot be created is blocked; a read proceeds with a warning, so an audit-store outage never takes the read surface down. +- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication and limits; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule prevents duplicate runs on the *same* record, but nothing bounds how many records an assistant can trigger on — walking a list view opens one run per record, each consuming Forest Runtime capacity. `triggerWorkflow` is annotated as destructive so MCP clients ask the user to confirm each call; keep that confirmation on, and size the exposure with the `mcp` toggle, per workflow. +- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access stops new triggers immediately; a run already in flight is not aborted, and keeps going until it next touches data — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. See [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). ## Use cases @@ -482,7 +485,7 @@ The Forest MCP server: - Respects all Forest permissions and roles - Uses your environment's authentication -- Logs all operations for audit purposes +- Logs every write, and all but three reads, for audit purposes (see [Identity, auditing, and limits](#identity-auditing-and-limits)) - Never exposes sensitive data without proper access - Lets you shorten the OAuth token lifetimes (see [Token lifetimes](#token-lifetimes)) - Exposes no workflow until a workflow editor opts that workflow in (see [Triggering workflows](#triggering-workflows-from-an-ai-assistant)) diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index 5912b0f..fccd149 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -27,7 +27,7 @@ Open the workflow settings page and go to the **Triggers** section. **Manual** s Both automated triggers (Webhook and MCP) share two prerequisites. -- **[Forest Runtime](/product/process/workflows/forest-runtime) must be running.** An automated run can fire at any time, with nobody holding Forest open in a browser, so its steps can only run server-side. Until a runtime has reported in, the workflow settings page shows *"Your Forest Runtime can't be reached"* instead of the trigger rows. On an environment still configured for the legacy browser engine, the rows do show but both toggles are locked, with the tooltip *"Ask your tech team to install the Workflow Executor."* +- **[Forest Runtime](/product/process/workflows/forest-runtime) must be running.** An automated run can fire at any time, with nobody holding Forest open in a browser, so its steps can only run server-side. Until a runtime has reported in, the workflow settings page shows *"Your Forest Runtime can't be reached"* instead of the trigger rows. On an environment still configured for the legacy browser engine, the rows do show but both toggles are locked, with the tooltip *"This environment still runs workflows in the browser. Automated triggers need Forest Runtime."* - **A fallback inbox must be selected.** Until one is picked, the Webhook and MCP toggles stay locked, with a tooltip saying so. When an automated run reaches a step that needs a human, there is no operator on the other end to hand it to — so the run is routed to that inbox for someone to pick up. See [Inboxes & escalations](/product/manage/inbox). @@ -93,11 +93,15 @@ When enabled, an AI assistant connected to the [Forest MCP server](/product/embe There is nothing to copy or rotate here: **the toggle is the whole configuration**. The assistant is already authenticated against the MCP server through OAuth, and that session's Forest user is the identity the run executes under — the same model as a manual start, not the webhook's separately-provisioned URL and token. -Enabling MCP triggering is what makes the workflow visible to assistants at all: +Enabling MCP triggering is what makes the workflow reachable by assistants — and it is the *only* thing that does: - `listWorkflows` returns only the MCP-enabled workflows in the connected user's rendering; - `triggerWorkflow` on a workflow whose MCP toggle is off fails — even if the assistant already knows its id. + + **Hiding a workflow from the interface does not hide it from MCP.** Assistant exposure is driven solely by the MCP toggle, not by the workflow's visibility — so a workflow you retired by hiding it stays listable and triggerable until you also turn its MCP toggle off. + + ### Enabling MCP triggering 1. Open the workflow settings page and go to the **Triggers** section. @@ -119,7 +123,7 @@ For the tool contracts and the discover → trigger → poll flow, see [Triggeri |---|---| | **Disable the MCP toggle** | The workflow disappears from `listWorkflows` and can no longer be triggered through MCP. Manual and webhook starts are unaffected. | | **Restrict the MCP server's tools** | Set an `enabledTools` allowlist that leaves `triggerWorkflow` out to remove MCP triggering across *all* workflows at once — when `enabledTools` is unset, every tool is enabled. See [Restrict tools](/product/embed/mcp-server#restrict-tools). | -| **Revoke the user's access** | The assistant acts as its connected Forest user; removing that user's access to the rendering or the workflow halts its runs — runs in flight are not aborted, but their next data step fails once the permissions are gone. | +| **Revoke the user's access** | The assistant acts as its connected Forest user. Removing that user's access to the rendering stops new triggers immediately. A run already in flight is not aborted: it keeps going until it next touches data, then fails on the permission check and stalls with the error recorded on the current step — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. | ## Auditing From 21bd095f63b198ce836e47d92cb90287abe97953 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Tue, 18 Aug 2026 19:13:40 +0200 Subject: [PATCH 10/20] docs(workflows): name the triggers screenshot for what it shows (PRD-742) The image had been replaced to show the whole Triggers section but kept its webhook-only filename, so the next person editing the page would go looking for a webhook screenshot. Also adds the one trigger-time failure missing from the errors table: a workflow whose MCP Task step targets an OAuth2-protected connector is refused at start, and a reader had no way to know that from this page. Co-Authored-By: Claude Opus 5 (1M context) --- .../{webhook-trigger-rows.png => trigger-rows.png} | Bin product/embed/mcp-server.mdx | 1 + product/process/workflows/triggers.mdx | 2 +- 3 files changed, 2 insertions(+), 1 deletion(-) rename images/workflows/{webhook-trigger-rows.png => trigger-rows.png} (100%) diff --git a/images/workflows/webhook-trigger-rows.png b/images/workflows/trigger-rows.png similarity index 100% rename from images/workflows/webhook-trigger-rows.png rename to images/workflows/trigger-rows.png diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 2af30e1..6fcabc4 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -449,6 +449,7 @@ Tool failures come back as tool errors with an explanatory message, so the assis | The `runId` is unknown, belongs to another user's rendering, or was not started through MCP | Not found | | An empty or out-of-bounds `recordId` or `runId` (e.g. a record id longer than 255 characters) | Invalid argument — rejected up front, nothing starts | | The environment's workflows still run in the browser engine | Conflict — automated triggering needs server-side execution ([Forest Runtime](/product/process/workflows/forest-runtime)) | +| The workflow contains an MCP Task step targeting an OAuth2-protected connector | Unprocessable — that step type is not yet supported in server-side runs; nothing starts | ### Identity, auditing, and limits diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index fccd149..6318bc4 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -20,7 +20,7 @@ All three are available on **all environments**, with no production-only restric Open the workflow settings page and go to the **Triggers** section. **Manual** sits at the top with its own toggle, followed by an **Automated** group holding the **Fallback Inbox** selector and the **Webhook** and **MCP** rows. - Triggers section: the Manual row, then the Automated group with the fallback inbox, the webhook, and the MCP toggle + Triggers section: the Manual row, then the Automated group with the fallback inbox, the webhook, and the MCP toggle ### Before you can enable an automated trigger From 2d28e753a2c584169a6e3f6b64871a7a554dbb3c Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Wed, 19 Aug 2026 15:06:50 +0200 Subject: [PATCH 11/20] docs(workflows): correct six claims the implementation contradicts (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Checked against the three implementation heads. The error table promised a split that never landed, and was wrong twice over: "rejected up front" holds for an empty argument and an over-long recordId, but an out-of-range runId is only a string on this side, so it round-trips and comes back a server 400. The OAuth2 row said the step type is "not yet supported" when the gate is version-based at 1.14.0 — which forest-runtime.mdx, in this same PR, documents as a supported feature. The unaudited-tool list counted three; there are four. The fourth, requestActionFileUpload, is not a read: it mints a pre-authorized upload, and it is on by default whenever file uploads are configured. An enumerated compliance claim that omits the one write-ish tool is worse than a general statement. The stated rationale also did not hold for getActionForm, which does receive a collection. Three more: the two Activity Log entries were presented as equally reliable when the run-attached one is best-effort; the opt-in Note implied the toggle governs reading a run already in flight; and the Security section still carried flat guarantees the page contradicts elsewhere. Adds the 200-workflow cap and its invisible truncation, and replaces a runState example that cannot occur at trigger time. Co-Authored-By: Claude Opus 5 (1M context) --- get-started/expose-to-ai-agents.mdx | 2 +- product/embed/mcp-server.mdx | 32 +++++++++++++++++------------ 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/get-started/expose-to-ai-agents.mdx b/get-started/expose-to-ai-agents.mdx index 2206a95..a83d2e7 100644 --- a/get-started/expose-to-ai-agents.mdx +++ b/get-started/expose-to-ai-agents.mdx @@ -16,7 +16,7 @@ Through the Model Context Protocol, connected AI agents can: - Execute actions on records, including approval workflows - Start [workflows](/product/process/workflows/triggers#the-mcp-trigger) on a record and follow their progress -Every operation runs with the permissions of the authenticated Forest user, and is logged just like a UI action — with three read-only exceptions, listed under [Identity, auditing, and limits](/product/embed/mcp-server#identity-auditing-and-limits). +Every operation runs with the permissions of the authenticated Forest user, and is logged just like a UI action — with four exceptions, listed under [Identity, auditing, and limits](/product/embed/mcp-server#identity-auditing-and-limits). ## Turn on the MCP server diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 6fcabc4..3889d1d 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -16,7 +16,7 @@ The Forest MCP server lets AI tools like Claude, Dust, and others to: - Execute actions on records - Start [Workflows](/product/process/workflows/overview) on a record and follow their progress -All of this while respecting the Roles & Permissions of your Forest project, and logging activity just like if it were performed through the UI — see [Identity, auditing, and limits](#identity-auditing-and-limits) for the three reads that are not logged. +All of this while respecting the Roles & Permissions of your Forest project, and logging activity just like if it were performed through the UI — see [Identity, auditing, and limits](#identity-auditing-and-limits) for the four tools that are not logged. The Forest MCP Server also enables other third party apps to embed and access Forest data and actions, for example in [Zendesk](/product/embed/zendesk), or [n8n](/product/embed/n8n). @@ -155,7 +155,7 @@ The Forest MCP server exposes the following capabilities: | `getWorkflowRun` | Poll the status of a run started through MCP | - Workflows are **opt-in per workflow**: only those whose **MCP** trigger is enabled are visible to these tools. See [Triggering workflows from an AI assistant](#triggering-workflows-from-an-ai-assistant). + Workflows are **opt-in per workflow**: `listWorkflows` and `triggerWorkflow` only see those whose **MCP** trigger is enabled. Turning the toggle off stops discovery and new triggers, but a run already started through MCP stays readable with `getWorkflowRun` until it finishes. See [Triggering workflows from an AI assistant](#triggering-workflows-from-an-ai-assistant). ## Restrict tools @@ -324,6 +324,8 @@ An empty array means nothing matched. Without `collectionName`, that means no wo Workflows whose collection was renamed or removed are left out, since they cannot be triggered. +The listing is capped at **200 workflows** per call, and there is no pagination: the response is a bare array, so neither you nor the assistant can tell a full list from a truncated one. If a rendering can realistically pass 200 MCP-enabled workflows, use the `collectionName` filter to keep each call well inside the cap. + ### `triggerWorkflow` Starts a run of an MCP-enabled workflow on a specific record. @@ -334,10 +336,10 @@ Starts a run of an MCP-enabled workflow on a specific record. | `recordId` | The record to run on. Composite primary keys use the packed form, values joined by `\|` (e.g. `"123\|456"`). | ```json Returns -{ "runId": "1234", "runState": "loading" } +{ "runId": "1234", "runState": "pending" } ``` -`runId` is what every subsequent `getWorkflowRun` call needs. `runState` is only the state at that instant — it depends on the workflow's first step, and it moves on without further calls, so treat it as a starting point, not an outcome. +`runId` is what every subsequent `getWorkflowRun` call needs. `runState` is only the state at that instant — it depends on the workflow's first step, and it moves on without further calls, so treat it as a starting point, not an outcome. In practice it is `pending` (the run is queued for Forest Runtime), and occasionally `started` or `finished` when the first step needs no execution. `loading` means a runtime has claimed the run, which cannot have happened yet at this point. The record is **not** checked when the run is created — the orchestrator has no data access at that point. An id that does not exist, or that the user cannot read, produces a run that fails at its first data step; the assistant sees it through the failing step's `context.error` in `getWorkflowRun`'s history, not as a trigger-time failure. Workflow segments are not enforced either: they control where the manual trigger appears in the interface, so an out-of-segment record is accepted — permission scopes still bound everything the run reads and writes. @@ -355,7 +357,7 @@ Reads the full run, given the `runId` returned by `triggerWorkflow`. The run car | `triggerType` | Always `mcp` here — only MCP-started runs are readable through this tool. | | `workflowHistory` | The ordered steps the run has reached. Each entry pairs the step's resolved **definition** (`stepDefinition`: `type`, `title`, an `executionType` — `manual`, `automated-with-confirmation` or `fully-automated` — plus an optional `taskType` and `prompt`, and the `outgoing` branches) with its **outcome** (`stepName`, `stepIndex`, `done`, plus an optional `context` carrying the selected option, a manual completion, an escalation state, an awaiting-input reason, or an `error`). Read `runState` first to know whether the run is still live — the terminal `end` entry is never marked done, so a `finished` run still ends on a `done: false` entry. While the run is live, the last entry with `done: false` is where it sits. | -The run is returned whole, not trimmed: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. History entries likewise carry an `isCardStep` flag, and every `stepDefinition` an `automaticCompletion` one. The examples below are trimmed to the load-bearing fields. +The run comes back with every field the contract declares, and only those — Forest projects the response onto that list, so a field added server-side never reaches the assistant without a corresponding release. What you get: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. History entries likewise carry an `isCardStep` flag, and every `stepDefinition` an `automaticCompletion` one. The examples below are trimmed to the load-bearing fields. @@ -444,19 +446,22 @@ Tool failures come back as tool errors with an explanatory message, so the assis | Situation | What the assistant gets | |---|---| | The workflow is unknown, its MCP trigger is off, or it is outside the user's rendering | Not found — with a hint to call `listWorkflows` | -| The workflow's collection is unavailable (renamed or deleted — it may still appear in `listWorkflows` with a null `collectionName`) | Rejected up front, pointing at the workflow's configuration; nothing starts | +| The workflow's collection is unavailable (renamed or deleted — `listWorkflows` hides these, so this only happens if the collection changed after the listing) | Rejected up front, pointing at the workflow's configuration; nothing starts | | A run of the same workflow is already ongoing on that record | Conflict; no run is started and none is resumed | | The `runId` is unknown, belongs to another user's rendering, or was not started through MCP | Not found | -| An empty or out-of-bounds `recordId` or `runId` (e.g. a record id longer than 255 characters) | Invalid argument — rejected up front, nothing starts | +| An empty `workflowId`, `recordId` or `runId` | Invalid argument — rejected before any call, nothing starts | +| A `recordId` longer than 255 characters (the column bound) | Invalid argument — rejected before any call, nothing starts | +| A `runId` that is not a positive integer within range | Invalid argument — the call reaches Forest and is refused there; nothing is read | | The environment's workflows still run in the browser engine | Conflict — automated triggering needs server-side execution ([Forest Runtime](/product/process/workflows/forest-runtime)) | -| The workflow contains an MCP Task step targeting an OAuth2-protected connector | Unprocessable — that step type is not yet supported in server-side runs; nothing starts | +| The workflow contains an MCP Task step targeting an OAuth2-protected connector, and the environment's [Forest Runtime](/product/process/workflows/forest-runtime) is older than 1.14.0 | Unprocessable — upgrade Forest Runtime to run these steps server-side; nothing starts | ### Identity, auditing, and limits - **Identity** — the run executes as the Forest user of the MCP session, established by the OAuth login. That user's permissions bound everything the run **reads and writes**. The trigger itself is gated only by the user's rendering and the workflow's MCP toggle: neither the target record nor the workflow's segments are checked when the run is created. -- **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. An MCP trigger writes two complementary log entries: one before the run starts (the audit that blocks the trigger if it cannot be written), and one attached to the run. -- **Three reads are not audited** — `listWorkflows`, `getWorkflowRun` and `getActionForm` leave no Activity Logs entry, because the log route needs a resource these tools have no way to name. Every other tool, read or write, writes one. A write whose log cannot be created is blocked; a read proceeds with a warning, so an audit-store outage never takes the read surface down. -- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication and limits; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule prevents duplicate runs on the *same* record, but nothing bounds how many records an assistant can trigger on — walking a list view opens one run per record, each consuming Forest Runtime capacity. `triggerWorkflow` is annotated as destructive so MCP clients ask the user to confirm each call; keep that confirmation on, and size the exposure with the `mcp` toggle, per workflow. +- **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. An MCP trigger writes two complementary log entries: one **before** the run starts, which blocks the trigger if it cannot be written, and one attached to the run once it exists. Only the first is guaranteed — the run-attached entry is best-effort, so a successful run can leave just the early entry. +- **Four tools are not audited** — `listWorkflows`, `getWorkflowRun`, `getActionForm` and `requestActionFileUpload` leave no Activity Logs entry. For the two workflow reads the log route needs a resource they have no way to name; `getActionForm` and `requestActionFileUpload` predate this and are unaudited for historical reasons. `requestActionFileUpload` is worth calling out separately: it is not a read — it mints a pre-authorized upload, and it is enabled by default whenever file uploads are configured. Every other tool, read or write, writes an entry. Closing these gaps is tracked in PRD-967. +- **When the audit log itself fails** — a **write** whose log cannot be created is blocked, so no side effect happens unaudited. A **read** proceeds with a warning, so an audit-store outage never takes the read surface down. An **authorization refusal** (the caller's identity was rejected) propagates either way — it is not an outage. +- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication, and no per-call rate limit applies; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule prevents duplicate runs on the *same* record, but nothing bounds how many records an assistant can trigger on — walking a list view opens one run per record, each consuming Forest Runtime capacity. `triggerWorkflow` is annotated as destructive so MCP clients ask the user to confirm each call; keep that confirmation on, and size the exposure with the `mcp` toggle, per workflow. - **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access stops new triggers immediately; a run already in flight is not aborted, and keeps going until it next touches data — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. See [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). ## Use cases @@ -486,8 +491,9 @@ The Forest MCP server: - Respects all Forest permissions and roles - Uses your environment's authentication -- Logs every write, and all but three reads, for audit purposes (see [Identity, auditing, and limits](#identity-auditing-and-limits)) -- Never exposes sensitive data without proper access +- Logs every write, and every read except four tools, for audit purposes (see [Identity, auditing, and limits](#identity-auditing-and-limits)) +- Bounds what a run reads and writes by the connected user's permissions. Note this does not bound the *trigger*: neither the target record nor the workflow's segments are checked when a run is created +- Carries no record payload out of your infrastructure — records stay in Forest Runtime. Identifiers (`selectedRecordId`) and step error messages (`context.error`) can still contain customer data, so treat a run's history as sensitive - Lets you shorten the OAuth token lifetimes (see [Token lifetimes](#token-lifetimes)) - Exposes no workflow until a workflow editor opts that workflow in (see [Triggering workflows](#triggering-workflows-from-an-ai-assistant)) From 712e29453d429b6fa03450b986c608c803aedfbe Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Wed, 19 Aug 2026 15:06:50 +0200 Subject: [PATCH 12/20] docs(workflows): correct the runtime skew symptom (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An executor predating MCP triggering does not leave the run pending forever. It picks it up, classifies it as malformed and reports an error outcome, so the run fails immediately with a validation error on its first step and getWorkflowRun shows it — that reporting path predates the executor's MCP support, so every affected runtime has it. The prerequisite is unchanged, but the operator symptom is "every MCP trigger fails loudly with a confusing error", not "runs pile up unnoticed", and the rollback runbook should read that way. Co-Authored-By: Claude Opus 5 (1M context) --- product/process/workflows/forest-runtime.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product/process/workflows/forest-runtime.mdx b/product/process/workflows/forest-runtime.mdx index 24834b8..d41f76c 100644 --- a/product/process/workflows/forest-runtime.mdx +++ b/product/process/workflows/forest-runtime.mdx @@ -20,7 +20,7 @@ Yes — Forest Runtime is what executes your workflow steps. **[Automatically-tr Running on infrastructure you control also keeps the records handled by data steps out of Forest's infrastructure — decisive for compliance or data-residency requirements, or when a step needs access to systems reachable only from within your network. - **Upgrade Forest Runtime before you enable the MCP trigger.** A runtime older than the release that added MCP triggering rejects MCP-started runs when it validates them: the run is created, never picked up, and the assistant sees it sit in `pending` forever. Nothing warns you — the version check happens inside the runtime. Upgrade first, then turn the toggle on. + **Upgrade Forest Runtime before you enable the MCP trigger.** A runtime older than the release that added MCP triggering rejects MCP-started runs when it validates them: the run is created, picked up, and immediately marked failed with a validation error on its first step — so every MCP trigger in the environment fails, and `getWorkflowRun` reports the error rather than a run in progress. Nothing warns you up front; the version check happens inside the runtime. Upgrade first, then turn the toggle on. ## How it works From 84aaa8cdcd8c2c93cdfb80903df70944c5ea54ee Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Wed, 19 Aug 2026 19:06:44 +0200 Subject: [PATCH 13/20] docs(workflows): scope the audit and permission guarantees to what the code does (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four claims the implementation contradicts: - The Security summary still read "logs every write, and every read except four tools", contradicting the enumerated bullet on the same page. Ten tools are audited and four are not — getActionForm, requestActionFileUpload, listWorkflows and getWorkflowRun — so it is three reads out of six plus one non-read. Naming the four removes the read/write split that produced two wrong versions in a row. - The entry-point page promised "every operation runs with the permissions of the authenticated Forest user" one line after adding workflow triggering to what that sentence covers. Triggering checks rendering membership and the MCP toggle only — no collection permission, no record, no segment. The diagram alt text repeated the audit half and is aligned too. - getWorkflowRun was described as user-scoped ("another user's rendering"). The store filters on renderingId with no userId, so any MCP session on the rendering can read any MCP-started run in it — including its selectedRecordId and step error strings, which the same page flags as possibly sensitive. - requestActionFileUpload was called historical: it landed on main two days ago. The "the log route needs a resource" rationale applies to it, not to getActionForm, which does receive a collection. Also documents the non-UUID workflowId case now that it is reported as terminal rather than retryable, notes that a parked or errored run keeps blocking new triggers on its record, and drops the internal tracker id, the only one in the repo. Co-Authored-By: Claude Opus 5 (1M context) --- get-started/expose-to-ai-agents.mdx | 4 ++-- product/embed/mcp-server.mdx | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/get-started/expose-to-ai-agents.mdx b/get-started/expose-to-ai-agents.mdx index a83d2e7..1041215 100644 --- a/get-started/expose-to-ai-agents.mdx +++ b/get-started/expose-to-ai-agents.mdx @@ -5,7 +5,7 @@ description: "Turn on the MCP server so AI agents can act on your data under the The data, actions, and workflows you've built aren't just for the Forest UI. Forest ships an **MCP server** that exposes the same capabilities to AI agents like Claude, enforcing the exact same permissions and writing the same audit trail, regardless of whether a human or an AI agent is acting. -An AI agent request hits the /mcp endpoint, passes the same permissions and role check as a human (allowed or blocked), reaches the Forest back-end, and every action is written to the audit log +An AI agent request hits the /mcp endpoint, passes the same permissions and role check as a human (allowed or blocked), reaches the Forest back-end, and is written to the audit log ## What the MCP server exposes @@ -16,7 +16,7 @@ Through the Model Context Protocol, connected AI agents can: - Execute actions on records, including approval workflows - Start [workflows](/product/process/workflows/triggers#the-mcp-trigger) on a record and follow their progress -Every operation runs with the permissions of the authenticated Forest user, and is logged just like a UI action — with four exceptions, listed under [Identity, auditing, and limits](/product/embed/mcp-server#identity-auditing-and-limits). +Every operation on data runs with the permissions of the authenticated Forest user, and is logged just like a UI action — with four exceptions, listed under [Identity, auditing, and limits](/product/embed/mcp-server#identity-auditing-and-limits). Starting a workflow is the one exception to the permission half: it is gated by the user's rendering and the workflow's MCP toggle only, and neither the target record nor the workflow's segments are checked when the run is created. What the run then reads and writes is bound by that user's permissions as usual. ## Turn on the MCP server diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 9fe0647..be88ee2 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -432,7 +432,7 @@ url = "" Three tools let an assistant start and follow a [Workflow](/product/process/workflows/overview) from its own context: pick a workflow that fits the record at hand, start it, then watch the run. - A workflow is only reachable through MCP once a workflow editor enables its **MCP** trigger in the workflow's [trigger settings](/product/process/workflows/triggers#the-mcp-trigger). Nothing is exposed by default. + A workflow is only reachable through MCP once someone who can manage workflows enables its **MCP** trigger in the workflow's [trigger settings](/product/process/workflows/triggers#the-mcp-trigger). Nothing is exposed by default. ### Discover → trigger → poll @@ -494,6 +494,8 @@ Starts a run of an MCP-enabled workflow on a specific record. Only **one run of a given workflow** can be active on a given record at a time. Triggering a record that already has an ongoing run of the same workflow fails and does **not** resume it — the run in flight is left untouched. A different workflow can still start on that record. +"Active" is wider than "progressing": a run parked on a human step and a run whose step errored both sit in `started`, so they keep blocking new triggers on that record until they are finished from the Forest UI or aborted. + ### `getWorkflowRun` Reads the full run, given the `runId` returned by `triggerWorkflow`. The run carries no record payload — records live in the executor — so the whole run is returned, giving the assistant maximum context about where it is and what each step does. Identifiers (`selectedRecordId`) and step error messages (`context.error`) may still contain customer data. @@ -576,6 +578,8 @@ The run comes back with every field the contract declares, and only those — Fo `getWorkflowRun` only exposes runs that were **started through MCP**. A run triggered manually or by webhook is not observable here, even by the same user — asking for its id returns a not-found error. + + Conversely, the scope is the **rendering**, not the user: any MCP session on the same rendering can read any MCP-started run in it, including one another user started. Since a run carries `selectedRecordId` and step error messages, treat run history as readable by everyone who can reach that rendering through MCP. ### Runs that need a human @@ -592,10 +596,11 @@ Tool failures come back as tool errors with an explanatory message, so the assis | Situation | What the assistant gets | |---|---| -| The workflow is unknown, its MCP trigger is off, or it is outside the user's rendering | Not found — with a hint to call `listWorkflows` | +| The workflow is unknown, its MCP trigger is off, or it is outside the user's rendering | Not found — with a hint to call `listWorkflows`. The three cases are deliberately indistinguishable, so the tool cannot be used to probe which workflows exist | +| The `workflowId` is not a UUID — for instance a workflow *name* rather than its id | Rejected, quoting Forest's reason, and told that retrying will not help | | The workflow's collection is unavailable (renamed or deleted — `listWorkflows` hides these, so this only happens if the collection changed after the listing) | Rejected up front, pointing at the workflow's configuration; nothing starts | | A run of the same workflow is already ongoing on that record | Conflict; no run is started and none is resumed | -| The `runId` is unknown, belongs to another user's rendering, or was not started through MCP | Not found | +| The `runId` is unknown, belongs to a different rendering, or was not started through MCP | Not found | | An empty `workflowId`, `recordId` or `runId` | Invalid argument — rejected before any call, nothing starts | | A `recordId` longer than 255 characters (the column bound) | Invalid argument — rejected before any call, nothing starts | | A `runId` that is not a positive integer within range | Invalid argument — the call reaches Forest and is refused there; nothing is read | @@ -606,10 +611,10 @@ Tool failures come back as tool errors with an explanatory message, so the assis - **Identity** — the run executes as the Forest user of the MCP session, established by the OAuth login. That user's permissions bound everything the run **reads and writes**. The trigger itself is gated only by the user's rendering and the workflow's MCP toggle: neither the target record nor the workflow's segments are checked when the run is created. - **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. An MCP trigger writes two complementary log entries: one **before** the run starts, which blocks the trigger if it cannot be written, and one attached to the run once it exists. Only the first is guaranteed — the run-attached entry is best-effort, so a successful run can leave just the early entry. -- **Four tools are not audited** — `listWorkflows`, `getWorkflowRun`, `getActionForm` and `requestActionFileUpload` leave no Activity Logs entry. For the two workflow reads the log route needs a resource they have no way to name; `getActionForm` and `requestActionFileUpload` predate this and are unaudited for historical reasons. `requestActionFileUpload` is worth calling out separately: it is not a read — it mints a pre-authorized upload, and it is enabled by default whenever file uploads are configured. Every other tool, read or write, writes an entry. Closing these gaps is tracked in PRD-967. +- **Four tools are not audited** — `listWorkflows`, `getWorkflowRun`, `getActionForm` and `requestActionFileUpload` leave no Activity Logs entry. The Activity Logs route needs a collection to attach the entry to, and none of these four supply one: the two workflow reads operate on the orchestrator rather than a collection, and `requestActionFileUpload` is identified only by a filename and a checksum. `requestActionFileUpload` is worth calling out separately: it is not a read — it mints a pre-authorized upload URL — and it is enabled by default, including when no storage backend is configured. Every other tool, read or write, writes an entry. Closing these gaps is on the roadmap. - **When the audit log itself fails** — a **write** whose log cannot be created is blocked, so no side effect happens unaudited. A **read** proceeds with a warning, so an audit-store outage never takes the read surface down. An **authorization refusal** (the caller's identity was rejected) propagates either way — it is not an outage. - **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication, and no per-call rate limit applies; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule prevents duplicate runs on the *same* record, but nothing bounds how many records an assistant can trigger on — walking a list view opens one run per record, each consuming Forest Runtime capacity. `triggerWorkflow` is annotated as destructive so MCP clients ask the user to confirm each call; keep that confirmation on, and size the exposure with the `mcp` toggle, per workflow. -- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access stops new triggers immediately; a run already in flight is not aborted, and keeps going until it next touches data — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. See [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). +- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access stops new triggers immediately, and the assistant is told not to retry; a run already in flight is not aborted, and keeps going until it next touches data — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. See [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). ## Use cases @@ -638,12 +643,12 @@ The Forest MCP server: - Respects all Forest permissions and roles - Uses your environment's authentication -- Logs every write, and every read except four tools, for audit purposes (see [Identity, auditing, and limits](#identity-auditing-and-limits)) +- Logs every operation except four tools — `getActionForm`, `requestActionFileUpload`, `listWorkflows` and `getWorkflowRun` — for audit purposes (see [Identity, auditing, and limits](#identity-auditing-and-limits)) - Bounds what a run reads and writes by the connected user's permissions. Note this does not bound the *trigger*: neither the target record nor the workflow's segments are checked when a run is created - Carries no record payload out of your infrastructure — records stay in Forest Runtime. Identifiers (`selectedRecordId`) and step error messages (`context.error`) can still contain customer data, so treat a run's history as sensitive - Lets you restrict which AI client applications can connect (see [Restrict which AI clients can connect](#restrict-which-ai-clients-can-connect)) - Lets you shorten the OAuth token lifetimes (see [Token lifetimes](#token-lifetimes)) -- Exposes no workflow until a workflow editor opts that workflow in (see [Triggering workflows](#triggering-workflows-from-an-ai-assistant)) +- Exposes no workflow until someone who can manage workflows opts that workflow in (see [Triggering workflows](#triggering-workflows-from-an-ai-assistant)) Only provide MCP server access to trusted AI tools and users. The server can perform any operation that the authenticated user can perform. From d48861a85696eb255e98ea3dca1aad9e26f17b9d Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Wed, 19 Aug 2026 19:06:44 +0200 Subject: [PATCH 14/20] docs(workflows): correct the trigger prerequisites and the runtime-skew symptom (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The permission gate that landed on the front branch added a third prerequisite, and the page still said two. Worse, it named "a workflow editor" as the person who enables MCP triggering — Editor is precisely the level the interface now excludes. The levels are named, and the fact that the gate is client-side only is stated rather than implied, since the layout permission behind the PATCH is broader today. The runtime-skew warning said the run is "marked failed", while the sibling page states there is no failed state. The run stays in `started` with an error on its first step. Two consequences were missing and are the actual recovery cost: it is routed to the fallback inbox, which fills with runs that never began, and `started` counts as active, so each affected record is blocked from being triggered again on that workflow until its run is aborted. Co-Authored-By: Claude Opus 5 (1M context) --- product/process/workflows/forest-runtime.mdx | 2 +- product/process/workflows/triggers.mdx | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/product/process/workflows/forest-runtime.mdx b/product/process/workflows/forest-runtime.mdx index 89ba3ef..419b53f 100644 --- a/product/process/workflows/forest-runtime.mdx +++ b/product/process/workflows/forest-runtime.mdx @@ -20,7 +20,7 @@ Yes — Forest Runtime is what executes your workflow steps. **[Automatically-tr Running on infrastructure you control also keeps the records handled by data steps out of Forest's infrastructure — decisive for compliance or data-residency requirements, or when a step needs access to systems reachable only from within your network. - **Upgrade Forest Runtime before you enable the MCP trigger.** A runtime older than the release that added MCP triggering rejects MCP-started runs when it validates them: the run is created, picked up, and immediately marked failed with a validation error on its first step — so every MCP trigger in the environment fails, and `getWorkflowRun` reports the error rather than a run in progress. Nothing warns you up front; the version check happens inside the runtime. Upgrade first, then turn the toggle on. + **Upgrade Forest Runtime before you enable the MCP trigger.** A runtime older than the release that added MCP triggering rejects MCP-started runs when it validates them: the run is created, picked up, and immediately errored — its first step carries a validation message, and `getWorkflowRun` reports that error rather than a run in progress. There is no dedicated failed state: the run stays in `started`, and it is routed to the fallback inbox, so that inbox fills up with runs that never began. Because `started` counts as active, **each affected record is then blocked from being triggered again on the same workflow until you abort its run**. Nothing warns you up front; the version check happens inside the runtime. Upgrade first, then turn the toggle on. ## How it works diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index 6318bc4..9219380 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -25,8 +25,9 @@ Open the workflow settings page and go to the **Triggers** section. **Manual** s ### Before you can enable an automated trigger -Both automated triggers (Webhook and MCP) share two prerequisites. +Both automated triggers (Webhook and MCP) share three prerequisites. +- **You must be able to manage workflows.** All three trigger toggles — Manual included — are disabled below the **Admin**, **Process Owner** or **Developer** level, since turning an automated trigger on is what makes a workflow startable with nobody watching. This is enforced in the interface; the underlying layout permission is broader today, so the API still accepts the change from an Editor. - **[Forest Runtime](/product/process/workflows/forest-runtime) must be running.** An automated run can fire at any time, with nobody holding Forest open in a browser, so its steps can only run server-side. Until a runtime has reported in, the workflow settings page shows *"Your Forest Runtime can't be reached"* instead of the trigger rows. On an environment still configured for the legacy browser engine, the rows do show but both toggles are locked, with the tooltip *"This environment still runs workflows in the browser. Automated triggers need Forest Runtime."* - **A fallback inbox must be selected.** Until one is picked, the Webhook and MCP toggles stay locked, with a tooltip saying so. When an automated run reaches a step that needs a human, there is no operator on the other end to hand it to — so the run is routed to that inbox for someone to pick up. See [Inboxes & escalations](/product/manage/inbox). @@ -123,7 +124,7 @@ For the tool contracts and the discover → trigger → poll flow, see [Triggeri |---|---| | **Disable the MCP toggle** | The workflow disappears from `listWorkflows` and can no longer be triggered through MCP. Manual and webhook starts are unaffected. | | **Restrict the MCP server's tools** | Set an `enabledTools` allowlist that leaves `triggerWorkflow` out to remove MCP triggering across *all* workflows at once — when `enabledTools` is unset, every tool is enabled. See [Restrict tools](/product/embed/mcp-server#restrict-tools). | -| **Revoke the user's access** | The assistant acts as its connected Forest user. Removing that user's access to the rendering stops new triggers immediately. A run already in flight is not aborted: it keeps going until it next touches data, then fails on the permission check and stalls with the error recorded on the current step — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. | +| **Revoke the user's access** | The assistant acts as its connected Forest user. Removing that user's access to the rendering stops new triggers immediately — the assistant is told the workflow could not be resolved and that retrying will not help. A run already in flight is not aborted: it keeps going until it next touches data, then fails on the permission check and stalls with the error recorded on the current step — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. | ## Auditing From f1f931995df3aaaaf3911d17660b1633783fc519 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Thu, 20 Aug 2026 09:20:29 +0200 Subject: [PATCH 15/20] docs(workflows): distinguish the two MCP trigger audit entries (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both pages said the two entries an MCP trigger writes are "both labelled via MCP", which was true and unhelpful: identical labels make one trigger read as two events, and the two rows do not carry the same guarantee. They are now quoted with their distinct wordings, with what each attests and which one to count — `requested` is written before the run and blocks the trigger if it fails, `triggered` proves a run exists but is best-effort. Co-Authored-By: Claude Opus 5 (1M context) --- product/embed/mcp-server.mdx | 6 +++++- product/process/workflows/triggers.mdx | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index be88ee2..74933d2 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -610,7 +610,11 @@ Tool failures come back as tool errors with an explanatory message, so the assis ### Identity, auditing, and limits - **Identity** — the run executes as the Forest user of the MCP session, established by the OAuth login. That user's permissions bound everything the run **reads and writes**. The trigger itself is gated only by the user's rendering and the workflow's MCP toggle: neither the target record nor the workflow's segments are checked when the run is created. -- **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. An MCP trigger writes two complementary log entries: one **before** the run starts, which blocks the trigger if it cannot be written, and one attached to the run once it exists. Only the first is guaranteed — the run-attached entry is best-effort, so a successful run can leave just the early entry. +- **Auditing** — each trigger is recorded in the run history and in your **Activity Logs**, attributed to that user and labelled *via MCP*, so MCP-started runs are distinguishable from manual and webhook ones. An MCP trigger writes two complementary entries, and they are worded differently on purpose: + - *requested the workflow "…" via MCP* — written **before** the run starts, and the trigger is refused if it cannot be written. It has no run attached, because the run does not exist yet. + - *triggered the workflow "…" via MCP* — written once the run is committed, carrying its run id. + + Only the first is guaranteed: the run-attached entry is best-effort, so a successful trigger can leave just the request entry. Count *triggered* rows to count runs actually started, and *requested* rows to count what assistants asked for. - **Four tools are not audited** — `listWorkflows`, `getWorkflowRun`, `getActionForm` and `requestActionFileUpload` leave no Activity Logs entry. The Activity Logs route needs a collection to attach the entry to, and none of these four supply one: the two workflow reads operate on the orchestrator rather than a collection, and `requestActionFileUpload` is identified only by a filename and a checksum. `requestActionFileUpload` is worth calling out separately: it is not a read — it mints a pre-authorized upload URL — and it is enabled by default, including when no storage backend is configured. Every other tool, read or write, writes an entry. Closing these gaps is on the roadmap. - **When the audit log itself fails** — a **write** whose log cannot be created is blocked, so no side effect happens unaudited. A **read** proceeds with a warning, so an audit-store outage never takes the read surface down. An **authorization refusal** (the caller's identity was rejected) propagates either way — it is not an outage. - **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication, and no per-call rate limit applies; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule prevents duplicate runs on the *same* record, but nothing bounds how many records an assistant can trigger on — walking a list view opens one run per record, each consuming Forest Runtime capacity. `triggerWorkflow` is annotated as destructive so MCP clients ask the user to confirm each call; keep that confirmation on, and size the exposure with the `mcp` toggle, per workflow. diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index 9219380..83d5cf1 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -128,7 +128,7 @@ For the tool contracts and the discover → trigger → poll flow, see [Triggeri ## Auditing -Every automated run is recorded in the workflow run history and in your **Activity Logs**, attributed to the user the run acted as, and labelled by channel — *via webhook* or *via MCP* — so you can tell automated runs from manual ones, and from each other. An MCP trigger writes two complementary entries, both labelled *via MCP*: one before the run starts (the audit that blocks the trigger if it cannot be written), and one attached to the run. +Every automated run is recorded in the workflow run history and in your **Activity Logs**, attributed to the user the run acted as, and labelled by channel — *via webhook* or *via MCP* — so you can tell automated runs from manual ones, and from each other. An MCP trigger writes two complementary entries: *requested the workflow "…" via MCP* before the run starts (the audit that blocks the trigger if it cannot be written, with no run attached yet), and *triggered the workflow "…" via MCP* once the run exists. Only the first is guaranteed — the second is best-effort — so count *triggered* rows for runs actually started. ## Learn more From 45e0af6efe851c398991fa15d8fa7ec721090891 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Thu, 20 Aug 2026 12:32:08 +0200 Subject: [PATCH 16/20] docs(workflows): update the triggers screenshot (PRD-742) Co-Authored-By: Claude Fable 5 --- images/workflows/trigger-rows.png | Bin 80229 -> 103153 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/images/workflows/trigger-rows.png b/images/workflows/trigger-rows.png index e9cc6d4fe38e1e0d64bb3e81d5a1c7ed5025c26c..999de3cdbbf1a19d74047588e185d443f4697a71 100644 GIT binary patch literal 103153 zcmeFZWmuHm*EbA^C?FQ$MG6QAQqm2Bf^?TdsxU(g-8BPs4(v7q#$r~muDpZmJ5;r;S{dOtiI$1t(az4y7-T6?YEihTyDtIClOQ4!(b;E*WD%V^@@ z;0NR2Tr<5%0Q}N^zQcoqgDYkE{JFZq^XK&Hj&@K>YX}a`Uvcor2E}U{cLQ2J%0DA3 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%0AA5$?t5_s1Hw%KiO^hTx_94M72=E}HK&(g&a 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

    a~Ip27G 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 P0`zmodSXglhzY*|QhR;c literal 80229 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

    kN0?9a~-~$NBnUj;v@+_`)du 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 z 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 Ts+fu{0}yz+`njxgN@xNA#4`-q From 1b92740afb6dc1f195641be63ed09ecb02bfe4ae Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Thu, 20 Aug 2026 12:37:32 +0200 Subject: [PATCH 17/20] docs(workflows): correct three claims the code does not support (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three imprecisions found while checking the page against the implementation heads. The unaudited-tools bullet justified all four with "the Activity Logs route needs a collection, and none of these four supply one" — then only accounted for three. getActionForm builds its input schema from createActionArgumentShape, whose first field is collectionName, and it takes recordIds too. It has a collection in hand; it is simply not wired to withActivityLog. The enumeration was right, the reason was not, and it sat in a compliance section. "Stays readable with getWorkflowRun until it finishes" implied the run stops being readable once terminal. getWorkflowRunById filters on id, renderingId, engine and triggerType — no state filter, no time bound — so a finished or aborted run stays readable indefinitely. Reworded to say so, with the reason. The JSON examples used prose for stepName and outgoing[].stepId. Both are BPMN element ids: the parser indexes steps by the diagram element id, and the server fixtures read Step_1, Start_Refund, A. A reader — or a prompt — pairing stepName with a human label gets it wrong; the label is stepDefinition.title. The examples now carry realistic ids and a note naming the trap. While fixing the examples: the two ids are one identifier space (workflow-history-navigator sets a history entry's stepName from the previous step's outgoing[].stepId), so a step's outgoing[].stepId must equal the stepName of the entry after it. The Finished example had "approved" pointing at "Customer approved" and did not. It does now, which also shows the relationship. Co-Authored-By: Claude Opus 5 (1M context) --- product/embed/mcp-server.mdx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 74933d2..8a093fd 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -164,7 +164,7 @@ The Forest MCP server exposes the following capabilities: | `getWorkflowRun` | Poll the status of a run started through MCP | - Workflows are **opt-in per workflow**: `listWorkflows` and `triggerWorkflow` only see those whose **MCP** trigger is enabled. Turning the toggle off stops discovery and new triggers, but a run already started through MCP stays readable with `getWorkflowRun` until it finishes. See [Triggering workflows from an AI assistant](#triggering-workflows-from-an-ai-assistant). + Workflows are **opt-in per workflow**: `listWorkflows` and `triggerWorkflow` only see those whose **MCP** trigger is enabled. Turning the toggle off stops discovery and new triggers, but a run already started through MCP stays readable with `getWorkflowRun` — including after it has finished, since the lookup is scoped to the run's rendering and trigger type, not to its state. See [Triggering workflows from an AI assistant](#triggering-workflows-from-an-ai-assistant). ## Restrict tools @@ -508,6 +508,8 @@ Reads the full run, given the `runId` returned by `triggerWorkflow`. The run car The run comes back with every field the contract declares, and only those — Forest projects the response onto that list, so a field added server-side never reaches the assistant without a corresponding release. What you get: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. History entries likewise carry an `isCardStep` flag, and every `stepDefinition` an `automaticCompletion` one. The examples below are trimmed to the load-bearing fields. +One naming trap: `stepName` and `outgoing[].stepId` are **BPMN element ids, not labels** — they come from the diagram, so they look like `Activity_ReviewKyb`, not like a sentence. They share one identifier space, so a step's `outgoing[].stepId` is the `stepName` of the entry that follows it. The human-readable name is `stepDefinition.title`. + ```json Parked on a human step @@ -519,7 +521,7 @@ The run comes back with every field the contract declares, and only those — Fo "triggerType": "mcp", "workflowHistory": [ { - "stepName": "Review the KYB documents", + "stepName": "Activity_ReviewKyb", "stepIndex": 0, "done": false, "context": {}, @@ -529,7 +531,7 @@ The run comes back with every field the contract declares, and only those — Fo "title": "Review the KYB documents", "prompt": "Check the uploaded documents, then approve or reject", "executionType": "manual", - "outgoing": [{ "stepId": "approved", "buttonText": "Approve" }] + "outgoing": [{ "stepId": "Event_CustomerApproved", "buttonText": "Approve" }] } } ] @@ -545,7 +547,7 @@ The run comes back with every field the contract declares, and only those — Fo "triggerType": "mcp", "workflowHistory": [ { - "stepName": "Review the KYB documents", + "stepName": "Activity_ReviewKyb", "stepIndex": 0, "done": true, "context": { "manuallyCompleted": true }, @@ -555,11 +557,11 @@ The run comes back with every field the contract declares, and only those — Fo "title": "Review the KYB documents", "prompt": "Check the uploaded documents, then approve or reject", "executionType": "manual", - "outgoing": [{ "stepId": "approved", "buttonText": "Approve" }] + "outgoing": [{ "stepId": "Event_CustomerApproved", "buttonText": "Approve" }] } }, { - "stepName": "Customer approved", + "stepName": "Event_CustomerApproved", "stepIndex": 1, "done": false, "context": {}, @@ -615,7 +617,7 @@ Tool failures come back as tool errors with an explanatory message, so the assis - *triggered the workflow "…" via MCP* — written once the run is committed, carrying its run id. Only the first is guaranteed: the run-attached entry is best-effort, so a successful trigger can leave just the request entry. Count *triggered* rows to count runs actually started, and *requested* rows to count what assistants asked for. -- **Four tools are not audited** — `listWorkflows`, `getWorkflowRun`, `getActionForm` and `requestActionFileUpload` leave no Activity Logs entry. The Activity Logs route needs a collection to attach the entry to, and none of these four supply one: the two workflow reads operate on the orchestrator rather than a collection, and `requestActionFileUpload` is identified only by a filename and a checksum. `requestActionFileUpload` is worth calling out separately: it is not a read — it mints a pre-authorized upload URL — and it is enabled by default, including when no storage backend is configured. Every other tool, read or write, writes an entry. Closing these gaps is on the roadmap. +- **Four tools are not audited** — `listWorkflows`, `getWorkflowRun`, `getActionForm` and `requestActionFileUpload` leave no Activity Logs entry. Three of them have nothing to attach an entry to, since the Activity Logs route needs a collection: the two workflow reads operate on the orchestrator rather than a collection, and `requestActionFileUpload` is identified only by a filename and a checksum. `getActionForm` is the exception — it does receive a collection and record ids, so nothing stands in the way of auditing it; it simply predates this work and was never wired to the audit path. `requestActionFileUpload` is worth calling out separately: it is not a read — it mints a pre-authorized upload URL — and it is enabled by default, including when no storage backend is configured. Every other tool, read or write, writes an entry. Closing these gaps is on the roadmap. - **When the audit log itself fails** — a **write** whose log cannot be created is blocked, so no side effect happens unaudited. A **read** proceeds with a warning, so an audit-store outage never takes the read surface down. An **authorization refusal** (the caller's identity was rejected) propagates either way — it is not an outage. - **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication, and no per-call rate limit applies; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule prevents duplicate runs on the *same* record, but nothing bounds how many records an assistant can trigger on — walking a list view opens one run per record, each consuming Forest Runtime capacity. `triggerWorkflow` is annotated as destructive so MCP clients ask the user to confirm each call; keep that confirmation on, and size the exposure with the `mcp` toggle, per workflow. - **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access stops new triggers immediately, and the assistant is told not to retry; a run already in flight is not aborted, and keeps going until it next touches data — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. See [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). From 780bb0799bae68d714523c5df37471124be41426 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Thu, 20 Aug 2026 14:29:04 +0200 Subject: [PATCH 18/20] docs(workflows): name the one field the projection does not filter (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page told readers that Forest projects the run onto the declared field list, "so a field added server-side never reaches the assistant without a corresponding release". True for every field but one: stepDefinition is forwarded whole, deliberately, so the assistant can reason about what a step does — and a client test pins that pass-through. The sentence is load-bearing: it is what someone assessing what leaves their perimeter reads. Leaving it absolute meant the one unfiltered part of the payload was the part nobody was told about. It now names the exception and says what lands in it — the workflow's own configuration, including configured argument values, which is editor-authored free text. The same claim exists in packages/mcp-server/CLAUDE.md and is corrected there. Co-Authored-By: Claude Opus 5 (1M context) --- product/embed/mcp-server.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 8a093fd..2e88506 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -506,7 +506,7 @@ Reads the full run, given the `runId` returned by `triggerWorkflow`. The run car | `triggerType` | Always `mcp` here — only MCP-started runs are readable through this tool. | | `workflowHistory` | The ordered steps the run has reached. Each entry pairs the step's resolved **definition** (`stepDefinition`: `type`, `title`, an `executionType` — `manual`, `automated-with-confirmation` or `fully-automated` — plus an optional `taskType` and `prompt`, and the `outgoing` branches) with its **outcome** (`stepName`, `stepIndex`, `done`, plus an optional `context` carrying the selected option, a manual completion, an escalation state, an awaiting-input reason, or an `error`). Read `runState` first to know whether the run is still live — the terminal `end` entry is never marked done, so a `finished` run still ends on a `done: false` entry. While the run is live, the last entry with `done: false` is where it sits. | -The run comes back with every field the contract declares, and only those — Forest projects the response onto that list, so a field added server-side never reaches the assistant without a corresponding release. What you get: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. History entries likewise carry an `isCardStep` flag, and every `stepDefinition` an `automaticCompletion` one. The examples below are trimmed to the load-bearing fields. +The run comes back with every field the contract declares, and only those — Forest projects the response onto that list, so a field added server-side never reaches the assistant without a corresponding release. **One exception:** `stepDefinition` is forwarded whole, deliberately, so the assistant can reason about what each step does. It is your own workflow configuration — titles, prompts, configured argument values — and it is the one part of the payload that is not filtered, so anything you put in a step's configuration is readable by the assistant. What you get: identifying fields (`id` — the numeric form of the `runId` string, `workflowId`, `collectionId`, `selectedRecordId`, the `createdAt`/`updatedAt` timestamps) and internal ones (`userId`, `renderingId`, `bpmnVersion`, `engine`, `lockedAt`) come with it. History entries likewise carry an `isCardStep` flag, and every `stepDefinition` an `automaticCompletion` one. The examples below are trimmed to the load-bearing fields. One naming trap: `stepName` and `outgoing[].stepId` are **BPMN element ids, not labels** — they come from the diagram, so they look like `Activity_ReviewKyb`, not like a sentence. They share one identifier space, so a step's `outgoing[].stepId` is the `stepName` of the entry that follows it. The human-readable name is `stepDefinition.title`. From 959778f7db2b210c5e75ad1be8a767ac790bc7c3 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Thu, 20 Aug 2026 15:13:58 +0200 Subject: [PATCH 19/20] docs(reference): complete the MCP tool name list (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ToolName declares fourteen values; this line listed eleven. listWorkflows, triggerWorkflow and getWorkflowRun were missing. It sits directly under the enabledTools row and above an allowlist example, and mcp-server.mdx sends readers here twice — once to restrict tools in general, and once in Turning it off, which tells them to "set an enabledTools allowlist that leaves triggerWorkflow out". Someone following exactly that advice, from exactly this list, would also drop listWorkflows and getWorkflowRun, with no error and only an Info log to show for it. They would believe they had disabled the write and have disabled all three. Pre-existing rather than introduced by this branch, but it is this work that makes the gap bite. Co-Authored-By: Claude Opus 5 (1M context) --- reference/agent-api/nodejs.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/agent-api/nodejs.mdx b/reference/agent-api/nodejs.mdx index 17c3b7f..0664c9d 100644 --- a/reference/agent-api/nodejs.mdx +++ b/reference/agent-api/nodejs.mdx @@ -238,7 +238,7 @@ agent.mountAiMcpServer(options?: { | `tokenTtl` | `{ accessTokenSeconds?: number; refreshTokenSeconds?: number }` | Shorten the OAuth token lifetimes issued by the MCP server (defaults: 1 hour for access tokens, unbounded session for refresh). Upper bounds only — they can never extend what Forest grants; minimum `60` seconds each. See [Token lifetimes](/product/embed/mcp-server#token-lifetimes). Since `@forestadmin/agent` 1.91.0. | | `fileUploads` | `false \| { storage?, maxBytes?, ... }` | Configure action file uploads, which are **on by default** with the files held in memory — pass `false` to turn the feature off, or an object to set a `storage` backend, size limits and TTLs. Experimental. See [Action file uploads](/product/embed/mcp-server#action-file-uploads). Since `@forestadmin/agent` 1.95.0. | -**Available tool names:** `'describeCollection'`, `'list'`, `'listRelated'`, `'create'`, `'update'`, `'delete'`, `'associate'`, `'dissociate'`, `'getActionForm'`, `'executeAction'`, `'requestActionFileUpload'` +**Available tool names:** `'describeCollection'`, `'list'`, `'listRelated'`, `'create'`, `'update'`, `'delete'`, `'associate'`, `'dissociate'`, `'getActionForm'`, `'executeAction'`, `'requestActionFileUpload'`, `'listWorkflows'`, `'triggerWorkflow'`, `'getWorkflowRun'` **Example:** From fa79cfd7a8d9cbbc8e4dc5e8e9c286e67b941b12 Mon Sep 17 00:00:00 2001 From: Brun Christophe Date: Thu, 20 Aug 2026 16:29:50 +0200 Subject: [PATCH 20/20] docs(workflows): correct four claims the code does not support (PRD-742) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Found checking the pages against the implementation heads. Three of the four were written by earlier correction commits on this branch (19fe126, 84aaa8c): each round traded a vague sentence for a precise one, and a precise sentence is falsifiable in a way the vague one was not. The rate-limiting bullet said triggerWorkflow "is annotated as destructive so MCP clients ask the user to confirm each call; keep that confirmation on". destructiveHint is advisory in the MCP spec and nothing in Forest enforces it — a client may confirm, auto-approve, or allowlist for the session. Worse, "keep that confirmation on" points at a Forest setting that does not exist, and the other write tools carry no annotation at all, so the behaviour is entirely the client's. It now says annotations are advisory, tells the reader to check their own client, and names the mcp toggle as the only guard Forest itself enforces. Both revocation paths told the reader to "allow up to 15 minutes for the agent's permission cache to expire". instantCacheRefresh defaults to true, and then the cache duration is DEFAULT_CACHE_DURATION_WITH_EVENTS — a year — because invalidation comes from the event stream instead, within seconds. The 15 minutes only apply to an agent started with instantCacheRefresh: false, and an agent setting permissionsCacheDurationInSeconds has no upper bound at all. So the figure was both too pessimistic by default and worthless as a ceiling — in the two tables someone reads while deciding whether revoking is enough. "Starting a workflow is the one exception to the permission half" undercounted. listMcpEnabledWorkflows filters on renderingId and the mcp trigger only, so a user with no read access to a collection still sees and can trigger its workflow; and getWorkflowRunById takes no userId, so run reads are rendering-scoped rather than user-scoped and return selectedRecordId plus context.error. mcp-server.mdx already said as much, so this page contradicted it. All three tools are now named. The Forest Runtime prerequisite said "the version check happens inside the runtime". There is no version check: the older runtime rejects triggerType "mcp" as an unknown enum value when it validates the step, and the message recorded on that step is the fixed DomainValidationError userMessage, which names neither the version nor the trigger type. An operator following the page would look for a specific validation message and not find one. Co-Authored-By: Claude Opus 5 (1M context) --- get-started/expose-to-ai-agents.mdx | 2 +- product/embed/mcp-server.mdx | 4 ++-- product/process/workflows/forest-runtime.mdx | 2 +- product/process/workflows/triggers.mdx | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/get-started/expose-to-ai-agents.mdx b/get-started/expose-to-ai-agents.mdx index 1041215..0c8d2d5 100644 --- a/get-started/expose-to-ai-agents.mdx +++ b/get-started/expose-to-ai-agents.mdx @@ -16,7 +16,7 @@ Through the Model Context Protocol, connected AI agents can: - Execute actions on records, including approval workflows - Start [workflows](/product/process/workflows/triggers#the-mcp-trigger) on a record and follow their progress -Every operation on data runs with the permissions of the authenticated Forest user, and is logged just like a UI action — with four exceptions, listed under [Identity, auditing, and limits](/product/embed/mcp-server#identity-auditing-and-limits). Starting a workflow is the one exception to the permission half: it is gated by the user's rendering and the workflow's MCP toggle only, and neither the target record nor the workflow's segments are checked when the run is created. What the run then reads and writes is bound by that user's permissions as usual. +Every operation on data runs with the permissions of the authenticated Forest user, and is logged just like a UI action — with four exceptions, listed under [Identity, auditing, and limits](/product/embed/mcp-server#identity-auditing-and-limits). The three workflow tools are the exception to the permission half: discovering, triggering and reading runs are gated by the user's rendering and the workflow's MCP toggle only — no collection permission, no segment, and no check on the target record. What the run then reads and writes is bound by that user's permissions as usual. ## Turn on the MCP server diff --git a/product/embed/mcp-server.mdx b/product/embed/mcp-server.mdx index 2e88506..79b3bc5 100644 --- a/product/embed/mcp-server.mdx +++ b/product/embed/mcp-server.mdx @@ -619,8 +619,8 @@ Tool failures come back as tool errors with an explanatory message, so the assis Only the first is guaranteed: the run-attached entry is best-effort, so a successful trigger can leave just the request entry. Count *triggered* rows to count runs actually started, and *requested* rows to count what assistants asked for. - **Four tools are not audited** — `listWorkflows`, `getWorkflowRun`, `getActionForm` and `requestActionFileUpload` leave no Activity Logs entry. Three of them have nothing to attach an entry to, since the Activity Logs route needs a collection: the two workflow reads operate on the orchestrator rather than a collection, and `requestActionFileUpload` is identified only by a filename and a checksum. `getActionForm` is the exception — it does receive a collection and record ids, so nothing stands in the way of auditing it; it simply predates this work and was never wired to the audit path. `requestActionFileUpload` is worth calling out separately: it is not a read — it mints a pre-authorized upload URL — and it is enabled by default, including when no storage backend is configured. Every other tool, read or write, writes an entry. Closing these gaps is on the roadmap. - **When the audit log itself fails** — a **write** whose log cannot be created is blocked, so no side effect happens unaudited. A **read** proceeds with a warning, so an audit-store outage never takes the read surface down. An **authorization refusal** (the caller's identity was rejected) propagates either way — it is not an outage. -- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication, and no per-call rate limit applies; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule prevents duplicate runs on the *same* record, but nothing bounds how many records an assistant can trigger on — walking a list view opens one run per record, each consuming Forest Runtime capacity. `triggerWorkflow` is annotated as destructive so MCP clients ask the user to confirm each call; keep that confirmation on, and size the exposure with the `mcp` toggle, per workflow. -- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access stops new triggers immediately, and the assistant is told not to retry; a run already in flight is not aborted, and keeps going until it next touches data — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. See [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). +- **Rate limiting** — the workflow tools have no dedicated limiter. They inherit the MCP server's authentication, and no per-call rate limit applies; unlike the [webhook trigger](/reference/api/endpoints/trigger-workflow-webhook#rate-limiting), there is no separately exposed HTTP endpoint to protect — every call happens inside an authenticated MCP session. The one-run-per-workflow-per-record rule prevents duplicate runs on the *same* record, but nothing bounds how many records an assistant can trigger on — walking a list view opens one run per record, each consuming Forest Runtime capacity. `triggerWorkflow` is annotated `destructiveHint: true`, but MCP annotations are advisory: whether a call is confirmed, auto-approved, or allowlisted for the rest of the session is entirely up to the client. Check and configure that behaviour in the MCP client you connect, and treat the per-workflow `mcp` toggle as the only guard Forest itself enforces. +- **Turning it off** — disable a single workflow's MCP toggle, or set an [`enabledTools`](#restrict-tools) allowlist that leaves `triggerWorkflow` out to remove MCP triggering across all workflows (when `enabledTools` is unset, every tool is enabled — restricting means listing the tools you keep). Either way, manual and webhook starts of that workflow keep working. Revoking the connected user's access stops new triggers immediately, and the assistant is told not to retry; a run already in flight is not aborted, and keeps going until it next touches data. By default the agent refreshes its permissions from Forest's event stream, so a revocation lands within seconds; an agent started with `instantCacheRefresh: false` instead waits out its permission cache — 15 minutes by default, or whatever `permissionsCacheDurationInSeconds` is set to. Neither delay is a guarantee: abort a run explicitly if you need it stopped now. See [Revoking MCP access](/product/process/workflows/triggers#revoking-mcp-access). ## Use cases diff --git a/product/process/workflows/forest-runtime.mdx b/product/process/workflows/forest-runtime.mdx index 419b53f..60b02ec 100644 --- a/product/process/workflows/forest-runtime.mdx +++ b/product/process/workflows/forest-runtime.mdx @@ -20,7 +20,7 @@ Yes — Forest Runtime is what executes your workflow steps. **[Automatically-tr Running on infrastructure you control also keeps the records handled by data steps out of Forest's infrastructure — decisive for compliance or data-residency requirements, or when a step needs access to systems reachable only from within your network. - **Upgrade Forest Runtime before you enable the MCP trigger.** A runtime older than the release that added MCP triggering rejects MCP-started runs when it validates them: the run is created, picked up, and immediately errored — its first step carries a validation message, and `getWorkflowRun` reports that error rather than a run in progress. There is no dedicated failed state: the run stays in `started`, and it is routed to the fallback inbox, so that inbox fills up with runs that never began. Because `started` counts as active, **each affected record is then blocked from being triggered again on the same workflow until you abort its run**. Nothing warns you up front; the version check happens inside the runtime. Upgrade first, then turn the toggle on. + **Upgrade Forest Runtime before you enable the MCP trigger.** A runtime older than the release that added MCP triggering rejects MCP-started runs when it validates them: the run is created, picked up, and immediately errored — its first step carries a validation message, and `getWorkflowRun` reports that error rather than a run in progress. There is no dedicated failed state: the run stays in `started`, and it is routed to the fallback inbox, so that inbox fills up with runs that never began. Because `started` counts as active, **each affected record is then blocked from being triggered again on the same workflow until you abort its run**. Nothing warns you up front, and there is no version check: the older runtime simply rejects `triggerType: "mcp"` as an unknown value when it validates the step, so the message recorded there is the generic *"Internal validation error occurred while preparing the step. Please contact support."* — it names neither the version nor the trigger type. Upgrade first, then turn the toggle on. ## How it works diff --git a/product/process/workflows/triggers.mdx b/product/process/workflows/triggers.mdx index 83d5cf1..03c0c2f 100644 --- a/product/process/workflows/triggers.mdx +++ b/product/process/workflows/triggers.mdx @@ -124,7 +124,7 @@ For the tool contracts and the discover → trigger → poll flow, see [Triggeri |---|---| | **Disable the MCP toggle** | The workflow disappears from `listWorkflows` and can no longer be triggered through MCP. Manual and webhook starts are unaffected. | | **Restrict the MCP server's tools** | Set an `enabledTools` allowlist that leaves `triggerWorkflow` out to remove MCP triggering across *all* workflows at once — when `enabledTools` is unset, every tool is enabled. See [Restrict tools](/product/embed/mcp-server#restrict-tools). | -| **Revoke the user's access** | The assistant acts as its connected Forest user. Removing that user's access to the rendering stops new triggers immediately — the assistant is told the workflow could not be resolved and that retrying will not help. A run already in flight is not aborted: it keeps going until it next touches data, then fails on the permission check and stalls with the error recorded on the current step — allow up to 15 minutes for the agent's permission cache to expire. Abort a run explicitly if you need it stopped now. | +| **Revoke the user's access** | The assistant acts as its connected Forest user. Removing that user's access to the rendering stops new triggers immediately — the assistant is told the workflow could not be resolved and that retrying will not help. A run already in flight is not aborted: it keeps going until it next touches data, then fails on the permission check and stalls with the error recorded on the current step. By default the agent refreshes its permissions from Forest's event stream, so the revocation lands within seconds; an agent started with `instantCacheRefresh: false` instead waits out its permission cache — 15 minutes by default, or whatever `permissionsCacheDurationInSeconds` is set to. Neither delay is a guarantee: abort a run explicitly if you need it stopped now. | ## Auditing