This guide describes how to configure your Iterable project to send email. It describes key terms you need to be successful, links to guides that describe how to set up various email service providers (ESPs), and explains how to configure sending domains, tracking domains, deep links, message channels
In this article
Terms to know
Before configuring your project to send email, be sure to understand these terms:
Email Service Provider (ESP) — A third-party service that Iterable can use to send email: Amazon Simple Email Service (shared IP pool), SparkPost, Mailgun, or SendGrid.
-
Sending Domains — Domains from which your project can send email. For example,
example.com
. Depending on its configuration, an Iterable project can have one or many sending domains.When you create a sending domain, you can associate it with an ESP account so that Iterable knows that the ESP can securely send from that domain (DNS has been configured, etc.).
You can also give it a tracking domain (see below).
-
Message Channels and Message Types — Categories to assign to your messages, so that users can subscribe and unsubscribe from content as they wish (at an appropriate level of granularity).
Message channels are broad categories (for example, "Discounts"), while message types are more narrow (for example, "Seasonal Sales"). Every message type belongs to a message channel.
Message channels have a type (marketing or transactional), a message medium (email, SMS, in-app, push, or web push), a name, and ESP bindings.
When you create an email message channels, you can specify which ESP accounts it should use to send email, and percentages for each.
Senders — Verified email addresses from which your Iterable project can send email. For example, if one your sending domains is
example.com
, one of your senders might beinfo@example.com
. Senders should all have a domain that matches one of your project's sending domains (see above).-
Tracking Domains — Also called link tracking domains, these are the domains Iterable can use for rewriting links in your email campaigns, and shortening links in your SMS campaigns. Tracking domains must be aliased by DNS to
https://links.iterable.com
orhttps://links.eu.iterable.com
. That way, Iterable can handle click tracking and attribution.For example, if a message contains a link to
https://example.com/products/123
, Iterable rewrites the link to something likehttps://links.example.com/u/click?_t=7dd208...
. When a user clicks this link (whether in an email or an SMS), the tracking domain tracks the click and redirects to the intended destination.In an email, users can see a link's URL when they click it, hover over it, or copy it. In an email from
info@example.com
, they might be suspicious of a link tohttp://links.iterable.com/u/click?_t=7dd208...
. Because of this, it's best to match your tracking domains to your sending domains. In the above example, a better tracking domain would behttps://links.example.com
.When you create a sending domain, you can give it a tracking domain.
Deep Links — When tapped on a mobile device, these links open in your app (if it's installed), or a web browser (if your app isn't installed).
Destination Domains - For any given particular tracking domain, you can create destination domains to specify which links Iterable should rewrite as deep links (rather than as standard links).
How the pieces fit together
Here's how message types, message channels, ESP accounts, senders, sending domains, and tracking domains work together to help you send email campaigns:
When you create an email campaign in Iterable, you select a message type. Since every message type belongs to a message channel, you're implicitly selecting a message channel, too.
Each email message channel is bound to one or many ESP accounts. Because of this, when you select an email campaign's message channel, you're also implicitly selecting one or many ESP accounts to use to send your campaign.
When you select a sender for your campaign, you're also implicitly selecting a sending domain. And since sending domains are associated with tracking domains, you're selecting a tracking domain, too.
Since you've selected a tracking domain, you've also selected a set of destination domains. This means that you've chosen which, if any, of your email's links to rewrite as deep links.
Instructions: Configuring your project to send email
To configure your project to send email, follow these steps:
Step 1: Configure your ESP accounts and add them to Iterable
First, configure your email service providers (ESPs) — third-party tools that Iterable can use to send your email campaigns. Then, add your accounts with those providers to the Settings > Sending Platforms page in Iterable.
Iterable supports the following ESPs:
Amazon Simple Email Service (SES), using a shared IP pool (Iterable's default email setup). Amazon SES is available for USDC-based and EDC-based Iterable projects. However, it's not possible to use your own Amazon SES account or a dedicated IP address, no matter which of Iterable's data centers hosts your organization and projects. To learn more, read Integrating Amazon Simple Email Service (SES) with Iterable
SparkPost - SparkPost is available for USDC-based and EDC-based Iterable projects. To learn how to set up SparkPost, read Integrating SparkPost with Iterable.
Mailgun - Mailgun is available for USDC and EDC-based Iterable projects. To learn how to set up Mailgun, read Integrating Mailgun with Iterable
SendGrid - Sendgrid is available for USDC-based Iterable projects. To learn how to set up SendGrid, read Integrating SendGrid with Iterable.
You can add multiple ESP accounts to a single Iterable project.
Step 2: Set up your sending domains
After you've configured your ESP accounts and added them to the Sending Platforms page, tell Iterable about the domains from which those ESP accounts have been configured to securely send email.
To send from more than one domain (or subdomain), use your own ESP provider. Iterable only supports one domain with the default email service, Amazon SES.
Sending domains for Amazon SES
If your project uses Amazon SES with a shared IP pool (Iterable's default configuration), it can use only one sending domain. To specify this domain:
Go to Settings > Project Settings.
Update the Custom project sending domain (Amazon SES only) field. (Or,
if you don't provide a value for this field, Iterable uses the domain for the web site you've associated with your Iterable organization.)
Sending domains for other ESPs (not Amazon SES)
If you're using an ESP other than Amazon SES, follow these steps to set up your sending domains:
Navigate to Settings > Domains.
Click New sending domain.
In the Create a new sending domain window, enter a sending domain and select an ESP that's properly configured to send emails from that domain.
Click Create.
After you've created the domain and associated it with an ESP account, click Verify Domain to mark it as verified.
Repeat this process for all of your sending domains, as needed, including any subdomains. If you've set up multiple ESPs to send from a given domain, add that domain multiple times and select a different ESP each time.
Step 3: Set up tracking domains
To track clicks and facilitate campaign attribution, Iterable needs to rewrite links in your emails to point a URL hosted by Iterable. When a user clicks on one of these links, Iterable records click tracking and attribution, and then redirects the user to the original link destination.
With tracking domains, Iterable can rewrite links using your company's domain,
rather than links.iterable.com
or links.eu.iterable.com
. For example, if
your company's domain is example.com
, Iterable can use tracking domains to
rewrite links using a domain such as links.example.com
.
If you don't want to use a custom tracking domain, you can skip this step.
IMPORTANT
To use Iterable to send deep links, you must set up a custom HTTPS-enabled tracking domain.
To set up your tracking domains:
Navigate to Settings > Domains and click New Tracking Domain.
-
Specify a tracking domain such as
links.example.com
(whereexample.com
is your domain).TIP
When using a tracking domain to shorten links for SMS campaigns, you might want to use a short domain (to save characters). For
example.com
, this might be something likeexmpl.io
. -
If you haven't already done so, configure your DNS to alias your tracking domain (for example,
links.example.com
orlinks.eu.example.com
) tolinks.iterable.com
orlinks.eu.iterable.com
(the URL that actually performs click tracking and facilitates campaign attribution).If you're using Iterable's default email configuration, Amazon SES with a shared IP pool, you can find the DNS records you need to create on the Settings > DNS Setup page.
If you're sending email from a different ESP, however, this page does not show the DNS settings you should use. For more information about the DNS records to create for another ESP, talk with your Iterable implementation consultant or customer success manager.
To set the new tracking domain as your project's default, click the down arrow on its row in the table, and then choose Set as Default.
On the Settings > Domains page, in the Sending domains section, associate your new tracking domain with each sending domain that should use it.
If your website is HSTS compliant, or if you send deep links that direct users to your mobile app, enable HTTPS for your tracking domain. After you do this, click your tracking domain's Edit button and turn on the Enable HTTPS toggle.
Allow 24 hours for Iterable to verify the tracking domain.
Step 4: Set up message channels & types
Next, set up the message channels and types (used for sending campaigns and managing subscriptions). This allows you to specify how a given message channel should split its sends across your various ESP accounts.
To do this, you need to:
- Add an email channel for each subscription group you want to create.
- Set the sending platform that each email channel sends from.
- Add the message type(s) for each email channel and set their subscription
policies (opt-out or opt-in).
To learn more and for complete instructions, read Message Channels and Message Types Overview.
Step 5: Add senders
Now, you can define the senders that you can use to send your campaigns. Each of your senders should have a domain that matches one of the sending domains you set up in step 2, above.
To add senders to your project:
Go to Settings > Senders.
Click Create New Sender.
-
Specify a From email, From name, and Default reply-to address. For the From email, provide an email address with a domain that matches one of your project's sending domains.
If you have a verified sending domain that matches the domain of the sender, Iterable marks the sender as verified.
If you're using Iterable's default email configuration (Amazon SES with a shared IP pool) and you don't yet have a verified sending domain, Amazon sends you an email to verify your sender.
Step 6: Get set up to send deep links
To start sending deep links (links that should open in your mobile app if it's installed, and a web browser otherwise), follow the steps in Configuring Deep Links for Email or SMS.
Step 7: Send some test messages
Now, send yourself some test email campaigns to make sure everything works as you expect. For help with this, read Sending or Scheduling a Blast Campaign and Activating a Triggered Campaign.
Questions?
If you have any questions regarding your setup, talk to your Iterable implementation consultant or customer success manager. Or, you can contact Iterable Support. See Working with Iterable Support.