Skip to content

Weekly

List entries that were never published

Each Monday you see the drafts sitting in your space that have never gone live.

Runs
Weekly
Apps
Contentful
AI
Not needed
Access
content_management_read

Send this to your assistant

Create a ClickRuntime automation: every Monday at 9am, email me the Contentful entries that have never been published, with their content type and last update date.

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

Draft entries pile up in every CMS. An article that was started in spring still sits half written in autumn, a product description was never finished, and a translation was begun and abandoned. They clutter search, confuse new editors, and sometimes contain content that should never see daylight.

Each week, this queries Contentful for entries that have never been published, identified by the missing publish date, and emails you the list. You get a regular inventory of drafts to finish, delete or reassign.

Editorial leads and content operations managers use it to keep the workspace tidy and make sure planned content actually ships. The query asks Contentful for entries whose publish date does not exist, so only content that has never gone live is listed, and nothing already published is included by mistake.

What you get out of it

  • Finish work that was started

    Seeing old drafts reminds writers about content that is nearly done. A few hours of polish can turn a forgotten draft into a published article. A forgotten draft that is nearly complete can often be finished in an hour, and published content is worth more than an unfinished one.

  • Delete clutter with confidence

    Drafts nobody wants can be removed once they appear on a list. That keeps the entry list clean and makes search results more useful. Drafts nobody wants can be removed once they are on a list, which keeps the entry list clean and search results useful.

  • Spot abandoned content ownership

    Drafts from people who left the team need a new owner. The weekly list makes those orphans visible before they are forgotten for good. Drafts written by people who left the team need a new owner, and the weekly list makes those orphans visible.

  • Prevent unreviewed content leaking out

    Old drafts may contain wrong prices or outdated claims. Keeping them in view reduces the chance one is published accidentally. Old drafts may hold wrong prices or outdated claims, and keeping them in view lowers the chance one is published by accident.

  • Measure how much work is in progress

    The count of drafts shows whether your pipeline is healthy. A growing list suggests bottlenecks in review or planning that deserve attention. A growing count of drafts suggests a bottleneck in review or planning, which is worth knowing before deadlines slip.

How it works

What happens, step by step

  1. Every Monday, ClickRuntime asks Contentful for entries that have never been published.

  2. You get an email listing each one with its creation date, title and content type.

  3. Nothing is changed in Contentful. The list is there for you to decide what to publish or remove.

Before it runs live

  • Connect Contentful

What you get

RunsWeekly
List entries that were never publishedtoday, 9:00Succeeded
Email · 7 Contentful entries never published2026-07-02 Partner page draft (landingPage) 2026-09-18 Webinar recap (blogPost)

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

SPACE_ID = "abc123xyz"

@on_trigger
def run(event):
    resp = http.get(f"https://api.contentful.com/spaces/{SPACE_ID}/environments/master/entries",
                    headers={"Authorization": f"Bearer {credentials.secret('CONTENTFUL_CMA_TOKEN')}"},
                    params={"sys.publishedVersion[exists]": "false", "order": "sys.updatedAt", "limit": 200})
    resp.raise_for_status()
    lines = []
    for e in resp.json()["items"]:
        title = next(iter((e["fields"].get("title") or {}).values()), e["sys"]["id"])
        lines.append(f"{e['sys']['updatedAt'][:10]}  {title} ({e['sys']['contentType']['sys']['id']})")
    notify.email_me(f"{len(lines)} Contentful entries never published", "\n".join(lines) or "None")
    return {"unpublished": len(lines)}

FAQ

Common questions

What counts as a draft?
An entry that has never been published, meaning it has no publish date. Entries that were published and later edited are not listed, because they are changes to live content, not drafts. Entries with no publish date are drafts, while published entries that were edited later are changes to live content and are not listed.
Can it list only drafts older than a month?
Yes. A filter on creation date can be added so brand-new drafts are ignored. Tell your AI assistant the age you want and approve the revised query before it runs. A filter on creation date means brand-new drafts are ignored, and the age you choose is shown to you in the revised query.
Does it work across several spaces?
The setup targets a Contentful space and environment. For multiple spaces, additional queries can be included, and you can ask for them to be combined in a single report. Contentful content lives in a space and environment, and extra queries can cover more than one, combined into a single report.
What permissions does it need?
content_management_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 (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 “List entries that were never published” from your assistant

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