Skip to main content

Why Can’t I Use Certain Event Data in Segments or Flow Splits?

Hey Klaviyo Community,

We’ve seen a lot of questions come up around using event data in segments or conditional splits — especially when it comes to fields like product names or categories from an order. If you’ve ever run into a situation where you think data should be available for filtering, but it’s not, this post is for you.

 

The Core Concept: Top-Level vs Nested Data

In Klaviyo, only top-level event data can be used in segments and conditional splits.

But what does that actually mean?

 

Top-Level Data = Filter-Friendly

Top-level data is any field that sits directly on the event — no digging through arrays or nested objects needed.

Example — Placed Order Event:

{

  "event": "Placed Order",

  "email": "customer@example.com",

  "total_price": 49.99,

  "shipping_country": "USA"

}

 

These fields (total_price, shipping_country, etc.) can be used in filters and splits, like:

  • total_price > 50
     
  • shipping_country = USA
     

 

Nested Data = Not Directly Usable in Filters

Nested data lives inside arrays or objects within the event. That makes it inaccessible for segments and splits — even though it’s still viewable in the event’s JSON.

Example of Nested Data:

"items": [

  {

    "product_name": "Wireless Headphones",

    "price": 29.99

  }

]

 

You won’t be able to create a filter like:

  • items.product_name CONTAINS "Headphones"
     

 

So… What Can You Do?

If you want to filter based on product name or other nested info, consider flattening the data before it reaches Klaviyo.

Instead of:

"items": [

  {"product_name": "Wireless Headphones"},

  {"product_name": "USB Charger"}

]

Send something like:


 

"all_product_names": "Wireless Headphones, USB Charger"

 

Then you can filter with:

  • all_product_names CONTAINS "Wireless Headphones"
     

 

Quick Summary

Can I use this in Segments/Flows?

Top-Level Data

Nested Data

Segments

Yes

No

Flow Conditional Splits

Yes

No

Email Templates (event variables)

Yes

Yes

 

If you’ve ever been confused about why some data works and some doesn’t — you're not alone. Hopefully this helps clarify how Klaviyo handles different types of event data.

You can also find a solution recipe here that highlights how to flatten data: Transform event data to access nested attributes for segmentation & Flow filtering

 

Have tips or creative workarounds for using nested data? Share them below and let’s learn from each other.

 

 

Be the first to reply!