Scheduled Campaigns
Explore all past, present and future campaigns and all their different properties
This shared table contains the details of all scheduled campaigns that were set in Optimove, alongside its metadata that can be used for further analysis by any campaign property. This data can be used to group by different properties such as Tags, Marketing Actions and Channels for insightful analysis.
Each row represents a channel within an action of a campaign occurrence. Actions are set in Optimove Campaign Builder, under the Execute section. Campaign Actions that are split into more than one channel will be represented in different rows. Channels that test more than one template will be represented by the first template only in order of their appearance in Campaign Builder.
Latest version available:BI.VW_SCHEDULED_CAMPAIGNS_V1_3.
Version releases -
PROMOTION_NAMEPROMOTION_CODE
Glossary
ACTION_NAME-- 'DN' represents control groups that are not being targeted with any communication ("Do Nothing")
CAMPAIGN_TYPE_NAME-- Test/Control - Represents a simple campaign using a single action tested against a control group
- Self-Optimizing - Represents a campaign configured to optimize its action distribution according to performance. Read more
- A/B/N - Represents a campaign with multiple actions, may or maynot include a control group.
- A/B - Represents a campaign testing only two actions, without a control group.
- No Control - A campaign with a single test group only
MARKETING_ACTION_NAME-- The Action name that was used in a campaign. An action is set on a campaign action level, and managed in Optimove under Plan > Actions.
Read more about terminology in Data Share Glossary
V1_3
-- FOR V1.3
SELECT *
FROM [SHARED_DB].[BI].[VW_SCHEDULED_CAMPAIGNS_V1_3]🔑 Primary Keys:
- Composite Key:
PLAN_ID,PLAN_DETAIL_ID,TEMPLATE_ID,PLAN_DETAIL_CHANNEL_ID,PROMOTION_ID
LAST_MODIFY_DATE- Timestamp of the last recorded modification to this campaign record. Not recommended as an incremental ingestion watermark — see Ingestion Recommendations below.
Ingestion Recommendations
⚠️ Full load recommended
VW_SCHEDULED_CAMPAIGNS_V1_3is a small-volume reference table, typically containing fewer than 10,000 records. A full load (truncate-and-replace) is the recommended ingestion strategy.
Although LAST_MODIFY_DATE appears to be a natural watermark column, using it for incremental ingestion can produce data gaps for the following reasons:
| Scenario | What happens | Impact on incremental ingestion |
|---|---|---|
| Campaign deleted from Optimove | Row disappears from the view entirely | Incremental logic has no signal to delete the row from the destination — stale record persists silently |
Campaign created or backfilled with a backdated LAST_MODIFY_DATE | New row inserted with a timestamp older than the current watermark | Row is never picked up — permanent data gap |
Metadata field updated without LAST_MODIFY_DATE changing | Fields like TEMPLATE_ID, TEMPLATE_NAME, PROMOTION_NAME, TAG_NAMES reflect new values but LAST_MODIFY_DATE remains unchanged | Destination retains outdated metadata — joins to engagement or results produce mismatched template/promotion names |
Recommended approach:
-- Full load pattern (run daily or on schedule)
CREATE OR REPLACE TABLE MY_DB.MY_SCHEMA.SCHEDULED_CAMPAIGNS AS
SELECT *
FROM DATA_SHARE_DB.DATA_SHARE_SCHEMA.VW_SCHEDULED_CAMPAIGNS_V1_3;Because the view is small, full loads complete in seconds and eliminate all three failure modes above.
If incremental ingestion is required (e.g., due to pipeline framework constraints), supplement it with a periodic full reconciliation:
-- Reconciliation: detect stale/deleted records
SELECT dest.PLAN_ID, dest.PLAN_DETAIL_ID
FROM MY_DB.MY_SCHEMA.SCHEDULED_CAMPAIGNS dest
LEFT JOIN DATA_SHARE_DB.DATA_SHARE_SCHEMA.VW_SCHEDULED_CAMPAIGNS_V1_3 src
ON dest.PLAN_ID = src.PLAN_ID
AND dest.PLAN_DETAIL_ID = src.PLAN_DETAIL_ID
WHERE src.PLAN_ID IS NULL;
-- Any rows returned here exist in your destination but have been
-- removed from the source view and should be deleted.This also applies to detecting metadata drift — compare TEMPLATE_ID, TEMPLATE_NAME, and other mutable fields against the source periodically.
Table Description
| Field Name | Description | Data Type | Format |
|---|---|---|---|
PLAN_ID | A Campaign's ID | NUMBER(38,0) | |
MARKETING_ACTION_NAME | Name of the marketing action | TEXT(2048) | |
TARGET_GROUP_ID | Unique identifier for the target group | NUMBER(38,0) | |
TARGET_GROUP_NAME | Name of the target group | TEXT(2000) | |
CAMPAIGN_TYPE | Type of the campaign | NUMBER(38,0) | |
CAMPAIGN_TYPE_NAME | Name of the campaign type | TEXT(16777216) | |
LEAD_TIME | Lead time for the campaign | NUMBER(38,0) | |
SELECTED_GAIN_KPI | Selected gain key performance indicator | TEXT(512) | |
IS_IMPACT_ENABLED | Flag to indicate if impact is enabled | NUMBER(38,0) | True/False |
EXECUTION_START_DATE | Start date of the campaign execution | DATE | YYYY-MM-DD |
EXECUTION_END_DATE | End date of the campaign execution | DATE | YYYY-MM-DD |
TAG_NAMES | Tags associated with the campaign | TEXT(16777216) | "Tag1","Tag2","Tag3" |
IS_REAL_SCHEDULED_CAMPAIGN | Flag to indicate if it's a real scheduled campaign | NUMBER(38,0) | |
EXCLUDE_BY_CHANNEL_FLAG | Flag to exclude by channel | NUMBER(38,0) | |
IMPACT_LENGTH_PLANNED_ACTIONS_CONFIGURATION | Configuration for planned actions impact length | NUMBER(38,0) | |
PLAN_DETAIL_ID | Unique identifier for plan detail | NUMBER(38,0) | |
CAMPAIGN_ACTION_ID | Unique identifier for the campaign action or control group identifier | NUMBER(38,0) | |
CAMPAIGN_ACTION_NAME | Name of the campaign action OR control group | TEXT(16777216) | |
IS_CAMPAIGN_ACTION_GROUP | Flag to indicate if it's a campaign action group | NUMBER(38,0) | 1 or 0 |
CAMPAIGN_ACTION_TYPE | Type of campaign action | NUMBER(38,0) | |
ISOLATION_VOLUME | Isolation volume | NUMBER(38,0) | |
PLAN_DETAIL_CHANNEL_ID | ID of a channel sub-action within a Campaign Action | NUMBER(38,0) | |
CHANNEL_ID | Channel ID associated with the channel sub-action | NUMBER(38,0) | |
TEMPLATE_ID | Unique identifier for the template associated with this sub-action | NUMBER(38,0) | |
TEMPLATE_NAME | Name of the template associated with this sub-action | TEXT(16777216) | |
CHANNEL_NAME | Name of the channel associated with this sub-action | TEXT(16777216) | |
PROMOTION_ID | Promotion ID (Optimove generated) | NUMBER(38,0) | |
PROMOTION_NAME | Promotion Name (as received by Optimove) | TEXT(500) | |
PROMOTION_CODE | Promotion Code (as received by Optimove) | TEXT(500) | |
CONDITIONAL_EXECUTION_NAME | Name of the conditional execution | TEXT(16777216) | |
DISPLAY_ORDER | Display order | NUMBER(38,0) | |
UI_PANEL_ID | UI panel ID | NUMBER(38,0) | |
RECURRENCE_PATTERN | Recurrence pattern | TEXT(510) | |
NEXT_RUNTIME | Next runtime | TIMESTAMP_NTZ | YYYY-MM-DD HH:MM |
REPEAT_TIMES | Number of times to repeat | NUMBER(38,0) | |
NOTES | Notes associated with the campaign | TEXT(16777216) | |
LAST_MODIFY_USERNAME | Username of the last modifier | TEXT(200) | |
LAST_MODIFY_DATE | Date of the last modification | TIMESTAMP_NTZ | YYYY-MM-DD HH:MM |
Updated 18 days ago