Weekly Square restock brief, one message per supplier
Every Monday at 7am, see which Square products will run out first based on real sales speed, with a ready to send order list for each supplier.
Every Monday at 7am, build a supplier by supplier reorder brief from my Square inventory and post it to Slack, one message per supplier.
Start by getting my locations from Square with List Locations, then pull my full product list with List Catalog, covering items and item variations including the vendor recorded against each variation. Get current stock on hand for every tracked variation with Batch Retrieve Inventory Counts.
Work out how fast each item is genuinely selling instead of relying on a flat stock threshold. Use Search Orders to pull completed orders and their line items across the trailing 30 days, add up units sold per variation, and turn that into an average daily sales rate. Then calculate days of cover for each item as current stock on hand divided by that daily rate. Rank the reorder list by days of cover ascending, so the items about to run out come first rather than the items that merely have a small number on hand. Note that orders taken offline on Square Point of Sale can take up to 72 hours to appear, so treat very recent figures as provisional.
Ignore discontinued and seasonal lines. Run a second Search Orders pass over the trailing 60 days and drop any item that has sold zero units in that window. Also skip items Square does not track stock for, since there is no meaningful cover figure for them.
Group the results by supplier so each message maps to one purchase order. Use Search Vendors to list active vendors and Bulk Retrieve Vendors to pull details for the vendor IDs attached to the items being reordered. If an item has no vendor recorded in Square, collect those lines into a final unassigned supplier section rather than dropping them.
For each line, recommend an order quantity. Order enough to bring the item back up to roughly 45 days of cover at its current sales rate, rounded to a sensible whole number. Use your judgement on the edge cases: items with only a few days of sales history, items where one large spike order is distorting the average, and items already sitting on plenty of cover that need nothing this week. Flag anything already at zero stock as urgent.
Post one message per supplier to the #purchasing channel using the Slack Bot Send a Message action. Lead with the supplier name and how many lines need ordering, then give a compact list showing item name, current stock, average units sold per day, days of cover, and recommended order quantity. Put the urgent out of stock lines at the top. Keep each message short enough to act on without opening anything else.
Finally, append every recommended reorder line to the tracking tab of my purchasing Google Sheet using Append Values, so purchasing keeps a running history. Write one row per line with the run date, supplier name, item name, variation, current stock, units sold in the last 30 days, average daily sales, days of cover, and recommended order quantity.
Example output
What does this prompt do?
- Works out how fast every product in your Square catalog is really selling over the last 30 days, then how many days of stock you have left.
- Ranks your buying list by what runs out soonest rather than by a fixed low stock number, so a fast seller with 20 left outranks a slow one with 3.
- Posts one Slack message per supplier, each reading like a ready to send purchase order, and ignores anything that has not sold in 60 days.
- Logs every recommended order line to a Google Sheet so purchasing has a running history to look back on.
What do I need to use this?
- A Square account with inventory tracking turned on for the products you want watched
- Suppliers recorded against your items in Square, so the brief can group orders by who you buy from
- A Slack workspace and a channel for the brief to land in, such as #purchasing
- A Google Sheet with a tab for tracking reorder history
- At least a month of sales history in Square so the sales speed figures mean something
How can I customize it?
- Change the timing. Monday at 7am suits a weekly ordering rhythm, but daily or twice weekly works the same way.
- Set your own cover target. The default tops each item back up to about 45 days of stock, which you can raise for suppliers with long lead times.
- Choose where it lands and what gets ignored. Send everything to one channel or split it per supplier, and widen the 60 day cutoff used to skip discontinued and seasonal lines.
FAQs
How is this different from Square's built in low stock alerts?
Do I need to have suppliers set up in Square?
What if an item had one unusually large order last month?
Will it try to reorder seasonal stock I have deliberately stopped selling?
Does it place the orders for me?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
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 morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
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.
Stop hearing you are out of stock from a customer.
Get a supplier ready buying list in Slack every Monday, ranked by what actually runs out first.