Skip to content

Custom Code Tool#

Use the Custom Code Tool node to write code that an agent can run.

On this page, you'll find the node parameters for the Custom Code Tool node, and links to more resources.

Examples and templates

For usage examples and templates to help you get started, refer to n8n's Code Tool integrations page.

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 {{ $ }} 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 {{ $ }} always resolves to the first name.

Node parameters#


Give your custom code a name. It can't contain whitespace.


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.


You can use JavaScript or Python.

JavaScript / Python box#

Write the code here.

You can access the tool input using query. For example, to take the input string and lowercase it:

let myString = query;
return myString.toLowerCase();

View example workflows and related content on n8n's website.

Refer to LangChain's documentation on tools for more information about tools in LangChain.

View n8n's Advanced AI documentation.