Playbook · Shopify low stock / inventory alert (merchant ops)
Shopify low stock alert not firing — after inventory already dipped.
Written for a Shopify DTC owner who finds a SKU sold out (or near zero) with no Slack ping, no staff Shopify Email, and no ops alert — so the stockout is discovered by a customer, not by the team. This is a native Shopify Flow, staff Shopify Email, or ops Slack playbook — not customer back-in-stock / restock waitlist mail, not WISMO, not abandoned checkout, not payment pending, not local pickup ready, and not POS receipt. DIY tools first. Honest limits. No ticket-cut number, no recovered-revenue claim, no invented case studies.
Nico at Latch AI Ops · Sep 7, 2026 · ~9 minute read
Buy the 72-hour install — $997Unfulfilled order alertBack in stock (customer) not sendingShopify Flow not runningMerchant FAQ
01
Merchant low-stock alert, not back-in-stock customer mail, WISMO, abandoned checkout, payment pending, pickup, or POS.
A low stock / inventory alert is not customer back-in-stock mail and not WISMO. Back-in-stock / restock notification emails the buyer after a sold-out product returns — that playbook is back in stock email not sending. WISMO is “where is my order” after purchase — WISMO email not sending. Abandoned checkout fires when a cart is left unpaid — abandoned checkout email not sending. Payment pending / authorization failed is an order stuck authorizing — payment pending email not sending. Local pickup ready is “your order is waiting at the counter” — local pickup ready email not sending. POS / retail receipt is a till sale — POS receipt email not sending. This page is the merchant-facing “quantity crossed our threshold — restock or pause ads” path: Shopify Flow watching inventory quantity, staff Shopify Email, or an ops Slack / internal email action.
Also not this page: aging unfulfilled order alert (paid orders sitting Unfulfilled with nobody pinged — different trigger), Shopify Flow not running (workflow never executes at all). Six ordinary reasons low-stock pings never land: inventory never crossed the threshold on the right location/variant, the Flow or staff email / Slack action is draft, Continue selling / multi-location hides the drop, the staff channel is wrong, you tested customer back-in-stock or WISMO instead, or you never built the workflow. Walk them in that order. You already pay for Shopify Flow. You do not need a second inventory SaaS to read run history.
02
Inventory never crossed your threshold on the right location / variant.
Low-stock Flow triggers usually watch Inventory quantity changed (or a similar inventory event) plus a condition like available ≤ N on a product variant / location. Open Products → the SKU you thought dipped, then check available at each location. If available stayed at 6 while your condition is ≤ 5, the workflow correctly did nothing. If POS sold from Location B while Flow watches Location A, the homepage can look empty while the watched location still has stock.
Common traps: threshold set on on-hand instead of available (or the reverse), watching the parent product while sales hit a size / color variant, reserved inventory for draft / unpaid checkouts that never lowered available the way you expected, and a one-time manual inventory adjustment that never crossed ≤ N because you jumped from 20 to 0 in a way your condition or “only when decreases” logic skipped. Wrong quantity, wrong silence.
Prove it with a controlled drop on a test variant you own: set available to your threshold + 1, then to threshold − 1, and read Shopify Flow → run history for that workflow. No run means the trigger or condition never matched — not that Slack is broken.
03
Shopify Flow, staff Shopify Email, or Slack action is draft, inactive, or missing permissions.
Open Shopify admin → Flow. Find the low-stock / inventory workflow. Status must be Active, not Draft. Open the last runs. “Condition not met” means the threshold or location filter failed (go back to section 02). “Action failed” means Slack / email / HTTP never delivered — expand the error: missing Slack app install, revoked connector, staff email that bounced, or Send internal email to an address that is not a staff member.
Shopify Email marketing campaigns are not the same product as a Flow “Send internal email” or staff notification. Building a marketing campaign titled “Low stock” does not ping ops when a variant hits 3. If you expected a staff template under Settings → Notifications, confirm Shopify even exposes that template for your plan — many stores only get this via Flow. Mixing campaign email with Flow actions is how you pay for two products and still send none.
If the workflow looks built and still never runs on any trigger, that is the broader Shopify Flow not running playbook. This page assumes inventory events exist and asks why the low-stock path stays quiet.
04
Continue selling when out of stock (or multi-location) hides the drop you expected.
Continue selling when out of stock lets available go negative. Your Flow may be written for available ≤ 0 or “out of stock” product status while the storefront still takes orders at −4. Ops never gets a “sold out” ping because Shopify never flipped the product to unavailable — it oversold. Rewrite the condition for the number you actually care about (for example available ≤ 5) and decide whether overselling is intentional.
Multi-location stores also hide drops: online channel sells from the fulfillment location while a retail location still holds units; aggregated “in stock” on the product card looks fine while the watched location is empty — or the reverse. Align the Flow location filter with the channel that can actually stock out customers. Bundles / kits that pull component inventory without changing the parent variant quantity are another silent miss.
05
Staff inbox or Slack channel is wrong, muted, or bouncing.
Flow can succeed and ops still reports silence. Check the exact Slack channel ID / name in the action (archived channels and private channels the bot left both fail quietly after a reconnect). Check the staff email To: line — personal Gmail that filters Shopify, a shared ops@ alias that only one person reads, or a former employee address. BCC the owner is not proof the ops channel got it.
Force one test run (manual inventory drop on a test SKU, or Flow’s test / re-run if available). Confirm the message in the live channel and in the staff inbox spam / promotions tabs. If Flow says the action succeeded and the channel is empty, the destination is wrong — do not buy an inventory app to paper over a #general vs #ops typo.
06
You tested back-in-stock customer mail, WISMO, abandoned checkout, payment pending, pickup, or POS.
Restocking a sold-out product and waiting for a customer Notify me email does not prove the merchant low-stock alert. That is back in stock email not sending. Placing a test order and asking “where is my order” is WISMO. Leaving a cart unpaid is abandoned checkout. Authorizing then leaving Payment pending is payment pending. Marking Ready for pickup is local pickup ready. A till sale is POS receipt. Aging Unfulfilled with no Slack is unfulfilled order alert.
The only honest test for this page: change inventory on the watched variant / location across your threshold, with the workflow Active, and read Flow run history plus the ops channel. Anything else is a different product.
07
When to stay DIY vs pay $997.
Stay DIY if you can spend one afternoon on the list above: threshold on the right location/variant, Flow Active with a successful run, Continue selling / multi-location understood, staff Slack or email destination correct. Force one live drop on a test SKU. Read the channel. That is the whole playbook. No agency required. Short answers also live on the merchant FAQ. Related troubleshooting: unfulfilled order alert, back in stock (customer) not sending, Shopify Flow not running, WISMO not sending.
Pay for help when the work is not the inventory toggle — it is connecting the stack you already have so stockout exceptions land in a channel you already check, lead capture is not dying in DMs, and checkout-ready ops paths are one live workflow instead of a draft Flow plus a Slack bot you forgot. That is the Latch AI Ops install.
What $997 USD one-time buys: lead capture on the live store, ops alerts in a channel you already check, and a checkout-ready workflow. 72 hours after collaborator access, not after payment. One live Shopify store. Access plus a delivery thread. Store URL collected at checkout. Not a SaaS seat, not an inventory app rebuild, not a Klaviyo rebuild, not a Gorgias implementation, not a support VA, not a brand or theme job.
Other shops’ public ranges, not testimonials: a Shopify Flow or ops-alert install typically runs $500–$2,500. A full ops / inventory consulting block typically runs $2,000–$5,000. $997 is the cheap end of that work, sold as a 72-hour install of three systems — not as a ticket-cut number or recovered stockout revenue.
What it does not buy: fewer stockouts, recovered revenue from avoided OOS, a lift in conversion, or a case study. Latch AI Ops has not published customer proof because there are no customers yet. You are buying the install.
Checkout is on Whop. Operator is Nico. United States offer. You can revoke collaborator access after handoff. We do not take owner passwords.