Skip to main content
Answer

I am trying to grab conversion (shown in receipient activty for a given campaign)

  • November 30, 2025
  • 4 replies
  • 41 views

Forum|alt.badge.img

Hi there,

I had reached out to klaviyo to show custom profile properties for given campaign's recipient activity tab but was told by an employee that its not possible to see custom profile info on recipients table below:

 

 

I was told to instead try to get this data from API end. I am able to grab aggregate opened, clicked data for a given email from looking at events with metric opened, clicked but am not sure how to grab the converted data shown in picture below.

I am basically trying to grab clicked, converted and opened count for each email for a given campaign.

Any help is much appreciated!

 

Best answer by cadence

@learningGuy123, it was unclear that your goal was to get to exact user-level data but now I understand what you’re trying to do. Thanks for clarifying. There is no easy way to do this through the APIs. You’ll need to pull down a lot of data to get to this kind of user-level reporting. 


To do so, you would need to
(1) retrieve all the Placed Order from Klaviyo for your relevant using the Get Events API. You can include attribution info by adding ?include=attributions in your URL. You can also filter to just include events for the Placed Order metric, which is the one you care about, using ?filter=equals(metric_id, “PLACED_ORDER_METRIC_ID”).
(2) Filter down to only the events where attributions is tied to the relevant campaign. I’m not sure exactly how this data is structured and it may vary across different channel campaigns, as well as the older single-message vs. omni/multi-message campaigns.

To get clicks and opens at the recipient level, you would similarly retrieve Clicked + Opened Email events and filter down to the ones that had properties associated with the relevant email campaign. 


It is not easy to get this kind of data from the API. There are also a number of tools that offer this level of reporting in Klaviyo’s app marketplace, if you decide to go that route. 
 

Cadence / Book a demo

4 replies

talha.hussain
Problem Solver III
Forum|alt.badge.img+5
  • Problem Solver III
  • December 1, 2025

Klaviyo does not provide an API that returns the same "Conversion" numbers you see in the Recipient Activity tab for a campaign. There is no single endpoint that gives you conversions per recipient.

You can get:

1. Total conversions for a campaign

Use the Reporting API for campaign values.
This returns campaign level conversions, revenue, and conversion rate based on your chosen conversion metric.

2. Conversions per recipient (workaround)

To mimic the Recipient Activity table, you have to put the data together yourself.

Step 1: Get the list of people who received the campaign
GET /api/v1/campaign/{campaign_id}/recipients

Step 2: Get conversion events for those people
Use the new Events API and filter by the metric you use for conversions.
Example: filter by Placed Order or Ordered Product.

Step 3: Match each conversion event to a recipient
Apply your attribution window and join the data so you can see:
email, opened, clicked, conversions, revenue attributed

Klaviyo normally does this automatically in the UI, but they do not expose this exact view through the API.


cadence
Expert Problem Solver II
Forum|alt.badge.img+8
  • Expert Problem Solver II
  • December 1, 2025

@learningGuy123, your goal is to just count the count of conversions, opens, clicks? Assuming you’re looking to just get at the counts shown in the left pane of your screenshot, this is possible with Klaviyo’s Campaign Reporting API.


@talha.hussain ​​​​ I would not recommend using any APIs that have /api/v1 or /api/v2 in the URL path. Those are no longer supported by Klaviyo. 

 

Example Call 

POST  https://a.klaviyo.com/api/campaign-values-reports 

{

  "data": {

    "type": "campaign-values-report",

    "attributes": { 

       "conversion_metric_id": “REPLACE_WITH_YOUR_PLACED_ORDER_METRIC_ID”,

        “statistics": [“opens_unique”, “clicks_unique”, “conversion_uniques”, “recipients”]

        "timeframe": {

          "key": "last_90_days”

        }

    }

  }

}


You can optionally filter to a single campaign, using “filter”: “equals(campaign_id, ‘INSERT_CAMPAIGN_ID’) in the request body.  You can also change your timeframe to look back over a longer time period, e.g. “last_365_days”. Klaviyo documents all of the supported timeframes here -https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames

Note, this is likely also possible with Klaviyo’s MCP server if you prefer that to using the API directly. Hope this helps! 

 

Cadence / Book a demo


Forum|alt.badge.img
  • Author
  • Contributor I
  • December 1, 2025

@cadence my goal is to get count the count of conversions, opens, clicks for a given user who received a given campaign (as shown in the recipient activity tab in campaign page). I can determine if a given user clicked on email or opened it by looking at events but i am not sure how do i determine if a given user was converted due to a given campaign.

 

your approach does not give me list of emails that resulted with conversion for a given campaign. It gives me the total aggregates. 

Here is what  "campaign-values-report" API gives:

"statistics": {

                        "recipients": 336.0,

                        "clicks_unique": 2.0,

                        "conversion_uniques": 0.0,

                        "opens_unique": 155.0

                    }

 

It does not tell me which recipients converted from a given email campaign rather tells me totals. I need help figuring out how do i pull list of recipient who were converted after a given campaign. 

 


cadence
Expert Problem Solver II
Forum|alt.badge.img+8
  • Expert Problem Solver II
  • Answer
  • December 1, 2025

@learningGuy123, it was unclear that your goal was to get to exact user-level data but now I understand what you’re trying to do. Thanks for clarifying. There is no easy way to do this through the APIs. You’ll need to pull down a lot of data to get to this kind of user-level reporting. 


To do so, you would need to
(1) retrieve all the Placed Order from Klaviyo for your relevant using the Get Events API. You can include attribution info by adding ?include=attributions in your URL. You can also filter to just include events for the Placed Order metric, which is the one you care about, using ?filter=equals(metric_id, “PLACED_ORDER_METRIC_ID”).
(2) Filter down to only the events where attributions is tied to the relevant campaign. I’m not sure exactly how this data is structured and it may vary across different channel campaigns, as well as the older single-message vs. omni/multi-message campaigns.

To get clicks and opens at the recipient level, you would similarly retrieve Clicked + Opened Email events and filter down to the ones that had properties associated with the relevant email campaign. 


It is not easy to get this kind of data from the API. There are also a number of tools that offer this level of reporting in Klaviyo’s app marketplace, if you decide to go that route. 
 

Cadence / Book a demo