Campaigns — Klaviyo (email + SMS)
How to read your Klaviyo campaign and flow performance in Ordinary, including attributed orders, the hourly engagement burst, and the per-day chart.
Campaigns — Klaviyo (email + SMS)
Klaviyo campaign reporting requires Starter or higher and a connected Klaviyo account. See Connecting Klaviyo.
Once Klaviyo is connected, Ordinary pulls your campaigns, flows, and per-event engagement and cross-references everything against your store’s actual orders. Left nav → Campaigns → Klaviyo.
The list view
Two sub-tabs:
Campaigns sub-tab
One-shot email or SMS blasts scheduled for a specific send time. Filtered by your page-level date range (on send-time).
Columns:
- Campaign name — click to drill down
- Sent — when it went out (in your shop time zone)
- Recipients / Delivered — Klaviyo’s own send counts
- Open Rate — unique opens / delivered, matching Klaviyo’s dashboard definition
- Click Rate — unique clicks / delivered
- Unsubs / Bounces
- Revenue — Klaviyo’s own attributed revenue (their attribution window, their click-ID)
- Ordinary Orders / Ordinary Revenue — your selected multi-touch attribution model’s view of the same campaign, computed against your store’s actual orders. The two revenue columns answer different questions; see “Why two revenue numbers?” below.
Flows sub-tab
Persistent automations (Welcome Series, Browse Abandon, etc). Flow metrics are cumulative since the flow was created — Klaviyo’s flow API doesn’t return per-day breakdowns, so the page date range doesn’t apply. A caveat line at the top of the tab explains this.
The detail view
Click any campaign or flow row.
Top — the metric cards
The same Klaviyo-reported metrics from the list, formatted as cards: recipients, open rate, click rate, total opens, total clicks, revenue, unsubs, bounces.
Hourly events chart
Per-hour bars showing opens, clicks, and revenue as they actually happened — sourced from the per-event Klaviyo ingest, not from cumulative daily snapshots. For a recent campaign you’ll see the classic engagement burst: huge bar on hour 0-2 after send, then sharp decay over the next 12-24 hours.
If the chart is empty, Ordinary hasn’t captured engagement events yet — that usually means the campaign is brand new and the next hourly sync hasn’t run, or you just connected Klaviyo and the backfill is still working.
Per-day engagement chart
Daily delta bars from send-day forward — what happened ON each day, not cumulative. For campaigns, the X axis is relative to send (“Send day, Day 1, Day 2…”) so the engagement decay curve reads left-to-right naturally. For flows, the X axis is calendar dates since flows fire continuously.
Days with zero engagement at the tail are trimmed automatically so the chart doesn’t stretch out across flat empty days.
Attributed orders modal
Click View → under the “Attributed orders” card to see the literal orders whose journey included a click on this campaign. Three attribution modes:
- Any touch — orders where THIS campaign was anywhere in the buyer’s journey. Most inclusive; an order influenced by multiple campaigns shows up under each. Default.
- First touch — orders where this was the FIRST Klaviyo-attributed touch in the journey.
- Last touch — orders where this was the most recent Klaviyo-attributed touch.
Each row links through to the order’s detail page.
Why two revenue numbers?
The Klaviyo column and the Ordinary column will disagree, often substantially. This is expected — they answer different questions.
Klaviyo’s revenue:
- Uses Klaviyo’s own attribution window (typically 5 days for email, configurable per merchant in Klaviyo)
- Credits orders to the campaign based on Klaviyo’s click-ID alone
- Doesn’t see orders that came in via a different channel after the click
Ordinary’s revenue:
- Uses your selected multi-touch attribution model (any / first / last / linear / time-decay) across the full pixel journey
- Cross-references against your Shopify orders — every order counted is a real, paid Shopify order
- Reconciles to-the-cent with Shopify Sales reports
Use Klaviyo for delivery metrics (sends, opens, clicks). Use Ordinary for outcome metrics (orders, revenue, ROAS) and for comparing Klaviyo against your other channels.
Attribution model
The model selector at the top of the page affects the “Ordinary Orders” and “Ordinary Revenue” columns. Same four models as the main attribution report — last-click (default), first-click, linear, time-decay. See Attribution models explained.
What if engagement looks zero
- Connection expired — check Settings → Integrations → Klaviyo. If it says “Reconnect required,” click Reconnect.
- Campaign was just sent — the hourly sync runs at the top of every hour; first engagement events typically land within 60-90 minutes of send. The events backfill on connect grabs the 365-day history.
- Date range past your plan’s lookback — partial data badge will show on the page header.
- Klaviyo deduplicates engagement aggressively — opens and clicks within seconds of each other on the same recipient collapse to a single event in Klaviyo’s view, which carries through to ours.