> ## Documentation Index
> Fetch the complete documentation index at: https://docs.beam.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Creating Flows

> Build and review an agent Flow from its canvas and node sidebar, then test it before publishing.

A Flow is the graph that an agent runs from chat or triggers. Open an agent's **Flow** page to work on its canvas and node configuration.

<Frame>
  <img src="https://mintcdn.com/beamai/5sjMFBB-gamSkrEM/02-building-agents/agent-fundamentals/flow-configuration/flow-trigger-sidebar-current.jpg?fit=max&auto=format&n=5sjMFBB-gamSkrEM&q=85&s=18eb3b8fa836776a6f9291a6fbf1a0dc" alt="Current Flow canvas with Trigger, Linear Create Issue, and Slack Send Message to Channel nodes, with the Trigger sidebar open" width="1483" height="994" data-path="02-building-agents/agent-fundamentals/flow-configuration/flow-trigger-sidebar-current.jpg" />
</Frame>

<h2 id="flow-page-controls">
  Flow page controls
</h2>

The Flow header includes:

| Control       | Use it to                                |
| ------------- | ---------------------------------------- |
| **Draft**     | See the Flow's current draft state.      |
| **Test mode** | Turn on Test mode before testing a Flow. |
| **Publish**   | Publish the Flow when it is ready.       |

The canvas begins with a **Trigger**. Add later steps from the blue **+** control at the end of the Flow.

<h2 id="build-on-the-canvas">
  Build on the canvas
</h2>

1. Open the agent's **Flow** page.
2. Use the blue **+** control to add a step.
3. Select a node to open its sidebar.
4. Configure the node, then review the Flow before testing it.

<h2 id="add-a-step">
  Add a step
</h2>

Select the blue **+** control at the end of a path to open **Add step**. In the modal, choose **AI**, **Integration**, **Controls**, or **Utilities**.

You can describe what the step should do and select **Create with AI**, or select **Add blank step** to configure it yourself.

<Frame>
  <img src="https://mintcdn.com/beamai/5sjMFBB-gamSkrEM/02-building-agents/agent-fundamentals/flow-configuration/flow-add-step-modal-current.jpg?fit=max&auto=format&n=5sjMFBB-gamSkrEM&q=85&s=b31f03b050c68b46ca6d4c3ba8c6b17d" alt="Current Add step modal with AI, Integration, Controls, and Utilities categories, a task description field, Create with AI, and Add blank step" width="1280" height="720" data-path="02-building-agents/agent-fundamentals/flow-configuration/flow-add-step-modal-current.jpg" />
</Frame>

<h2 id="configure-a-tool-node">
  Configure a tool node
</h2>

Select a tool node to open its sidebar. The sidebar has **Parameters**, **Settings**, and **Evaluation** tabs.

| Parameters section  | What you configure                   |
| ------------------- | ------------------------------------ |
| **Connection**      | The connected account the tool uses. |
| **Input variables** | How the tool receives its inputs.    |
| **Model**           | The model assigned to the tool node. |

<Frame>
  <img src="https://mintcdn.com/beamai/5sjMFBB-gamSkrEM/02-building-agents/agent-fundamentals/flow-configuration/flow-tool-node-sidebar-current.jpg?fit=max&auto=format&n=5sjMFBB-gamSkrEM&q=85&s=5640891b83ec8037a3475b4df9b06df5" alt="Current Flow tool-node sidebar showing a Linear connection, input variables with Static fill and Auto fill, and the Configure and test button" width="1483" height="994" data-path="02-building-agents/agent-fundamentals/flow-configuration/flow-tool-node-sidebar-current.jpg" />
</Frame>

<CardGroup cols={2}>
  <Card title="Variable Fill" icon="sliders" href="/02-building-agents/agent-configuration/variables-state/variables-state">
    Choose how each input variable gets a value.
  </Card>

  <Card title="Structured Outputs" icon="code" href="/02-building-agents/agent-configuration/structured-outputs/structured-outputs">
    Configure output variables for a node.
  </Card>
</CardGroup>

<h2 id="configure-the-trigger">
  Configure the trigger
</h2>

Select the **Trigger** node, then select its configured trigger card. For a Gmail **New Email Received** trigger, the sidebar lets you set the trigger name, connection, optional trigger context, and filters such as **Has attachment**, **Should Trigger On Reply**, and **Contains body**. Select **Configure & test** when ready to test that trigger setup.

<Frame>
  <img src="https://mintcdn.com/beamai/5sjMFBB-gamSkrEM/02-building-agents/agent-fundamentals/flow-configuration/flow-gmail-trigger-config-current.jpg?fit=max&auto=format&n=5sjMFBB-gamSkrEM&q=85&s=791127378575414e8940207e0f39933f" alt="Current Gmail New Email Received trigger configuration with trigger name, Gmail connection, trigger context, filters, and Configure and test" width="1280" height="720" data-path="02-building-agents/agent-fundamentals/flow-configuration/flow-gmail-trigger-config-current.jpg" />
</Frame>

<Card title="Triggers and webhooks" icon="bolt" href="/03-running-operations/task-management/triggers-webhooks/triggers-webhooks">
  Configure the verified current trigger editor.
</Card>

<h2 id="test-and-publish">
  Test and publish
</h2>

Turn on **Test mode** in the Flow header before testing the Flow. Use the current testing controls to review the Flow before publishing.

When the Flow is ready, select **Publish** from the header.

<CardGroup cols={2}>
  <Card title="Test Mode" icon="vial" href="/03-running-operations/debugging-testing/test-datasets/test-datasets">
    Learn how Test mode works.
  </Card>

  <Card title="Publishing and deployment" icon="rocket" href="/02-building-agents/advanced-patterns/publishing-deployment/publishing-deployment">
    Review current publishing controls.
  </Card>
</CardGroup>
