Issue: An OR condition in Shopify Flow evaluating on customer tags returns false unexpectedly. The setup used “At least one of customer/tags …” with OR, but customers without tags caused the condition to fail.
Root cause: When the customer’s tag list is empty/null, item-level conditions aren’t evaluated. The list operator (“at least one of”) receives an empty list and evaluates to false.
Guidance provided:
Use “None of customer/tags” to check that a tag does not exist; it returns true when the list is empty and false if the tag is present.
Alternatively, invert logic: switch to “None of” with “includes,” change OR to AND, and add “not empty and exists” as needed to match intent.
Be careful to avoid double negatives. Shopify Flow documentation on “does not include” and “none” examples was referenced.
Artifacts: Screenshots illustrate the Flow condition configurations; links to official docs were shared.
Outcome: The original poster implemented a simpler “None of” style condition (per screenshot) that achieves the desired behavior. The issue appears resolved, with no open questions.
Summarized with AI on December 16.
AI used: gpt-5.
I am at a loss as to why this condition in flow is evaluating to false?
Should the second condition not be true, making the whole condition true, or am I setting the second condition incorrectly for it to see the tags as empty?
Looking at the screenshot, it seems the “OR” condition might be evaluating to false because of how the conditions are structured. In Shopify Flow, if any one of the conditions isn’t formatted correctly or doesn’t match the exact field data you’re targeting, the entire “OR” condition could fail. Make sure each condition is independent, checking the exact data field values and formatting. Double-check that the fields you’re comparing are valid for the “OR” logic to apply correctly.
This happens when there are no tags on the customer. The list of customer tags is empty and so it is not true that “at least one of customer / tags” meets the conditions specified. Another approach would be to use “None of customer / tags” instead and update the conditions to be “includes”, change the “OR” to “AND”, and “not empty and exists”:
If the list is null, the condition operators for each of the fields in the list have nothing to operate on, so they aren’t evaluated at all.
Instead the list operator is used (none of, at least one of, or all of). In the case of “at least one of”, if it gets a null then it’s false.
So using “None of” is the best approach if you are trying to check that a tag doesn’t exist. If the list if empty, it will return true. If the list has your tag, it will return false. Be careful not to use a double-negative.