All nodes/Integrations/Email

Send Email

Sends an email: recipient, subject, body (plain text or HTML). Runs deterministically (not as an agent tool). Requires Email Config via the 'email_config' port.

Send Email
Email ConfigSuccess
Error

Type in the graph: send_email

Exec

An error branch can be enabled (expose_error_output) to handle failures on their own path.

Try it

Minimal working workflow

Entry
Send Email
Email Config
Exit
  • Execute
  • Data
  • Execute + Data
Press “Copy nodes”, open the editor and hit Ctrl+V on the canvas.

Pick your own connection or knowledge base first — the graph carries REPLACE_ME.

When to use it

A graph step that sends one message whose recipient, subject and body you decide — not the model. That is what notifications, scheduled reports and ticket replies need. When the model should decide whether to write and to whom, use the Email Tool instead: it attaches to an agent and the model calls it itself.

How it works

“To”, “Subject”, “Body”, “CC”, “From Address” and “From Name” are template fields, so run data can be substituted into them: {{ inputs.input }}, {{ nodes.<id>.output.email }}, {{ variables.subject }}. Several recipients are comma-separated; the CC addresses are added to the same delivery.

The sender is resolved in order: “From Address” on the node, then the sender saved on the integration, then the login. The envelope and the From header always agree — otherwise the message fails SPF at the recipient. The platform sets the date and a Message-ID itself and returns that id in the output (success, message_id).

The “HTML Body” switch changes the content type of the message: the body is sent either as plain text or as HTML. No second copy in the other format is attached.

Common mistakes

  • A blank “To” or “Subject”. Both are required: the validator says so before the run, and a template that renders to an empty string stops the node during it.
  • A line break in an address, the subject or the sender name. Such a value is rejected — it is how extra headers get injected into a message.
  • HTML without the switch. A body full of tags arrives with its tags showing while “HTML Body” is off.
  • Attachments. The node sends the message text only; it has no port for files.
  • An unhandled SMTP refusal. A wrong password, a rejected address, an unreachable server — each stops the node. Without the “Error output” enabled, the whole run stops there.

Inputs

PortWirePayloadNotes
Email Configemail_configDatadata

required

Outputs

PortWirePayloadNotes
SuccessoutputExecute + Dataexecute_dataobject
Erroron_errorExecute + Dataexecute_data

shown when expose_error_output = true

Configuration

FieldTypeDefaultDescription
Email connectionconnection_idstring""

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

Totostring""

Recipient(s), comma-separated

supports templates

Subjectsubjectstring""

Email subject

supports templates

Bodybodystring""

Email body (plain text or HTML)

supports templates

HTML Bodyis_htmlbooleanfalse

Send body as HTML

Advanced
CCccstring""

CC recipients

supports templates

From Addressfrom_addressstring""

Overrides the connection's sender for this message; empty = connection default

supports templates

From Namefrom_namestring""

Display name shown to recipients; empty = connection default

supports templates

Shared fields

Every node has these three — the platform adds them, not the node author.

  • expose_error_output — When enabled, show an execution output to connect nodes that run if this step fails.