Amazon SES

This section is a step by step guide to select Amazon SES as your email service provider.
This guide assumes you have access to AWS console and have necessary permissions. If you don't have an AWS account, then you can create here (https://aws.amazon.com/resources/create-account/).


Amazon SES integration on SuprSend account

Follow below steps to integrate your Amazon SES account with SuprSend

Step 1. Create AWS IAM user

To send email through SES, you need an IAM user (Access-Key-ID and Secret-Access-Key) with necessary permission. To ceate an IAM user, refer to this documentation

  • Create an IAM user (with Programmatic access).
  • Attach Policy AmazonSESFullAccess to this user.
  • Copy and save the Access-key-ID and Secret-Access-Key securely. You'll need to add this information on SuprSend vendor integration page

An AWS SES resource resides in a particular region. Make a note of which aws-region you are going to use for sending emails. In this guide, we'll assume aws-region :ap-south-1 for all illustrative purposes.


Step 2. Create SES Verified Identity

Open AWS SES console. Go to Verified Identities tab. You can add an email-address or a domain/subdomain as an identity. Follow this documentation to understand what an identity is and how to create and verify one.


Step 3. Create Configuration Set

Configuration-set is a ruleset applied to send-email. In configuration-set you can specify to track events (e.g. send, delivery, open, click, bounce, complaint etc.) and send these to an event destination.
Refer to the documentation on how to create configuration sets.

In SES console, go to Configuration sets

  1. Click create set button to create a new configuration-set
  2. Give it a name (e.g. ses_suprsend_configset)
  3. Select your Sending IP-pool (you can leave default if you don't have a dedicated-IP-pool)
  4. Click Create set button.

Step 4. Manange Event destinations

After creating configuration-set, you'll see a tab "Event Destinations". Email-sending events (send, delivery, open, click, bounce, complaint etc.) will end up in the events destination.
Reference documentation:

Manage Event destinations

Setup SNS event destination for event Publishing


Steps to follow for setting up event destination and enable event tracking:

  1. Go to Event Destinations tab and click Add destinationIn "Select event types" step, click Select all button to received all the events to destination.
  2. Click Next
  3. In "Specify destination" step.
    1. Select Destination Type: Amazon SNS.
    2. Enter a destination Name (e.g ses_suprsend_configset_destination)
    3. Make sure Event publishing is marked Enabled.
    4. Select an SNS topic from the dropdown (or create a new topic) for events destination.
    5. To create a topic, click Create SNS topic. In the popup, put "Topic Name" and "Display Name"
    6. Click Create.
    7. Now from the dropdown, select the topic you just created.
  4. Click Next.
  5. In the "Review" step, verify the info.
  6. Click "Add destination".

Now that you've created a configuration-set to send emails and have specified to receive its events to an SNS-topic, next step is to give SuprSend permission to subscribe to this SNS-topic.

AWS provides functionality where a different AWS account (in this case SuprSend) can subscribe to an SNS-topic in your account. For more details, checkout https://docs.aws.amazon.com/sns/latest/dg/sns-send-message-to-sqs-cross-account.html


Step 5. Give SuprSend permission to Subscribe to SNS topic.

Go to AWS SNS Console and open Topics list. Click on the topic that you created in the earlier step.

  1. Click Edit.
  2. On the edit page, expand the "Access Policy" section. The policy looks something like below. You'll notice that the current policy gives sns:Publish permission to your SES account.
 	 {
	  "Version": "2008-10-17",
	  "Statement": [
	    {
	      "Sid": "stmt1651045546197",
	      "Effect": "Allow",
	      "Principal": {
	        "Service": "ses.amazonaws.com"
	      },
	      "Action": "sns:Publish",
	      "Resource": "arn:aws:sns:topic_region:111122223333:topic_name",
	      "Condition": {
	      	"StringEquals": {
	          "AWS:SourceAccount": "111122223333"
	        },
	        "StringLike": {
	          "AWS:SourceArn": "arn:aws:ses:*"
	        }
	      }
	    }
	  ]
	}

  1. Next you need to add a policy to give sns:Subscribe permission to SuprSend (Account: 924219879248). Add below json inside the Statement list: (replace the "Resource" value with your "Resource" value)
{
    "Effect":"Allow",
    "Principal":{
        "AWS":"924219879248"
    },
    "Action":"sns:Subscribe",
    "Resource":"arn:aws:sns:topic_region:111122223333:topic_name"
}

  1. So in effect, the whole policy would look like
	{
	  "Version": "2008-10-17",
	  "Statement": [
	    {
	      "Sid": "stmt1651045546197",
	      "Effect": "Allow",
	      "Principal": {
	        "Service": "ses.amazonaws.com"
	      },
	      "Action": "sns:Publish",
	      "Resource": "arn:aws:sns:topic_region:111122223333:topic_name",
	      "Condition": {
	      	"StringEquals": {
	          "AWS:SourceAccount": "111122223333"
	        },
	        "StringLike": {
	          "AWS:SourceArn": "arn:aws:ses:*"
	        }
	      }
	    },
	    {
		    "Effect":"Allow",
		    "Principal":{
		      "AWS":"924219879248"
		    },
		    "Action":"sns:Subscribe",
		    "Resource":"arn:aws:sns:topic_region:111122223333:topic_name"
		}
	  ]
	}


  1. Click Save.

Step 6. Fill Vendor settings page on Suprsend

On the SuprSend dashboard, follow the steps as below:

  1. Select Vendors from the left panel
  2. Select 'Email' as the channel from the list
  3. Select the communication category from the list - System, Transactional, Promotional
  4. Select 'Amazon SES' from the list of Vendors


On the Vendor Settings page, enter the details in the vendor form:


Form FieldDescription
NicknameYou can give any name which may help you to identify this account easily. For example - AWS SES [Production]
From EmailDefault 'From Email ID' that email will go from. You can override this in the individual template.
eg. [email protected]
From NameDefault 'From Name' that email will go from. You can override this in the individual template.
eg. SuprSend
Reply AddressDefault 'Reply To Email id' on which replies are received. You can override this in the individual template.
eg. [email protected]
AWS regionaws-region you are going to use for sending emails.
Access Key IDAccess key ID of the IAM user with full access. Refer step to create a new IAM user and generate access key.
Secret Access KeySecret-Access-Key of the IAM user with full access. Refer step to create a new IAM user and generate access key.
Configuration SetConfiguration-set is used to track email events (e.g. send, delivery, open, click, bounce, complaint etc.). Refer Step to define configuration set.
SNS Topic ARNThis is the destination where the tracked events will be sent. Configuration set defines what events to be tracked and setting the topic allows SuprSend to receive these events. Follow step 4 & 5 to setup SNS topic and give SuprSend permission to subscribe to it.
Price per notificationThis is the amount you pay per email notification to AWS. It helps us to calculate, estimate and optimise your cost spent on notifications.

Setting Amazon SES event tracking

One of the platform advantage of using SuprSend as a central communication system is that it shows notification analytics for all channels in your SuprSend account together. For enabling event tracking at SuprSend (such as delivery, opened, blocked, spam etc.), you'll have to "sns:Subscribe" action to SuprSend.

Once you've given "sns:Subscribe" Action permission (to SuprSend AWS Account) on your SNS-topic, suprsend will attempt to create a subscription on that topic.
Once subscription succeeds, you should see successfully "Subscribed" to topic when you visit the Vendor settings page. Email Tracking should start working


What’s Next

Next step is to design an email template. If you have already designed an email template, you can move onto creating a workflow