Skip to main content

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!

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.


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.


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