Daily reorder brief for ShipHero SKUs about to sell out
Every weekday at 7am, see which products are about to run out, how many days of stock are left, and how much to reorder, grouped by supplier.
Every weekday at 7am, build me a prioritized reorder brief from ShipHero so I can see which SKUs are about to stock out while there is still time to do something about it.
Start with current stock. Use the ShipHero "List warehouse products" operation to pull every SKU's on-hand quantity, reorder level and reorder amount. Stock in ShipHero lives on the warehouse product record rather than on the product itself, so this has to be scoped to a warehouse. Run it per warehouse and say which warehouse each section of the brief covers. Page through the results with an explicit page size instead of assuming a single call returns everything.
Then work out how fast each SKU is actually moving. Use the ShipHero "List shipments" operation for the last 30 days and add up the units shipped per SKU from the shipment line items. Shipments are the best available signal for real outbound demand. Daily velocity is total units shipped in the window divided by 30. Days of cover is on-hand quantity divided by daily velocity.
Only include SKUs with fewer than 21 days of cover. If a SKU had no shipments at all in the last 30 days, treat its cover as unlimited and leave it out of the ranking, unless its on-hand quantity is already at or below its reorder level. In that case list it in a short separate section labelled as no recent movement but below reorder level, so I can decide what to do without it crowding out the genuinely urgent items.
For the recommended reorder quantity, work out what it takes to get the SKU back to roughly 45 days of cover: daily velocity multiplied by 45, minus current on-hand, rounded up to a sensible whole number. If ShipHero has a reorder amount set for that SKU and it is larger than your calculation, use the reorder amount instead. Never recommend less than the configured reorder amount.
Group the results by vendor, using the ShipHero "List vendors" operation to resolve the vendor on each product, so that one purchase order can cover several SKUs at once. Order the vendor groups by whichever contains the soonest stockout, and within each group rank SKUs by days of cover ascending.
Post the brief to Slack with the "Send a Message" operation. Open with a one line summary: how many SKUs are at risk, across how many vendors, and the single soonest stockout. Then one section per vendor, and one row per SKU showing SKU, product name, on-hand, daily velocity, days of cover and recommended reorder quantity. Keep it scannable in a Slack channel rather than writing prose, and close by telling me I can reply approving a vendor by name.
Append the same rows to a Google Sheet with the "Append Values" operation, one row per SKU per run, with columns for run date, warehouse, vendor, SKU, product name, on-hand, daily velocity, days of cover and recommended quantity. This is how we build a restock history over time, so keep the column order stable between runs.
Do not create any purchase order automatically. Wait for me to reply. When I reply approving a specific vendor's list, use the ShipHero "Create purchase order" operation against that vendor with the approved SKUs and their recommended quantities. If I approve with changes, such as different quantities or dropping a SKU, use my numbers rather than yours. Once the purchase order exists, confirm back in the same Slack thread with the purchase order number and the vendor it went to. If I never reply, do nothing and let the next run pick it up.
One practical note: the ShipHero API is credit based and will throttle heavy runs. Request sensible page sizes, and if a throttling error comes back carrying a wait time, wait that long and retry rather than failing the whole brief.
Example output
What does this prompt do?
- Checks your warehouse stock every weekday morning and works out how fast each product is actually selling
- Ranks the products closest to selling out by days of stock remaining, rather than by a fixed low-stock number
- Groups at-risk products by supplier so a single purchase order can cover several items at once
- Posts the brief to Slack and saves every run to a Google Sheet, building a restock history over time
- Creates the purchase order in ShipHero only after you reply approving a supplier's list
What do I need to use this?
- A ShipHero account with stock tracked in at least one warehouse
- Suppliers assigned to your products in ShipHero, so the brief can group items into one order per supplier
- Reorder levels and reorder amounts on your products (optional, but the recommendations get sharper with them)
- A Slack workspace and a channel where the morning brief should land
- A Google Sheet to collect the restock history
How can I customize it?
- Change the timing: run it every weekday, every day, or just once a week before you place orders
- Move the risk threshold: 21 days of stock is the default, so drop it to 14 if your suppliers deliver quickly or raise it to 45 for overseas lead times
- Adjust the top-up target: by default each product is restocked to roughly 45 days of cover
- Point it at a second warehouse, or send each warehouse's brief to a different Slack channel
FAQs
How is this different from ShipHero's built-in low stock notifications?
Does this work if I run a 3PL with several brands?
Will it place orders with my suppliers without asking?
What happens to products that have not sold recently?
Do I need reorder levels set up in ShipHero before this is useful?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Stop hearing that a product is out of stock from a customer.
Get a ranked, supplier-grouped reorder brief in Slack every weekday morning, with the purchase order one reply away.