To send a message to a static or dynamic list of many contacts, use a blast campaign.
Blast campaigns are useful for sending marketing content such as newsletters and promotions. They can make use of any message medium (email, in-app message, push notification, SMS or web push notifiation), can be sent on a scheduled or recurring basis, and can use Send Time Optimization (email and push notification only).
After you send a blast campaign, you can use Iterable to monitor metrics that measure user engagement.
This guide describes how to create and send a blast campaign.
Table of contents
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 schedule (send) a campaign, you must have the Workflows, Campaigns & Experiments > Activate & Manage permission.
To create a blast campaign, follow these instructions:
1. Create a static or dynamic list
First, decide who should receive the campaign and define a static or dynamic list to reference those contacts. Static lists define a specific set of contacts, and dynamic lists select contacts at send time based on properties stored on their Iterable user profiles (using segmentation queries).
- To prevent particular contacts from receiving a blast campaign, include them on a suppression list, and apply that list to the campaign.
- 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.
2. Set up the campaign
To create and configure a 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.
To add a holdout group to your campaign, a custom conversion event may be necessary (depending on your project's configuration). For more information, read Holdout Groups.
For Campaign Type, select Blast.
Choose a Message Medium.
Select lists to which you'd like to send the campaign, and suppression lists that define contacts who should be excluded.
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 blast 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. Use this feature to target specific apps or specific platforms.
- With Selective In-App disabled, Iterable sends blast in-app message campaigns to all users included in the selected lists for those campaigns, regardless of whether or not they've installed any apps that will display the messages.
- With Selective Push disabled, Iterable sends blast push notification campaigns to all selected users who have installed any mobile apps associated with any of your Iterable project's push integrations.
- 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.
3. 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.
4. 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 enable Send Time Optimization and schedule or send the campaign.
Create A/B Experiment to add an A/B experiment to the campaign.
To add a holdout group to your campaign, you'll need to create an experiment. For more information, read Holdout Groups.
5. Enable Send Time Optimization (optional)
On the Review & Launch screen, you can schedule and send your campaign. However, you should first 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 a blast email campaign, you can use STO with or without an STO experiment. Without an STO experiment, Iterable uses STO for all of the campaign's recipients. With an STO experiment, Iterable uses STO for half of its recipients and the scheduled send time for the other half.
- For a blast push notification campaign, you can only use STO without an STO experiment.
- For more information about STO, read:
To enable Send Time Optimization for all of your blast campaign's recipients:
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 the campaign's configured send time (whether immediate or scheduled) that Send Time Optimization can send messages. Send Time Optimization optimizes send times at a one-hour granularity and sends messages at the top of the hour.
You cannot disable Send Time Optimization after Iterable begins to send a campaign.
6. Send or schedule the campaign
Next, the Review & Launch screen allows you to send or schedule the campaign:
To send the campaign immediately, click Send Campaign Right Now on the Review & Launch screen, and confirm the campaign's launch.
To schedule the campaign for later:
Click Schedule Campaign for Later, which brings up the Schedule Campaign window.
Specify a Send Time (up to 21 days from the current time). You can specify the time of day in one of two ways:
- Choose a preset 15-minute increment from the drop-down menu.
- Enter the specific time (down to the minute) that you'd like Iterable to send the campaign.
For manually entered times, you can use a 12-hour format (e.g.,
2:23 pm) or a 24-hour format (e.g.,
If you need to send the same campaign repeatedly, enable the Recurring toggle.
Recurring campaigns are useful, for example, to send a daily menu from a food delivery company, a weekly article digest from a media company, or a monthly recap of a user's app usage.
To configure this option, specify:
- An end date for the recurrence
- How often the campaign should send (at most once per day),
- Days of the week on which Iterable should not send the campaign
- The number of hours ahead of the scheduled send time that the campaign should be created.
To learn how to cancel or reschedule a recurring campaign, read Managing Your Campaigns.
To use segmentation to check whether or not Iterable ever sent a specific recurring campaign to a particular contact, use a query such as the following:
It's not possible to use segmentation to determine whether or not a contact has ever opened or clicked any email from a recurring campaign. However, you can deterine whether or not they've opened or clicked a specific instance of that recurring campaign.
Choose to send the campaign at the scheduled time in your Project Time Zone (as defined in Settings > Project Settings) or relative to each Recipient's Time Zone.
For the Recipient's Time Zone option, Iterable sends the campaign to each recipient at the scheduled time in their local time zone. To determine a recipient's time zone, Iterable uses the
timeZonefound on their user profile (field name is case and space-sensitive). For example:
timeZonevalues as described in Wikipedia's List of tz database time zones.
- To automatically geolocate a contact based on their IP address, turn on the
Enable User IP to Location Lookup
option in Settings > Project Settings. With this option on, including an
ipaddress when importing or updating a contact causes Iterable to geolocate them and populate various location fields on their user profiles:
- When Send Time Optimzation is enabled, you can't choose to send the campaign using the Recipient's Time Zone.
When using Recipient's Time Zone, you must specify a starting and fallback time zone.
The Starting Time Zone is the first time zone for which Iterable should send the campaign at the selected time. Iterable will not send messages before the selected time in this time zone. Contacts with a
timeZoneeast of the starting time zone (up to the International Date Line) will receive the message at the selected time in this time zone, too. The selected time, in the starting time zone, is the earliest absolute time that anyone will receive the campaign.
The Fallback Time Zone is the time zone in which Iterable should send the campaign, at the selected time, to all contacts who do not have a
timeZone. For example, consider an campaign scheduled to send today at 3:00pm, with a starting time zone of
America/Chicago(Central Time) and a fallback time zone of
Contacts with a
America/Los_Angeleswill receive the campaign at 3pm Pacific Time (5pm Central Time). This is the campaign's scheduled send time, in their local time zone.
Contacts with a
America/New_Yorkwill receive the campaign at 4pm Eastern Time (3pm Central Time—the scheduled send time in the starting time zone), since
America/New_Yorkis east of
Contacts without a
timeZonewill receive the campaign at 3pm Hawaii Time (the scheduled send time, in local time, in the fallback time zone).
7. Monitor campaign results
After you've sent a campaign, use Iterable to monitor its results and understand how your contacts are engaging with it.
To monitor a campaign's results, 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, see our support guide on Viewing Campaign Analytics.
Recipient counts (list sizes)
When setting up a campaign, Iterable estimates a count of its recipients. Later, Campaign Analytics displays a count of the users to whom Iterable actually sent the campaign. These numbers are not always the same.
During campaign setup, the Review & Launch screen shows an estimate of the number of people to whom it will be sent:
Iterable calculates this number by starting with the the send lists and then subtracting:
- Suppressed users.
- Users whose subscription preferences (message channel, message type) do not allow them to receive the campaign. For example, if the campaign has an opt-in message type, users on the send list who haven't opted in to that message type aren't included in the estimate.
- For selective in-app message campaigns, users who haven't installed at least one of the mobile apps associated with the campaign.
After sending a campaign, you can view its Campaign Analytics by navigating to Messaging > Campaigns and opening it. Near the top of the screen, you'll see various details about the campaign, including Send List at Send Time— a count of users to whom the message was actually sent:
The pre-send Recipients estimate and post-send Send List at Send Time count may differ, for these reasons:
- If you scheduled the campaign to send sometime after you set it up, the membership of its underlying lists may have changed.
- For push notification campaigns (selective and non-selective), Iterable doesn't send messages to people who haven't installed the apps necessary to display them (despite including those users in the estimated Recipients count).