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_NAME
  • PROMOTION_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_3 is 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:

ScenarioWhat happensImpact on incremental ingestion
Campaign deleted from OptimoveRow disappears from the view entirelyIncremental logic has no signal to delete the row from the destination — stale record persists silently
Campaign created or backfilled with a backdated LAST_MODIFY_DATENew row inserted with a timestamp older than the current watermarkRow is never picked up — permanent data gap
Metadata field updated without LAST_MODIFY_DATE changingFields like TEMPLATE_ID, TEMPLATE_NAME, PROMOTION_NAME, TAG_NAMES reflect new values but LAST_MODIFY_DATE remains unchangedDestination 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 NameDescriptionData TypeFormat
PLAN_IDA Campaign's IDNUMBER(38,0)
MARKETING_ACTION_NAMEName of the marketing actionTEXT(2048)
TARGET_GROUP_IDUnique identifier for the target groupNUMBER(38,0)
TARGET_GROUP_NAMEName of the target groupTEXT(2000)
CAMPAIGN_TYPEType of the campaignNUMBER(38,0)
CAMPAIGN_TYPE_NAMEName of the campaign typeTEXT(16777216)
LEAD_TIMELead time for the campaignNUMBER(38,0)
SELECTED_GAIN_KPISelected gain key performance indicatorTEXT(512)
IS_IMPACT_ENABLEDFlag to indicate if impact is enabledNUMBER(38,0)True/False
EXECUTION_START_DATEStart date of the campaign executionDATEYYYY-MM-DD
EXECUTION_END_DATEEnd date of the campaign executionDATEYYYY-MM-DD
TAG_NAMESTags associated with the campaignTEXT(16777216)"Tag1","Tag2","Tag3"
IS_REAL_SCHEDULED_CAMPAIGNFlag to indicate if it's a real scheduled campaignNUMBER(38,0)
EXCLUDE_BY_CHANNEL_FLAGFlag to exclude by channelNUMBER(38,0)
IMPACT_LENGTH_PLANNED_ACTIONS_CONFIGURATIONConfiguration for planned actions impact lengthNUMBER(38,0)
PLAN_DETAIL_IDUnique identifier for plan detailNUMBER(38,0)
CAMPAIGN_ACTION_IDUnique identifier for the campaign action or control group identifierNUMBER(38,0)
CAMPAIGN_ACTION_NAMEName of the campaign action OR control groupTEXT(16777216)
IS_CAMPAIGN_ACTION_GROUPFlag to indicate if it's a campaign action groupNUMBER(38,0)1 or 0
CAMPAIGN_ACTION_TYPEType of campaign actionNUMBER(38,0)
ISOLATION_VOLUMEIsolation volumeNUMBER(38,0)
PLAN_DETAIL_CHANNEL_IDID of a channel sub-action within a Campaign ActionNUMBER(38,0)
CHANNEL_IDChannel ID associated with the channel sub-actionNUMBER(38,0)
TEMPLATE_IDUnique identifier for the template associated with this sub-actionNUMBER(38,0)
TEMPLATE_NAMEName of the template associated with this sub-actionTEXT(16777216)
CHANNEL_NAMEName of the channel associated with this sub-actionTEXT(16777216)
PROMOTION_IDPromotion ID (Optimove generated)NUMBER(38,0)
PROMOTION_NAMEPromotion Name (as received by Optimove)TEXT(500)
PROMOTION_CODEPromotion Code (as received by Optimove)TEXT(500)
CONDITIONAL_EXECUTION_NAMEName of the conditional executionTEXT(16777216)
DISPLAY_ORDERDisplay orderNUMBER(38,0)
UI_PANEL_IDUI panel IDNUMBER(38,0)
RECURRENCE_PATTERNRecurrence patternTEXT(510)
NEXT_RUNTIMENext runtimeTIMESTAMP_NTZYYYY-MM-DD HH:MM
REPEAT_TIMESNumber of times to repeatNUMBER(38,0)
NOTESNotes associated with the campaignTEXT(16777216)
LAST_MODIFY_USERNAMEUsername of the last modifierTEXT(200)
LAST_MODIFY_DATEDate of the last modificationTIMESTAMP_NTZYYYY-MM-DD HH:MM