Skip to content

Every 10 minutes

Get told when someone mentions a keyword in Slack

When anyone mentions a customer, a competitor or a word like "outage", you get the message and a link to it.

Runs
Every 10 minutes
Apps
Slack
AI
Not needed
Access
channels:history

Send this to your assistant

Create a ClickRuntime automation: every 10 minutes, check #support and #sales for 'outage', 'refund' or 'Acme', and email me any messages that mention them with a link to each.

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

Nobody can read every Slack channel. A customer mentions in #support-escalations that their dashboard has been down since morning, a salesperson writes about a prospect's cancellation in a private deal room, and the word "outage" appears in a thread three levels deep. Leaders only hear about it from a customer's email an hour later. The same goes for a key account's name: the signal is in conversation, but it is spread across too many places for anyone to watch.

Every ten minutes, ClickRuntime reads new messages since its last check, looks for the keywords you define, such as outage, refund or your biggest customer's name, and emails you each match with a permalink to the exact message. It then saves the newest timestamp, so the next run only sees messages that are actually new.

Executives, customer success leads and incident managers tend to use it for words that signal risk.

What you get out of it

  • Incidents surface within minutes

    A mention of outage or data loss in any channel it can read becomes an email within about ten minutes, so the right person hears early, not after a customer escalates.

  • Key accounts are never discussed unnoticed

    If your largest customer's name comes up in a complaint or renewal thread, the account owner finds out the same morning rather than at the next pipeline review, while there is still time to call the customer.

  • You skip the constant channel scanning

    Instead of keeping a dozen channels open and reading them all, you rely on a short list of matches. Attention goes to the conversations that contain what you asked about, and the rest of the day stays uninterrupted.

  • Context arrives with each match

    Each alert links to the original message, so you open the thread with its replies instead of reading a pasted quote with no surrounding discussion, and you can answer in the same place.

  • Compliance terms can be watched

    Teams that must catch a phrase such as a contract term, a safety issue or a competitor's name can use the same list to monitor internal conversation without anyone reading everything.

How it works

What happens, step by step

  1. Every 10 minutes ClickRuntime reads the new messages in the Slack channels you chose.

  2. It looks for the words you care about, such as "outage" or "refund" or a client's name.

  3. Matching messages are emailed to you with the channel name and a link straight to the message.

  4. It remembers where it stopped reading, so each message is only checked once.

Before it runs live

  • Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)

What you get

RunsEvery 10 minutes
Get told when someone mentions a keyword in Slacktoday, 9:00Succeeded
Email · 2 Slack messages matched your keywords#support: Northwind says they were double charged and want a refund https://acme.slack.com/archives/C01SUPPORT/p1760000000123456

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 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.
keyword_alert_across_channels.pyexample
import re
from slack_sdk import WebClient
from clickruntime import on_trigger, report_fetched, credentials, state, notify

CHANNELS = {"C01SUPPORT": "#support", "C02SALES00": "#sales"}
WORDS = re.compile(r"\b(outage|refund|acme)\b", re.I)

@on_trigger
def run(event):
    slack = WebClient(token=credentials.connection("slack", "work"))
    last = state.get("last_ts") or {}
    hits = []
    for cid, label in CHANNELS.items():
        msgs = slack.conversations_history(channel=cid, oldest=last.get(cid, "0"), limit=200)["messages"]
        if msgs:
            last[cid] = msgs[0]["ts"]
        for m in msgs:
            if WORDS.search(m.get("text", "")):
                link = slack.chat_getPermalink(channel=cid, message_ts=m["ts"])["permalink"]
                hits.append(f"{label}: {m['text'][:200]}\n{link}")
    report_fetched(len(hits))
    state.set("last_ts", last)
    if hits:
        notify.email_me(f"{len(hits)} Slack messages matched your keywords", "\n\n".join(hits))
    return {"matches": len(hits)}

FAQ

Common questions

Which channels does it read?
It reads public channels the Slack connection can access, and private channels only where the bot has been invited. If a channel is missing from alerts, check that the bot is a member rather than assuming the keyword failed.
Is the keyword match case sensitive?
No. Outage, outage and OUTAGE are all treated the same, and you can list several words or phrases. Matching is on the text of the message, so very different wording, like service unavailable, needs its own entry.
Will I get the same message twice?
No. The run saves the timestamp of the latest message it checked, and the next run starts after it. A message that matches is emailed once, even if people keep replying in that thread afterward.
What permissions does it need?
channels:history. 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 told when someone mentions a keyword in Slack” from your assistant

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