Skip to main content

Agent node

What shipped

The Agent node lets you drop a single-turn AI agent directly into any workflow. The agent follows a goal you define, can call tools (other workflows), and returns a structured result — all without leaving the flow builder. You no longer need to build separate Dynamic Chat conversations to use LLM-powered reasoning inside a workflow.

Who it's for

PersonaHow they benefit
Bot builder / developerWire LLM reasoning into any workflow step without extra configuration outside the builder
AdminControl which bots can use the Agent node via the LLM Config toggle

How to use

1. Enable the Agent node for your bot

Before the node appears in the flow builder, an admin must enable it:

  1. Go to Settings → LLM Configuration.
  2. Under Use Cases, find Agent Node and toggle it on.
  3. Select the LLM account and model to use.

2. Create an agent

  1. Navigate to Studio → Agents.
  2. Click + New Agent and give it a name/slug.
  3. Write the agent's goal — plain-language instructions for what the agent should accomplish (supports {{variable}} templating).
  4. Optionally configure a response format (plain text or a JSON schema).
  5. Save the agent.

3. Add the Agent node to a flow

  1. Open any flow in the flow builder.

  2. Drag a connection from an existing node — the node picker will appear.

  3. Select Agent node under Action nodes.

  4. In the right sidebar, configure:

    FieldDescription
    AgentSelect the agent slug you created in Step 2
    MessagesOptional — provide conversation context as static turns (user/assistant) or reference a variable that resolves to a message array
    Model overrideOptional — override the bot-level LLM account and model for this node only
    Output variableVariable to store the agent's response (status, data, error)
  5. Connect the Success and Failure output handles to the next steps in your flow.

4. Use the output

The output variable contains:

{
"status": "success",
"data": [{ "type": "output_text", "text": "Agent's response here" }]
}

On failure:

{
"status": "error",
"data": null,
"error": { "code": "MAX_ITERATIONS_EXCEEDED", "message": "..." }
}

Access the response text downstream with {{variables.yourOutputVar.data.0.text}}.

Screenshots