Skip to content

Every 15 minutes

Add products to WooCommerce from a sheet

New rows in your product sheet become WooCommerce products with AI-written descriptions, and stock changes in the sheet are kept in sync.

Runs
Every 15 minutes
Apps
Google Sheets, WooCommerce
AI
Yes, uses the built-in AI allowance
Access
WooCommerce write; Sheets read+write

Send this to your assistant

Create a ClickRuntime automation: every 15 minutes, check my Products sheet. Create a WooCommerce product for each new row with an AI-written description, write the product ID back, and update stock for rows that already have an ID.

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

Many shop owners plan new products in a spreadsheet: names, prices, SKUs and stock from suppliers. Then each one has to be entered in WooCommerce by hand, with a description written from scratch, which can take an afternoon per collection.

Creating products straight from the sheet, with a first-draft description, turns that afternoon into a quick review. Stock counts in the same sheet stay in step with the store.

What you get out of it

  • Launch collections faster

    A whole collection goes from sheet to store in minutes instead of an afternoon of data entry.

  • A description for every product

    AI writes a first draft from the name and notes, so no product goes live with an empty description.

  • Stock kept in step

    Change the stock count in the sheet and the store updates within 15 minutes.

  • One sheet to manage

    Prices, SKUs and stock are managed in a sheet you can share with suppliers or staff.

How it works

What happens, step by step

  1. Every 15 minutes ClickRuntime reads your product sheet.

  2. For rows without a product ID, AI writes a description and a draft product is created in WooCommerce.

  3. The new product ID is written back to the row, so it is never created twice.

  4. For rows that already have an ID, the stock count is updated in the store.

Before it runs live

  • Connect your Google Sheets account and pick the spreadsheets it may use
  • Connect WooCommerce

What you get

RunsEvery 15 minutes
Add products to WooCommerce from a sheettoday, 9:00Succeeded
WooCommerce · ProductsDraft created: Acme Ceramic Pour-Over Set (SKU ACM-PO-01, £34, stock 20). Product ID 2291 written to row 8.

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

  • Act only on the items that match your own rules, and skip the rest
  • Change what the AI looks for, or how it writes the result
  • Add another app, for example also send it to Slack
  • Combine it with other Google Sheets and 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.
import_products_from_a_sheet_into_woocommerce.pyexample
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, report_fetched, credentials, http, ai

SHEET_ID = "your-spreadsheet-id"

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

def wc(method, path, **kw):
    resp = http.request(method, STORE + path, auth=(credentials.secret("WC_CONSUMER_KEY"), credentials.secret("WC_CONSUMER_SECRET")), **kw)
    resp.raise_for_status()
    return resp.json()

def sheets():
    return build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets().values()

@on_trigger
def run(event):
    rows = sheets().get(spreadsheetId=SHEET_ID, range="Products!A2:F").execute().get("values", [])
    rows = [(n, r + [""] * (6 - len(r))) for n, r in enumerate(rows, start=2) if r and r[0]]
    new = [(n, r) for n, r in rows if not r[5]]
    report_fetched(len(new))
    for n, (name, sku, price, stock, notes, _) in new:
        desc = ai.generate(f"Product: {name}\nNotes: {notes}", max_output_tokens=300,
                           system="Write a friendly 80-word product description in HTML paragraphs.").text
        p = wc("POST", "/products", json={"name": name, "sku": sku, "regular_price": price, "description": desc, "status": "draft",
                                          "manage_stock": True, "stock_quantity": int(stock or 0)})
        sheets().update(spreadsheetId=SHEET_ID, range=f"Products!F{n}", valueInputOption="RAW", body={"values": [[p["id"]]]}).execute()
    existing = [{"id": int(r[5]), "stock_quantity": int(r[3] or 0)} for _, r in rows if r[5]]
    if existing:
        wc("POST", "/products/batch", json={"update": existing[:100]})
    return {"created": len(new), "stock_synced": len(existing)}

FAQ

Common questions

Are products published straight away?
They are created as drafts by default, so you can add photos and check them before publishing. You can choose to publish directly.
What columns does the sheet need?
Name, SKU, price, stock and notes, plus a column where the product ID is written back.
Will it overwrite descriptions I've edited?
No. Descriptions are only written when a product is created; later runs only update stock.
What permissions does it need?
WooCommerce write; Sheets read+write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new 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 “Add products to WooCommerce from a sheet” from your assistant

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