Working with Klaviyo Open/Click Rates

How to create Unique Click/Open Rate metrics for Klaviyo in Funnel and add them to your reporting

Markus Jones-Quartey avatar
Written by Markus Jones-Quartey
Updated over a week ago

Working with Klaviyo rate metrics outside of the platform can be a real headache, and there are several reasons for why this is the case:

  • The metrics are based on unique opens and clicks

  • In the Klaviyo interface, Open Rate/Click Rate are attributed differently depending on if it’s a campaign or flow message.

  • Limitations in the Klaviyo API prevent us from mirroring how these metrics work in the platform

Working around the limitations


Depending on how your end report looks, the approach for creating your Rate Metrics is likely to vary. The most important factor to consider is what breakdown you are looking to include in your end report:

Case A: Open/Click Rate by Campaign


Background:

When viewing campaigns in Klaviyo, rate metrics are shown as unique lifetime by default. In other words, this means that you will get a Unique Open/Click Rate for all unique opens and clicks that have happened since your campaign was sent. Changing the date range in this Klaviyo view simply filters the list of campaigns based on send date.

Unfortunately, this functionality is not available in the Klaviyo API. When fetching a campaign's unique opens or clicks via the API, a specific time interval must be specified (day/week/month). This means that we only can get unique events happening within a given period—versus showing the unique total since the campaign was sent in the Klaviyo interface.

Example: If we fetch campaign data using the month interval and User A opens an email once in November and once in December, the user would be counted twice since it stretches over two time intervals. This means that rates created outside of Klaviyo often will have inflated numbers (due to double counting).

Instructions:

1. Create a Unique Opens (or clicks) custom metric

Start by creating a rule-based Custom Metric in Funnel called something along the lines of Unique Opens (Month) and give it the value of the field Opened Email Unique, Calendar Month, Message (or clicks if you are making a Click Rate field).

This step is important as it will make this field aggregatable. Without this step, we cannot sum unique opens happening across two time intervals (in this case months). More on none-aggregatable fields here.

2. Create your Rate Metric

You can now create your formula-based Rate Metric using the Unique Opens (Month) field that you just created, as well as the Received Email field.

3. Using the field and its limitations

💡 The data for the unique metrics will be attributed to the first date of the time interval selected in your custom metric. In other words, since we chose Month as the interval in the previous step, we will always need to include the first day of the month in our report's date range when using either of the fields we created.

We can now use the field in our Data Explorer or end reports. In the below screenshot we are looking at a list of campaigns, filtered by Send Date to ensure that we only show campaigns sent this month.

Open rate with a filtered list of campaigns without a date breakdown

Open rate by Campaign will not work with a Month breakdown since all email sends happened in December

✅ Note: Even without a Month breakdown, Open rate is likely to be slighly inflated when comparing with the number seen in the Klaviyo interface. This is due to unique opens from December and January being summed in Funnel.

Case B: Open/Click Rate by Flow


Background:

Unlike Campaigns, Flows are in the realm of marketing automation. Each flow consists of several emails (and/or SMS) that trigger when a defined condition is met.

When viewing flows in Klaviyo, we are shown metrics of all events (e.g. sends, opens, clicks) happening within the selected date span. While this is identical to how the API works, we are still limited by Unique Opens and Clicks needing to be fetched with a time interval (day/week/month)

Example: If we fetch flow data from last month (January), Klaviyo will give us all events (sends/opens/clicks) coming from Flows that happened in January. If we also want to fetch Unique Opens from January, we will need to specify if we want Unique Opens split by day, week, or the full month.

Instructions:

1. Create a Unique Opens (or clicks) custom metric

Start by deciding if you plan on reporting on your Flow data by day, week, or month.

Each interval you plan on reporting on will require it's own custom metric. For the sake of this example, let's say we want to create a table that compares Unique Open Rate between our Flows, month by month.

We will then start in the same way as demonstrated above in the campaign example:

Start by creating a rule-based Custom Metric in Funnel called something along the lines of Unique Opens (Month, flow) and give it the value of the field Opened Email Unique, Calendar Month, Flow (or clicks if you are making a click rate field).

This step is important as it will make this field aggregatable. Without this step, we cannot sum unique opens happening across two time intervals (in this case months). More on none-aggregatable fields here.

2. Create your Rate Metric

You can now create your formula-based Rate Metric using the Unique Opens (Month, flow) field that you just created, as well as the Received Email field.

3. Using the field and its limitations

💡 The data for the unique metrics will be attributed to the first date of the time interval selected in your custom metric. In other words, since we chose Month as the interval in the previous step, we will always need to include the first day of the month in our report's date range when using either of the fields we created.

We can now use the field in our Data Explorer or end reports. In the below screenshot we are looking at our list of Flows by month (since we opted for the month interval for our Unique Opens metric).

Keep in mind when viewing flow data spanning across multiple time intervals (day/week/month): Unique opens/clicks will sum across intervals, leading to slightly inflated numbers from recipients who opened/clicked emails in both December and January.

Did this answer your question?