Custom n8n Workflow Tool#
The Workflow Tool node is a tool that allows an agent to run another n8n workflow and fetch its output data.
On this page, you'll find the node parameters for the Workflow Tool node, and links to more resources.
Parameter resolution in sub-nodes
Sub-nodes behave differently to other nodes when processing multiple items using an expression.
Most nodes, including root nodes, take any number of items as input, process these items, and output the results. You can use expressions to refer to input items, and the node resolves the expression for each item in turn. For example, given an input of five name
values, the expression {{ $json.name }}
resolves to each name in turn.
In sub-nodes, the expression always resolves to the first item. For example, given an input of five name
values, the expression {{ $json.name }}
always resolves to the first name.
Node parameters#
Name#
Give your custom code a name. It can't contain whitespace or special characters.
Description#
Give your custom code a description. This tells the agent when to use this tool. For example:
Call this tool to get a random color. The input should be a string with comma separated names of colors to exclude.
Source#
Tell n8n which workflow to call. You can choose either:
- Database, then enter a workflow ID.
- Parameter, then copy in a complete workflow JSON.
Field to Return#
This must match the name of the output property in the workflow you're calling.
Workflow Values#
Set values to pass to the workflow you're calling.
These values appear in the output data of the trigger node in the workflow you call. You can access these values in expressions in the workflow. For example, if you have:
- Workflow Values with a Name of
myCustomValue
- A workflow with an Execute Workflow Trigger node as its trigger
The expression to access the value of myCustomValue
is {{ $('Execute Workflow Trigger').item.json.myCustomValue }}
.
Specify input schema#
Agent support
The structured input schema requires with a Tools Agent or OpenAI Functions Agent.
Enable this option to define the input schema for the workflow you're calling. This is useful when you want to make sure the input data the LLM provides is in the correct format.
Schema Type: Define the input structure and validation. You have two options to provide the schema:
- Generate from JSON Example: Input an example JSON object to automatically generate the schema. The node uses the object property types and names. It ignores the actual values.
- Define Below: Manually input the JSON schema. Read the JSON Schema guides and examples for help creating a valid JSON schema.
Templates and examples#
Related resources#
Refer to LangChain's documentation on tools for more information about tools in LangChain.
View n8n's Advanced AI documentation.
- completion: Completions are the responses generated by a model like GPT.
- hallucinations: Hallucination in AI is when an LLM (large language model) mistakenly perceives patterns or objects that don't exist.
- vector database: A vector database stores mathematical representations of information. Use with embeddings and retrievers to create a database that your AI can access when answering questions.
- vector store: A vector store, or vector database, stores mathematical representations of information. Use with embeddings and retrievers to create a database that your AI can access when answering questions.