Documentation Index
Fetch the complete documentation index at: https://docs.maadify.com/llms.txt
Use this file to discover all available pages before exploring further.
Add a tool execution
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.


