Skip to content

Every 10 minutes

Save important Slack messages to Notion

React to a message with 🔖 and it's saved to a Notion database, tagged so you can find it later.

Runs
Every 10 minutes
Apps
Notion, Slack
AI
Yes, uses the built-in AI allowance
Access
Slack reactions:read, channels:history; Notion insert

Send this to your assistant

Create a ClickRuntime automation: every 10 minutes, find Slack messages with a 🔖 reaction, save each one to my Saved Messages database in Notion with a link and a few tags, and skip ones already saved.

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

The most useful messages in Slack are the ones nobody can find later: a customer's glowing feedback, a decision explained clearly, a bug report with reproduction steps. Teams bookmark them or promise to copy them somewhere, but bookmarks are personal and copying is a chore. Marketing needs testimonials for the website, product needs examples of real feedback, and both end up searching chat history for a sentence somebody half remembers.

Every ten minutes ClickRuntime looks for messages that someone marked with a reaction such as a star or a heart, skips ones it has already saved, fetches the text and permalink, and uses its built-in AI to add tags and a sentiment. It then creates a page for each in a Notion database that the whole team can search.

Customer-facing teams use it to build a living collection of testimonials and feedback.

What you get out of it

  • Good feedback is kept, not lost

    A reaction takes one second and turns a message into a permanent record. Marketing finds the praise a customer posted in March when it needs a quote for the new landing page.

  • Tags make the pile searchable

    AI-assigned topics let you filter for pricing feedback or onboarding complaints. A product manager can see every mention of a feature in one view. A product manager can then see every mention of one feature across months of feedback in a single view.

  • Sentiment shows the mood over time

    Positive, neutral and negative labels give a rough read of how customers feel. A rising count of negative items about one area points to a problem to look at. Labels give a rough read of mood, and a rising count of negative items about one area points to something to examine.

  • Everyone can contribute without extra tools

    Anybody in Slack can save a message with a reaction. The knowledge base grows from many colleagues rather than from the one person who maintains it. Anybody in Slack can save a message with a single reaction, so the library does not hang on one maintainer.

  • The source is always one click away

    Each page stores a link back to the original message. People can read the surrounding conversation to understand context before using a quote. People can read the surrounding conversation to understand the context before they quote someone, which prevents misuse.

How it works

What happens, step by step

  1. Every 10 minutes, ClickRuntime looks for Slack messages you have reacted to with the 🔖 bookmark, skipping any it has already saved.

  2. It gets each message's text and a link back to it in Slack.

  3. AI reads the message and picks a few tags for it.

  4. The message is saved as a page in your Notion Saved Messages database with its tags and link.

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

RunsEvery 10 minutes
Save important Slack messages to Notiontoday, 9:00Succeeded
Notion · Saved MessagesSaved: "Northwind renewal moved to Jan, they want annual billing" · tags: sales, renewals

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

DATABASE_ID = "your-saved-messages-database-id"

@on_trigger
def run(event):
    slack = WebClient(token=credentials.connection("slack", "work"))
    saved = set(state.get("saved") or [])
    items = slack.reactions_list(full=True, limit=100)["items"]
    new = [i for i in items if i["type"] == "message"
           and any(r["name"] == "bookmark" for r in i["message"].get("reactions", []))
           and f"{i['channel']}:{i['message']['ts']}" not in saved]
    report_fetched(len(new))
    if not new:
        return {"new": 0}
    for i in new:
        text = i["message"]["text"]
        link = slack.chat_getPermalink(channel=i["channel"], message_ts=i["message"]["ts"])["permalink"]
        tags = ai.generate(text[:2000], max_output_tokens=30, system="Give 1-3 short topic tags, comma separated.").text
        http.post("https://api.notion.com/v1/pages",
                  headers={"Authorization": f"Bearer {credentials.secret('NOTION_TOKEN')}", "Notion-Version": "2022-06-28"},
                  json={"parent": {"database_id": DATABASE_ID}, "properties": {
                      "Name": {"title": [{"text": {"content": text[:100]}}]},
                      "Link": {"url": link},
                      "Tags": {"multi_select": [{"name": t.strip()[:50]} for t in tags.split(",") if t.strip()]}}})
        saved.add(f"{i['channel']}:{i['message']['ts']}")
    state.set("saved", sorted(saved)[-1000:])
    return {"saved": len(new)}

FAQ

Common questions

Which reaction saves a message?
Whichever emoji you choose, such as a star or a heart. You can also use different reactions for different databases, for example one for testimonials and another for decisions. Reactions you do not list are ignored completely.
Does it save replies in threads?
Yes, a message in a thread with the chosen reaction is saved, with its permalink. The text of the single message is stored, not the whole thread, unless you ask for the thread to be included.
Can I review the AI tags?
The tags are written into a Notion multi-select property, so you can edit them like any other. Adjusting the instructions to use a fixed list of tags makes them consistent across the database. Keeping the tag list short usually gives the best results.
What permissions does it need?
Slack reactions:read, channels:history; Notion insert. 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 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 “Save important Slack messages to Notion” from your assistant

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