A triggered campaign sends an email, push notification, in-app message, SMS or web push notification to a particular user (or various lists of users) after the occurrence of a triggering event.
For example, order confirmations and password reset emails are triggered campaigns of a transactional nature, while emails or push notifications sent after users look at a particular product or section of a website are marketing-focused triggered campaigns.
This guide describes how to create and send a triggered campaign.
Table of contents
- Viewing past sends of triggered campaigns
- Viewing scheduled sends of triggered campaigns
- Workflow campaigns
- Further reading
To work with campaigns in Iterable, you'll need various permissions:
To view your project's campaigns, you must have the Workflows, Campaigns & Experiments > View permission.
To draft a campaign, you must have the Workflows, Campaigns & Experiments > Draft permission.
To activate a triggered campaign, you must have the Workflows, Campaigns & Experiments > Activate & Manage permission.
To create and activate a triggered campaign, follow these instructions:
1. Set up the campaign
To create and configure a triggered campaign, navigate to Messaging > Campaigns and click Create New Campaign:
Then, on the New Campaign page:
Specify a Campaign Name (this value is for your reference only, and can help you locate the campaign in the future).
If necessary, set up a custom conversion metric.
For Campaign Type, select Triggered.
Choose a Message Medium.
For an in-app message campaign, set In-App Display Priority to Critical, High, Medium or Low:
This setting influences the order that users will see your in-app messages. Iterable's mobile SDKs sort the display of in-app message campaigns by priority (greater priority messages first), and then by send time (first sent, first displayed).
- Since transactional messages are sometimes urgent or sent as a response to a user's action (for which they may need confirmation or more details), you should generally give transactional campaigns a greater priority than marketing campaigns.
- You cannot change an in-app message campaign's priority after it has been sent. However, you can update the priority of a scheduled campaign before its send time.
- This value is reflected on the message's
priorityLevelfield, which is saved as a double on the message's
priorityLevelfield. You can use this in segmentation, for example, by searching for in-app send events that have
priorityLevelset to low (
400.5), medium (
300.5), high (
200.5) or critical (
100.5). Proofs receive an in-app priority of
- For more information about this feature, see its release notes.
To send a triggered in-app message or push notification campaign to only some of your mobile apps (rather than all of them), enable Selective In-App or Selective Push. Then, choose the specific apps to which you'd like to send the campaign. When you trigger the campaign to a particular user, Iterable will only send them the campaign if they've installed any of those apps.
- With Selective In-app disabled, Iterable sends triggered in-app message campaigns to triggered users regardless of whether or not they've installed any apps that will display them.
- With Selective Push disabled, Iterable sends triggered push notification campaigns to triggered users only if they've installed any app associated with any push integration defined in your project.
- When enabling Selective In-App or Selective Push, you can only select apps that have a valid push integration.
To choose content for the campaign, click Continue to Templates.
2. Choose starting content
On the Template step of the campaign creation process, you can select a pre-existing template or campaign on which to base the new campaign (you can edit the new campaign before sending it, and changes won't impact the original). Alternatively, you can start the new campaign from scratch.
To base your new campaign on one of your project's reusable templates, select the Templates tab and pick the template you'd like to use.
To base your new campaign on a previous campaign, select the Campaign Content or Workflow Content tab and choose the campaign you'd like to use.
To search for a campaign, enter its name or an ID in the search input.
After you've selected a template or campaign (or if you've decided not to), click one of the buttons at the bottom of the page:
Use Selected Template (or Use Selected Content) copies the selected template or campaign content into your new campaign, so that you can edit it without impacting the original.
Pre-populate Selected Template with Data Feed (or Pre-populate Selected Content with Data Feed) causes Iterable to make a single request to an external data feed and merge the returned data into the selected template or campaign, overwriting any Handlebars expressions the data can resolve.
Iterable makes this data feed query once, as you're creating the campaign. However, Iterable also supports per-recipient data feed queries, as described in Personalizing Templates with Data Feeds.
Start from Scratch allows you to select a template editor (and, if you'd like, a pre-built layout), and start your campaign's content with a blank slate.
3. Edit and preview the template
On the Edit Template page, create the content for your campaign and preview it.
To learn more about editing and previewing options available for each message medium, read:
To personalize this content for each of your campaign's recipients, use:
- Handlebars expressions to reference data from a contact's Iterable user profile (whether to display it directly or use it to show specific content to specific contacts).
- Data Feeds to call a a web service—once for each of the campaign's recipients—and display it in the message.
- Catalog to dynamically find and display information about your organization's relevant products or services that a given recipient might find interesting.
When you're done editing and previewing your template, click one of the buttons on the bottom of the page:
Save & Continue to Review to open the Review & Launch page, where you can activate campaign.
Create A/B Experiment to add an A/B experiment to the campaign.
4. Enable Send Time Optimization (optional)
On the Review & Launch page, you can activate your campaign. Before doing that, decide whether or not to enable Send Time Optimization (email and push notification campaigns only).
Send Time Optimization tries to automatically improve some particular campaign metrics:
- For email campaigns, it works to maximize the Email Open Rate (Unique Email Opens or Clicks / Total Emails Delivered) and Email Click Rate (Unique Email Clicks / Total Emails Delivered).
- For push notification campaigns, it tries to maximize the Push Open Rate (Unique Pushes Opened / Total Pushes Delivered).
To do this, it uses machine learning to analyze each recipient's historical engagement behavior (in the same Iterable project), and then chooses a send time when they're likely to open the message.
For more information about Send Time Optimization, read:
To enable Send Time Optimization for a triggered campaign:
Enable Send Time Optimization:
If Send Time Optimization isn't available, your Iterable project doesn't yet have enough historical engagement data to support the Send Time Optimization machine learning models. This is common for staging and test projects.
Specify the maximum number of hours (between 6 and 24) after a campaign triggering event that Send Time Optimization can send the corresponding message. Send Time Optimization optimizes send times at a one-hour granularity and sends messages at the top of the hour.
- If a triggering event specifies a specific send time (
sendAt), Iterable will not use STO for that send.
- You cannot disable Send Time Optimization after you activate the campaign.
5. Specify a send rate limit (optional)
Rate limits are a beta feature. To enable them, talk to your Iterable customer success manager.
To specify a send rate limit for your campaign:
Next, you can decide whether or not to enable a send rate limit for your campaign:
A send rate limit can help prevent your website and servers from being overwhelmed with traffic when many of your contacts simultaneously interact with a message you've just sent. They can also help you mitigate deliverability issues that can occur when you are sending high email volumes.
There are three ways to specify a send rate limit in Iterable:
- On each of your project's message types, you can set the default send rate limit that new campaigns associated with that type should use.
- When configuring a data feed, you can specify a rate limit. Campaigns that query the data feed will respect the data fee a campaign that queries the data feed
- You can adjust the send rate limit on any given campaign, as you set it up (like you're doing in this step).
Some important things to remember about send rate limits:
- When you send multiple campaigns associated with the same rate-limited message type, they do not compete for the rate limit's capacity. That is, each campaign can independently send as fast as the rate limit you select for it when setting it up (with the default rate limit being the one defined on the message type).
- When you send multiple campaigns that access the same rate-limited data feed, they do compete for the rate limit's capacity. That is, the overall traffic to the data feed, across all campaigns, will not exceed the data feed's rate limit.
- When a campaign has a rate limit, Iterable does not necessarily send at that exact rate. However, it will not exceed the rate limit.
- If you enable both Send Time Optimization and a rate limit, it's possible that the rate limit will cause the sends to continue beyond the bounds of your STO window.
- In situations where more than one rate limit is applicable, Iterable uses the most restrictive limit
6. Activate the campaign
For a triggered campaign to send a message, you must first activate it. To do this, on the Review & Launch page click the Activate Campaign button.
After you activate a campaign, it will be in the Running state, and you can trigger it by calling Iterable's API.
7. Trigger the campaign
To send a triggered campaign, use Iterable's API:
POST /api/campaigns/trigger- Sends the specified campaign to the supplied lists of users.
POST /api/email/target- Sends a particular email campaign to the specified user.
POST /api/inApp/target- Sends a particular in-app message campaign to the specified user.
POST /api/push/target- Sends a particular push notification campaign to the specified user.
POST /api/sms/target- Sends a particular SMS campaign to the specified user.
POST /api/webPush/target- Sends a particular web push notification campaign to the specified user.
For example, you might trigger these APIs from your server when your contacts complete particular actions on your website.
To cause a triggered message to send at a specific time, its triggering event can
sendAt value. However, this disables STO for that send.
- To learn how to use authenticate with Iterable's API, read API Keys.
- In order for users to receive push notification campaigns from Iterable, their user profiles must have a device token associated with your mobile app. Iterable's mobile SDKs (iOS, Android, React Native) populate these tokens when the users run the app.
To view a sample request for your triggered campaign, open it and click the Show Sample API Request link:
You'll see a sample request such as the following:
To execute this request, use curl. Be sure to populate it with an API key from your Iterable project first!
8. Monitor campaign results
After activating a triggered campaign, you can use Iterable to monitor its results and understand how your contacts are engaging with it.
To do this, navigate to Messaging > Campaigns and open the campaign. You'll see its Campaign Analytics page, where you can inspect various metrics about its performance.
For more information, see our support guide on Viewing Campaign Analytics.
Viewing past sends of triggered campaigns
To view past sends for your triggered campaigns, navigate to Insights > Logs > Sent Messages.
From here, you can see a list of sent messages, preview them, and resend them. To preview and resend, hover over the message and click the View and Resend links that appear.
When resending a message, Iterable uses the current version of the original message's template. Since that template may have been modified, the resend may look different than the original.
Viewing scheduled sends of triggered campaigns
To view message sends scheduled by a triggered campaign, navigate to Insights > Logs > Scheduled Messages.
To schedule the triggered campaign to send at a future time, include a
value in the body of the request to Iterable's API.
Use the delete buttons at the top of the page to delete scheduled sends.
It's also possible to send triggered campaigns from workflows, which are multi-step customer journeys that allow you to tailor your interactions with your contacts based on their interactions with your brand. To learn more about workflows, read the Workflows documentation.