Shopify Flow inventory recipes: 5 automations that actually hold up
Five Shopify Flow inventory recipes with exact triggers and actions — receiving notices, negative-stock watchdog, weekly digests — plus Flow's limits.
InventoryX is in development and not available today. ClearStock is the live Shopify app.
Short answer: Shopify Flow is a free automation app (Basic plan and up) where a trigger — an event like "inventory quantity changed" — starts a workflow of conditions and actions such as tagging, emailing, or updating records. For inventory work it's genuinely useful for notification and bookkeeping recipes: shipment alerts, negative-quantity watchdogs, scheduled digests. It is not a reorder engine. Below are five recipes built from verified triggers and actions, followed by an honest list of what Flow can't do for your stock (Shopify Help Center, "Shopify Flow," accessed October 2026).
How the recipes are built
Every workflow is the same shape: trigger → (optional) condition → action. Triggers fire on store events; conditions branch on the data the trigger carries; actions do the work. The inventory-relevant triggers you'll use below, verified against the Flow trigger reference as of October 2026:
| Trigger | Fires when |
|---|---|
| Inventory transfer ready to ship | A transfer is marked ready to ship — stock is now committed at the origin |
| Inventory transfer completed | All items on a transfer are received and available at the destination |
| Product variant inventory quantity changed | Any quantity change on a variant — sales, adjustments, imports, app writes |
| Product variant out of stock | A variant's available quantity reaches zero |
| Scheduled time | A schedule you set — hourly, daily, weekly |
The actions used: Send internal email (email to you or staff), Add product tags, Get product variant data, Log output. Everything below is buildable on the Basic plan; only the Send HTTP request action is plan-gated above Basic.
Recipe 1: receiving heads-up on transfers
Problem it solves: destination staff learn about a transfer when a box shows up, so nothing is staged to receive it.
| Setting | |
|---|---|
| Trigger | Inventory transfer ready to ship |
| Action | Send internal email to the destination location's manager |
| Email body | "Transfer {{title}} is committed and heading your way. Expected arrival: {{expected arrival date}}. Stage a receiving bin." |
That's the whole workflow. It works because "ready to ship" is the moment the origin commits the stock (per the transfers documentation, committed inventory is set aside and can't be sold) — the earliest possible warning that a shipment exists. If you run transfers between a warehouse and a retail location on any rhythm, this recipe costs ten minutes and removes an entire category of "wait, that arrived today?" For the supplier-shipment counterpart — incoming stock from POs rather than your own locations — the same email pattern applies at PO-receiving time (the purchase order guide covers the native PO workflow).
Recipe 2: put-away confirmation loop
Problem it solves: transfer completed ≠ stock on the sales floor. Received units sit in receiving bins while the location's counts and pick paths still think they're shelved.
| Setting | |
|---|---|
| Trigger | Inventory transfer completed |
| Action | Send internal email to the destination manager |
| Email body | "Transfer {{title}} fully received. Put away and confirm by reply." |
The reply-to-you confirmation is the point: an email nobody has to answer is an email nobody reads. You're buying a put-away check with a human on the other end. For what happens during the receive step itself — accept/reject/cancel quantities — see the transfers workflow guide for the supplier-receiving counterpart.
Recipe 3: negative-quantity watchdog
Problem it solves: quantities slip below zero through selling-before-receiving, import mistakes, or app sync gaps, and nobody notices until reporting is polluted.
| Setting | |
|---|---|
| Trigger | Product variant inventory quantity changed |
| Condition | {{inventoryQuantity}} is less than 0 |
| Action | Send internal email: "NEGATIVE STOCK: {{product title}} / {{variant title}} at {{location}} now {{inventoryQuantity}}. Fix today." |
This is the recipe most stores don't think to build because negative stock sounds impossible. It isn't — the inventory CSV accepts negative quantities as valid values (per Shopify's CSV documentation, as of October 2026), and stock sold before it was received produces exactly this state. Every hour it persists, your velocity and reorder data for that variant is fiction. The full repair procedure is its own topic; the inventory-not-updating diagnostic covers the sync-gap causes that often produce it. One caveat: on high-churn catalogs this trigger fires often; route it to a folder you actually check, and fix the causes rather than living with the alerts.
Recipe 4: weekly low-availability digest
Problem it solves: you don't want a ping every time a variant dips; you want one email, once a week, listing what's running thin so Monday's buying session starts with a list.
| Setting | |
|---|---|
| Trigger | Scheduled time — every Monday, 7:00 a.m. |
| Action | Get product variant data (filter: available quantity below your threshold) |
| Action | Send internal email with the results |
Two honest notes on this one. First, the per-variant threshold-alert version of this problem — "tell me the moment SKU-X crosses 5 units" — is a distinct recipe with its own tradeoffs, covered in the low-stock alert guide; the digest here is deliberately the batch version. Second, "Get product variant data" pulls variants for you to filter in the workflow; on a multi-thousand-variant catalog, keep the filter tight or the email becomes unreadable.
Recipe 5: tag overstocked variants for review
Problem it solves: slow movers accumulate invisibly. You want them flagged where you'll see them — on the product itself.
| Setting | |
|---|---|
| Trigger | Scheduled time — first Monday monthly |
| Action | Get product variant data |
| Condition | Available quantity is greater than your review threshold (say, 90 days of typical supply — you set the number from your own data) |
| Action | Add product tag stock-review |
The honest limitation is baked into the recipe: Flow can check quantities, not movement. It can't compute sales velocity, so "overstocked" here means "a lot of units sitting there," not "selling too slowly relative to stock." That's why the tag says review, not dead — a human looks at the tagged list each month alongside actual sales before deciding anything. Treat the threshold as an assumption you tune quarterly, not a law. (If you want the classification math done properly, the slow-moving inventory guide covers detection; this recipe just automates the flagging.)
What Flow can't do for your inventory
Stated plainly, because every Flow tutorial skips it:
- No purchase-order triggers. As of October 2026, Flow's trigger list has no purchase-order events — you can't automate "remind me this PO is 10 days overdue" natively. The closest substitute is a scheduled-time workflow that reminds you to check the Transfers/PO pages, which is a calendar reminder with extra steps. (What native POs do and don't do is covered in the purchase order guide.)
- No velocity, no reorder math. Flow reacts to events and filters data; it doesn't calculate demand. Any recipe that needs "how fast is this selling and how much should I buy" needs to happen outside Flow.
- No threshold state. Conditions evaluate the data attached to the trigger. "Available below 5" works on a quantity-changed event or a scheduled query; "below 5 for 3 days" requires workflow gymnastics you don't want to maintain.
- It writes nothing back to your counts. By design, the actions above never adjust inventory quantities. Recipes that could (via the Send Admin API request action, which exposes most GraphQL mutations) are possible on higher plans — and are exactly the kind of auto-executed change to be careful with. An automation that edits your stock numbers without a human reviewing is a data-corruption risk, not a convenience.
And the layer above: buying lists, days-of-cover, per-SKU reorder quantities with lead times — that's inventory planning, not automation. We are building InventoryX for that layer, and to be clear about architecture, it does not run on Flow — it's a standalone app watching your inventory data and handing you a buying list. Flow remains the right tool for the notification plumbing around it.
Common questions
Can Shopify Flow send alerts when inventory is low? Yes — two ways. A per-event alert uses the Product variant out of stock trigger (fires at zero), or the quantity-changed trigger with a condition below your threshold. A batch version uses the Scheduled time trigger with Get product variant data to email a weekly list. Both are buildable on the Basic plan as of October 2026.
Does Shopify Flow cost money? The Flow app is free to install and available on Basic, Grow, Advanced, and Plus plans. Some features are plan-gated — for example, the Send HTTP request action requires Grow or above, and usage limits follow your plan's API allowances (Shopify Help Center, accessed October 2026).
Can Shopify Flow update inventory quantities automatically? Technically yes, via the Send Admin API request action on qualifying plans, but it's rarely wise. An automation writing stock numbers without human review is how phantom quantities get manufactured. The recipes that hold up long-term are notification- and tag-based; keep quantity changes manual and logged.
Why didn't my Flow workflow run? Most often the action's required data was missing — actions only receive data from the trigger or a Get data action, and a mismatch stops the run with an error. Check the workflow's run history in Flow for the error message, confirm the trigger fires on the event you expect, and verify staff permissions if the workflow was turned off.
Does Flow work with purchase orders? Not natively as of October 2026 — the trigger reference has no purchase-order events, so you can't build PO-overdue or PO-received automations from real PO data. Scheduled-time reminders to check the PO page are the practical substitute, or a third-party app that bridges the gap.
Next step: build Recipe 3 first — the negative-quantity watchdog is five minutes of work guarding the data every other inventory decision depends on. Then schedule Recipe 4 for Monday morning so it feeds your buying session, and leave the reorder math to a tool built for it.