Woocommerce # of orders custom property in klaviyo

  • 26 July 2022
  • 7 replies

Badge +3

I would like to have a custom property that has a subscribers # of orders through our Woocommerce store.

So when a customer completes an order it would update that property by one each time.

The final goal is to use this property value for blocks in my email templates. Depending on the number of orders a different offer would be shown.

I’m trying to use zapier to set this up but run into a problem with the required “subscriber” data field.


Best answer by DavidSandel 26 July 2022, 23:34

View original

7 replies

Userlevel 5
Badge +19

This is a standard metric in the Woocommerce <> Klaviyo plugin. No need to use zapier. If that event metric isn’t tracking, you may have other problems on your website. 

Badge +3

That’s great to hear! 
Klaviyo is indeed tracking orders from Woocommerce.

Now which condition would I use to only display a block to folks who have ordered once or have never ordered before?


Userlevel 5
Badge +19

You may want to look up the Klaviyo help docs on segmenting.

Badge +3

Thanks David. Yes I could segment an email for folks who made a purchase and those who didn’t. I already have flows that do just that.

What I’m trying to do is show/hide a block in a template depending on purchase history.
“Conditional Settings” is what i’m working with here.


Userlevel 5
Badge +19

They’re called dynamic blocks in the email editor. Klaviyo has a really great resource for that as well. 

Badge +3

Yes, I’m reading about this and i’m excited to use this in my templates.

Unfortunately I’m unable to figure out the condition I would need to use here to show/hide a block if the customer made a purchase with woocomerce.

Userlevel 7
Badge +61

Hi @RedPhive,

Thanks for sharing this question with us. And thank you @DavidSandel for your help on this.

@RedPhive it’s worth mentioning that show/hide logic can be based on event data that includes information about a given event (i.e. the item name, item price etc.) rather than a discrete event (i.e. a placed order or a started checkout). It can also be based on profile data i.e. custom properties or profile properties.

With that in mind, you could create a segment-triggered flow (you’ll want to build a segment defined as: What somebody has done > Placed Order at least once over all time.) Along with an update profile property action to update all these profiles (see example below). 

The idea here is to use the latter method (based on profile data) to achieve your goal. The trigger would be the segment of profiles you want to use for the show/hide logic and then you’ll backpopulate the flow using the second radio button: “Schedule for each step relative to when I click the back-populate button”. That will update all the profiles in this segment with “purchaser = true” (tagging the profiles with this property, universally).

You could then use this newly created profile property in the show/hide logic in your emails for your purchasers using the aforementioned guide.

I hope that’s helpful.