> For the complete documentation index, see [llms.txt](https://docs.appfarm.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.appfarm.io/reference/appfarm-client/developer-tools-for-flows.md).

# Developer tools for Flows

Flow DevTools is a tool for running a flow action and following each action node as it runs. It opens in a separate browser window, connected to one environment, and shows the inputs, what each action node did, the data in the action, and what the action returned.

Runs in Flow DevTools are real runs. They use the environment's data, and any changes they make are kept.

<figure><img src="https://29237295-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MiLU-xcHu0eLZiTxcmZ%2Fuploads%2F0obp1n9TRw7yLdN6btUn%2Fimage.png?alt=media&amp;token=737ec453-038a-466e-b2ae-bd442b2b4829" alt=""><figcaption><p>Developer tools for Flows in Appfarm</p></figcaption></figure>

## Access

### Enable Flow DevTools for an environment

Flow DevTools is enabled per environment on the [Environments](/reference/configuration/environments.md) page. Select both of these settings for each environment where you want to use it:

* **Enable Flow endpoints and schedules**
* **Enable Flow DevTools**

Both settings are off by default. **Enable Flow DevTools** can only be selected when **Enable Flow endpoints and schedules** is selected.

### Grant access

To use Flow DevTools in an environment, a user needs a role with both of these, granted under **Permissions** > **Login access** (see [Permissions](/reference/security/permissions.md)):

* Client access to the environment.
* The Flow DevTools permission for the environment, under **DevTools for Flows**: **Development Flow DevTools access**, **Test Flow DevTools access**, **Staging Flow DevTools access**, or **Production Flow DevTools access**.

The built-in Owners, Maintainers, and Developers roles have **Development Flow DevTools access**. The Flow DevTools permissions for Test, Staging, and Production are not granted to any role by default. Grant them through a custom role that also has client access to the environment.

Runs started from Flow DevTools run as your user. Your roles must also allow you to run the flow action and to access the data it uses.

### Open Flow DevTools

1. Open the flow in Appfarm Create.
2. Click the tools icon in the toolbar to open **Flow tools**.
3. Under **Environment**, select the environment to run in.
4. Click **Flow DevTools**.

Flow DevTools opens in a separate window. Each flow and environment has its own window. If the window is already open, clicking **Flow DevTools** again switches to it.

If Flow DevTools can't be opened, **Flow tools** shows the reason, for example, that Flow DevTools is not enabled for the environment or which permission you are missing, along with a button that takes you to the setting.

{% hint style="warning" %}
**Important**

The Staging environment uses the Production database. Runs in Staging and Production change live data, and the changes cannot be undone. In Production, Flow DevTools shows a **Production** banner and the run button reads **Run in Production**.
{% endhint %}

## Usage

The sidebar on the left lists the actions in the flow, grouped by type, with a search field. Select the action you want to work with. To work with another flow, use the flow switcher at the top of the sidebar.

The run is shown in the middle of the window. The **Data** panel on the right shows the current data of the action. The panel is closed the first time you open Flow DevTools. Click **Data** on the right edge of the window to open it.

### Run an action

1. Select the action in the sidebar.
2. Enter values under **Inputs**. For an [API Endpoint](/reference/flows/api-endpoints.md), the inputs are grouped under **Path**, **Query**, **Headers**, and **Body**. Leave a field empty to use the input's default value.
3. Click **Run**.

While the action runs, click **Abort run** to cancel it. When the run has finished, click **Run again** to run the action again.

The inputs you enter are kept while the window is open. Some input types can't be entered in Flow DevTools, including schemas, rich text, and secrets. To inspect a run with such inputs, start the run from somewhere else and [listen for it](#listen-for-runs-from-other-triggers).

### Listen for runs from other triggers

Click **Listen for next run** to follow runs of the selected action that start somewhere else:

* From an app, with the [Run flow](/library/action-nodes/run-flow.md) action node.
* From an external system, through an [API Endpoint](/reference/flows/api-endpoints.md).
* On a [schedule](/reference/flows/schedules.md).
* From an MCP client, as an [MCP tool](/reference/flows/mcp-servers.md).

Each run is shown as it executes. Flow DevTools keeps listening until you click **Stop listening**, and you can't select another action while it's listening. If you click **Stop listening** during a run, Flow DevTools stops following the run, but the run continues on the server.

{% hint style="info" %}
**Good to know**

Flow DevTools picks up runs started by any user, not only your own. In Production, this means you see live data from real users.

Each run is shown in one window only: the window that most recently started listening for the action. While a window is showing a run, other runs of the same action continue as normal without being shown.
{% endhint %}

### Read a run

The header shows the status of the run, for example **Running**, **Run succeeded**, or **Run failed**, and how long it took. A run where every error was caught by a [Catch exception](/library/action-nodes/catch-exception.md) action node still succeeds.

The **Issues** button summarizes the errors, caught errors, and warnings in the run. Click it to list them, and select an issue to go to the action node where it happened.

Each action node in the action is shown as a card, in the same order as in the action. A card shows how long the action node took and a summary of what it did, for example, how many times it ran or how many objects it created. Action nodes the run didn't reach are dimmed. Expand a card to see its **Log**, including the data the action node read, created, or updated. When an action node fails, its card shows **Error details**. To find an action node, use **Search nodes and descriptions** above the cards.

The card menu on each action node has these options:

* **Open in Create**: Open the action node in Appfarm Create.
* **Copy log**: Copy the action node's log.
* **Copy node ID**: Copy the ID of the action node.

Cards for [Foreach](/library/action-nodes/foreach.md) and [While](/library/action-nodes/while.md) action nodes show how many iterations ran and how many failed or had caught errors. You can step through the iterations to see each one's data.

The action nodes of a flow or action called with Run flow or Run action are not shown as separate cards. Their log entries are shown on the calling card instead.

Below the action nodes, **Return values** shows the action variables and action data sources that the action returned. For an API Endpoint, **Endpoint response** shows the status, headers, and body of the response.

The **Data** panel shows the current values of the action's **Inputs**, **Action data sources**, and **Action variables**, as well as **Flow variables**, **Flow parameters**, and **Solution data**. Each action data source is shown as a preview of up to 25 objects. All action data sources share a size limit, so when the objects are large or the action has many data sources, a preview shows fewer objects. A data source whose objects don't fit at all shows `Preview too large to show`, along with the number of objects it holds.

The values of [secrets](/reference/security/secrets.md) are shown as `***` everywhere in Flow DevTools, including the `Authorization` header of a Web Request.

## Limitations

* **Runs are not stored.** Flow DevTools shows the current run only, and there is no history of earlier runs.
* **Closing the window aborts the run.** If you close the window during a run, the run is aborted shortly after.
* **Changes in Appfarm Create interrupt runs briefly.** When a change to the flow is made in Appfarm Create, runs can't start or be followed for a moment. Flow DevTools reconnects on its own.
* **No concurrency.** If the action has **No concurrency** selected and is already running, a run started from Flow DevTools is skipped. See [Concurrency](/reference/flows.md#concurrency).
* **Up to 30 runs per minute.** You can start up to 30 runs per minute from Flow DevTools.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.appfarm.io/reference/appfarm-client/developer-tools-for-flows.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
