Skip to content

Daily

Get warned before Notion deadlines

When a date in your Notion database is coming up, such as a renewal or certificate expiry, Slack warns you in time.

Runs
Daily
Apps
Notion, Slack
AI
Optional
Access
Notion read; Slack chat:write

Send this to your assistant

Create a ClickRuntime automation: every day, check my Suppliers database in Notion for certificates that expire in the next 30 days and post them to #compliance.

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

Notion databases hold deadlines that matter in the real world: supplier certificates that expire, contracts with renewal dates, equipment inspections, trial periods ending. The date sits in a property, but a database does not tell anyone when it is approaching. A certificate lapses on a Tuesday because the person who tracked it left, and a supplier is then unable to ship, or an audit finds a document that expired three weeks earlier.

Each day ClickRuntime queries your Notion database with a date filter, for example expiry within the next 30 days, and skips records it has already alerted on. It then posts the rest to Slack, optionally with alert text written by its built-in AI, so the owner and the channel see exactly which records need action.

Operations, compliance and procurement teams often use one such alert per database, each with its own condition.

What you get out of it

  • Expiries are caught while there is time

    A message 30 days before a certificate lapses leaves time to ask the supplier for a renewal. You avoid the scramble that happens when the problem is found on the day it bites.

  • Responsibility does not depend on one person

    The alert goes to a channel, so it survives holidays and job changes. The record is seen by whoever is working, not only by the person who built the database.

  • Each record is announced once

    Records already alerted on are remembered, so the channel does not repeat last week's list every morning. People read the posts because each one is new information. The channel stays useful because every post carries information nobody has seen yet this week.

  • Compliance gaps are reduced

    Auditors look for evidence that expiring documents are monitored. A dated trail in Slack showing alerts and the follow-up helps demonstrate that the process exists and is applied. Auditors then see alerts raised and acted on, which is stronger than a promise to check.

  • Any condition you can filter is monitored

    The same pattern works for low stock numbers, overdue invoices or missing owners, as long as Notion can filter for it. One database can have several alerts, each going to the right people.

How it works

What happens, step by step

  1. Every day, ClickRuntime checks your Notion database for entries whose date, such as a certificate expiry, falls within the next 30 days.

  2. It skips any entry it has already warned you about.

  3. The upcoming entries are posted to your #compliance Slack channel with each date and the number of days left.

Before it runs live

  • Connect Notion and share the database you want it to use
  • Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)

What you get

RunsDaily
Get warned before Notion deadlinestoday, 9:00Succeeded
Slack · #complianceSupplier certificates expiring soon: • Brightline Packaging: expires 2026-11-02 (18 days) • Kestrel Foods: expires 2026-11-09 (25 days)

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 Google Sheets
  • Combine it with other Notion and Slack 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.
notion_database_condition_alerts_in_slack.pyexample
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, state, notify

DATABASE_ID = "your-database-id"
DATE_FIELD = "Certificate expires"
DAYS_AHEAD = 30

@on_trigger
def run(event):
    token = credentials.secret("NOTION_TOKEN")
    today = date.today()
    resp = http.post(
        f"https://api.notion.com/v1/databases/{DATABASE_ID}/query",
        headers={"Authorization": f"Bearer {token}", "Notion-Version": "2022-06-28"},
        json={"filter": {"property": DATE_FIELD,
                         "date": {"on_or_before": (today + timedelta(days=DAYS_AHEAD)).isoformat()}}},
    )
    resp.raise_for_status()
    alerted = set(state.get("alerted") or [])
    lines = []
    for page in resp.json()["results"]:
        props = page["properties"]
        name = "".join(t["plain_text"] for t in props["Name"]["title"])
        due = props[DATE_FIELD]["date"]["start"][:10]
        key = f"{page['id']}:{due}"
        if key in alerted:
            continue
        days = (date.fromisoformat(due) - today).days
        lines.append(f"• {name}: expires {due} ({days} days)")
        alerted.add(key)
    if lines:
        notify.slack("Supplier certificates expiring soon:\n" + "\n".join(lines), channel="#compliance")
    state.set("alerted", sorted(alerted)[-500:])
    return {"alerted": len(lines)}

FAQ

Common questions

Does it work with any Notion database?
Yes, any database with a date property: contract renewals, certificates, subscriptions, review dates. Tell the assistant the property name and how many days ahead to warn.
If a date is moved, will it alert again?
Yes. Alerts are remembered per page and date, so a new date is treated as a new deadline.
How does it avoid alerting twice?
It stores the IDs of records it has already alerted on. A record that stays in the filtered set is not announced again, though a record that leaves and returns can be, if you choose.
Can it add context to the Slack message?
Yes. An optional AI step can write a short sentence, such as which supplier and what document, based on the page's properties. Without it, the message simply lists the record titles, dates and owners. You can switch that step on or off at any time.
What Notion access does it need?
A Notion integration that has been shared with the database you want to watch. It reads properties only, and it cannot change anything in the database unless you add a step that does. Give the integration access to each database you add.
What permissions does it need?
Notion read; Slack chat:write. Nothing else in your accounts is used.
Does it need AI?
No, but you can ask for an AI step (for example a summary). It then uses ClickRuntime's built-in 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 before Notion deadlines” from your assistant

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