Skip to content

Email

The Email page shows how your Klaviyo campaigns and flows are performing, across both email and SMS sends. It reads from your connected Klaviyo account, so if you haven’t connected Klaviyo yet, see Connect Klaviyo first. The page and its sidebar label are still called “Email,” but SMS sends are synced and shown here too - see SMS below.

The page has four tabs: Overview, Campaigns, Flows, and Audience.

Email uses the same date range picker as the rest of the dashboard, at the top of the page. It sets the reporting window for every tab, and its Compare setting drives the comparison deltas and prior-period trend lines shown throughout the page. A sales-channel filter also appears in that same bar, but it has no effect on email numbers - it only filters Shopify sales figures. See Dates and comparisons for how the date presets and Compare options work.

SMS isn’t a separate tab - it’s a channel alongside email within the existing Campaigns and Flows tabs.

  • A Channel filter (All / Email / SMS) appears on the Campaigns and Flows tabs.
  • Each campaign row carries an Email or SMS badge; each flow row carries Email, SMS, or Email + SMS depending on which message types it contains.
  • SMS has no opens: open rate, click-to-open rate, bounce rate, and spam rate aren’t measured for SMS and show as a dash. Raw bounce and spam counts on SMS rows read 0 because they aren’t measured, not because nothing bounced. Clicks, conversions, revenue, and unsubscribes are still measured for SMS.
  • The Overview tab’s email figures and Email Share of Revenue card count email sends only; SMS is never folded into email revenue. When the brand sends SMS, the KPI row adds SMS revenue and SMS revenue per recipient, and the Channel filter on Campaigns or Flows shows SMS on its own.

The Overview tab is a summary of your email program for the selected date range.

KPI row: Open Rate, Click Rate, Campaigns Sent, Email Revenue and Email RPR, plus SMS Revenue and SMS RPR when the brand sent SMS in either period. Each tile compares with the selected comparison period. The email figures count email sends only.

Email Share of Revenue: a large percentage showing attributed email revenue as a share of store revenue, plus a line showing both figures. The methodology is stated directly on the card: attributed email revenue is Klaviyo’s last-touch 5-day attribution, divided by canonical state-based Shopify store revenue (see Revenue accounting for what “state-based” means). If email’s share exceeds 50%, a “Potential double counting” warning badge appears - a share that high usually means the same purchase is being credited to more than one channel. A delta badge shows the change versus the comparison period, in percentage points.

Revenue by Type: a bar chart comparing Campaigns against Flows, with two highlight boxes for Campaign Revenue and Flow Revenue.

Top Performing Flows: the top 5 flows by revenue, each showing delivered count, revenue, and conversion rate.

Klaviyo Account: raw counts synced from Klaviyo - Total Campaigns, Total Flows, Lists, Segments. These are account totals, not filtered to the selected date range.

Trend charts, four in total:

  • Revenue over time - campaign and flow revenue, stacked by reporting bucket.
  • Unique engagement rates - weighted unique opens and clicks divided by delivered recipients.
  • List health - unsubscribes and spam complaints by reporting bucket.
  • Conversions - attributed conversions by reporting bucket.

Each chart overlays a dashed “prior” line when a comparison window resolves. When it doesn’t (for example, same-period-last-year data that hasn’t finished syncing yet), a muted note explains why instead of showing a comparison.

Below the trend charts, a Deliverability panel breaks bounces, opens, and spam complaints down by inbox provider (Gmail, Outlook, Yahoo, and so on, exactly as Klaviyo reports them), for the selected period.

  • A status line states whether provider coverage is complete or incomplete for the period - “Complete provider coverage” or “Incomplete provider coverage - missing measurements are unmeasured.”
  • The main table lists one row per inbox provider: Open engagement, Bounce rate, Spam rate, each with a change figure when a comparison resolves. A cell reads “Unmeasured” with its reason in parentheses rather than a fake zero when Klaviyo hasn’t reported that measurement.
  • Expandable sections dig deeper: bounce-type mix by period, campaign-level bounce contributors, campaign bounce/spam/unsubscribe trends by send date, and a definitions section for exactly how each figure is collected.

“Open engagement” per provider is summed daily unique opens divided by received - it’s not deduplicated reach, so don’t read it as “this % of people at this provider opened.”

The Campaigns tab lists your synced email and SMS campaigns.

Filters: a Channel select (All / Email / SMS - see SMS), an “Exact tag” select (shows “All tags” plus each tag with its counts, for example “VIP (12 campaigns, 3 flows)”), and a “Name contains” search box that filters as you type. A “Clear filters” button appears once a tag, channel, or name filter is active. Once you check one or more rows, a “Clear selection” button also appears, naming how many rows are selected.

Whenever a filter or a row selection is active, a group analysis panel appears above the table. Its title reads “Selected group analysis” (with the selected count) when rows are checked, or “Filtered group analysis” when only a filter is active, with a subtitle stating the weighted campaign totals for the current date range. It shows a small table comparing the current period against the comparison period across: Group members/sent, Delivered, Unique opens (weighted rate), Unique clicks (weighted rate), Conversions, Revenue, and Revenue per recipient, each with a Change column showing the delta against the page’s Compare period.

This is useful for questions like “how did my VIP-tagged campaigns perform this month versus last month” without building a custom report.

A “Hide drafts” toggle (on by default) keeps unsent campaigns out of the list. Row checkboxes let you select campaigns for group analysis, with a select-all checkbox in the header.

Most columns are sortable by clicking the header, and again to reverse: Campaign, Status, Delivered, Unique opens, Unique clicks, CTOR (click-to-open rate), Conversions, Revenue, RPR (revenue per recipient), Unsubscribes, Bounces, Spam complaints, and Sent. By default the table sorts by send time, most recent first.

Clicking a row opens that campaign’s detail page. Going back restores your filters and page position.

The table paginates 10 rows at a time, showing a running count with Previous/Next buttons. Empty state: “No campaigns found”.

The Flows tab uses the same filter bar (including the Channel select) and group analysis panel as Campaigns, scoped to flows instead.

Flow table columns: Flow Name, Status, Trigger, Recipients, Open Rate (with the recipient count shown underneath), Conv. Rate (a “success” badge at 5% or above), and Revenue. When Compare is on, Recipients, Open Rate, Conv. Rate, and Revenue each carry a delta against the comparison period underneath the value.

Clicking a row opens that flow’s detail page. The table paginates 10 rows at a time. Empty state: “No flows found”.

The Audience tab shows two tables synced from Klaviyo: Lists and Segments.

Lists: List, Type, Profiles, Opted in, Subscribed, Opt-in process, Created, Updated, Growth.

Segments: Segment (shown with a star suffix if it’s starred in Klaviyo), Status (Active or Inactive, with inactive rows dimmed), Profiles, Definition (click to expand the raw segment criteria as JSON), Created, Updated, Growth.

Both tables paginate 10 rows at a time. Empty states: “No lists found.” and “No segments found.”

Growth shows that list’s or segment’s net membership change over the latest completed calendar week, or “Insufficient history” if Kreel hasn’t collected enough weekly snapshots for it yet. A decrease is net membership shrinking, not an unsubscribe count on its own.

Above the Lists and Segments tables, an Audience growth section (12 completed weeks) lets you pick one list or segment and see its weekly net-growth trend as a line chart, plus a Week / Net growth / Measured intervals table. A note above the chart reads “Total membership. Decreases are not unsubscribes.” If some weeks are missing data, a “Partial history: gaps have unknown weekly growth” note appears; with no measured history at all, it reads “No measured audience history yet. Daily collection builds history from now.”

Click any row in the Campaigns table to open its detail page. A “Back to campaigns” button returns you to the list with your filters, tab, and page position intact.

The header shows the campaign name, status, any tags, the subject line, and the preview text.

Below that:

  1. Send details - Sent (date and time), From, Message type, Send strategy.
  2. Audience - the lists and segments selected in Klaviyo for this send, in two columns: Included and Excluded. Each entry shows as a badge with the list or segment name and type. A “(not found)” suffix means Klaviyo no longer has that list or segment.
  3. Performance - Recipients, Delivered, Total opens, Unique opens, Total clicks, Unique clicks, Click-to-open rate, Conversions, Revenue, Revenue per recipient, Unsubscribes, Bounces, Spam complaints. Unique engagement rates here use delivered recipients as the denominator, same as everywhere else on this page.
  4. Compared with prior campaigns - this campaign against a simple account average across up to the prior 10 sent campaigns, for Delivery rate, Open rate, Click rate, Click-to-open rate, Conversion rate, Bounce rate, Unsubscribe rate, and Revenue per recipient. If there’s nothing to compare against yet, this card reads “No prior sent campaigns are available for comparison.”
  5. Link clicks - this card states plainly that link-level click data isn’t available for the campaign, and that the aggregate click totals shown in Performance are all Kreel has. This is a known gap, not a loading error.

Click any row in the Flows table to open its detail page. A “Back to flows” button returns you to the list the same way as campaigns.

The header shows the flow name, status, tags, and the trigger type, followed by the reporting window and its length in days. That window follows the date range you had set on the Email page when you opened it - change the date range and reopen the flow to see a different window.

Below that:

  1. Flow performance - period-accurate totals for the selected window: Recipients, Delivered, Total opens, Unique opens, Total clicks, Unique clicks, Conversions, Revenue (with revenue per recipient), Unsubscribes.
  2. Messages - one row per message in the flow: sequence number, name, Recipients, Delivered, Total opens, Unique opens, Total clicks, Unique clicks, Conversions, Unsubscribes, Revenue, RPR, Revenue share, plus a small inline chart of that message’s daily revenue trend over the period. Empty state: “No message performance is available. Try a wider reporting window after the next Klaviyo sync.”

Everything on this page - campaign and flow metrics, tags, list and segment data - is also available to your connected AI agent through MCP or the CLI, so you can ask for the same numbers in plain language instead of clicking through tabs. For the exact metric formulas used across Kreel, see the metrics glossary.

Email support@kreel.ai if a number here doesn’t look right.