Segment for Ordered Value Product on One Order, Not All

  • 21 August 2023
  • 3 replies

Badge +3

Hello! I am not even sure if this is possible, but I am looking for a way to make a segment for people who have ordered at least 2 times but less than 5, with one of those orders being at least $1k. Is that even possible? I see that the Ordered Product Value is an aggregate value, which would explain why the parameters I am putting in aren’t working. Is there a way to make sure at least one of the orders was over 1k? Thanks so much!



Best answer by bluesnapper 21 August 2023, 12:01

View original

3 replies

Userlevel 7
Badge +39

Welcome to the community @angie.macc 

Great question!

I don't believe this is possible using a segment by itself. As you say, order metrics will be aggregated over a timeframe.

However, there is a solution using a flow, though it's quite involved but straighforward! I’ve tested this.

Create a VIP placed order flow with a trigger filter of $value is at least $1000. 
Within this flow add an 'update profile property' that creates a new profile property 'order>1000' (or call it 'VIP' etc) and sets a value of 'yes'. When any customer places an order that is $1k or greater, 'order>1000' will be set to 'yes' on their profile.

Back-populating historical customers and testing 
For this step, set your 'update profile property' to manual so you can review eligible contacts to make sure all is working as expected.

To include historical orders, add a time delay before the update profile property step, as far back as you want to include eligible contacts. I've used 365 days. Then under 'Manage Flow' select 'Add past profiles' and Klaviyo will back-populate with customers who have placed an order that is $1k or greater over your chosen time delay period. 

I've shown that set-up this below.

Once you've back populated, check a sample of eligible contacts at the 'update profile property' step to see they are correct . They will all be in 'waiting'.

Some data manipulation...
The historical VIP contacts in your flow's waiting list will stay stuck there - unlike email steps, there is no way to manually trigger the property update. So you'll need to do some exporting/importing...

  1. Export your historical VIP customers (the flow's waitlist) as a CSV, add a new field 'order>1000', and set to 'yes' for all contacts.
  2. Create a temporary Klaviyo list. Call this list, say 'VIP_temp', and set to single-optin.
  3. Import your historical VIP customers from step 1 into the VIP_temp list. You'll be prompted to map the new field ('order>1000') to create it in Klaviyo. IMPORTANT: ensure you select 'No, import without updating subscription status' when prompted; we don't want that status changed! I suggest also only importing a handful of contacts to begin with, just to make sure all is OK.

Steps 1 to 3 will take care of flagging your eligible historical customers as VIP in Klaviyo ('order>1000' = 'yes')

Final flow steps

  1. Clone the above flow (you can delete the orginal flow).
  2. Delete the time delay
  3. Set 'update profile property' to live.

This flow will flag new customers as 'order>1000' = ‘yes’ if their order value is > $1k.

Create your VIP sgement
Next step is to create your VIP segment. Use 'Properties about someone' where 'order>1000' = 'yes' plus your other criteria. You should see your historical VIPs in the segment and new ones will be added as they place an eligible order.

Hope that makes sense and helps! Any questions, let me know.

If any other community members have a better way to achieve this, please comment :-)




Badge +3

This is incredible! I truly appreciate how thorough you were in your explanation. It worked and I learned so much!! AMAZING!!!

Userlevel 7
Badge +39

My pleasure @angie.macc so pleased it worked for you!