After you create a campaign, the next step is to make sure it’s delivered at the right time. Not only is this important for building trust and brand loyalty with your users, it’s also an important part of compliance (especially for SMS campaigns). Here's how to set up your campaigns to optimize delivery times and increase engagement.
In this article
Send at a specific time
If you want to deliver your message at a specific time, set up a blast campaign. You can choose to either send the campaign immediately or schedule it to be sent at a later date or time.
You can also schedule a blast campaign to be sent on a recurring basis. This can be useful for sending regularly scheduled content like a "What's New This Week" message or a monthly recap of your user's app usage.
When you set up a recurring campaign, all of the subsequent sends keep the same settings as the original. If you need to, you can adjust these settings before each new send—just edit the child campaign before its scheduled send time.
Sending in different time zones
When you schedule a campaign, you can choose to send it in your user’s local time zone or your project’s time zone.
If you choose to send the campaign in the recipient's time zone, you can set a starting time zone and fallback time zone. The starting time zone is the first time zone Iterable will use to send the campaign at the scheduled time. Any users who are in time zones east of the starting time zone (up to the International Date Line) will receive the message at the scheduled time in the starting time zone. None of your users will receive the campaign before the scheduled time according to your starting time zone.
If a user’s time zone isn’t listed on their user profile (in the
field), Iterable will send the message using the fallback time zone.
Say you have a campaign scheduled to send today at 3:00 p.m., with a starting time zone of America/Chicago (Central Time) and a fallback time zone of America/Honolulu (Hawaii Time).
Users with a
America/Los_Angeles will receive the campaign at
3:00 p.m. Pacific Time (5:00 p.m. Central Time). This is the campaign's
scheduled send time, in their local time zone.
Users with a
America/New_York will receive the campaign at 4:00
p.m. Eastern Time (3:00 p.m. Central Time). This is the campaign's scheduled
send time in the starting time zone, since
America/New_York is east of
Users with an empty
timeZone field will receive the campaign at 3:00 p.m.
Hawaii Time. This is the scheduled send time, in local time according to the
fallback time zone.
timeZonefield is case- and space-sensitive. Follow these formatting tips to structure your time zone data.
- If you're using Send Time Optimization in a campaign, you can't choose to send the message using the recipient's time zone.
Send after an event happens
If you want to deliver your message after an event happens (like a purchase), set up a triggered campaign. Triggered campaigns differ from blast campaigns because they aren’t sent at specific times or to an entire list of users—instead, you can use the Iterable API to send triggered campaigns to individual users when they complete an action or one of their Iterable user profile fields is updated.
Once you activate a triggered campaign, it will be in the Running state and eligible users can start receiving it when you trigger it with the Iterable API.
Send Time Optimization
With Send Time Optimization, you can send campaigns to each user at the time they’re most likely to open them. When you turn on Send Time Optimization for a campaign, Iterable checks each user’s past engagement behavior (within the same Iterable project) and selects the ideal time to send the campaign. Send Time Optimization selects send times with a one-hour granularity and sends messages at the top of the hour.
When you turn on Send Time Optimization, you'll set a window for how long you want it to optimize sends (between 6 and 24 hours). At the end of this window, any eligible users that haven’t received the message will get it.
You can turn on Send Time Optimization for Email and Push campaigns.
Send Time Optimization works to improve the following campaign metrics:
|Email Open Rate||Unique Email Opens or Clicks / Total Emails Delivered|
|Email Click Rate||Unique Email Clicks / Total Emails Delivered|
|Push||Push Open Rate||Unique Pushes Opened / Total Pushes Delivered|
You can use Send Time Optimization with or without a Send Time Optimization experiment. Without a Send Time Optimization experiment, Iterable uses Send Time Optimization for all of the campaign's recipients. With a Send Time Optimization experiment, Iterable uses Send Time Optimization for half of the campaign's recipients and the scheduled send time for the other half.
- If you don't see the option to turn on Send Time Optimization, your project doesn't have enough engagement data yet. (This is common for staging and test projects.) To use Send Time Optimization, you'll need to either switch to a project that has more engagement data or wait until your current project has built up enough.
- You can't turn off Send Time Optimization after Iterable starts sending a campaign. Keep this in mind when you're scheduling the campaign.
To learn more about Send Time Optimization, see:
Using this feature can help with, but does not guarantee, compliance with SMS regulations.
With Quiet Hours, you can pause campaign sends during a specified time frame to avoid disturbing your users at inconvenient times. This is an important step toward keeping your company compliant with SMS regulations.
When you turn on this feature for one of your campaigns, Iterable will check each user's local time before sending the campaign. If the send time in the user's time zone falls within your quiet hours window, Iterable will hold the message instead of sending it. When the quiet hours window ends, Iterable can either send the message at the first eligible time or cancel the send.
You can set quiet hours for all campaign types: blast campaigns, triggered campaigns, and journey campaigns.
Iterable has to know each user's time zone in order to pause campaign sends during the right time frame. For best results with Quiet Hours, you'll need to do the following:
- Add the
ipuser profile field for each of your users. Adding each user's IP address tells Iterable where in the world your users are located and populates the
timeZonefields on their user profile.
- Turn on these two geolocation project settings
to keep your users' time zone information up to date:
- Enable User IP to Location Lookup: When you turn on this setting and include an IP address when you import or update a user, Iterable populates the user's city, region, country, and time zone on their user profile. (NOTE: This setting only works if you send Iterable each user's IP address. Without an IP address, Iterable can't determine a user's location and time zone.)
- Automatically update IP in user profile from inbound events: When you turn on this setting, Iterable automatically captures each user's IP address every time they click a link in an email—and updates their city, region, country, and time zone on their user profile.
If any of your users don't have the
timeZone fields set on their
user profile, Quiet Hours will use your project time zone as a fallback.
To decide whether or not to use Quiet Hours, consider what medium you're using to send the campaign (email vs. SMS, for example), whether the campaign you're sending is a marketing or transactional message, and how time-sensitive the message is.
When to turn on Quiet Hours
Some messages just aren't urgent enough to send during the middle of the night. For example:
- Upcoming sale alerts
- Special offers
- Back-in-stock notices
While these are valuable messages that your users want to receive from you, they generally can wait until morning. Consider turning on Quiet Hours for non-urgent messages like these.
When to turn off Quiet Hours
In some cases, you may need to send transactional messages (including SMS) at all hours of the day. For example:
- Fraud alert notices
- Two-factor authentication
- Delivery updates
These are crucial, time-sensitive notifications that your users need to receive immediately. (Just imagine if you didn't receive your late-night food delivery notice on time! 😱) Avoid turning on Quiet Hours for important, time-sensitive messages like these.
- If you turn on Quiet Hours and Send Time Optimization for a campaign, and the ideal send time for a user falls within your quiet hours window, your send won’t be optimized—it will be held until the quiet hours window ends. For example, if Send Time Optimization selects 5:00 a.m. as the ideal send time, but you have quiet hours set from 9:00 p.m. to 9:00 a.m., the campaign will be sent at 9:00 a.m.
- You'll need either the
ManageMessagingpermission to use Quiet Hours.
Send Rate Limits
This feature is currently available in beta for select Iterable members.
You can set a send rate limit to prevent your website and servers from being overwhelmed with traffic when many of your users simultaneously interact with a message you've sent. It can also help mitigate deliverability issues that can occur when you're sending high volumes of campaigns.
There are three ways to set a send rate limit in Iterable:
You can set a default send rate limit for each of your project's message types. Any new campaigns you create under each message type will follow the default send rate limit you've set.
You can set a send rate limit for a data feed. Any campaigns that call the data feed will follow the send rate limit you've set for the data feed.
You can adjust the send rate limit for an individual campaign.
When you send multiple campaigns of the same message type (with the same default send limit rate), they don't compete for the send rate limit's capacity. Each campaign can independently send as fast as the send rate limit allows.
However, when you send multiple campaigns that call the same data feed, they do compete for the data feed's send rate limit capacity. The total traffic to the data feed, from all campaigns, will not exceed the data feed's send rate limit.
- When a campaign has a send rate limit, Iterable doesn't necessarily send messages at that rate. But it won't exceed the send rate limit.
- If you turn on both Send Time Optimization and a send rate limit, your send rate limit could cause some sends to continue beyond your Send Time Optimization window.
- In situations where more than one send rate limit is applicable, Iterable uses the most restrictive limit.