How to set up multi-location low inventory alerts on Shopify flow?

AI-generated summary

Merchants are trying to create Shopify Flow alerts when a product variant drops below a low-stock threshold at a specific warehouse/location, rather than receiving alerts based on total or any-location inventory.

The key issue is that Flow’s inventory data is exposed through inventoryLevels, a list of stock levels for all locations. Conditions using “at least one” can match a location that is already low, so a stock change at one warehouse may trigger an email for another warehouse that also meets the low-stock condition.

Suggested approaches include checking both the location name and available quantity within the same inventory level, and using variant metafields to store prior state. A later detailed workaround recommends creating one true/false metafield per location, one workflow per location, sending an alert only if that location is below threshold and its alert flag is not already true, then resetting the flag once stock rises above the threshold.

The discussion remains partly open: Shopify Flow can support a workaround, but native location-specific “changed inventory level” handling appears limited, and some users still report duplicate or wrong-location alerts without metafield-based state tracking.

Hey there!

Im trying to use Shopify flow to create an email notification for every time certain variant quantity is changing from 2, to 1. The difficulty is that i have 3 different warehouses, and I want it to be separated for each one of them.

That way, if a variant is low in quantity in only one of the warehouses, I will be notified that I need to transfer more of it to that warehouse.

Is there any solution available with Shopify flow? or is there any inventory management systems recommended?

Thanks!

Search for “location” in the flow template library and you’ll see a few patterns to use…it is possible, but the data is hidden a bit under variant / inventoryItem / inventoryLevels

Thanks!
Just to make sure, it takes the location from the item inventory fulfillment location?
I tried using it, but it seems that “location” refers to “product variant”/“inventory item”/ “inventory levels”. Because the condition asks for at least on of the mentioned above name, even if a certain quantity went bellow the criteria I adjusted, it doesn’t know where it went below the par levels because all of my products were available in a certain time in the 3 warehouses.

The “at least one” part is because “Levels” is a list where each item is the inventory for that location. So what you have in that image is correct. You would check that name and for the same inventory level you check the available amount.

Because the “if” is for at least one of, it is not showing the correct location where the inventory levels went low, because the item is available in all of my warehouses, it is necessarily will use the first location in the flow as the one correct for the flow, because there is necessarily one of the products variant locations/levels for that location.
I talked with Shopify support and it seems that currently there is no solution with Shopify flow.

I am not following your description of the problem here. Let’s say you have 2 locations (A and B). Each location has it’s own inventory. You want to check each separately.

This is located at Product Variant / Inventory Item / Inventory Levels, which is a list. If you have 2 locations, it’s 2 items in the list.

In a Flow condition you would check that a single inventory level has both the location name of A and the available quantity of 0 (or whatever number/operator you need). You for location B, you would add another condition, changing the location to B. This works - I’ve built it many times now.

You are right. However, because each warehouse has the product in inventory, and the condition is that at least one of the product inventory levels/ variants/ inventory item is the location name, it doesn’t matter in what location the product is went out-of-stock, because each of the location is going to be matched with that condition. Maybe can you share the flow template?

Hey Paul!
Thank you for your help, I tried using your template and it is indeed working very well. However, I did notice for one main issue, let me know what you think.
There can be a situation where an order is placed from a specific location, however there is low quantity in a different location. For example, today i issued that scenario.

Location A Product quantity - 1
Location B Product quantity - 0
Location C Product quantity - 9

Then, an order has been placed from Location C, and the product variant quantity changed. Because i set up the condition for quantity to be less than 2, I received a notification as there is a low quantity in location A, because he is the first location checked in the flow. In that issue, it wasn’t a problem. But when there will be low quantity in two places, and one will go below the par levels, it may send me a notification for the location which is already low in quantity, and not the one that has been changed below the levels. I hope I’m describing the issue well enough..
I configured the conditions as you described:

Do you think there is any solution for this?
Anyway, thank you so much for your help, you already helped me a lot.

Yeah, in the template this is solved by storing the prior value of the inventory in a variant metafield and checking that value as well. Ideally this would be solved by having the event / trigger provide all of the prior location data. That may happen, but it’s going to take awhile.

Alright, Thanks!

We are having the same issue with this. We have installed your suggested template, and have added the metafield, but the email sends for both locations when the stock has only changed in one? We used your template as is, but on the flow run history, it looks the condition is looking at the full list of locations not just one, and there seems to be no way to change this?

Which template? Need more detail about your specific setup. If you used the one with metafields, you need to add the correct namespace and key to your workflow.

Hi

It’s the one in the example above with metafields. I have created a flow for each location, and a unique metafield for each one and both flows work, but when the quantity changes in one location it triggers the flow for the other location as well because both locations are in the same list and the same products are stocked in both locations.

I’ve had the same issue,

I’ve been trying to get emails with product name, qty, once inventory from location A reaches less than 3 units. Same thing for location B, however I’m getting emails about location B’s inventory and location B is getting emails about my locations low inventory alerts.

I’d recommend starting your own thread and adding more detail about your existing setup.

The noise usually comes from checking “Inventory Levels” in the condition — that
returns every location, so it fires even for a site that was already low. The
cleaner path is to key off the trigger: the inventory-quantity-changed trigger runs
for the specific location that changed, so build the condition around that changed
location’s new quantity rather than looping all locations.

Two things that kill the ambiguity:

  • condition on the changed location’s available ≤ your par (from the trigger), not a
    query across all inventory levels;
  • put the location name + new quantity right in the email body — so even when two
    sites are low, you instantly see which one actually fired.

Are you routing alerts to different people per warehouse, or just want the email to
say which location triggered?

I build Stockwell, a low stock alert app. Everything below is plain Shopify Flow though, no app needed.

The reason people in this thread keep getting alerts for the wrong location: the Product variant inventory quantity changed trigger fires for the variant, not for a location. It never tells you which location changed. So a condition like “Warehouse A available is at or below 1” is true on every stock change anywhere, for as long as Warehouse A stays low. A sale at Warehouse B sends you the Warehouse A email again.

The fix is to remember, per location, that you already sent the alert. One true or false metafield per location does it.

1. Create one flag per location

Settings → Custom data → Variants → Add definition. Type: True or false. One per location, for example:

  • stock_alerts.warehouse_a_alerted
  • stock_alerts.warehouse_b_alerted
  • stock_alerts.warehouse_c_alerted

2. Build one workflow per location

Trigger: Product variant inventory quantity changed

Condition 1 (all must be true):

  • At least one of productVariant / inventoryItem / inventoryLevels where location / name is equal to Warehouse A and available is less than or equal to 1
  • The variant’s warehouse_a_alerted metafield is not true

Then:

  • Send internal email. Put the location in the subject so nobody has to guess, for example {{productVariant.sku}} is low at Warehouse A
  • Update product variant metafield: stock_alerts.warehouse_a_alerted = true

Otherwise, add Condition 2:

  • At least one of inventoryLevels where location / name is equal to Warehouse A and available is greater than 1
  • The variant’s warehouse_a_alerted metafield is true

Then:

  • Update product variant metafield: stock_alerts.warehouse_a_alerted = false

Duplicate the workflow for each other location, changing the location name and the metafield.

What you get

One email when a location first drops to your number. Nothing while it stays low, even when other locations sell. A fresh alert only after that location is restocked above the number and drops again.

Two things worth knowing:

  • If a location is already low when you switch this on, you get one email for it on the next stock change. That is expected.
  • Type the location name exactly as it appears under Settings → Locations. If someone renames the location, the match fails silently.

I wrote up why the total across locations hides these stockouts in the first place, with examples of picking a different number for each location: Low Stock Alerts Across Multiple Shopify Locations

@Nadav1 Shopify Flow can handle parts of this, but for location-specific inventory thresholds, you may need a dedicated inventory app or custom workflow. I’d first check whether Flow can access the inventory level for each location in your setup. If not, an inventory management system with location-based low-stock alerts would be more reliable.