Skip to content

Collects as they arrive, acts daily

Get an evening digest of entry changes

At the end of each day you get one email listing the entries that were created or edited.

Runs
Collects as they arrive, acts daily
Apps
Contentful
AI
Not needed
Access
content_management_manage

Send this to your assistant

Create a ClickRuntime automation: keep track of Contentful entries created or saved today and email me the list at 6pm, grouped into new and updated.

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

Content teams change a lot in a day. Writers draft entries in Contentful, editors fix titles, a developer imports a batch, and by afternoon nobody is sure what is new. Notifying people about each change would flood them, yet saying nothing leaves reviewers and stakeholders in the dark.

This collects Contentful events throughout the day as entries are created or updated, stores them, and acts once daily by compiling everything into a single email. People get one organized summary rather than a stream of separate notifications.

It is a good fit for editors, product owners and localization managers who want to know what content changed without being interrupted. Events are stored as they arrive from Contentful and then compiled together, so the daily email lists each entry once with what happened to it, in a form that is easy to scan.

What you get out of it

  • Get the whole day's changes in one place

    A single email replaces dozens of small messages. Reviewers read it once and know what needs checking, instead of piecing it together from scattered alerts. Reviewers read one email and know what needs checking, instead of assembling the picture from many small notifications.

  • Keep editors informed without interrupting them

    Because events are collected and sent daily, nobody is pulled out of focused work. The information arrives at a predictable time. Editors are not pulled out of focused work by pings, because the information arrives once a day at a predictable time.

  • Catch unwanted changes by end of day

    An accidental edit to a key entry shows up in the daily list. It can be reverted while it is still fresh, before it ships to the site. An accidental edit to a key entry shows up in the list the same day, and can be reverted before it reaches the site.

  • Help localization and QA follow content

    Translators and testers see which entries are new or revised. They can pick up changes promptly instead of discovering them at release. Translators and testers see which entries are new or revised, and can pick them up promptly instead of discovering them at release.

  • Create a daily content log

    The digests record what changed and when. For audits or editorial reviews, that is a useful trail of how content evolved. The daily digests record what changed and when, which is helpful in audits and in editorial reviews of how content evolved.

How it works

What happens, step by step

  1. Each time an entry is created or saved in Contentful, ClickRuntime stores a note of it.

  2. At the end of the day, it gathers everything stored.

  3. You get one email listing the new entries and the edited ones, then the list starts fresh for tomorrow.

Before it runs live

  • Connect Contentful
  • Paste your automation's link into the other app's webhook settings

What you get

RunsCollects as they arrive, acts daily
Get an evening digest of entry changestoday, 9:00Succeeded
Email · Contentful today: 2 new, 5 updatedNew: - Autumn product update - Northwind case study Updated: - Pricing page …

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
  • 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.
new_updated_entries_digest.pyexample
from clickruntime import on_event, on_trigger, state, notify

@on_event
def remember(event):
    topic = (event.header("X-Contentful-Topic") or "")
    if not topic.endswith(("Entry.create", "Entry.save", "Entry.auto_save")):
        return {"stored": False}
    entry = event.json or {}
    title = next(iter((entry.get("fields", {}).get("title") or {}).values()), entry["sys"]["id"])
    seen = state.get("today") or {}
    kind = "new" if topic.endswith("create") or seen.get(entry["sys"]["id"], {}).get("kind") == "new" else "updated"
    seen[entry["sys"]["id"]] = {"title": title, "kind": kind}
    state.set("today", seen)
    return {"stored": True}

@on_trigger
def send(event):
    seen = state.get("today") or {}
    if seen:
        new = [e["title"] for e in seen.values() if e["kind"] == "new"]
        upd = [e["title"] for e in seen.values() if e["kind"] == "updated"]
        notify.email_me(f"Contentful today: {len(new)} new, {len(upd)} updated",
                        "New:\n" + "\n".join(f"- {t}" for t in new) + "\n\nUpdated:\n" + "\n".join(f"- {t}" for t in upd))
    state.set("today", {})
    return {"entries": len(seen)}

FAQ

Common questions

Why does it wait until the end of the day?
Individual alerts can overwhelm people. By storing each event and sending one summary daily, readers get everything at once at a time that suits them. Individual alerts can overwhelm readers, so each event is stored and sent as a summary, and everything arrives together at a time that suits you.
Does it include deleted entries?
It covers the events it is set up to receive, typically creation and updates. If you also want to hear about deletions or unpublishing, ask for those events to be added to the setup. Deletions and unpublishing are separate events in Contentful.
How do I connect Contentful?
You add a webhook in Contentful's settings that points to the endpoint ClickRuntime provides and select the entry events you want. After that, each event is stored until the daily email. Contentful needs a webhook that points to the endpoint ClickRuntime provides, with the entry events selected, and events wait there until the daily email.
What permissions does it need?
content_management_manage. 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 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 “Get an evening digest of entry changes” from your assistant

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