This is 3 years later for a reply but if anyone is having this issue it is worth mentioning the 2023 solution.
@evaldas_92 is 100% correct, When using a condition for custom attributes, you will loop over them. the key is JUST the name of the attribute and NOT attribute[key]. If you are unsure, you can see the key’s name when you click on the custom attributes on the order.
Now the main reason I posted this is that if you are trying to USE values in the order attributes, you need to know that Shopify Flow uses the GraphQL api. So reference: https://shopify.dev/docs/api/admin-graphql/ for the names in your code.
Secondly, you can use full liquid code in there to set a variable.
So if you can use
{%- liquid
assign theAttributeYouCareAbout = "defaultValue"
for attribute in order.customAttributes
if attribute.key == "theAttributeKey"
assign theAttributeYouCareAbout = attribute.value
break
endif
endfor -%}{{ theAttributeYouCareAbout }}
I have used this code and replaced the default value as well as the name of the attribute key and by storage variable in a working shopify flow.
Use as you see fit!
In the worst case if you can’t sort it out using shoify flow, you can always create a custom private app with a webhook and write it in your language of choice (Python, Javascript..etc)