Optimove has rebuilt its campaign execution engine on a cloud-based, modular infrastructure. Campaign Execution 2.0 recalculates each campaign's audience just before it sends, evaluates priorities and exclusions throughout the day, and runs every campaign on its own schedule—so large datasets and complex Target Groups no longer slow you down or force workarounds.
For marketers, that means fresher audiences, more time to make last-minute changes, and campaigns that go out on time regardless of your time zone. The right message reaches the right customer at the right moment, every time.
This guide walks you through what's new, how the execution process works, and how Campaign Execution 2.0 changes editing, cancellation, conditional execution, and notifications.
What's New in Campaign Execution 2.0
- Always-fresh audiences: Each campaign's Target Group is recalculated just before it sends, so it reflects all same-day data updates. You no longer need to use Re-evaluate or Run Anyway to pick up new data
- No more UTC limitations: Campaigns run on time regardless of your time zone. You no longer need to set a one-day lead time to work around the tenant's clock
- Continuous decisioning: Campaign priorities, exclusions, and eligibility are evaluated throughout the day, adapting to ad-hoc campaigns and changes in customer data
- More time to edit: Changes you make to a campaign are taken into account right up until shortly before it runs
- Simpler conditional execution: Notifications now arrive close to the campaign's send time, so your system can approve or deny customers straight away—no client-side scheduler needed
How Campaign Execution 2.0 Works
Optimove's AI orchestration engine updates throughout the day to deliver the most relevant campaign to each customer, using the latest data and any campaign changes. Each scheduled campaign moves through three stages.
1. Target Group Recalculation
Target Groups are updated once a day with data from the batch data process. In addition, each campaign triggers its own Target Group recalculation shortly before its scheduled send time. This recalculation includes data sources that can update during the day:
- Real-time attributes
- Attributes updated via API
- Web and app activity
- Campaign history
- Engagement activity
- Self-serve data ingestion attributes
Optimove times the recalculation based on data volume, aiming to run it as close to send time as possible—typically 10–60 minutes before execution. Every campaign sends to the most up-to-date audience, with no manual step.
Please note:
- If you use conditional execution, the Target Group is updated before the Campaign is Ready notification (Event Type 5) is sent
- The Always Exclude Target Group is still updated only once a day, after the batch data update is complete
2. Campaign Prioritization and Exclusion
A customer's campaign eligibility and selection can change during the day because of:
- Updates to Target Group eligibility
- Priority changes between Target Groups
- Campaigns being added or removed
- Edits to campaign inclusion and exclusion rules
Optimove evaluates these changes continuously so each customer is assigned to the most relevant campaign. All campaigns scheduled for the same date are prioritized together to make sure the best one is sent to each customer—and this now includes campaigns set to Run Anyway, not just regular campaigns.
3. Campaign Processing and Execution
Each campaign is processed for execution shortly before its scheduled send time. By default, processing begins 15 minutes before the first template's scheduled time. Until then, you can edit or delete the campaign freely.
How a campaign runs depends on its type:
| Campaign type | What it does | When to use it |
|---|---|---|
| Regular | Sends at the scheduled time only if the batch data is fresh | Any campaign you want to run only on updated data |
| Run Anyway | Sends at the scheduled time even if the batch data is not fresh (other data sources are still updated) | Time-sensitive campaigns that must go out regardless of the batch data update status |
4. Batch Data Freshness
The batch data is refreshed once a day by the batch data update. Batch data freshness is the period after that update during which Optimove considers the batch data updated to send campaigns with.
While the batch data is fresh, campaigns execute at their scheduled time. Once batch data freshness expires, Optimove stops sending regular campaigns — those not marked Run Anyway — until the next batch data update arrives.
What happens at send time
| Campaign type | Batch data is fresh | Batch data freshness has expired |
|---|---|---|
| Regular campaigns | Execute at their scheduled time | Do not execute. The campaign moves to "Not Run" status |
| Run Anyway campaigns | Execute at their scheduled time | Still execute, using the batch data available at that moment |
Example
Your batch data update finishes at 06:00 and batch data freshness is set to 24 hours. Every campaign scheduled between 06:00 today and 06:00 tomorrow executes normally. A campaign scheduled at 07:00 tomorrow — after batch data freshness has expired and before the next batch data update has finished — will not execute unless it is marked Run Anyway.
Setting your batch data freshness period
An Admin chooses one of two methods in Settings → Campaign Execution → Data Freshness:
| Method | What it means |
|---|---|
| Duration in hours (default: 24) | The batch data stays fresh for a set number of hours after the batch data update completes |
| Specific hour | The batch data stays fresh until a fixed hour on the next day, in your site's time zone (24-hour format) |
Allowed delay: what happens if the batch data update is late
If a regular campaign reaches its scheduled time before the batch data update has completed, the campaign does not execute yet. Allowed delay defines how long Optimove will wait for the batch data to become fresh. Once the batch data update completes, Optimove checks whether the campaign is still within its allowed delay window: if it is, the campaign executes; if the window has already passed, the campaign moves to "Not Run".
For example: your campaign is scheduled for 10:00 and the allowed delay is set to 30 minutes. If the batch data update completes at 10:05, the campaign executes at 10:05. If it completes at 10:45, the campaign has passed its allowed delay window and moves to "Not Run".
Where to configure: Settings → Campaign Execution → Data Freshness. Admin role required. See Settings: Campaign Execution.
Tracking Execution Progress
Use the Real-Time Campaign Progress widget to monitor your batch process and track campaign execution as it happens. The widget shows:
- Batch Data Update: The status of the batch process, including the date it was last updated, in your site time zone
- Scheduled Campaign Execution: Today's scheduled campaigns, grouped by status. Because each campaign runs at its own scheduled time, these counts keep updating throughout the day. Click any count to open it in Mission Control
- Active Triggered Campaigns: The number of triggered campaigns live for the day
Running Campaigns Manually
When a Campaign Doesn't Run
If Optimove can't execute a regular campaign, the campaign moves to Not Run status. From there, you can only run it manually from Mission Control using Run Today's Occurrence. Optimove then runs the campaign immediately with the data available, even if that data is not up to date. Some delay may occur if extra processing is needed.
Allowing a Delay
To avoid campaigns going to Not Run, you can configure an Allowed delay. Optimove then keeps trying to execute the campaign for up to that length of time after its scheduled time has passed.
New Campaigns and Run Today's Occurrence
A campaign scheduled to run now or within the next 30 minutes behaves the same way as a campaign you run manually with Run Today's Occurrence: Optimove starts processing it immediately and executes it as soon as it's ready.
While Optimove calculates the Target Group, evaluates eligibility, and executes the campaign, the campaign stays in Processing status. Once it's successfully executed, it moves to Running. If processing doesn't complete, the campaign is marked Failed.
Canceling a Running Campaign
Occasionally, you may spot an issue in a campaign template after the campaign has started. For multi-template, multi-channel, or cross-time-zone campaigns, you may catch it before all messages have been sent to all customers. Campaign Emergency Cancellation lets you stop the rest of the send.
When you cancel a Running campaign from Mission Control, and not all messages have been sent yet, Optimove:
- Removes the unsent messages
- Updates the campaign metrics
- Unlocks customers who didn't receive a message, so they're eligible for other campaigns that day
Please note:
- Cancellation is time-sensitive. Even when the Cancel button is available, successful cancellation is not guaranteed. You'll be notified of the result of each cancellation attempt
- You can cancel conditional execution campaigns during the approval (Heads-Up Time) window
Editing and Deleting Campaigns
Before: All campaigns scheduled for the same day entered Processing at a fixed time during the batch process. This locked them from editing or deletion, even if they weren't due to run for hours.
With Campaign Execution 2.0: Each campaign enters Processing shortly before its own scheduled execution time—usually around 15 minutes before. That gives you much more time to make last-minute edits or delete a campaign.
| Campaign status | What you can do |
|---|---|
| Scheduled (before Processing) | Edit or delete the campaign |
| Processing | Editing and deleting are locked |
| Running | The campaign has started; changes apply to future occurrences only |
Scheduled Conditional Execution
Before: Notifications for every conditional execution campaign were sent during the batch process, regardless of each campaign's scheduled send time. See Using Conditional Campaign Execution for more information.
With Campaign Execution 2.0: Each campaign gets its own notification, timed relative to its own send time:
- Optimove sends a Campaign is Ready notification (Event Type 5) for each campaign, a configured length of time before its scheduled execution time. This window is the Heads-Up Time—the time your system has to approve or deny customers from the moment the notification arrives. Optimove always gives your system the full Heads-Up Time
- Your system sends its approvals and denials before the deadline (also known as the clearance-required-by time) included in the notification. This is typically 5–15 minutes before the campaign's execution time
The default Heads-Up Time is one hour. Admin users can change it from Settings → Campaign Execution → Scheduled Conditional Execution.
To make sure a campaign can run on time, schedule it far enough after the batch completes to allow for the notification and the full Heads-Up Time, or set it to Run Anyway so it runs regardless of the batch data update status. See Batch Data Freshness for further information.
When the Batch Is Delayed
If the batch data update hasn't finished when Optimove needs to send the Campaign is Ready notification—because the batch is late, or the campaign is scheduled close to the batch completion time—what happens next depends on the campaign type:
| Campaign type | What happens |
|---|---|
| Regular, no allowed delay configured | Optimove can't give your system the full Heads-Up Time, so the campaign status changes to Not Run |
| Regular, allowed delay configured | Optimove waits. If the batch completes within the allowed delay, Optimove sends the notification then and still gives your system the full Heads-Up Time, so the campaign sends later than scheduled |
| Run Anyway | The notification is sent on time, and eligibility and exclusions are calculated with the data available, even though the batch data update hasn't completed |
Notifications
Campaign Notifications Sent via API
| Event type | Status in Campaign Execution 2.0 |
|---|---|
| Event Type 1 | Available |
| Event Type 2 | Removed |
| Event Type 5 (Campaign is Ready) | Available with scheduled conditional execution |
| Event Type 13 | Available |
Email Notifications
Subscribe to these from the Settings page:
- Daily Summary: Delivered at 00:15 (your site time), summarizing campaigns processed in the past 24 hours
- Iteration Summary (new): Delivered hourly, summarizing campaigns processed in the last hour
Unsupported Features
- CSV campaign setup from the Campaign Builder: Use the Customers list option when creating a Target Group instead
- Re-evaluate: Deprecated in Campaign Execution 2.0, since Target Groups are now recalculated automatically before each send
Key Elements to Keep in Mind
- Campaign Execution 2.0 applies to scheduled campaigns only
- Each campaign's Target Group is recalculated 10–60 minutes before it sends; the Always Exclude Target Group still updates once a day
- Campaigns enter Processing about 15 minutes before their first template's scheduled time—you can edit or delete them until then
- You no longer need Run Anyway or a one-day lead time to work around UTC
- Configure an Allowed delay to stop late batch data from sending campaigns straight to Not Run
- Emergency cancellation is best effort and not guaranteed
- Schedule conditional execution campaigns at least 75–90 minutes after your expected batch completion