Skip to main content

Is it possible to create a segment of customers who have placed 2 orders or more over all time, but the first order contained a specific product.

I’ve spent a little while in the segment builder trying to replicate this, and I don’t think it’s possible in a klaviyo-only way - easy to create a segment of people who have placed 2 or more orders and have ordered a product which matches the SKU or other filter, but in order to narrow that down to the first order they placed containing a certain product, you may have to create a custom property and populate that from your own systems via API (or CSV export to a list which you then import to set the property).

API is better - it’s then self-maintaining if you trigger it every time someone purchases.

G


Welcome to the community @hkj 

Great question!

As @dartacus states, I don’t believe it’s possible in a segment without some additional work - adding a flow and custom property, which will allow you to create that segment and have it updated moving forward. I’ve used ‘blue_widget’ as the specific product by way of an example.

The flow will trigger on their first order for the specific product. So you’ll have a placed order trigger filter for the specific product and a profile filter to only include first-time orders (see below for Shopify for the product ‘’blue_widget’)). Any customer whose first order contains a blue_widget will have their custom property blue_widget_purchased_first_order set to ‘true’.

You can then create a segment using that custom property with the conditions ‘placed order is at least 2 over all time AND blue_widget_purchased_first_order = ‘true’. 

That will populate your segment as new orders are processed after the flow is live.

Including historical profiles who have purchased a blue_widget as their first order,  can’t be done directly in Klaviyo as exported segment data doesn’t include products ordered and date of orders.

You’ll need to create that list from your ecomm platform. Filter all orders containing blue_widget, export those as a csv. and then manipulate to extract customers where blue_widget was in their first order. Add a column to those profiles of ‘blue_widget_purchased_first_order’ and set all to ‘true’. Then import the email addresses and that additional custom property into Klaviyo mapped to ‘blue_widget_purchased_first_order’.

Your Klaviyo segment above should now contain historical 2+ order customers with blue_widget as their first order and the flow will keep that segment updated with new customers who meet those conditions,

Happy to hear from others on here if there’s a simpler solution!

Hope that helps

Andy

blue_widget first order flow - filters

 

blue_widget first order flow - custom property

 


Welcome to the community @hkj 

Great question!

As @dartacus states, I don’t believe it’s possible in a segment without some additional work - adding a flow and custom property, which will allow you to create that segment and have it updated moving forward. I’ve used ‘blue_widget’ as the specific product by way of an example.

The flow will trigger on their first order for the specific product. So you’ll have a placed order trigger filter for the specific product and a profile filter to only include first-time orders (see below for Shopify for the product ‘’blue_widget’)). Any customer whose first order contains a blue_widget will have their custom property blue_widget_purchased_first_order set to ‘true’.

You can then create a segment using that custom property with the conditions ‘placed order is at least 2 over all time AND blue_widget_purchased_first_order = ‘true’. 

That will populate your segment as new orders are processed after the flow is live.

Including historical profiles who have purchased a blue_widget as their first order,  can’t be done directly in Klaviyo as exported segment data doesn’t include products ordered and date of orders.

You’ll need to create that list from your ecomm platform. Filter all orders containing blue_widget, export those as a csv. and then manipulate to extract customers where blue_widget was in their first order. Add a column to those profiles of ‘blue_widget_purchased_first_order’ and set all to ‘true’. Then import the email addresses and that additional custom property into Klaviyo mapped to ‘blue_widget_purchased_first_order’.

Your Klaviyo segment above should now contain historical 2+ order customers with blue_widget as their first order and the flow will keep that segment updated with new customers who meet those conditions,

Happy to hear from others on here if there’s a simpler solution!

Hope that helps

Andy

blue_widget first order flow - filters

 

blue_widget first order flow - custom property

 

Thanks @bluesnapper. That’s a great solution. I was trying to achieve the historical orders part in Klaviyo too. Your solution clarifies that issue.


Reply