Skip to content

Klaviyo flow analytics

A flow report is three different screens

Klaviyo does not put flow results in one place. The analytics dashboard is an account view of flows. The message snapshot and the message overview are one message. The flows performance report is a custom report you build, group, and export. Reading the dashboard’s revenue as if it were the second email in a welcome series will send you to edit the wrong message. Owners, Admins, Managers, and Analysts can view flow analytics. Exporting the recipient list is limited further: Klaviyo’s analytics article says Owner, Admin, or Analyst. The dashboard’s own Export button also requires the Exports permission on the role.

Start from the question. “Which flow brought in orders this month?” is the dashboard, in flow view. “Why did this email skip a thousand people?” is the message, on Recipient activity. “What did each email in the cart flow do over the last 90 days, including the A/B variations?” is a flows performance report grouped by message. The screens do not share one date range. The dashboard defaults to the last 7 days, unless a saved range is still selected. The sidebar snapshot is the last 30 days. The custom report uses whatever range you set, and a custom range cannot exceed 2 years.

The Flows analytics tab is the account view

Open Flows, then the Analytics tab. Channel view groups the same metrics by channel. Flow view lists flows, and a flow name opens that flow. The toggle changes the grouping, not the underlying set. Five metrics are on the table. Revenue is the value of conversions attributed to flow messages in the range, and it is unavailable when the selected conversion metric has no value. Conversions are the count of those attributed conversions. Conversion rate is conversions divided by unique recipients. Deliveries are messages that were delivered. Unique recipients are profiles that received at least one message from the flows in the range.

The date selector offers the last 7, 30, or 90 days, the last 12 months, or a custom range up to 366 days. Comparison is on by default, against the previous period. You can switch it to the same dates last year, or turn it off. A delta is a percent change. Klaviyo displays a change larger than 999 percent as greater than +999% or less than -999%, so a new flow’s first week will not show you a precise multiple. The chart plots up to five channels or flows, ranked by the metric you picked. The table can contain more rows and can be sorted on its own, so the first table row is not necessarily the first line on the chart.

The Flows filter limits the chart, the table, and the comparison together. Filter and comparison state is stored on the URL, which is how you hand a teammate the same view. Export downloads the columns that are visible, one row per channel or one row per flow. It is not a message-level file. A single flow’s emails are not in that CSV.

The 30-day snapshot is one message, and the rates are unique

Click a message card for the last 30 days: waiting, needs review, delivered, skipped, open rate for email and push, click rate for email and SMS, conversion rate, and revenue. Conversion rate defaults to Placed Order. Open rate and click rate on flows are unique rates. Klaviyo divides the unique people who opened or clicked by the recipients. That is not the total-open math used for a single campaign. Show Analytics on the canvas expands every send with open rate, click rate, the selected conversion rate, and conversion value, for a range you set, so two branches can be compared without opening each card.

View all Analytics opens the message overview. The conversion metric on that page can be changed, and SMS is not limited to Placed Order. The engagement graph can include delivered, opened for email, clicked, and the conversion metric. Engagement events are attributed to the date the message was sent, not the date of the open or the click. A click on Thursday from Wednesday’s send stays on Wednesday. Do not read a dip on the graph as “nothing was clicked that day.”

Deliverability on the overview lists channel, sent, unique recipients, delivery rate, bounce rate for email and push, failed-to-deliver rate for SMS, spam complaint rate for email, and unsubscribe rate. Successful delivery can take a few hours to update. Klaviyo’s cue for a list that needs cleaning is a delivery rate under 99 percent together with a bounce or failed-delivery rate over 1 percent. The deliverability tab uses its own bands. Bounce rate under 1 percent is healthy and over 2 percent needs attention. Spam complaint rate under 0.01 percent is healthy and over 0.05 percent needs attention. Open rate above 33 percent is healthy and under 27 percent needs attention. Click rate above 1.2 percent is healthy and under 0.8 percent needs attention. Unsubscribe rate under 0.3 percent is healthy. Those bands are Klaviyo’s labels for that tab. They are not a result from your account until the tab says so.

Skipped is where a live flow explains itself

Recipient activity splits skips by reason. The reasons that change a review are specific. Smart Sending skips someone who already received a message on that channel inside the window. Email defaults to 16 hours. SMS and push default to 24 hours. A skip is not resent when the window ends. Fails flow filters means the profile filters were checked again before the send and the person no longer passed. On an abandoned cart, that is often Placed Order zero times since starting this flow doing its job. Fails additional filters applies only to a filter on that message. Person suppressed skips anyone suppressed in the account. Catalog item unavailable skips a message whose rendered product is unpublished or gone, which is the outcome of the browse-abandonment out-of-stock tag.

SMS adds its own reasons, and an email opt-in does not satisfy them. Missing SMS consent skips a person who has a phone number and no consent timestamp. Missing or invalid phone numbers are separate reasons. A large Smart Sending skip and a large filter skip are different problems. The first is the calendar. The second is the filter, or a metric that is not the one you think it is. Needs review is not a skip. It is a manual message waiting for a person to send or cancel it, and a later live message can already have gone out.

The flows performance report is the exportable flow report

Analytics, then Custom reports, then a Flows Performance Report, is the report Klaviyo documents for questions the dashboard does not answer. The examples in that article are a welcome series over the last year, each message in an abandoned cart across several metrics for a month, and whether any flow’s sending volume moved over 90 days alongside Placed Order rate and revenue. The report opens with the standard engagement and deliverability metrics for the channels on the account. You can remove those and add up to 10 conversion metrics, as a total, a unique-profile count, a value, or a rate. Rate is unique conversions divided by deliveries, and it does not take a sum or an average. Email recipients, in this report, means deliveries plus bounces. Email open rate means unique opens divided by deliveries.

Group by is the control that stops you mixing a flow with its emails. With no group, results combine across flows by channel. Group by Flow and the rates are weighted averages, so a welcome series comes back as one open rate rather than one row per email. Group by Flow Message and each message has its own open rate. Group by Flow Message (including variations) and each A/B variation is its own row. The CSV for a message grouping includes the message ID. The variations grouping adds the variant name and A/B details, and Klaviyo’s article says it does not include a variation ID. A tag filter uses AND: the flow must have every tag you select. Exclude archived and deleted flows when you do not want them in the totals. Timestamps in the report, including the export, use the account’s local time.

Save and run the report. A large result is a preview on screen, and the full rows are in the CSV. The Last Run time is when those numbers were produced. They do not move until you run the report again, or until a schedule runs it. Scheduling is weekly or monthly after the report has been saved and run. Cloning a report does not copy the schedule. Previous runs stay under View History. Text ROI, text credit usage, and text spend apply to messages sent on or after October 1, 2025. Contracted SMS customers see 0 for text ROI and text spend. If you are comparing SMS revenue across accounts, read that zero before you treat it as a failed flow.

What you can compare across client accounts

An agency reading one login will use that account’s conversion metric, that account’s timezone, and that account’s last run. Another client’s Placed Order is not this client’s conversion metric. The dashboard’s last 7 days is not the custom report’s last 90. A weighted flow open rate is not the second email’s open rate. Unique flow opens are not campaign total opens. A skip for failing profile filters is not a Smart Sending skip. Write down which screen the number came from before you compare two brands.

KlavyFlow does not replace those screens. After a read-only Klaviyo connection, each client workspace shows the flow on a day-by-day timeline with the creative, which is the definition and the delay, not the attributed revenue. Flow performance is a separate view for one selected flow, over 7, 30, or 90 complete account-local days, for the native message and channel. A missing observation stays unavailable. It does not turn into a zero, and another message’s totals do not fill it in. Change a filter or a message status in Klaviyo. Use the timeline and that per-flow view when you need the same question answered in more than one client workspace without treating one brand’s campaign total as the other’s flow.

14-day trial, then $95/month per client workspace. No payment card required. Or $995/year.