notifly
IntegrationsEmail providerUpdated

Your Amazon SES account, Notifly workflows on top.

Keep sending from your own AWS account. You give Notifly an IAM access key pair and a region, and the email steps of your Notifly workflows go out through Amazon SES: your verified identities, your configuration sets, your AWS bill.

Notifly adds what SES leaves to you: one trigger for email, in-app, SMS, push and chat; digest, delay and throttle steps; subscriber preferences checked before each send; and an activity feed that records what SES returned.

What you need from AWS

These are the fields the dashboard asks for when you connect SES, quoted from the create form. Both keys are encrypted at rest.

FieldRequiredStoredNotes
Access key IDRequiredEncrypted at rest
Secret access keyRequiredEncrypted at rest
RegionRequiredAs entered
Configuration Set NameOptionalAs enteredThe name of the SES Configuration Set to apply to sent emails
From email addressRequiredAs enteredUse the same email address you used to authenticate your delivery provider
Sender nameRequiredAs entered
  • Access key ID and Secret access key. Static credentials for the SES v2 client Notifly builds for this integration.
  • Region. Required. The client talks to SES in this region only.
  • Configuration Set Name. Optional. When set, it is applied to every email this integration sends.

Connect Amazon SES in the dashboard

  1. Sign in at app.notifly.io, open Integration Store in the sidebar and choose Connect Provider.
  2. In the Connect Integration sheet, open the E-Mail tab (or search across channels), find SES and choose Connect.
  3. Pick the environment the integration belongs to. Development and Production keep separate integrations, so you can point each at a different SES account or key.
  4. Fill in Delivery Provider Credentials with the fields in the table above, then choose Create Integration.
  5. A new integration starts switched on as both Active Integration and Primary Integration, so email steps in that environment send through SES by default. If the environment already has a primary email integration, the dashboard asks before replacing it.

Trigger an SES email from your code

Your backend triggers a workflow; Notifly renders the email step and sends it through SES. The subscriber is created or updated from to on the way.

Node.js · @notiflyio/api@0.1.26
// npm install @notiflyio/api@0.1.26
import { Notifly } from "@notiflyio/api";

const notifly = new Notifly({ security: { secretKey: process.env.NOTIFLY_SECRET_KEY } });

await notifly.trigger({
  workflowId: "security-alert",
  to: { subscriberId: "user_123", email: "ada@example.com" },
  payload: { device: "Firefox on macOS", signedInAt: "2026-09-27T09:12:00Z" },
});

Prefer plain HTTP? The same trigger is POST https://api.notifly.io/v1/events/trigger with an Authorization: ApiKey header and a body of { "name", "to", "payload" }.

What reaches SES

  • A complete MIME message. Built by nodemailer's SES transport and sent with the SES v2 SendEmail call.
  • Your sender. The From email address with the Sender name as its display name.
  • Recipients and headers. Cc, bcc, reply-to and custom headers when the send has them.
  • Your configuration set. Attached to every send when Configuration Set Name is filled in.

What Notifly adds on top of Amazon SES

Workflows around the send

One trigger runs a workflow: this provider’s step can sit beside in-app, email, SMS, push and chat steps, behind digest, delay and throttle steps.

Subscriber preferences, enforced at send

Before each step runs, the subscriber’s workflow and channel preferences are checked; an opted-out step is skipped and the reason is recorded.

An in-app Inbox next to it

The same workflow can write to the Notifly Inbox, a real-time in-app feed you embed with the React component or the JavaScript SDK.

Per-trigger provider parameters

Anything the trigger passes under overrides.providers.<provider id> is merged into the request Notifly sends to the provider, per workflow or per step.

Activity you can debug

Every message gets execution details in the activity feed, including the response or error the provider returned.

Secrets encrypted at rest

API keys, tokens and service accounts are stored encrypted with AES-256; new and re-saved credentials use authenticated AES-256-GCM. The table above marks which of this provider’s fields that covers.

Several accounts, one primary

Connect more than one account on this channel. The primary integration is the default; another active integration takes the send when its conditions match the subscriber or the tenant in the trigger’s context.

Go deeper in the docs

Frequently asked questions

What AWS credentials does Notifly need for SES?

An access key ID and secret access key for an IAM identity that is allowed to send email through SES in the region you enter. Notifly builds an SES v2 client with exactly those keys and that region, and stores both keys encrypted at rest.

Which region should I enter?

The AWS region where your SES sending identities are verified, written as AWS writes it, for example us-east-1 or eu-west-1. Region is a required free-text field, and Notifly sends through SES in that region only.

Can Notifly apply an SES configuration set?

Yes. Enter its name in Configuration Set Name and every email this integration sends is sent with that configuration set, so the event publishing and settings you attached to it in SES apply to Notifly's sends too. Leave it empty to send without one.

Do attachments and inline images work through SES?

Yes. Notifly builds the MIME message with nodemailer's SES transport, so attachments keep their file name and content type, and an attachment with a content id is embedded inline for images referenced by cid:.

Why is it listed as SES in the dashboard?

SES is the name the Integration Store uses for Amazon Simple Email Service. Search for SES in the Connect Integration sheet, or open the E-Mail tab and pick it from the list.

Bring your provider account. Keep your sender reputation.

One POST /v1/events/trigger — email, SMS, push, in-app, and chat. 10,000 events a month, free.

Get started freeSee pricing