Add a tool execution
1
Add the tool action
In the parent agent flow, select Execute tool and choose a tool.

2
Configure inputs
Use schema fields or a custom JSON payload to build inputs.

3
Test execution
Run a test execution to confirm inputs and outputs. Run this in chat to verify inputs and outputs.
Execute tool configuration
When you add an execute tool action, you can control how inputs are built and how the tool runs.- Payload type: schema-driven fields or a custom JSON payload.
- Access level: full access or restricted access based on tool defaults. Use will always default with the default tool configurations set on the tool.
- Async execution: run the tool in the background, it will use a fire and forget approach.
- Context memory: store outputs into memory for agents to access, later or for context management.
- Schema validation: surface errors when filling out the payload.


Variable templating for tool inputs
Custom payloads and schema values support Jinja-style templating. This lets you map outputs from earlier steps into tool inputs.What context variables are available
You can reference:- Tool outputs by tool name and field path.
- Sub-agent outputs surfaced through structured outputs or raw message content.
- Runtime inputs captured earlier in the workflow, these can be files, trigger inputs, questions, chat history, or current group chat messages.
- Context variables carried across all steps these include all tool outputs for all tool execution instances and sub-agent structured outputs.
__{instance_id} to the tool name.
How variables appear in the UI
Use the variable picker to browse and insert values. Variables are grouped by:- Tools: each configured tool output is listed under the tool name.
- Runtime inputs: values captured from triggers or previous steps.
- Structured outputs: fields saved from sub-agent responses.

Common variable paths
Use these patterns when inserting variables:- Tool output:
{{ tool_key.data.field }}where tool_key is the{tool_name}_{tool_id} - Tool output with instance:
{{ tool_key__instance_id.data.field }}where tool_key is the{tool_name}_{tool_id}and instance_id is the instance id of the tool execution. - Nested objects:
{{ tool_key.data.object.child }} - Arrays:
{{ tool_key.data.items.0.sku }}gets the first item in the array. - Structured output:
{{ sub_agent_name_id.key }}where sub_agent_name_id is the{sub_agent_name}_{sub_agent_id} - Runtime input:
{{ input.question }}gets the question from the runtime input. - Inside Loops:
{{ _loop.property }}gets the property from each item when the tool is executed in a loop.
Exact variable labels match what you see in the picker. Use the picker to avoid typos.
Variable syntax

Nested properties
Filters
Use filters to transform values:defaultfor fallbackstojsonto serialize objects or listsupper,lower,trimlengthfor countsjoinfor list formatting
Conditionals
Loops
Loops and skip conditions
Execute-tool actions can iterate over arrays and conditionally skip items.- Loop on: select an array path in the tool input.
- Max iterations: prevent runaway loops.
- Fail on error: stop immediately or continue on errors.
- Skip conditions: use all/any groups with nested condition sets. These can be used to skip items in a loop or to skip the tool execution if a condition is met.

