Skip to content

Weekly

Draft a weekly blog post about one of your products

Each week a blog post about a different product is saved as a draft on your store blog.

Runs
Weekly
Apps
Shopify
AI
Yes, uses the built-in AI allowance
Access
read_products, write_content

Send this to your assistant

Create a ClickRuntime automation: every Tuesday, pick a product I haven't written about yet, write a 600-word blog post featuring it, and save it as a draft on my Shopify blog News.

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

Blog posts help a Shopify store appear in search results and give shoppers a reason to return, but a store owner who is busy packing orders rarely finds time to write them. The blog goes silent for months, and products with no content around them never get found by people searching for what they do. Writing about each product by hand takes an hour or two, and hiring a writer for fifty products is more than most small stores want to spend.

Each week the automation fetches your products, picks the next one that has not yet been featured, and has ClickRuntime's built-in AI write an article about it using the product's title, description and details. It saves the article to your store's blog as a draft so you can read and publish it. It suits small stores that want steady content without writing every post themselves.

What you get out of it

  • A blog that keeps moving

    One new draft each week means the blog never sits idle for months. Regular fresh content is one of the signals search engines look for in an active site. Fifty-two drafts a year means the blog never sits silent through a busy quarter.

  • Every product eventually gets coverage

    Working through products one by one makes sure none is left out. Items that were never promoted get their own page of text that could rank for related searches. Items that never got homepage space still receive an article that can rank for related searches.

  • You stay in control of what goes live

    Articles are saved as drafts, so nothing appears on your store until you have read it. You can fix facts, add your voice or delete a post that does not fit.

  • Hours of writing saved each week

    A first draft appears without you opening a blank page. Editing takes minutes, where writing from scratch takes an hour or more, so a tiny team can sustain a blog.

  • Content uses your own product information

    The article is based on your listing details, so it matches what you actually sell. That reduces the chance of generic text that could describe any competitor's product. An article built from your listing mentions the real material and size, not generic claims that fit any competitor.

How it works

What happens, step by step

  1. Once a week, ClickRuntime reads the products in your Shopify store.

  2. It picks the next product that hasn't had a blog post yet.

  3. AI writes an article about that product.

  4. The article is saved as a draft on your store blog, ready for you to review and publish.

Before it runs live

  • Connect Shopify

What you get

RunsWeekly
Draft a weekly blog post about one of your productstoday, 9:00Succeeded
Shopify · Blog News (draft)"5 ways to brew better coffee with the Northwind Pour-Over Kit" · saved as draft

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
  • 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 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.
ai_blog_posts_from_product_listings.pyexample
from clickruntime import on_trigger, credentials, http, ai, state

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"]

BLOG_ID = "gid://shopify/Blog/123456789"  # the News blog
SCHEMA = {"type": "object", "properties": {"title": {"type": "string"}, "html": {"type": "string"}}}

@on_trigger
def run(event):
    done = set(state.get("featured") or [])
    products = gql("{ products(first: 100, query: \"status:active\") { nodes { id title handle description } } }")["products"]["nodes"]
    product = next((p for p in products if p["id"] not in done), None)
    if not product:
        return {"written": None}
    post = ai.generate(f"Product: {product['title']}\n{product['description'][:2000]}",
                       system="Write a friendly, useful 600-word blog post featuring this product. Return a title and HTML body.",
                       json_schema=SCHEMA, max_output_tokens=1500).json
    gql("""mutation($a: ArticleCreateInput!) { articleCreate(article: $a) { article { id } userErrors { message } } }""",
        {"a": {"blogId": BLOG_ID, "title": post["title"], "body": post["html"], "isPublished": False,
               "author": {"name": "Store team"}}})
    state.set("featured", sorted(done | {product["id"]}))
    return {"written": product["title"]}

FAQ

Common questions

Will posts be published automatically?
No. Articles are saved as drafts in your Shopify blog, so nothing appears on the store until you read and publish it yourself. A weekly draft waiting in the blog admin is the intended finish line, with publishing always left to you.
How does it choose the next product?
It keeps a record of products already featured and takes the next unused one; best sellers first or one collection only are easy variations. A skipped product can be marked as used so the next run moves on to a different one.
Which Shopify blog does it write to?
The blog you name during setup, such as News or Journal. Shopify stores can have more than one blog, and the automation needs access to read products and write articles through a custom app token.
What permissions does it need?
read_products, write_content. 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 runs (weekly). 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 “Draft a weekly blog post about one of your products” from your assistant

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