Skip to main content
Solved

Does "tags contains" in Klaviyo check for an exact match or partial match?


Forum|alt.badge.img
  • Contributor I
  • 1 reply

I would like to clarify how the "tags contains" filter works in Klaviyo, specifically when using it in a Fulfilled Order Triggered Flow.

For example, if an order has the following tags:
['subscription-count:2', 'VIP', 'special-offer']

And I set the condition in the flow:
tags contains 'subscription-count:2'

Will this condition match only when 'subscription-count:2' exists as a separate tag, or will it also match other tags that contain 'subscription-count:2' as part of a longer string (e.g., 'subscription-count:20')?

I understand that tags are stored as a list, so I assume the "contains" function checks whether the exact tag exists within the list rather than performing a partial match within individual tags. Could someone confirm this behavior specifically in the context of a Fulfilled Order Triggered Flow?

Thank you!

Best answer by zacfromson

Hi there!

Yes, in Klaviyo, when using the “tags contains” filter in a Fulfilled Order Triggered Flow, the function checks whether the specified tag exists as a separate entry in the list rather than performing a partial match within individual tags.

Since tags are stored as a list, the “contains” function will only match exact tags in that list. In your example:

['subscription-count:2', 'VIP', 'special-offer']

If your condition is set to:

tags contains 'subscription-count:2'

It will match because 'subscription-count:2' exists as a separate tag.

However, it will NOT match a tag like 'subscription-count:20', because 'contains' checks against individual list entries, not substrings within them.

If you want to match a broader set of tags that include 'subscription-count:2' in any part of the tag string, you’d need to structure your tagging system differently or use a custom segmentation approach.

If you need a custom segmentation approach to match broader tag variations in Klaviyo (e.g., tags that contain 'subscription-count:2' but may have other characters appended, like 'subscription-count:20'), here are some possible solutions:

1. Use a Profile Property Instead of Tags

  • If your tags follow a structured format (subscription-count:X), consider storing this as a profile property instead of a tag.
  • You can then use “Properties About Someone” conditions in Klaviyo segments or flows with a “contains” filter for more flexible matching.

Example:

  • Store subscription-count:2 as a profile property (subscription_count = 2).
  • Use a filter like “Profile Property contains ‘subscription-count:2’” in segmentation.

2. Use Dynamic Lists Based on Tag Patterns

  • If storing the data as tags is necessary, you can create a dynamic list where users are added if their tag contains "subscription-count:2" in any form.
  • To do this, you’d need an external integration (like a Zapier automation or custom API script) to check for partial matches and update a custom list in Klaviyo.

Hope that helps! Let me know if you need further clarification.

View original
Did this topic or the replies in the thread help you find an answer to your question?

3 replies

Forum|alt.badge.img

In Klaviyo, when using the "tags contains" filter in a Fulfilled Order Triggered Flow, it checks whether the exact tag exists within the list rather than performing a partial match within individual tags. So, if your order has ['subscription-count:2', 'VIP', 'special-offer'], the condition tags contains 'subscription-count:2' will match only if that exact tag is present in the list. It will not match a tag like 'subscription-count:20', since Klaviyo checks for full tag matches, not partial string matches within tags.


zacfromson
Problem Solver III
Forum|alt.badge.img+4
  • 2025 Champion
  • 25 replies
  • Answer
  • March 5, 2025

Hi there!

Yes, in Klaviyo, when using the “tags contains” filter in a Fulfilled Order Triggered Flow, the function checks whether the specified tag exists as a separate entry in the list rather than performing a partial match within individual tags.

Since tags are stored as a list, the “contains” function will only match exact tags in that list. In your example:

['subscription-count:2', 'VIP', 'special-offer']

If your condition is set to:

tags contains 'subscription-count:2'

It will match because 'subscription-count:2' exists as a separate tag.

However, it will NOT match a tag like 'subscription-count:20', because 'contains' checks against individual list entries, not substrings within them.

If you want to match a broader set of tags that include 'subscription-count:2' in any part of the tag string, you’d need to structure your tagging system differently or use a custom segmentation approach.

If you need a custom segmentation approach to match broader tag variations in Klaviyo (e.g., tags that contain 'subscription-count:2' but may have other characters appended, like 'subscription-count:20'), here are some possible solutions:

1. Use a Profile Property Instead of Tags

  • If your tags follow a structured format (subscription-count:X), consider storing this as a profile property instead of a tag.
  • You can then use “Properties About Someone” conditions in Klaviyo segments or flows with a “contains” filter for more flexible matching.

Example:

  • Store subscription-count:2 as a profile property (subscription_count = 2).
  • Use a filter like “Profile Property contains ‘subscription-count:2’” in segmentation.

2. Use Dynamic Lists Based on Tag Patterns

  • If storing the data as tags is necessary, you can create a dynamic list where users are added if their tag contains "subscription-count:2" in any form.
  • To do this, you’d need an external integration (like a Zapier automation or custom API script) to check for partial matches and update a custom list in Klaviyo.

Hope that helps! Let me know if you need further clarification.


Forum|alt.badge.img
  • Author
  • Contributor I
  • 1 reply
  • March 7, 2025

Thanks a lot! Now I understand how 'tags contains' works exactly. I'll adjust my setup accordingly.


Reply