There is a specific kind of pain that comes from selling out of your best product at the worst possible moment. We once had a bestseller go to zero in the middle of an influencer shoutout we had paid real money for. Traffic poured in, the product page said sold out, and we watched the conversion rate crater in real time. Nobody on the team knew we were low because the only place that information lived was the inventory page, and nobody had opened it in days.
The flip side is just as expensive and quieter. Thousands of dollars in cash sitting as dead stock on a shelf, because we over-ordered a product that stopped selling and nobody flagged the slowdown. Both problems come from the same root cause: inventory levels change constantly, and the people who need to act on them are not staring at the admin all day. A low-stock alert in the place your team already works fixes that for pennies.
Why the inventory page does not cut it
The Shopify inventory view is fine for a snapshot. It is useless as an alarm. An alarm has to come to you, and the admin only tells you something is wrong if you happen to go looking at the right moment. In practice that means:
- The person who orders stock finds out about a low product when a customer complains it is sold out, which is days too late to reorder.
- Marketing launches a campaign around a product that quietly went out of stock yesterday, burning ad spend on a page that cannot convert.
- Nobody notices the slow movers until the quarterly stock-take, when the cash is already tied up and the only exit is a discount.
The fix is not a fancier dashboard. It is a push, not a pull. The moment a product crosses a threshold, the right person should hear about it where they already are, which for most teams is Slack.
Set thresholds that match reality
A low-stock alert is only as good as the threshold behind it, and a single number across your whole catalog is a mistake. The right threshold depends on how fast a product sells and how long it takes to restock. A rule of thumb I use:
- Set the threshold to cover your lead time plus a buffer. If a product sells 10 a day and your supplier takes two weeks, firing an alert at 20 units left is firing it a week too late. You want the alert to hit while there is still time to reorder and receive before you hit zero.
- Treat your hero products differently. Your top sellers deserve a higher, earlier threshold because running out of them does the most damage. Running out of a slow, low-margin accessory is an annoyance; running out of your flagship is a bad week.
- Watch for the slow decline, not just the cliff. Low stock is half the picture. The other half is a product whose sell-through rate is dropping, which is your early signal to stop reordering before it becomes dead stock.
Thresholds are not set-and-forget. Revisit them when seasonality shifts, which right now means tightening everything ahead of the holiday surge, when products sell two or three times faster than your normal-week math assumes.
Route the alert to whoever can act
An inventory alert that lands in a channel nobody owns is just noise with extra steps. The whole point is to put each signal in front of the one person who can do something about it. The split I run:
- Low stock goes to the #ops or #purchasing channel, where whoever cuts purchase orders sees it and can reorder the same day.
- Out of stock goes to both ops and marketing, because marketing needs to know to pause any ads or emails pointing at a dead page before they waste spend.
- Back in stock goes to marketing, because that is a cue to act: fire the back-in-stock email, re-enable the paused ads, and ride the restock momentum while it is fresh.
Our own Slack Store Alerts app handles all three, since inventory events are part of its 35+ supported event types, and the conditions let you aim each one. You can scope an alert to a specific collection, a product tag, or a variant, so your #purchasing channel only sees the products that person actually orders, not every SKU in the store. That targeting is the difference between an alert people act on and an alert people mute.
Avoid the two failure modes
Inventory alerting fails in exactly two ways, and both are avoidable.
The first is the firehose. If you alert on every tiny stock change across a large catalog, the channel floods, people mute it, and you are blind again. The fix is conditions and batching: fire only when a product crosses a meaningful threshold, and during a busy period roll the updates into a tidy digest instead of a message per unit sold. One summary that says eight products crossed their low-stock line today is far more useful than eight hundred individual pings.
The second is the dead channel. An alert routed to a channel nobody owns gets ignored exactly like the inventory page it was supposed to replace. Every alert needs a named owner and a clear next action, or it is theater. If the low-stock ping fires and no one is responsible for reordering, you have not solved the problem, you have just relocated it.
Get the thresholds right, route each signal to the person who can act, and keep the volume honest, and inventory stops being the thing that blindsides you. You reorder before you sell out, you stop pouring ad spend into dead pages, and you catch the slow movers before they turn into a clearance pile. Heading into BFCM, that is the difference between a sold-out page costing you a sale and a restock email turning that same demand into revenue.