Tools turn an agent from a chatbot into something that does work, and approvals keep that work safe.
A tool is an action the agent may decide to call: look up an order, create a ticket, send a message. The model reads each tool's name and description, chooses one, fills in its inputs, reads the result, and repeats until it can answer.
Kinds of tools you can plug into the Tools slot:
- App nodes as tools: many app nodes (Gmail, Google Sheets, Slack...) have a tool version.
- HTTP Request Tool: any API.
- Call n8n Workflow Tool: runs one of your sub-workflows, the best way to give an agent a carefully controlled multi-step action.
- MCP Client Tool: tools offered by an external MCP server (MCP is a standard way to share tools between AI apps).
Who fills the inputs? Fix everything you can (for example the spreadsheet ID). For values only the model can know, click the sparkle button on the field, or write {{ $fromAI('email', 'customer email address') }}. The key and description are hints the model uses to choose a value.
Write clear tool names and descriptions; the model picks tools based on them.
Memory. Without memory each message is a fresh start. Simple Memory keeps the last few messages of a session; Postgres or Redis Chat Memory store history in a database so it survives restarts. Keep the window small: everything remembered is sent to the model each time.
Human review. In the agent's tools panel you can add a Human review step and connect risky tools to it. Before such a tool runs, the workflow pauses and asks a person (in n8n Chat, Slack, Teams, Gmail and others) to approve or deny. Denied calls are cancelled and the agent is told so.
Example
Tool: Gmail "Send message"
To: {{ $fromAI('to', 'recipient email address') }}
Subject: {{ $fromAI('subject', 'short subject line') }}
Body: {{ $fromAI('body', 'plain-text reply to the customer') }}
-> connected to Human review (Slack) before it runsRemember
- Tools: app nodes, HTTP Request, sub-workflows and MCP servers
- Fix what you can; use $fromAI only for values the model must choose
- Add memory for conversations and Human review for risky tools
Watch out for
- Giving an agent a delete or send tool with every field left to the model and no human review.