Skip to content

Daily

Get a morning list of low-stock products

Products dropping under your threshold are emailed to you each morning, without repeats of ones already flagged.

Runs
Daily
Apps
WooCommerce
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every morning at 7am, email me WooCommerce products with fewer than 5 in stock, with SKU and current quantity, and don't repeat ones I was already told about.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A WooCommerce shop loses sales in two quiet ways. A bestseller sells out and the product page shows Out of stock for a week before anyone reorders, or a supplier with a long lead time is reordered too late because nobody saw the shelf getting thin. Stock levels live inside each product's inventory tab, so spotting a low number means opening hundreds of products or running a report that nobody remembers to run.

Each day the automation fetches your products with their stock status and quantity, keeps those at or below the threshold you set, removes any it has already warned you about using stored state, and emails you the list. Each product is flagged once as it drops, and flagged again only after it has been restocked and falls again.

It suits shops with a few dozen to a few thousand products and suppliers who need days or weeks to deliver.

What you get out of it

  • Reorder before the page says sold out

    A warning at five units leaves time for the supplier to deliver. Without it, the product sits unavailable, and shoppers who wanted it buy from a competitor instead. Shoppers who find a page marked unavailable rarely come back to check later.

  • Account for supplier lead time

    Setting the threshold above the number you sell during a supplier's delivery window means the alert arrives early enough that new stock lands before the old stock is gone. Getting that number right is a one-time exercise that pays off every month afterward.

  • One warning per product, not daily nagging

    Because already-flagged products are remembered, the email does not repeat the same list every morning. A shorter list is one you will actually act on. Customers who ignore daily reminders still react to a short, fresh list.

  • Spot fast movers

    Products that keep reappearing on the list are your bestsellers. That informs how much to order next time, and which products deserve better terms from the supplier. Ordering deeper on those lines also tends to improve the unit cost.

  • Protect ad spend

    Paying for ads that point at a product you cannot ship wastes money. Knowing stock is low gives you a reason to pause that campaign in time. A paused ad is cheaper than clicks that end in a disappointed shopper.

How it works

What happens, step by step

  1. Every morning, ClickRuntime checks the stock level of your WooCommerce products.

  2. It picks out the ones that have dropped below your threshold.

  3. Products you were already warned about are left out until they are restocked, so the email only shows new problems.

  4. You get a list of each low product with its SKU and how many are left.

Before it runs live

  • Connect WooCommerce

What you get

RunsDaily
Get a morning list of low-stock productstoday, 9:00Succeeded
Email · Low stock- Linen apron, sage (NW-APR-04): 3 left

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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 Slack
  • Combine it with other WooCommerce steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
low_stock_alert_woocommerce.pyexample
from clickruntime import on_trigger, credentials, http, state, notify

STORE = "https://yourstore.com/wp-json/wc/v3"
THRESHOLD = 5

@on_trigger
def run(event):
    auth = (credentials.secret("WC_CONSUMER_KEY"), credentials.secret("WC_CONSUMER_SECRET"))
    low, page = [], 1
    while True:
        products = http.get(f"{STORE}/products", auth=auth,
                            params={"status": "publish", "per_page": 100, "page": page}).json()
        low += [p for p in products if p["manage_stock"] and (p["stock_quantity"] or 0) < THRESHOLD]
        if len(products) < 100:
            break
        page += 1
    told = set(state.get("told") or [])
    new = [p for p in low if p["id"] not in told]
    state.set("told", [p["id"] for p in low])  # restocked items can alert again
    if new:
        notify.email_me(f"{len(new)} products under {THRESHOLD} in stock",
                        "\n".join(f"- {p['name']} ({p['sku'] or 'no SKU'}): {p['stock_quantity']} left" for p in new))
    return {"low": len(low), "new": len(new)}

FAQ

Common questions

Does it use the stock quantity or the stock status?
Both are read. Products that manage stock use the quantity against your threshold, and products that only use a status like out of stock or on backorder are reported based on that status instead. Both paths feed the same daily email.
Can I set a different threshold for different products?
Yes. A single number is the default, but thresholds can vary by category or by product, for example five for fast sellers and two for slow, premium items. Tell your AI assistant what you want.
What about variable products with several sizes?
Each variation has its own stock, so the alert can report variations separately, such as the medium in blue running low. That matters because shoppers choose a variation, not just a product. Each variation is checked against the threshold on its own.
What permissions does it need?
read. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (daily). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get a morning list of low-stock products” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.