Skip to content

Daily

Get warned when stock runs low

Each morning you see the variants running low, and each one is only flagged once.

Runs
Daily
Apps
Shopify
AI
Not needed
Access
read_products, read_inventory

Send this to your assistant

Create a ClickRuntime automation: every morning at 7am, email me Shopify variants with fewer than 5 in stock, with the product name, SKU and quantity.

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 bestselling variant sells out on a Friday evening, and the store keeps advertising it until someone on the team opens the inventory page on Monday. Meanwhile paid traffic lands on a product page with a greyed-out size, abandoned carts grow, and the supplier you could have called earlier now has a two-week lead time. Shopify tracks quantity per variant and location, but nothing tells you when a count has fallen to the point where it is time to reorder.

Each day, ClickRuntime reads inventory levels for your variants, keeps those at or below your reorder point, skips any variant it has already warned you about, and emails a single list with product name, variant, SKU and quantity left. The skip step means a slow seller sitting at three units does not repeat itself every morning.

It works best when you track inventory on every variant that matters and set a different threshold for fast and slow movers.

What you get out of it

  • Reorders go out before the shelf is empty

    A daily list gives a few days of warning. That is usually enough to place a purchase order and avoid the dead week when a hero product shows as sold out during your busiest sales period.

  • Ad spend stops landing on empty pages

    If a variant is nearly gone, you can pause the campaign or switch the ad to another product before paying for clicks that cannot convert, which protects both budget and the quality of your traffic.

  • No repeat nagging on the same item

    Variants already reported are skipped, so the email stays short and people keep reading it. A warning that arrives every day for a month gets filtered out; one that appears once gets acted on.

  • Size and color gaps are caught

    A product can look healthy in total while its medium black is gone. Listing by variant with SKU reveals the specific gaps that cause customer emails, cancelled orders and wrong-size substitutions.

  • Purchasing becomes a routine

    With a reliable daily list, whoever manages suppliers works from one email instead of scanning the inventory screen, and the team can see in the archive how often certain products keep running short.

How it works

What happens, step by step

  1. Every morning, ClickRuntime checks the stock level of every product variant in your Shopify store.

  2. It picks out the ones below your low-stock level.

  3. Variants it has already warned you about are skipped, so each one is flagged only once.

  4. You get an email listing each low variant with its SKU and quantity left.

Before it runs live

  • Connect Shopify

What you get

RunsDaily
Get warned when stock runs lowtoday, 9:00Succeeded
Email · 3 variants low on stockPour-Over Kit - Black SKU PK-BLK qty 2 Filter Papers x100 SKU FP-100 qty 4

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 Shopify 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.pyexample
from clickruntime import on_trigger, credentials, http, state, notify

STORE = "your-store.myshopify.com"

def gql(query, variables=None):
    resp = http.post(f"https://{STORE}/admin/api/2025-07/graphql.json",
                     headers={"X-Shopify-Access-Token": credentials.connection("shopify", "store")},
                     json={"query": query, "variables": variables or {}})
    resp.raise_for_status()
    return resp.json()["data"]

LIMIT = 5

@on_trigger
def run(event):
    variants = gql("""{ productVariants(first: 250, query: "inventory_quantity:<5") { nodes {
        id sku displayName inventoryQuantity } } }""")["productVariants"]["nodes"]
    low = [v for v in variants if v["inventoryQuantity"] is not None and v["inventoryQuantity"] < LIMIT]
    alerted = set(state.get("alerted") or [])
    new = [v for v in low if v["id"] not in alerted]
    if new:
        notify.email_me(f"{len(new)} variants low on stock", "\n".join(
            f"{v['displayName']}  SKU {v['sku'] or '-'}  qty {v['inventoryQuantity']}" for v in new))
    state.set("alerted", sorted(v["id"] for v in low))  # restocked variants can alert again
    return {"low": len(low), "new": len(new)}

FAQ

Common questions

What counts as low stock?
You pick the number. A common approach is a single threshold such as 5 units, or a separate one for fast sellers, like 20 for a popular t-shirt size. Variants at or below the number are included, and variants with tracking turned off are ignored.
Does it handle several warehouse locations?
Shopify keeps inventory per location. The alert can total across locations or check each one separately, so a variant that is out at your retail shop but plentiful in the warehouse is reported in the way that matches how you reorder.
Will I get the same variant again after restocking?
Once a variant climbs back above the threshold it is eligible again. If it later falls low a second time, you will be warned again, so each real shortage produces one alert rather than none or endless repeats.
What permissions does it need?
read_products, read_inventory. 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 warned when stock runs low” from your assistant

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