Send-Time Optimization

Marketers running email campaigns are not only required to design compelling content to engage consumers, but a well-timed message is essential to maximize those moments when consumers engage with a brand. The more micro-moments the brand can capitalize on, the more conversions they will drive – so getting to the top of a consumer's inbox is vitally important.

With Send-Time Optimization (STO) the marketer knows when to send out the campaign.
This compliments other Recommendations AI-powered solutions such as :
- Smart Content which determines “What is the optimal content to present to a particular audience?
- Smart Audience which determines “Who is the best audience for this particular content?
All of these features are part of Marigold's wider initiative to support marketers through machine-learning capability

Below you can find some answers that should provide a clearer view on this feature.


What is STO?

STO needs to be activated on request and when active on the environment, the marketer can activate STO for Single Batch Journeys and Custom Journeys using the Single Batch or Recurring Batch Component as entry point. As a result, messages in this journey will be sent out at the best time for the contact.

The activation and setup is done in the basic properties of the journey. The Scheduling section contains an additional toggle to activate STO for this journey: “Send at optimal (predicted) time for each consumer”

When activated, an Advanced link is visible and when clicked a timezone can be selected.

The Timezone setting allows the marketer to set the end-of-day to the desired timezone as only same day delivery is supported. This is not related to the actual journey launch as that happens in the time zone of the user that is logged into the platform. Hence, all emails will be sent out before the end of the day of the timezone selected for STO.

Example: A user in Seattle is scheduling a journey and would like the emails to be send out until it’s midnight in Seattle. The user changes the “Timezone for same day send” to “(UTC+10:00) West Pacific Standard Time”.


What data is taken into account?

Email clicks and views, page clicks and mobile message views, clicks and action buttons are all taken into account to determine the best time to send an email to the consumer. By taking other channels into account, we get a better view on when a consumer is active.

Although interaction with pages and Mobile Messages is taken into account to calculate the best sending time, Send-Time Optimization is only available for emails.

Note: From Engage Version 5.22, iOS15 opens are no longer taken into account to calculate the best send-time.


When is an optimized send-time profile available for a consumer?

An optimized STO profile is available as soon as one interaction has been detected. Consumers with no interaction will not get an STO profile. On journey launch, the STO system will use the automatically calculated fallback information when available. If the latter is not available, the consumers will be addressed immediately at journey launch. (Note that prior versions of STO used randomized hours in this case.)

STO profile refinement (validation, updating) is automatically performed once every 24 hours, meaning changes in consumer behavior are detected and their STO profile adjusted accordingly.


Is there a Fallback mechanism?

Yes. The fallback STO time is based on the best send-time for the audience and will be used for contacts without an STO profile.

Example: The STO for the audience is 5pm. This is the fallback STO time used for non-engaged contacts


How is the STO profile created?

First step, once STO is activated for a client, an STO Profile is calculated through the continuous collection and storage of interaction data. All interaction events are collected and stored in real-time and are aggregated into a heatmap for every individual consumer. This personalized heatmap is enriched with audience-level information, after which the result is used to determine the optimal send-time, which is periodically added to the profile of that consumer.

Our algorithm looks at when a client is active to calculate the probability of when they will be active. This activity is saved into hourly buckets across a 24-hour period. Whether they are active is determined by views and clicks in Pages, Emails and Mobile Messages across this time frame, to the hour they are most likely to be active. A similar heatmap is calculated for the audience. Both are combined in the form of a weighted sum.


Is there an STO profile for every consumer?

As soon as there is at least one interaction, an STO profile is created (remember that STO profile calculation is performed once a day, so the STO profile may only be available the next day). For consumers with no interaction, the fallback STO time is applied.

So, in the end, you will have consumers with an STO profile and consumers without an STO profile.

The existence of an STO profile can be used in the Audience filter to split the audience in contacts with and without an STO profile:


What impact has an STO profile on a journey?

There are several scenarios to keep in mind when launching a journey where STO is activated.

Consumers with STO profile

  • Consumers who have an STO profile for which the best send time has passed at the moment of the execution will get an email immediately
  • Consumers who have an STO profile with a send time that is after the journey is executed will get an email when the ideal send time is reached

Consumers without STO profile

  • For consumers who have no STO profile the email will be sent at the fallback STO time.
  • When there is no STO fallback available, messages will be sent out immediately. This is typically the case when a new client starts using STO where no journeys have been launched (hence no interactions yet from consumers available yet)

When is a good time to start using STO in journeys?

This is mainly up to the client and based on their business.

Initial STO profiles are created by an analysis of the recipient’s history. This applies to existing Engage clients for who history data can be loaded. Recipients with no activity will have an STO profile created upon their first tracked interaction, and adjusted (on a 24-hour frequency cycle) as more activity is recorded. Consequently, clients with a good history of engaged contacts can begin using STO upon activation.


What is the recommended launch time of my journey when using STO?

It is recommended to launch the journey as early as possible in the day. E-mails are always sent out at the optimized time BEFORE THE END OF THE DAY. When a journey is scheduled for execution at 23h00, most emails will be sent out immediately and no STO can be applied.


Are there restrictions?

  • STO is available BUT is not available by default and is provisioned by Marigold upon request
  • STO cannot be used in combination with waves
  • STO is available for both EU and US clients
  • STO is available for both Campaign and Marigold Engage.
  • STO today is ONLY available for Email.
  • STO today is supported in:
  • STO only supports same day delivery (based on the time zone setting of STO), not 24h or day of the week optimization.
  • ​STO includes the following interactions:
    • Email: views & clicks
    • Pages (not Site): clicks
    • Mobile push: views & clicks on action buttons


How can I test STO?

There are 2 options:

1. Experiment option

The Delivery Optimization Component (in Single Batch and Recurring Batch Custom Journeys) provides the ability to perform an experiment and compare interactions on emails sent at the optimized time and at a scheduled time.
Check out the Delivery Optimization Component topic for more info.

2. Manual setup

Testing STO can also be done by using 2 Single Batch Journeys, one with STO activated and one without STO. This allows for comparing the results of these journeys, using a dynamic segment on the audience, including only contacts who have an STO profile.

Step 1 - Create a dynamic segment, including only contacts with an STO profile. This is the target audience.

Note: If you do not want to create a dynamic segment on the Audience List, you can also target the audience directly in the journey and use the Audience filter.

Step 2 - Create a Single Batch Journey for 50% of the target audience and activate STO;

  • In the properties of the journey, select the audience and dynamic segment created earlier
  • In the Basic properties of the journey activate STO
  • Expand the 'Advanced' settings and select the timezone

  • in the Advanced properties, set the sending limit to 50% of the audience

Make sure you schedule the execution of the journey as early as possible to make optimal use of the STO profiles.

Step 3 - Create a second Single Batch Journey, targeting the other 50% of the target audience. This can be achieved by using the dynamic segment and only targeting the contacts that haven't been targeted in the first journey. Do not activate STO for this journey.

Make sure the first journey is executed before (at least 1 hour) the second journey. If the first journey is not yet launched when checking the target audience for the second journey, the audience filter will return all contacts in the dynamic segment as no emails have been sent and no contacts can be excluded for the second journey.



How are DSR requests handled by STO? What happens if the client sends a request of the following type: collect, optout, delete?

DSR works as following: When a DSR record is created on day X, during the night of day X+1 this request will be processed, first by the removal script, then it will hit the DSR API. So at most 24 hours between these actions.

Delete requests - Delete requests are recorded and make sure the consumer will not be part of STO output anymore. The raw events from these consumers are not removed for reporting purposes but will have no connection to a profile anymore as these are removed.

Optout requests - These are treated in the same way as delete requests for STO. The consumer will not be part of STO output anymore. The raw events will still have a connection to a profile.

Collect requests - These return an empty data element, as all information is already returned by the other modules (e.g. Campaign returns STO hour).

What this means for STO - The results of STO calculations are sent back periodically. This means that it is possible that deleted profiles still have a STO profile extension. However, this is a rare occurrence.

This case happens only when the main profile was deleted and it took a long time before forwarding the DSR request to interaction hub. The chain of events that could trigger this:

  • Delete profile + extension by removal script
  • STO calculation runs
  • DSR request is forwarded


Does STO differentiate between weekdays and weekends?

STO does not make a distinction between weekends and weekdays. Currently, only hours of activity are taken into account in UTC time, irrespective of the day of the week.


Does STO take into account different opening times of a consumer?

How is the STO time calculated when a contact opens at different times? For example, they open an email on Monday at 8 AM and on Wednesday at 6 PM.

In STO, when a client has too few events or their activity is spread evenly in time, we will use the audience's behavior as a "tie-breaker".

This works as follows: For the consumer and the audience we create an activity profile. This is a collection of 24 buckets, each representing the activity during that hour of the day. The result is normalized. Next, we combine both consumer and audience activity profiles together to make sure we always have enough information. This final merged profile is then used to determine the final STO time for that person.

Combining consumer and audience profiles makes sure that profiles that are "flat" (equally distributed), or have multiple spikes, are reverted into an audience fallback automatically.

The weight is by default set to 70% for consumer information and 30% for audience information. This is applied to all consumers, irrespective of the number of events they have. The reason these defaults were chosen is that pilot tests gave the best results with these settings.


Will Campaign STO profiles be available in Engage?

This question applies to Campaign Customers using STO and wanting to convert to Engage.

Yes, Campaign STO profiles will be available in Engage, given that the audience is migrated and the STO module is enabled.

Note: The client will not be able to access the STO profile extension directly. Instead, in Engage we offer this functionality through the use of the audience filter.

Technical note: STO profiles in Engage are the exact same ones as these in Campaign:

  • They are kept in the internal database.
  • Engage maps the Audience List to the internal Audience List in Campaign, which is linked to the STO profile extension.
  • The execution engine uses both the internal Audience List and the profile extension.
  • New interactions are processed via Interaction Hub and the STO times on the profile extension are kept up-to-date.
Hence STO data remains in perfect sync between Engage and Campaign.


Are test messages and test users taken into account for STO?

When a test user interacts with a message (click/view), is this interaction taken into account for STO? (is this send to Interaction Hub?)

Every interaction or delivery is sent to interaction hub whether it is a test message or not.

The Interaction hub will only process events that come from a source that has journey and audience context. This means that test messages that are sent from within the front-end are not taken into account. Journeys that are launched in test mode are taken into account.


How do I exclude contacts that still need to receive their STO message?

We recommend using the following setup:

  • Journey A launched with STO enabled
  • Journey B launched with the remaining audience

Journey B is typically launched at a later time, but it could be that a consumer in journey A still has not received their message. Consider the following scenario:

  • Journey A launches at 01:00 and schedules an STO email at 18:00 for consumer X.
  • Journey B launches at 16:00 and addresses only consumers that have not yet received an email. Furthermore, we also want consumers for which an email is scheduled to be excluded: consumer X should be excluded.

Journey B can then use a filter where

  • contacts with STO profile are included
  • and no email is scheduled (sent) yet in journey A.


What is the purpose of the timezone for STO?

When configuring STO, a timezone can be defined. Now what does this mean for the sending of your emails?

The purpose of the timezone configuration in the STO component is to ensure same day delivery in the specified timezone.

Key points to remember are:

  • The journey launch time (in the marketer's timezone) determines the START of the sending period.
  • When STO is enabled, the STO Timezone setting determines the END of the sending period ("midnight" of that timezone)
  • The sending period cannot exceed 24 hours.
  • STO ensures same day delivery

Note: We only recommend this advanced STO Timezone setting in very specific scenarios. Most scenarios should be covered with the standard approach, without the timezone setting.

There are three situations to consider:

  • The marketer in the same timezone as their intended audience (the majority case)
  • The marketer targeting a timezone ahead of them (potentially shorter sending window)
  • The marketer targeting a timezone behind them


Situation1: The targeted audience are people in the Netherlands, so the STO timezone is set to UTC+1.
A marketer in Paris (which is also UTC+1) sets the journey launch at 04:00H.

This is the most common situation: a marketer targeting an audience in the same timezone. In this case the sending period ends at midnight UTC+1 and the sending window is 20 hours.


Situation2: The targeted audience are people in New Delhi, so the STO timezone is set to UTC+5.
A marketer in Belgium (UTC+1) sets the journey to launch at 07:00H.

A launch at 07:00H for the marketer translates to a launch at 11:00H for the targeted audience (4 hours ahead of the marketer). Midnight in the STO timezone (UTC+5) determines the end of sending. This means that emails will only send over a 13 hour period and there will be a mass-send of emails to those whose STO profile is earlier than 11:00H.

Situation3: The targeted audience are people in Texas, so the STO timezone is set to UTC-5.
A marketer in Amsterdam(UTC+1) sets the journey to launch at 07:00H.


A launch of 07:00H for the marketer translates to a launch at 01:00H for the targeted audience (6 hours behind the marketer). Midnight in the STO timezone determines the end of sending. This means that emails will send over a 23 hour period, making the most of the STO feature.

Now, because in this example the marketer is 6 hours ahead, the earliest time to start sending emails would be 06:00 in the marketer's time, which translates to 00:00H for the targeted audience. Anything planned before 06:00H would correspond to the previous day in the STO timezone and limit tremendously the sending period.
In the below example, the marketer sets the sending time at 02:00H, which translates to 20:00H the previous day for the targeted audience and limiting the sending time to 4 hours only, until the midnight of the targeted audience.

Recommendation: In the above situation, we recommend to leave the STO timezone to your own, meaning UTC+1. Sending out the messages at 02:00H will not make the journey launch at a different time. So when you schedule at 02:00H, the journey will still go out at 20:00H of the previous day in STO-5 timezone. However, the end of the day is now determined by the UTC+1 timezone, and emails will be sent out for 22hours, until 18:00H in UTC-5.


We are not seeing improvements in STO campaigns. What do you recommend?

Try the following steps:

1. Launch the journeys as early as possible in the day, shortly after midnight.
2. Run an AB-test with and without STO and do a 50%-50% split.
3. Run an AB-test only for consumers that have an STO profile and do a 50%-50% split.

This should be done for a few campaigns at least to understand how the audience is responding.

The second option might not give the expected results, showing an important difference between STO campaigns and campaigns without STO. One of the possible reasons for this might be that the audience is quite inactive. That is why option 3 might be worth looking at as you will only target an audience that has been active in the last months.


Note: The Delivery Optimization Component provides the ability to perform an experiment and compare interactions on emails sent at the optimized time and at a scheduled time.


STO and pausing / canceling / taking offline of the Journeys

When an STO-enabled journey is activated, mails are passed to the GRID each featuring a specific delivery time per mail - either that contact's STO profile time, or the Audience List fallback if no STO profile exists. The GRID will then use that timestamp to determine when to send the mail.

Once launched, a journey can then be paused, canceled or stopped (Taken Offline):

  • If a journey is paused during execution, any pending emails awaiting delivery will NOT be de-queued, and will still be sent at their specified times.
  • If a journey is Taken Offline during execution, any pending emails awaiting delivery will still be sent (similar to pause), except their webversion and links will no longer work. In case of STO, all emails are queued from the start and so will be sent.
  • If a journey is canceled during execution, any pending emails awaiting delivery will also be canceled.

For example: a journey is scheduled to run at 0400; three emails with a STO time of 06:30, 12:00 and 15:00 are passed to the GRID. But at 0900:
Clicking PAUSE means one will have been delivered around 06:30, and the others will still intended to be delivered at 12:00 and 15:00.
Clicking TAKE OFFLINE means one will have been delivered around 06:30, and the others will still be awaiting delivery at 12:00 and 15:00 (similar to PAUSE), but links within those emails will no longer work
Clicking CANCEL means one will have been delivered around 06:30, and the two awaiting delivery at 12:00 and 15:00 will be removed from the queue.