Segment by age - kid's store

  • 4 October 2023
  • 6 replies

Userlevel 1
Badge +4

Hi everybody!

I wanted my client (who sells clothes and toys for kids) to be able to segment their customers according to the age of their kid or kids.

I also wanted this segment to be dynamic and to update automatically, so a customer who’s baby grew up into a toddler would receive age appropriate products and recommendation throughout the years. 

I added a birthday field in the manage preferences page and was able to create two segments for kids aged from 0 to 3 years old.

However, for my 4-5 years old and my 6+ years old segment, Klaviyo applies a time limit and the number of days since their birthday is too high for the platform to deal with. 




I’ve been racking my brain since yesterday to try and find a way to achieve this. I’ve tried creating flows that would update the profile property after a certain number of days or every birthday, I’ve tried collecting the data differently, but I can’t figure it out.

Can anybody think of a solution? It would be so so cool for my client to be able to send personalized emails according to the age of their child, since I feel that +1 year every birthday should be quite a simple value to update in Klaviyo.

Thank you so much in advance for your time!


Best answer by bluesnapper 5 October 2023, 18:58

View original

6 replies

Userlevel 7
Badge +59

Hi @RosieClem, glad to see you back here in the community.

Have you tried switching it from “days” to “weeks” for the time parameter?  Perhaps that will give you enough timeframe if you calculate it out? 

See here: 


Does that work?


Joseph Hsieh // // twitter: @retenion 

Userlevel 1
Badge +4

Hi @retention 

Yes I tried and it doesn’t work 😔

It really is a time limit, not a digit limit.

Userlevel 7
Badge +39

Hi @RosieClem 

A real head-scratcher!

I wonder if this will work? I’ve no way of testing with my set-up.

For clarity (and my sanity :-) , I’ve used the birthday field, weeks rather than days, and:

Age 0 to 3 = ‘baby’

Age 4 to 5 = ‘toddler

Age > 6 = ‘child’.

You can adjust those values to suit.

I suggest testing with the messages at manual for a while to check this works OK!

Key points so you can check my logic is OK:

  • The flow triggers on their (child’s) birthday so there’s a fix required to set the values initially (see FIX below).
  • The 1st conditional split checks if the birthday is between 0 to 3 years ago (0 to 156 weeks). If it is (YES), the custom field age_group is set to ‘baby’ 
  • If the birthday is NOT between 0 to 3 years ago, the 2nd conditional split checks if it was between 4 to 5 years ago (157 to 260 weeks). If so, the custom field age_group is set to ‘toddler’
  • If NO then we know they are over 6 years old (more than 260 weeks ago) so, the custom field age_group is set to ‘child’ 
  • The flow is set to repeat every year on their birthday so the above logic will be evaluated for reach contact annually and the custom field age_group will be updated as appropriate.

Obviously, you can also create segments from age_group for campaigns.

Now the FIX?

Because they only start the flow on their birthday, I think you’ll need a clone of the flow to update the age_group values initially once they’ve submitted your form with the birthday. That flow would need to trigger when they subscribe to your list. It will need a conditional split with ‘birthday’ = true (boolean) with the NO branch as an exit. That should stop new contacts who do not add a birthday (I assume it’s optional) from being tagged as age > 6 years. I hope that makes sense!  

Let me know if that solution looks viable or if I’ve missed something - that’s very possible as it’s late and my brain is fried!





Userlevel 1
Badge +4

Hi @bluesnapper!

Thank you for your idea! 

i’ll check with my client since they already have and use Shopify collections that are age oriented (0-12 months, 2-3 years old, 4-5 years old and 6+ years old).

We’ll either try to use the same logic on their Shopify or try to convert their existing collections into the Klaviyo age groups that we are able to create. 

My other solution was to base my segments based on purchases. If someone bought an item in size 4 years old less than 2 years ago, put them in the 4-5 segment, and if someone bought an item in size 4 years old more than 2 years ago, to put them in the 6+ segment, etc.

Thank you so much for your time and your brain juice! 


Badge +1

@RosieClem did you ever find a solve for this? I’m running into the same issue for age-based segmentation that I want to keep dynamic, but we can’t segment based off purchase history. We run into the time limit issue when attempting to apply segments the way @bluesnapper had suggested, unfortunately :(.


I considered running a flow that would trigger on the profile’s birthday and add 1 to an “age” field, but I can’t find a way to make Klaviyo do math. I’m out of other ideas and would love to know what you came up with in the end.

Userlevel 1
Badge +4

Hi @RSheelam

No I haven’t! I put too many hours on this for my client, especially since I didn’t have a clear solution ahead. 😞

However, I just unlocked some hours of training and I was planning on trying again with segments and flows, as you said!

I will tag you here and let you know what I did, if I can make it work 😊