Skip to main content
GabbyEsposito
Community Manager
Community Manager
August 14, 2025

Ask the architects: solutions to your toughest tech questions

  • August 14, 2025
  • 30 replies
  • 1140 views
Ask the architects: solutions to your toughest tech questions

Welcome to our Solution Architect AMA!

 

Struggling with API and webhook development? Need advice on optimizing your integrations and tech stack? Looking for best practices on data management? Having trigger issues that no one seems to have a proper answer to and you are beginning to feel like throwing your tech to the wind and moving to a small town in the Italian country-side? Take a deep breath, let your computer cool down, and don’t worry. You're in the right place, surrounded by the right people — the experts who LOVE solving problems.

From August 18-25, four of our solution architects, @Nina , ​@Alex, @Jeffrey, and @Ryan are here to answer all your questions big or small. Whether you’re troubleshooting a technical problem or looking for strategic consultation.

Drop your questions in this thread any time during the AMA window, and we’ll respond by August 25.

Let’s get you the answers to your toughest tech questions. Bring ‘em on.

The AMA window is now closed. 

This topic has been closed for replies.

30 replies

Contributor II
August 18, 2025

With the Attribution update of August 2024, part of the documentation stated that some dimensions will no longer be available when building new segments, but old segments will still function and be usable. 

This help article no longer seems to exist when clicking Learn More


The URL https://help.klaviyo.com/hc/en-us/articles/28413619855387 goes to a Klaviyo Page Not Found.


One particular Dimension we used to keep track of long-term account/list health was "Attributed Channel". This allowed us to set up segments that would monitor user retention using the Growth tab in the segment properties.

 

These segments used to function just fine after the August 2024 update, but recently all of them were archived/marked inactive in our account, and when reactivated they all prompt this warning in the Lists/Segments tab, with the same broken URL

Is there an alternative way to monitor the user count for those users who have purchased via email marketing channels? For our use case, this metric is an important account health signal - and a big factor in setting yearly projections.

If there is no alternative, can we please have this dimension back in the Segment Builder? It seems to still be present in the backend but not selectable thru the interface - and I think having a way to segment and count people who bought thru Email marketing efforts (instead of counting the number of orders) is a useful tool to all email marketers, especially when making yearly reports that focus on retention.

 

Thank you!

 

Contributor I
August 18, 2025

Hi everyone,

We’re trying to figure out how to configure our product feeds so they display in the customer’s native language. Our store is on Shopify and already translated into several languages, but when Klaviyo pulls product information into campaigns or flows, it only shows the default language.

Is there a way to make the product feeds dynamic so that customers receive product titles and descriptions in their selected language?

Thanks in advance for your help!

Contributor I
August 18, 2025

I’d like to know how we can customize the data we can send from our website to klaviyo regarding the “recently viewed” products that are temporarily attributed to profiles. Right now we’d like to append the brand name of the products and use it to that same event. Can we??

 

We are using this blog on our regular campaigns (not flows) fyi


Also maybe some background as well on where is this data coming from? The klaviyo plugin?

Alex Rodriguez
Klaviyo Employee
Klaviyo Employee
August 18, 2025

Hi everyone,

We’re trying to figure out how to configure our product feeds so they display in the customer’s native language. Our store is on Shopify and already translated into several languages, but when Klaviyo pulls product information into campaigns or flows, it only shows the default language.

Is there a way to make the product feeds dynamic so that customers receive product titles and descriptions in their selected language?

Thanks in advance for your help!

 

@SERMILITAR The product catalog created by the Shopify integration only includes product data from your default store. If you wish to support products with multiple languages/prices then you will need to add a custom catalog to your Klaviyo account via a Catalog Feed or API .

 

The way you structure your catalog is important, in this guide we outline different ways of structuring your catalog and the pros and cons of each approach. 

 

ryankelly
Klaviyo Employee
Klaviyo Employee
August 18, 2025

With the Attribution update of August 2024, part of the documentation stated that some dimensions will no longer be available when building new segments, but old segments will still function and be usable. 

This help article no longer seems to exist when clicking Learn More


The URL https://help.klaviyo.com/hc/en-us/articles/28413619855387 goes to a Klaviyo Page Not Found.


One particular Dimension we used to keep track of long-term account/list health was "Attributed Channel". This allowed us to set up segments that would monitor user retention using the Growth tab in the segment properties.

 

These segments used to function just fine after the August 2024 update, but recently all of them were archived/marked inactive in our account, and when reactivated they all prompt this warning in the Lists/Segments tab, with the same broken URL

Is there an alternative way to monitor the user count for those users who have purchased via email marketing channels? For our use case, this metric is an important account health signal - and a big factor in setting yearly projections.

If there is no alternative, can we please have this dimension back in the Segment Builder? It seems to still be present in the backend but not selectable thru the interface - and I think having a way to segment and count people who bought thru Email marketing efforts (instead of counting the number of orders) is a useful tool to all email marketers, especially when making yearly reports that focus on retention.

 

Thank you!

 

 

Hi ​@lahtalion - 

There is an alternative way to monitor user count for users who purchased via email. The attribution data is available via the API, which exposes the attributed event as well as lots of other data that can be helpful.

One way that I would approach this is:

  1. Call Get Events, filtering to your Placed Order metric ID and including attribution. In Postman this URL would look like:
    https://a.klaviyo.com/api/events?filter=equals(metric_id,"your_metric_id")&include=attributions
  2. This returns the events in this metric and their attribution data, with attribution data in the “included” list:
     "included": [
    {
    "type": "attribution",
    "id": "6qvZsYYrmxX",
    "attributes": {},
    "relationships": {
    "event": {
    "data": {
    "type": "event",
    "id": "6qvZsYYrmxX"
    }
    },
    "attributed-event": {
    "data": {
    "type": "event",
    "id": "6qmweD9wpxX"
    }
    },
    "campaign": {
    "data": {
    "type": "campaign",
    "id": "01K2H5CWCACGHR0Y9JDSD4TDXX"
    }
    }
    },
    "links": {
    "self": null
    }
    },
    ...
    ]
  3. The item relationships.event object is the event you are getting attribution for - in this case, a Placed Order event. relationships.attributed-event is the event that is claiming attribution - this is what you want more detail on. For this you need the relatinoships.attributed-event.data.id. We’ll call this the Attributed Event ID.
  4. Query Get Event specifically for the Attributed Event ID:
    https://a.klaviyo.com/api/events/6qmweD9wpxX
  5. This gives details of the attributing event, for example from one of our demo accounts:
            "attributes": {
    "timestamp": 1755356528,
    "event_properties": {
    "Client Name": "Chrome",
    "$flow": "UKZGLs",
    "Recipient Email Address": "mary.hayes_134@klaviyo-demo.com",
    "$_cohort$message_send_cohort": "1755345679:XHQraM",
    "Subject": "We think you'd love these new products",
    "$message_interaction": "XHQraM",
    "_ip": "3.22.254.100",
    "$internal": {
    "Handoff Time": 1755345679,
    "Transmission ID": "01K2SC2RKGGHFP3SJDHVXS538F",
    "Friendly From Domain": "klaviyo-demo.com",
    "User Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1866.237 Safari/537.36"
    },
    "Client OS": "Windows XP",
    "Inbox Provider": "Amazon SES Inbound",
    "Client Type": "Browser",
    "Client OS Family": "Windows",
    "Client Canonical": "Chrome",
    "$ESP": 2,
    "machine_open": false,
    "$message": "XHQraM",
    "Email Domain": "klaviyo-demo.com",
    "Campaign Name": "What's next?",
    "$event_id": "XHQraM:01K2SC2RKGGHFP3SJDHVXS538F:1755356528"
    },
    "datetime": "2025-08-16T15:02:08+00:00",
    "uuid": "fa8f9800-7ab1-11f0-8001-495775039095"
    },
  6. Off of this data, you can determine the channel - if it has “Recipient Email Address”, then you know the attributed event was via email.
  7. You can then create a new event for the profile that indicates the result of this. For example, a new event in the metric “Order Attribution” with a relevant payload. As you have more data from the API, you can add more context or data to this new custom event. For example:
    {
    "data": {
    "type": "event",
    "attributes": {
    "properties": {
    "Custom Event Property": "[Additional detail you want to add]",
    "Another Custom Event Property ": "[More detail you want to add]"
    },
    "metric": {
    "data": {
    "type": "metric",
    "attributes": {
    "name": "Order Attribution"
    }
    }
    },
    "profile": {
    "data": {
    "type": "profile",
    "attributes": {
    "email": "[Recipient Email Address]"
    }
    }
    },
    "time": "[Datetime from Placed Order Event]",
    "value": "[Value from Placed Order Event]"
    }
    }
    }

    You could also work with this data as is in another platform (.csv, data warehouse, etc).
  8. If you do create that event, it will be available throughout Klaviyo.

This could be run as a scheduled script on a regular basis - date range filtering would be helpful here. If you wanted to run this on Placed Order events between August 12 10 a.m. UTC to August 15 10 a.m. UTC, the URL would be:

https://a.klaviyo.com/api/events?include=attributions&filter=and(equals(metric_id,"your_metric_id"),greater-than(datetime,2025-08-12T10:00:00),less-than(datetime,2025-08-15T10:00:00))

If you qualify for Custom Actions, you could also run this in a flow triggered by a Placed Order event. In that case, you wouldn’t need to call Get Events, but just Get Event for the attribution data on the triggering Placed Order event.

Contributor I
August 18, 2025

Hi Klaviyo team, thanks for hosting this AMA!

We work heavily with Zenoti and are looking to expand what data we can pass into Klaviyo. Right now, the available fields are pretty limited through the integration, but ideally we’d like to bring in more custom properties such as next appointment time and other key attributes beyond what’s currently syncing.

In addition, is there a way to keep subscribers updated in both systems (from Klaviyo into Zenoti and from Zenoti into Klaviyo) so the platforms stay in sync?

Appreciate any guidance you can share!

Contributor I
August 18, 2025

Hi Klaviyo team! We’ve been trying to gain access to a Customer Success Manager for awhile. No luck. Any tips? Who should we reach out to for assistance and strategic support? 

Klaviyo Employee
August 18, 2025

Hi ​@Sana ,
Just wanted to share the documentation for zenoti/klaviyo integration in case you haven’t seen it yet.
https://help.klaviyo.com/hc/en-us/articles/15752724401691
https://help.klaviyo.com/hc/en-us/articles/15752461211547


As of now, the metrics mentioned above is what’s in scope of Klaviyo/Zenoti integration. However, I know that our partnerships team is aware of this request and I will make sure to pass your feedback also.

For keeping the subscribers updated in both systems, if Zenoti accepts webhooks, you could possibly utilize our flow webhooks to pass the Subscribed to List data→ https://developers.klaviyo.com/en/docs/how_to_add_a_webhook_action_to_a_flow#type-of-requests

If your account qualifies for the system webhooks feature, then you’d be able to pass the subscribed/unsubscribed from email/sms marketing data to Zenoti also→ https://developers.klaviyo.com/en/docs/working_with_system_webhooks

 

Klaviyo Employee
August 18, 2025

@ts2000 Hi there,
It depends on whether your account billing qualifies for the CSM.
Do you have a designated CSM?
My recommendation would be to reach out to support and they might be able to redirect you accordingly.
https://help.klaviyo.com/hc/en-us/articles/115001002272

Alex Rodriguez
Klaviyo Employee
Klaviyo Employee
August 18, 2025

I’d like to know how we can customize the data we can send from our website to klaviyo regarding the “recently viewed” products that are temporarily attributed to profiles. Right now we’d like to append the brand name of the products and use it to that same event. Can we??

 

We are using this blog on our regular campaigns (not flows) fyi


Also maybe some background as well on where is this data coming from? The klaviyo plugin?

 

Hi ​@sperezclavier Recently Viewed products are saved in a user’s profile though Klaviyo’s Viewed Product tracking. If your store is on Shopify, Magento or WooCommerce, this tracking script would have been added to your site automatically via the integration, and this will track Viewed Product events and recently viewed products (including brand). If you are using BigCommerce, please follow the steps here to install the tracking script. If you are using any of these ecommerce platforms and can’t see Viewed Product and recently viewed product data I recommend you to contact our Support Team so they can review your account and help you troubleshoot

 

If you have a custom build integration, you can use the following scripts on your product pages to  track both Viewed Product events and Recently Viewed products

<script type="text/javascript">
   var item = {
     "ProductName": item.ProductName,
     "ProductID": item.ProductID,
     "SKU": item.SKU,
     "Categories": item.Categories,
     "ImageURL": item.ImageURL,
     "URL": item.URL,
     "Brand": item.Brand,
     "Price": item.Price,
     "CompareAtPrice": item.CompareAtPrice
   };
   klaviyo.track("Viewed Product", item);
</script>
<script type="text/javascript">
klaviyo.trackViewedItem({
"Title": item.ProductName,
"ItemId": item.ProductID,
"Categories": item.Categories,
"ImageUrl": item.ImageURL,
"Url": item.URL,
"Metadata": {
"Brand": item.Brand,
"Price": item.Price,
"CompareAtPrice": item.CompareAtPrice
}
});
</script>

 

These scripts use functions of the klaviyo object, which is accessible on the front-end of your website when you install klaviyo.js (aka ‘the Klaviyo snippet’)