Auto-tagging products when price is lower than compare-at price

Topic summary

A user wants to auto-tag products with ONSALE when their price is lower than the compare-at price across 1000+ products in Shopify Flow.

Initial Challenge:

  • The built-in is_price_reduced:true query filter proved unreliable, sometimes returning products without compare-at prices set
  • Shopify Flow lacks native triggers for “product updated” or “price changed” events
  • The 100-product limit in Flow makes bulk operations difficult for large inventories

Solutions Identified:

  1. Third-party apps (confirmed working):

    • Mechanic app with pre-built template successfully solved the issue
    • Dedicated tagging apps from Shopify App Store also available
  2. Flow Companion extension (alternative approach):

    • Enable tracking for variant Compare-at price and Price fields in app settings
    • Use Product variant field changed trigger to detect price updates
    • Add conditional logic to apply/remove ONSALE tag based on price comparison
    • Can process all products without quantity limitations

The user ultimately resolved their issue using Mechanic’s pre-built template.

Summarized with AI on October 24. AI used: claude-sonnet-4-5-20250929.

Hi everyone,
I’d like to create a workflow in Shopify Flow that automatically checks my entire inventory and adds the tag ONSALE to products when their price is lower than the compare-at price.

I’ve already tried following several other posts and guides, but none of them worked for my setup.

I’ve attached a screenshot of my current workflow. In the image, you can see the part where I use Get product data to retrieve products. I tried filtering products with queries like is_price_reduced:true to only get items where the price is lower than the compare-at price, but I’m still not getting the results I expect.

Has anyone built something like this? What’s the best way to set up the flow so it scans all products and applies the tag correctly?

Thanks a lot!

In my experience, is_price_reduced is not very reliable.

IS_PRICE_REDUCED

An attribute evaluated based on the compare_at_price attribute of the product’s variants. With is_set relation, the rule matches products with at least one variant with compare_at_price set. With is_not_set relation, the rule matches matches products with at least one variant with compare_at_price not set.

For example, in my test store, first item returned does not even have “Compare At” price:

Then it depends on whether you have more than 100 products…

i have more than 1000 products, and every one of them has a compare price and a price. is it something i could do directly in the flow without the custom quiery?

Unfortunately, there is no nice solution in Flow (in my opinion).
The IS_PRICE_REDUCED attribute is not reliable, and Flow does not have triggers like “product updated” or “price changed”.
Given that you have more than 100 products, you’d need to implement some extra tagging to loop over all of your products.

In this case it may make sense to use an app designed for product tagging from the App Store (like this one, probably Leap Auto Tags | All‑in‑1 Tags - A smart way to automatically tag orders, customers & products | Shopify App Store)…
Or use another automation app, like Mechanic, which already has required automation (https://tasks.mechanic.dev/auto-tag-products-that-have-a-compare-at-price)

exactly as i did. i used Mechanic pre build template with another task andit went perfectly.

This can also be solved in Shopify Flow using triggers from the Flow Companion app, which extends Flow’s capabilities.

Here’s how it can be done:

In the Flow Companion app settings, enable tracking of changes to the product variant fields Compare-at price and Price.

After that, create a workflow that starts with the Product variant field changed trigger. Then check whether either the Compare-at price or Price field has changed

and if so, update the presence of the ONSALE tag depending on the minimum Compare-at price and Price values.

This workflow will automatically keep the ONSALE tag up to date whenever product prices change.

You can also run these actions once for all products in the shop without any limitations on the total product number. If that’s relevant, let me know and I’ll describe how to do it.

1 Like