Skip to main content

Campaign and send identifiers

Klaviyo’s omnichannel catalog separates parent campaigns, audiences, campaign messages (sends), and content variations. One parent can contain several sends, and an A/B test can give a send several variations. In the message performance table, message_id identifies the analytics send. For Klaviyo campaign sends, campaign_id keeps the historical send identifier so existing joins and filters continue to work. Use the raw catalog’s relationships to resolve the omnichannel parent. If you select raw Klaviyo tables for delivery, the catalog provides:
  • klaviyo__campaigns: parent campaigns.
  • klaviyo__campaign_audiences: audiences, with campaign_id referencing the parent.
  • klaviyo__campaign_messages: sends, with campaign_id referencing the parent and an optional audience_id.
  • klaviyo__campaign_variations: content variations, with message_id referencing the send and channel identifying its channel.
Include sm_store_id in these joins when combining stores. Send status and schedules belong to the campaign message; the message definition retains smart-send and A/B send times. The existing email/SMS tables retain their send identifiers and remain available for existing delivery selections. Other channels can appear in catalog metadata; performance coverage depends on the metrics SourceMedium ingests. Historical email/SMS rows remain when Klaviyo cannot return an object. Use left joins when enriching those sends from the current raw catalog.

Event time vs. send date

SourceMedium reads Klaviyo metrics by event time, not send date. Klaviyo’s in-app campaign and flow reports are calculated by send date, so the two will not match for the same date range. For example, if you sent an email campaign on January 1st and look at unique clicks from January 1st to January 7th, a click on January 10th is counted in Klaviyo’s in-app campaign metrics but not in SourceMedium. To see it in SourceMedium, expand the date range to include January 10th.

SMS metrics

Klaviyo reports SMS activity as Text Message metrics. In the message performance table, SMS rows use them as follows: Klaviyo’s Sent Text Message metric counts texts a customer sends to your number, such as a reply or a keyword. It is not a count of messages you sent, so it is not included in sms_unique_sends. Keyword auto-replies are also excluded from campaign and flow totals. SMS has no opens, so message_unique_opens is zero for SMS rows. Each unique measure counts a person once per message per day; a person who clicks on two days is counted on both.