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 screen:
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.
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 screen:
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 screen, 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 screen:
Save & Continue to Review to open the Review & Launch screen, 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 screen, 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 the Send Time Optimization toggle:
If the toggle 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. Activate the campaign
For a triggered campaign to send a message, you must first activate it. Do this on the Review & Launch screen:
After you activate a campaign, it will be in the Running state, and you can trigger it by calling Iterable's API.
6. 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!
7. 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 screen, where you can inspect various metrics about its performance.
For more information, read 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 screen 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.