All nodes/Integrations/Email
Email Tool
Exposes email operations (send, read, search) as tools for the AI Agent. Requires Email Config. Connects to the agent via link_extension.
Type in the graph: email_tool
Tool
Try it
Minimal working workflow
- Execute + Data
- Extension
- LLM
- Memory
- Execute + Data + Streaming
Pick your own connection or knowledge base first — the graph carries REPLACE_ME.
When to use it
This node hands a mailbox to the model: the agent decides for itself whether to read the inbox,
search for a message or reply to a sender. It attaches with a link_extension wire to the
Extensions port of the AI Agent and is not a graph step — there
is nowhere to put it in the execution chain.
When a message must always be sent to a known address, use Send Email; when mail must be read on a schedule, use Fetch Emails. Those nodes are cheaper and more predictable: their behaviour does not depend on what the model decided.
How it works
“Enabled Tools” decides what the model gets to see: sending a message, reading a folder, searching by text and replying. Clearing a checkbox removes that tool from the list handed to the model — that is how you keep the agent inside its lane.
Reading and searching through the tool never mark messages read: the mailbox is opened
read-only. Replying looks the original up in the given folder, sets a Re: … subject and sends
the text back to the sender as plain text, with no copies.
A mail-server failure does not stop the run here: the model receives an answer such as
[Email Error ACCESS_DENIED] … and carries on. That is deliberate — the model can fix an
address and retry — but it also means a failed send shows up only in the run log.
Common mistakes
- No limit on the recipient. The model decides who to write to. If the recipient must be fixed, use Send Email rather than the tool.
- No connection chosen. Every call then answers
[Email Error] No email connection, and the turn merely looks like “the agent will not do it”. - A reply that finds nothing. The message ids in read results are positions in the folder at read time, so replying by such an id can miss the original (“Original email not found”), especially when the folder differs or the message has been moved.
- All four tools enabled just in case. The more actions the model has, the better the odds it sends a message where you expected a read.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Email Configemail_config | Datadata | — | required |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
tool_out | Extensionlink_extension | — |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Email connectionconnection_id | string | "" | Saved workspace email connection, so a simple graph does not need a separate Email Config node. A node wired to the 'email_config' port wins over this field. connection: emailoverridden by port: email_config |
Enabled Toolsenabled_tools | array<string> | ["send_email","fetch_emails","search_emails","reply_to_email"] | Which email actions the LLM can use |