On a schedule
Get a daily Slack list of products running low
Every day your team sees which WooCommerce products have dropped below 10 in stock, so you reorder before they sell out.
- Runs
- On a schedule
- Apps
- Slack, WooCommerce
- AI
- Not needed
- Access
- Woo read; chat:write
Send this to your assistant
Create a ClickRuntime automation: every morning, list WooCommerce products and variations with stock under 10 and post the ones that have newly dropped low to #inventory.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A shop selling a few hundred products relies on someone noticing that a best seller is almost gone. Usually they notice when it shows as out of stock and orders stop, and with a two-week supplier lead time that means weeks of lost sales.
A daily low-stock list in Slack gives whoever does purchasing a clear prompt with time to act. Because only newly low items are posted, the message stays short enough to read every day.
What you get out of it
Reorder before the sell-out
Catching stock at 10 units instead of zero leaves room for supplier lead times, so popular products keep selling.
Variations aren't missed
Sizes and colours are checked individually, which matters when one size runs out while the parent product still shows stock.
Short, readable alerts
Products are posted once when they drop low, not every day until restocked, so the channel doesn't become noise.
Purchasing is a team job
Posting in #inventory lets whoever handles suppliers pick it up, without relying on one person checking the admin.
How it works
What happens, step by step
Every morning, ClickRuntime reads the stock levels of your WooCommerce products and their variations.
It picks out anything with fewer than 10 in stock.
It skips items it already reported that haven't been restocked since, so each product is posted once.
It posts the list of newly low items, with their stock counts, to #inventory in Slack.
Before it runs live
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Connect WooCommerce
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Google Sheets
- Combine it with other Slack and WooCommerce steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, notify
STORE = "https://shop.example.com/wp-json/wc/v3"
THRESHOLD = 10
@on_trigger
def run(event):
auth = (credentials.secret("WOO_KEY"), credentials.secret("WOO_SECRET"))
low = {}
for p in http.get(f"{STORE}/products", auth=auth, params={"per_page": 100, "status": "publish"}).json():
items = [p]
if p["type"] == "variable":
items = http.get(f"{STORE}/products/{p['id']}/variations", auth=auth, params={"per_page": 100}).json()
for i in items:
if i.get("manage_stock") and (i.get("stock_quantity") or 0) < THRESHOLD:
name = p["name"] + (" – " + " / ".join(a["option"] for a in i.get("attributes", [])) if i is not p else "")
low[str(i["id"])] = (name, i.get("stock_quantity") or 0)
seen = set(state.get("reported") or [])
new = {k: v for k, v in low.items() if k not in seen}
if new:
notify.slack("Running low:\n" + "\n".join(f"• {n}: {q} left" for n, q in new.values()), channel="#inventory")
state.set("reported", list(low))
return {"low": len(low), "new": len(new)}FAQ
Common questions
Which products are checked?
Can different products have different thresholds?
When will a product be posted again?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post yesterday's store sales to Slack every morning
Each morning your team sees yesterday's orders, revenue and best sellers in Slack, with a warning when revenue is far above or below normal.
See how it worksGet a weekly Slack report of rising and slowing products
Every Monday your team sees which categories and SKUs sold more or less than usual last week, with the ones at risk called out.
See how it worksFlag risky new store orders in Slack before shipping
Every new WooCommerce order is checked for warning signs, and risky ones are put on hold and posted to Slack before anything ships.
See how it worksKeep exploring
Set up “Get a daily Slack list of products running low” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.