Reference · Tools
AWS SES
Send emails, manage email templates, and handle custom verification emails via Amazon Simple Email Service.
The AWS SES node connects your workflows to Amazon Simple Email Service so you can send plain text or HTML emails, fire off templated transactional emails, and manage the full lifecycle of SES email templates and custom verification templates — all without leaving BusyBot. A common use case is triggering a templated order confirmation email the moment a purchase record lands in your workflow.
- Node type
- Action
- Parameters
- 35
- Outputs
- Output, Error
- Credentials
- AWS SES
AWS SES
Send emails and manage templates via AWS SES.
Overview
AWS SES (Simple Email Service) tool for sending emails (plain text or HTML), sending templated emails, and full CRUD management of email templates and custom verification email templates.
Category: Communication
Tool Name: aws_ses
Version: 1
Appearance: Icon: lucide-Server | Color: #FF9900
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires AWS SES credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Custom Verification Email | customVerificationEmail |
email | |
| Template | template |
Operations
| Resource | Operation | Value | Description |
|---|---|---|---|
| Custom Verification Email | Create | create | Create a new custom verification email template |
| Custom Verification Email | Delete | delete | Delete an existing custom verification email template |
| Custom Verification Email | Get | get | Get the custom email verification template |
| Custom Verification Email | Get Many | getAll | Get many custom verification email templates |
| Custom Verification Email | Send | send | Send a custom verification email |
| Custom Verification Email | Update | update | Update an existing custom verification email template |
| Send | send | Send an email | |
| Send Template | sendTemplate | Send an email based on a template | |
| Template | Create | create | Create a template |
| Template | Delete | delete | Delete a template |
| Template | Get | get | Get a template |
| Template | Get Many | getAll | Get many templates |
| Template | Update | update | Update a template |
Parameters
Custom Verification Email: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
From Email (fromEmailAddress) | string | Yes | — | The email address that the custom verification email is sent from. |
| Template Name | string | No | — | The name of the custom verification email template. |
| Template Content | string | No | — | The content of the custom verification email. The total size of the email must be less than 10 MB. The message body may contain HTML. |
| Template Subject | string | Yes | — | The subject line of the custom verification email. |
| Success Redirection URL | string | Yes | — | The URL that the recipient of the verification email is sent to if his or her address is successfully verified. |
| Failure Redirection URL | string | Yes | — | The URL that the recipient of the verification email is sent to if his or her address is not successfully verified. |
Custom Verification Email: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Template Name | string | No | — | The name of the custom verification email template. |
Custom Verification Email: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Template Name | string | No | — | The name of the custom verification email template. |
Custom Verification Email: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 20 | Max number of results to return. (shown when Return All is false) |
Custom Verification Email: Send
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
string | Yes | — | The email address to verify. Supports expressions. | |
| Template Name | string | Yes | — | The name of the custom verification email template to use when sending the verification email. |
| Additional Fields | collection | No | {} | Optional send settings. |
| — Configuration Set Name | string | No | — | Name of a configuration set to use when sending the verification email. |
Custom Verification Email: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Template Name | string | No | — | The name of the custom verification email template. |
| Update Fields | collection | No | {} | The template properties to change. Fields you leave out keep their current value. |
| — Failure Redirection URL | string | No | — | The URL that the recipient is sent to if verification fails. |
| — From Email | string | No | — | The email address the custom verification email is sent from. |
| — Success Redirection URL | string | No | — | The URL that the recipient is sent to if verification succeeds. |
| — Template Content | string | No | — | The content of the custom verification email (HTML allowed, max 10 MB). |
| — Template Subject | string | No | — | The subject line of the custom verification email. |
Email: Send
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Is Body HTML | boolean | No | false | Whether body is HTML or simple text. |
| Subject | string | Yes | — | The subject line of the email. Supports expressions. |
| Body | string | Yes | — | The message body of the email. Supports expressions. |
From Email (fromEmail) | string | Yes | — | Email address of the sender. Must be a verified identity in SES. |
| To Addresses | string | Yes | — | Comma-separated email addresses of the recipients. Supports expressions. |
| Additional Fields | collection | No | {} | Optional recipients and send settings. |
| — Bcc Addresses | string | No | — | Comma-separated BCC recipient email addresses. |
| — Cc Addresses | string | No | — | Comma-separated CC recipient email addresses. |
| — Configuration Set Name | string | No | — | Name of the configuration set to use when sending the email. |
| — Reply To Addresses | string | No | — | Comma-separated reply-to email addresses. |
| — Return Path | string | No | — | Email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. |
| — Return Path ARN | string | No | — | This parameter is used only for sending authorization. |
| — Source ARN | string | No | — | This parameter is used only for sending authorization. |
Email: Send Template
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Template Name | string | Yes | — | The name of the SES template to use. Find templates in the AWS SES console under Email Templates. |
From Email (fromEmail) | string | Yes | — | Email address of the sender. Must be a verified identity in SES. |
| To Addresses | string | Yes | — | Comma-separated email addresses of the recipients. Supports expressions. |
| Template Data | json | No | {} | JSON object of template variable key-value pairs for substitution in the template. |
| Additional Fields | collection | No | {} | Optional recipients and send settings. |
| — Bcc Addresses | string | No | — | Comma-separated BCC recipient email addresses. |
| — Cc Addresses | string | No | — | Comma-separated CC recipient email addresses. |
| — Configuration Set Name | string | No | — | Name of the configuration set to use when sending the email. |
| — Reply To Addresses | string | No | — | Comma-separated reply-to email addresses. |
| — Return Path | string | No | — | Email address that bounces and complaints will be forwarded to when feedback forwarding is enabled. |
| — Return Path ARN | string | No | — | This parameter is used only for sending authorization. |
| — Source ARN | string | No | — | This parameter is used only for sending authorization. |
Template: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Template Name | string | Yes | — | The name of the template. |
| Subject Part | string | No | — | The subject line of the email. |
| Html Part | string | No | — | The HTML body of the email. |
| Additional Fields | collection | No | {} | Optional template parts. |
| — Text Part | string | No | — | The email body that will be visible to recipients whose email clients do not display HTML. |
Template: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Template Name | string | Yes | — | The name of the template. |
Template: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Template Name | string | Yes | — | The name of the template. |
Template: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 20 | Max number of results to return. (shown when Return All is false) |
Template: Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Template Name | string | Yes | — | The name of the template. |
| Update Fields | collection | No | {} | The template parts to change. Parts you leave out keep their current value. |
| — Text Part | string | No | — | The email body visible to recipients whose email clients do not display HTML. |
| — Subject Part | string | No | — | The subject line of the email. |
| — Html Part | string | No | — | The HTML body of the email. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
One output item per input item, including for the list operations — the results arrive as an array on a single item rather than fanned out. The SES response is merged into the item JSON; the incoming fields pass through and binary data is forwarded. Every result carries requestId, the AWS request identifier for that call.
| Resource / Operation | Fields added to the item |
|---|---|
Custom Verification Email / create | success: true |
Custom Verification Email / delete | success: true |
Custom Verification Email / get | templateName, fromEmailAddress, templateSubject, templateContent, successRedirectionURL, failureRedirectionURL |
Custom Verification Email / getAll | customVerificationEmailTemplates — an array of template summaries |
Custom Verification Email / send | messageId, success: true |
Custom Verification Email / update | success: true |
Email / send | messageId, success: true |
Email / sendTemplate | messageId, success: true |
Template / create | success: true |
Template / delete | success: true |
Template / get | template — the stored template with its subject, HTML and text parts |
Template / getAll | templates — an array of template metadata entries |
Template / update | success: true |
Use a Split Out node on templates or customVerificationEmailTemplates to fan a listing out into one item per template. Reference any field downstream by expression, e.g. {{ $json.messageId }}.
Usage Examples
- Send an email via AWS SES
- Send a templated email using SES
- Create an email template in SES
- List all SES email templates
- Delete an SES email template
- Send a custom verification email
Example Configuration
Send a plain-text email:
{
"type": "aws_ses",
"parameters": {
"resource": "email",
"operation": "send",
"isBodyHtml": false,
"subject": "Welcome to our service",
"body": "Thank you for signing up!",
"fromEmail": "noreply@company.com",
"toAddresses": "{{ $json.email }}"
}
}
Send an HTML email to several recipients, with CC and a reply-to:
{
"type": "aws_ses",
"parameters": {
"resource": "email",
"operation": "send",
"isBodyHtml": true,
"subject": "Welcome to our service",
"body": "<h1>Welcome!</h1><p>Thank you for signing up!</p>",
"fromEmail": "noreply@company.com",
"toAddresses": "user@example.com,user2@example.com",
"additionalFields": {
"ccAddresses": "manager@company.com",
"replyToAddresses": "support@company.com",
"configurationSetName": "marketing-emails"
}
}
}
Send a stored SES template with substitution data:
{
"type": "aws_ses",
"parameters": {
"resource": "email",
"operation": "sendTemplate",
"templateName": "welcome-template",
"fromEmail": "noreply@company.com",
"toAddresses": "{{ $json.email }}",
"templateData": "{\"userName\": \"John Doe\", \"companyName\": \"Acme Corp\"}"
}
}
Create an email template. The subject and HTML come from the input item so that any SES substitution tags they contain reach SES untouched:
{
"type": "aws_ses",
"parameters": {
"resource": "template",
"operation": "create",
"templateName": "welcome-template",
"subjectPart": "{{ $json.subjectPart }}",
"htmlPart": "{{ $json.htmlPart }}",
"additionalFields": {
"textPart": "{{ $json.textPart }}"
}
}
}
List the first 50 templates:
{
"type": "aws_ses",
"parameters": {
"resource": "template",
"operation": "getAll",
"returnAll": false,
"limit": 50
}
}
Create a custom verification email template:
{
"type": "aws_ses",
"parameters": {
"resource": "customVerificationEmail",
"operation": "create",
"fromEmailAddress": "verify@company.com",
"templateName": "custom-verification",
"templateContent": "<h1>Verify Your Email</h1><p>Please click the link to verify your email address.</p>",
"templateSubject": "Please verify your email address",
"successRedirectionURL": "https://company.com/verification-success",
"failureRedirectionURL": "https://company.com/verification-failed"
}
}
Send a verification email to a new address:
{
"type": "aws_ses",
"parameters": {
"resource": "customVerificationEmail",
"operation": "send",
"email": "{{ $json.email }}",
"templateName": "custom-verification",
"additionalFields": {
"configurationSetName": "verification-emails"
}
}
}
Update parts of a custom verification email template:
{
"type": "aws_ses",
"parameters": {
"resource": "customVerificationEmail",
"operation": "update",
"templateName": "custom-verification",
"updateFields": {
"fromEmailAddress": "noreply@example.com",
"templateSubject": "Updated subject",
"successRedirectionURL": "https://example.com/success",
"failureRedirectionURL": "https://example.com/failure"
}
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Send emails and manage email templates using Amazon Simple Email Service (SES).
Notes
- The From address must be a verified SES identity — an address or a whole domain verified in the SES console for the region your credential points at. While your account is in the SES sandbox, every recipient must be verified as well.
- Recipient fields are comma-separated strings. To Addresses, Cc Addresses, Bcc Addresses and Reply To Addresses each take one string; the node splits it for you. Send fails if To Addresses resolves to nothing.
- Template Data is a JSON string whose keys match the substitution tags in the SES template, for example
"{\"userName\": \"John Doe\"}". - List operations return an array on one item. Use a Split Out node on
templatesorcustomVerificationEmailTemplatesto process them one at a time.
Writing SES substitution tags
Node parameters are evaluated as workflow expressions before the request is sent, and SES templates use the same {{ … }} braces for their own substitution tags. Typing {{userName}} straight into Subject Part or Html Part makes the workflow try to evaluate it and fail the item.
To store a template that contains SES tags, put the template text on the input item — from a Set node, a file, or an upstream API — and reference it with a normal expression such as {{ $json.htmlPart }}. The expression’s value is inserted literally, so the braces reach SES intact. Creating the template in the AWS SES console works too; the node can still send it with Email: Send Template.
Frequently asked questions
My send keeps failing with an address verification error. What's going on?
Every From address must be a verified SES identity — either the exact address or its parent domain — in the AWS region your credential points at. If your SES account is still in the sandbox, every recipient address must be verified too, not just the sender. Promote your account out of the sandbox in the SES console when you're ready to email unverified recipients.
How do I send to multiple recipients at once?
The To Addresses, Cc Addresses, Bcc Addresses, and Reply To Addresses fields each accept a single comma-separated string — for example, 'alice@example.com,bob@example.com'. The node splits that string into individual addresses before sending. If To Addresses resolves to an empty string, the send will fail, so make sure the field is never blank at runtime.
I'm trying to store an SES template with {{userName}} tags but my workflow errors out. How do I get around that?
BusyBot evaluates node fields as workflow expressions before the request is sent, and SES's own substitution syntax uses the same double-brace format, so typing {{userName}} directly into a Subject Part or Html Part field causes the workflow engine to try — and fail — to resolve it as an expression. Instead, store the template text in an upstream Set node (or pull it from a file or API) and reference it with an expression like {{ $json.htmlPart }}. The expression resolves to the literal string, so the braces arrive at SES untouched. Alternatively, create the template directly in the AWS SES console; the node's 'Email: Send Template' operation can still use it.
What does Template Data need to look like when sending a templated email?
Template Data must be a valid JSON string whose keys match the substitution tags defined in your SES template. For example, if your template references {{userName}} and {{orderNumber}}, you'd pass '{"userName": "Jane", "orderNumber": "1042"}'. A malformed JSON string or mismatched key names will cause substitution to silently fail or the request to error.
I listed my templates but only got one item back. Is something broken?
No — list operations on this node intentionally return their results as an array on a single item, with all templates inside a 'templates' or 'customVerificationEmailTemplates' field. To process each template individually in subsequent nodes, add a Split Out node targeting that field immediately after the AWS SES node.
Build with the AWS SES node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need AWS SES credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.