AWS SES
Connect & Ingest email transaction data from AWS SES
Amazon Simple Email Service (SES) is a cloud-based email sending service designed to help businesses send marketing, notification, and transactional emails. The Sling AWS SES connector extracts email transaction data including delivery status, opens, clicks, bounces, and complaints through the Message Insights export API.
CLI Pro Required: APIs require a CLI Pro token or Platform Plan.
Setup
The following credentials and inputs are accepted:
Secrets:
access_key_id(optional) -> Your AWS Access Key IDsecret_access_key(optional) -> Your AWS Secret Access Keysession_token(optional) -> Your AWS Session Token (for temporary credentials)profile(optional) -> AWS profile name from your credentials file
Inputs:
region(required) -> AWS region where SES is configured (e.g.,us-east-1,eu-west-1)anchor_date(optional) -> Starting date for first sync (default: 30 days ago). Format:YYYY-MM-DDrange_interval(optional) -> Time interval per export chunk (default:1d). Format: integer + unit suffix. Supported units:s(second),m(minute),h(hour),d(day),mo(month). Examples:1d,6h,30m.lookback_interval(optional) -> How far back to look from the last sync point (default:0d). Useful for catching late-arriving data. Format: same asrange_interval. Examples:1h,30m.
High-Volume Accounts: AWS SES exports are limited to 10,000 records per request. The connector will fail with an error if it hits this limit to prevent data loss. If you send more than 10,000 emails per day, set range_interval: 1h for hourly exports, range_interval: 30m for 30-minute chunks, or lower as needed.
IAM Permissions
Your AWS credentials need the following IAM permissions:
Additionally, SES exports the data to an S3 bucket, so access to read the exported data from S3 is handled through a pre-signed URL that SES provides.
Getting Your AWS Credentials
Log in to the AWS Console
Go to IAM > Users > Select your user
Go to Security credentials tab
Click Create access key
Copy the Access key ID and Secret access key
Important: Store your credentials securely. The secret access key is only shown once when created.
Using sling conns
sling connsUsing an AWS profile:
Environment Variable
Sling Env File YAML
See here to learn more about the sling env.yaml file.
Using an AWS profile:
Replication
Here's an example replication configuration to sync AWS SES email data to a PostgreSQL database:
Full refresh example:
Endpoints
ses_emails
Email transaction data including delivery status, opens, clicks, bounces, and complaints
Yes
To discover available endpoints:
How It Works
The AWS SES connector uses the Message Insights export feature:
Export Job Creation: Creates an export job via the SES API for the specified date range
Job Polling: Polls the job status until the export is complete (with automatic retries)
Data Download: Once complete, SES provides a pre-signed S3 URL to download the exported data
Data Processing: The connector downloads and processes the JSON data
Sync Tracking: Tracks the last synced date for incremental sync on subsequent runs
Incremental Sync
The AWS SES connector supports incremental sync:
First run: Fetches email data from
anchor_date(default: 30 days ago) forward byrange_interval(default:1d)Subsequent runs: Fetches email data from the last synced date forward by
range_intervalLookback: Use
lookback_intervalto re-fetch data from before the last sync point, useful for catching late-arriving events
The primary key for deduplication is messageid.
Configuring for High-Volume Accounts
If you send a large volume of emails and hit the 10,000 record limit, adjust the chunk size:
For extremely high-volume accounts (>10K emails/hour), use sub-hour chunks:
If you are facing issues connecting, please reach out to us at [email protected], on discord or open a Github Issue here.
Last updated
Was this helpful?