Skip to content

Hourly

Hear when brand mentions spike or turn negative

You get an alert when a listening topic's volume jumps or its negative sentiment climbs well above normal.

Runs
Hourly
Apps
Sprout Social
AI
Not needed
Access
API token (Listening add-on)

Send this to your assistant

Create a ClickRuntime automation: every hour, check my Sprout Social listening topic 'Brand mentions' and email me if volume doubles against the usual level or negative sentiment rises by 20 points.

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

A brand rarely hears about a crisis from its own channels first. A product defect spreads in a few hundred posts, a misunderstood ad becomes a joke, or a news story drags your name into a controversy, and the volume of mentions grows hour by hour while the team is in meetings. Sprout's Listening topics can measure mentions and sentiment, but they only help when someone is looking at the dashboard. By the time a person notices, the story has had a day to set.

Every hour, ClickRuntime reads the metrics for your listening topics, compares the current volume and sentiment with a stored baseline, and sends an alert when mentions spike or the share of negative sentiment rises above the level you set. A normal hour produces nothing.

Communications teams, brand managers and agencies monitoring a client's reputation use it as an early warning.

What you get out of it

  • Crises are noticed in hours

    An hourly comparison with the normal level flags a sudden surge while it can still be contained with a quick statement, a correction or a reply, before it reaches the news.

  • Positive spikes are also seen

    A burst of mentions after an influencer posts or a campaign lands is worth knowing about. The team can join the conversation and capitalize on it while attention is high.

  • The baseline adapts to your brand

    Because the comparison uses your own stored baseline, a large brand's normal volume does not cause constant alarms, and a small one still gets warned about a modest jump. That makes the alert fair for both large and small accounts.

  • Nobody has to watch a dashboard

    The team continues with other work and responds when an alert arrives. That is more reliable than hoping someone remembers to look at the listening view between meetings. Attention is a limited resource, and this spends it only when something has changed.

  • Reputation incidents leave a timeline

    A series of alerts with times and figures shows when a topic started to rise and how it responded to your actions, useful for post-incident reviews and client reports. That timeline also helps explain to leadership what happened and what was done.

How it works

What happens, step by step

  1. Every hour ClickRuntime asks Sprout Social how many times your brand was mentioned in the last hour, and how positive or negative those mentions were.

  2. It compares both with your usual levels, which it keeps as a running average.

  3. If mentions doubled or sentiment dropped sharply, you get an email with the numbers next to what's normal.

  4. It then updates the running average, so the usual level slowly follows real changes.

Before it runs live

  • Connect Sprout Social

What you get

RunsHourly
Hear when brand mentions spike or turn negativetoday, 9:00Succeeded
Email · Brand mentions spikeVolume 412 vs usual 160 Net sentiment fell to 18 from 44

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
  • 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 Sprout Social 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.
listening_topic_spike_sentiment_alert.pyexample
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, state, notify

API = "https://api.sproutsocial.com/v1"

def sprout():
    h = {"Authorization": f"Bearer {credentials.secret('SPROUT_API_TOKEN')}"}
    cid = http.get(f"{API}/metadata/client", headers=h).json()["data"][0]["customer_id"]
    return h, cid

TOPIC_ID = "brand-mentions-topic-id"

@on_trigger
def run(event):
    h, cid = sprout()
    now = datetime.now(timezone.utc)
    body = {"filters": [f"created_time.in({(now - timedelta(hours=1)).isoformat()}..{now.isoformat()})"],
            "metrics": ["volume", "net_sentiment"]}
    m = http.post(f"{API}/{cid}/listening/topics/{TOPIC_ID}/metrics", json=body, headers=h).json()["data"][0]["metrics"]
    base = state.get("baseline") or {"volume": m["volume"], "net_sentiment": m["net_sentiment"]}
    alerts = []
    if base["volume"] and m["volume"] >= 2 * base["volume"]:
        alerts.append(f"Volume {m['volume']} vs usual {base['volume']:.0f}")
    if base["net_sentiment"] - m["net_sentiment"] >= 20:
        alerts.append(f"Net sentiment fell to {m['net_sentiment']:.0f} from {base['net_sentiment']:.0f}")
    if alerts:
        notify.email_me("Brand mentions spike", "\n".join(alerts))
    state.set("baseline", {k: base[k] * 0.9 + m[k] * 0.1 for k in base})  # slow-moving average
    return {"alerts": alerts}

FAQ

Common questions

How is a spike defined?
You set a rule, such as mentions at least double the stored baseline for that hour, or negative sentiment above a given share. Each topic can have its own rule, since quiet topics need a lower threshold.
Does it alert when sentiment turns negative?
Yes. It compares the proportion of negative mentions against the baseline and alerts when it climbs past your limit, even if the total volume stays steady, so a quiet shift in tone is not missed.
How is the baseline kept up to date?
The run stores a rolling reference for each topic, such as an average of recent days, and updates it as new data arrives. Seasonal patterns, such as a regular weekend dip, can be accounted for.
What permissions does it need?
API token (Listening add-on). 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 runs (hourly). 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 “Hear when brand mentions spike or turn negative” from your assistant

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