Skip to content

The moment it happens

Log incidents in Notion and alert your team

Each outage or error alert becomes a Notion incident page, announced in Slack and updated when it's resolved.

Runs
The moment it happens
Apps
Notion, Slack
AI
Not needed
Access
Notion insert+update; Slack chat:write

Send this to your assistant

Create a ClickRuntime automation: give me a link my monitoring tool can send alerts to. Create a page in my Incidents database in Notion for each new incident, post it to #incidents, and mark it resolved when the recovery alert arrives.

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

When a service goes down at night, the first alert lands in whichever tool noticed. By the morning, people disagree about when it started, who responded, and whether the same incident was already open. Teams without a dedicated incident tool end up reconstructing a timeline from Slack scrollback. Repeated alerts for one outage add noise, and nobody can answer a customer who asks how often the service was down last quarter.

When your monitor, error tracker or script posts an event to the link ClickRuntime gives you, it parses the event and checks whether an incident for that service is already open. If not, it creates a Notion incident page and announces it in Slack. If one exists, it updates that page and posts the update.

Small engineering and operations teams without a paid incident product use it as a simple record.

What you get out of it

  • One outage becomes one incident

    Repeated alerts for the same service update an existing page instead of creating twenty. The team sees a single clean record with the full timeline. The team sees one clean record with its full timeline, not a scatter of near-identical pages.

  • Everyone hears about it in Slack

    A post goes to the channel the moment an incident opens. Support and account managers learn about the outage from the team instead of from customers. Support and account managers hear about the outage from the team instead of from angry customers.

  • Notion holds a durable history

    Each incident has a start time, updates and status. When a customer asks how often you were down last quarter, you count pages instead of guessing. Counting pages replaces guessing when a customer asks how often you were unavailable last quarter.

  • Postmortems start with the facts

    The page already contains timestamps and the events that arrived. Writing the review is about causes and fixes, not about arguing over when it began. Writing the review becomes a discussion of causes and fixes, not an argument about timing.

  • Works with the tools you already have

    Anything that can send a webhook, from UptimeRobot to a custom script, can feed it. You do not have to replace your monitoring to get incident tracking. You keep the monitoring you trust and gain a record without migrating to anything new.

How it works

What happens, step by step

  1. When your monitoring tool reports an outage or error, it sends the alert to ClickRuntime straight away.

  2. If there is no open incident for that check yet, ClickRuntime creates an incident page in your Notion database.

  3. A message appears in your #incidents Slack channel with the incident and a link to the page.

  4. When the monitor reports the problem is fixed, the Notion page is marked Resolved and Slack is told.

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)
  • Paste your automation's link into the other app's webhook settings

What you get

RunsThe moment it happens
Log incidents in Notion and alert your teamjust nowSucceeded
Slack · #incidents🔥 Incident: api.example.com: HTTP 503 from 3 regions https://www.notion.so/…

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 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.
incident_log_in_notion_with_slack_alerts.pyexample
from clickruntime import on_event, credentials, http, state, notify

DATABASE_ID = "your-incidents-database-id"

@on_event
def handle(event):
    alert = event.json or {}
    h = {"Authorization": f"Bearer {credentials.secret('NOTION_TOKEN')}", "Notion-Version": "2022-06-28"}
    key = alert.get("monitor") or alert.get("check", "unknown")
    open_incidents = state.get("open") or {}
    if alert.get("status") in ("up", "resolved") and key in open_incidents:
        page_id = open_incidents.pop(key)
        http.patch(f"https://api.notion.com/v1/pages/{page_id}", headers=h,
                   json={"properties": {"Status": {"select": {"name": "Resolved"}}}})
        notify.slack(f"✅ Resolved: {key}", channel="#incidents")
    elif alert.get("status") in ("down", "triggered") and key not in open_incidents:
        page = http.post("https://api.notion.com/v1/pages", headers=h, json={"parent": {"database_id": DATABASE_ID}, "properties": {
            "Name": {"title": [{"text": {"content": f"{key}: {alert.get('message', '')}"[:200]}}]},
            "Status": {"select": {"name": "Open"}}, "Started": {"date": {"start": event.received_at}}}}).json()
        open_incidents[key] = page["id"]
        notify.slack(f"🔥 Incident: {key}: {alert.get('message', '')}\n{page['url']}", channel="#incidents")
    state.set("open", open_incidents)
    return {"open": len(open_incidents)}

FAQ

Common questions

How does it know an incident is already open?
It stores the open incident for each service in saved state and looks it up when a new event arrives. A recovery event can mark the page as resolved and note the time. That lookup is what keeps repeat alerts from opening new pages.
What data can I send?
A service name, a status or severity and a message are enough. The automation reads these fields from the JSON you send and writes them to Notion properties and the Slack post. Extra fields you send can be stored as well.
Can severity decide where the alert goes?
Yes. Critical incidents can post to an urgent channel and mention an on-call group, while low severity ones only create the Notion page. Tell your AI assistant the levels you use. The same rule can mention an on-call group in Slack.
What permissions does it need?
Notion insert+update; Slack chat:write. 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 for each event the app sends.
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 “Log incidents in Notion and alert your team” from your assistant

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