- Home
- Resources
- Integrations
- AWS SES
AWS SES n8n integrationAutomate AWS SES with n8n.
Transactional email out of a workflow should cost one node, not a side project. The AWS SES n8n integration exposes 13 operations across 3 resources: emails, templates, and custom verification emails. The node ships without a trigger, so a schedule or an incoming webhook starts the run.
Verified Trustpilot reviews · AI, automation & growth agency
What does the AWS SES n8n integration actually give you?
The AWS SES node is the block that hands an email to Amazon Simple Email Service from inside an n8n workflow. It ships with n8n, it authenticates with an AWS credential you create once, and it groups its 13 operations under 3 resources: Email for the sending itself, Template for stored wording, and Custom Verification Email for the message SES uses to confirm a sender address. No installation, no extra n8n cost, same behavior on n8n Cloud and on a self-hosted instance.
Three shapes of workflow cover most of what gets built around this node. The first is the plain notification: something happens upstream, and email.send pushes a message to an ops mailbox. Subject and body are assembled in the workflow, so a recap of yesterday's orders reads exactly as written, with Is Body HTML switched on when the body carries markup.
The second is the templated send. The wording lives in SES, created once through template.create, and every run calls email.sendTemplate with a row of data. A new line in Google Sheets turns into a personalised message without anyone editing the workflow, and when the copy changes, template.update handles it while the automation stays untouched.
The third is sender onboarding. customVerificationEmail.create stores the confirmation wording, customVerificationEmail.send asks an address to confirm itself, and the two redirect URLs bring the person back to a page you chose rather than a default one. That pattern fits any product where each client sends under their own address.
Now the edges. The node stops at those 13 operations. Whatever the SES API offers beyond them goes through the HTTP Request node, which reuses the same AWS credential through predefined authentication, so nothing has to be re-entered. There is also no AWS SES trigger in n8n: a workflow here always starts somewhere else, with a Schedule Trigger firing on an interval, an n8n Webhook (a URL an external service calls) or the trigger of another tool, for instance a message posted in Slack.
One last thing worth settling before building: SES is one of several ways to put an email in an inbox from n8n. Gmail fits a mailbox a human also reads and replies to, SendGrid is another transactional route with its own node, and the n8n review takes a broader look at the platform itself. Pick SES when the sending domain already lives in AWS and the rest of the setup does too.
How do you connect AWS SES to n8n?
- 01
Pick the credential type
n8n offers two AWS credential types for this node. AWS (IAM) authenticates with an access key, meaning an Access Key ID and a Secret Access Key. AWS (Assume Role) authenticates by assuming an IAM role through AWS STS, and the keys used for that
AssumeRolecall can be typed in or read automatically from the environment n8n runs in. On EKS, ECS or EC2, the second type avoids storing static keys in n8n at all. - 02
Create the access key in AWS
For the IAM route, open the IAM console, select your user name in the upper right, then Security credentials. In the Access keys section, choose Create access key, pick your use case on the best practices page (or Other if no prompt appears), and set a description tag such as
n8n integrationso the key is identifiable later. Reveal both values at the end of the flow. - 03
Fill the credential in n8n
In n8n, open Credentials, create the AWS credential, select your Region, then paste the Access Key ID and the Secret Access Key. A credential is created once and reused by every workflow, and the node picks it from its dropdown. If n8n sits behind an Amazon VPC, the Custom Endpoints field takes the endpoint for that connection, and SES is one of the apps this setup supports.
What can the AWS SES node do?
The AWS SES node exposes 13 operations across 3 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Send | Send Template |
|---|---|---|---|---|---|---|---|
| Custom Verification Email | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ✓ | ✓ | ||||||
| Template | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Custom Verification Email
6 operationsCreate a custom verification email
customVerificationEmail.createWhat you see in n8n
Notes & use cases
SES asks any new sender address to confirm it belongs to you. This operation stores the template used for that confirmation message, so the ask carries your wording instead of a generic one.
Key parameters
- From Email: the address the custom verification email is sent from.
- Template Subject: the subject line of that verification email.
- Success Redirection URL: where the recipient lands once the address is verified.
- Failure Redirection URL: where the recipient lands when verification does not succeed.
- Template Content: the body, HTML allowed, with the total email size kept under 10 MB.
Delete a custom verification email
customVerificationEmail.deleteWhat you see in n8n
Notes & use cases
Verification templates accumulate fast once two or three wordings have been tested. This operation removes one from the account, which also removes the risk of a later send picking stale copy by name.
Key parameters
- Template Name: the name of the custom verification email template to remove; feed it from a previous step with
{{ $json.templateName }}rather than typing it twice.
Get a custom verification email
customVerificationEmail.getWhat you see in n8n
Notes & use cases
Reading one template back returns it as SES currently stores it, which is the only reliable way to know what an address is really being sent.
Key parameters
- Template Name: the name of the custom verification email template to read.
Get many custom verifications
customVerificationEmail.getAllWhat you see in n8n
Notes & use cases
Rather than one template by name, this returns the custom verification email templates that exist on the account, which is what an inventory job needs.
Key parameters
- Return All: on, n8n walks the API pages and brings back every template; off, it stops at Limit.
- Limit: the maximum number of templates returned when Return All stays off.
Send a custom verification email
customVerificationEmail.sendWhat you see in n8n
Notes & use cases
Here the template stops being an object and starts being an email: the address receives the confirmation request and gets added to the list of identities once it goes through.
Key parameters
- Email: the address to verify, often
{{ $json.email }}from the form or record upstream. - Template Name: the custom verification email template to use for this send.
- Configuration Set Name: in Additional Fields, the configuration set to use when sending the verification email.
Update a custom verification email
customVerificationEmail.updateWhat you see in n8n
Notes & use cases
The verification wording ages like any other copy: a redirect points at an old landing page, the subject line no longer matches the product. This operation edits the stored template instead of deleting and recreating it.
Key parameters
- Template Name: the template being edited.
- From Email, Template Subject and Template Content: in Update Fields, the sender, the subject line and the body.
- Success Redirection URL and Failure Redirection URL: the two destinations after a verified or failed address.
Send an email
email.sendWhat you see in n8n
Notes & use cases
This is the workhorse: subject and body are built in the workflow and handed to SES as is, with no stored template involved.
Key parameters
- Subject and Body: the message itself, usually assembled from earlier nodes.
- From Email: the sender address, such as
admin@example.com. - To Addresses: the recipients.
- Is Body HTML: on when the body carries markup, off for plain text.
- Cc Addresses, Bcc Addresses, Reply To Addresses and Return Path sit in Additional Fields, the last one collecting bounces and complaints.
Send an email based on a template
email.sendTemplateWhat you see in n8n
Notes & use cases
Same delivery, opposite split of responsibilities: SES holds the wording, the workflow only supplies the values that change from one recipient to the next.
Key parameters
- From Email: the sender address, the one required field here.
- Template Name or ID: picked from the list, or set with an expression when the template depends on the data.
- To Addresses: the recipients of this send.
- Template Data: the Key and Value pairs that fill the template placeholders.
Template
5 operationsCreate a template
template.createWhat you see in n8n
Notes & use cases
Before any templated send there has to be a template. This operation registers one in SES under a name the workflow will call later.
Key parameters
- Template Name: the name of the template, and the handle every later operation uses.
- Subject Part: the subject line of the email.
- Html Part: the HTML body.
- Text Part: in Additional Fields, the body shown to recipients whose email client does not display HTML.
Delete a template
template.deleteWhat you see in n8n
Notes & use cases
Retiring a piece of wording is a one-field job, and doing it from a workflow beats doing it by hand three environments in a row.
Key parameters
- Template Name: the name of the template to delete, required, so a wrong value removes the wrong wording.
Get a template
template.getWhat you see in n8n
Notes & use cases
Fetching a single template by name returns what SES holds for it, which is how a workflow checks the live wording instead of trusting a copy in a document.
Key parameters
- Template Name: the name of the template to read, required.
Get many templates
template.getAllWhat you see in n8n
Notes & use cases
The list view of the same resource: every template on the account comes back in one execution, ready to be filtered downstream.
Key parameters
- Return All: on, n8n follows the API pages until no template is left; off, the run stops at Limit.
- Limit: how many templates come back at most when Return All is off.
Update a template
template.updateWhat you see in n8n
Notes & use cases
Copy changes more often than workflows do. This operation rewrites a stored template in place, and every send that follows uses the new version without any workflow edit.
Key parameters
- Template Name: which template gets rewritten, required.
- Subject Part, Html Part and Text Part: in Update Fields, the subject, the HTML body and the plain text fallback.
Need help automating AWS SES with n8n?
A person reads every message.
