Skip to content

Hourly

Get a Slack alert when sign-ups fall behind

If sign-ups are running 30% under their usual pace, you find out within the hour.

Runs
Hourly
Apps
Mixpanel
AI
Not needed
Access
service account

Send this to your assistant

Create a ClickRuntime automation: every hour, check today's sign-ups in Mixpanel and message me in Slack if they're more than 30% below the 7-day average for this time of day.

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

Sign-ups rarely fall off a cliff in one clean line. A broken Google login button, a form that errors on Safari, or a paused ad campaign shows up as a gradual slide across several hours, and by the time somebody glances at Mixpanel in the afternoon the day's funnel is already damaged. Every hour of a broken sign-up flow means paid traffic that arrived and left without creating an account.

Every hour ClickRuntime queries Mixpanel for the count of sign-up events, compares it with a rolling average of the same hours on recent days kept in saved state, and posts to Slack when the count is 30 percent or more below that normal level. The rolling average updates as it goes, so a slow weekly pattern is not mistaken for an outage.

Growth and engineering leads use it as a cheap tripwire in place of a full monitoring stack.

What you get out of it

  • Broken flows caught within the hour

    Hourly checks mean a failing sign-up form is flagged while the evening ad spend is still running. The fix happens the same afternoon, which is the difference between losing 40 sign-ups and losing a whole day's cohort.

  • Alerts based on your own normal

    A fixed threshold fails on weekends and at night. Comparing with a rolling average of similar hours means a quiet Sunday does not page anyone, while a genuine 30 percent shortfall on a busy Tuesday does.

  • No one has to watch a chart

    The check runs on its own, so the person who owns growth is not tied to a dashboard tab. Attention is spent only when Slack shows a message, which keeps trust in the alert high.

  • A shared place to start debugging

    The Slack post lands where engineers and marketers already talk. They see the same drop, and can immediately ask whether a deploy, campaign change or tracking bug is to blame.

  • Tracking failures treated as incidents

    A sudden fall to zero is often a broken analytics snippet, not lost users. Catching it quickly protects the data your weekly reports and experiments depend on, before gaps accumulate.

How it works

What happens, step by step

  1. Every hour, ClickRuntime counts today's sign-ups in Mixpanel so far.

  2. It compares that with the usual count by this time of day over the past seven days.

  3. If sign-ups are running 30% or more behind, a message goes to your Slack channel with today's count and the usual one.

Before it runs live

  • Connect Mixpanel

What you get

RunsHourly
Get a Slack alert when sign-ups fall behindtoday, 9:00Succeeded
Slack · #growthSign-ups are 41% below the 7-day average: 52 so far vs 88 usual by 14:00.

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 Mixpanel 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.
metric_drop_alert.pyexample
from datetime import datetime, timedelta, date
from clickruntime import on_trigger, credentials, http, notify, state

PROJECT_ID = 2195193

def signups_by_hour(day):
    data = http.get("https://mixpanel.com/api/query/segmentation",
                    auth=("ops-reader.mp-service-account", credentials.secret("MIXPANEL_SERVICE_SECRET")),
                    params={"project_id": PROJECT_ID, "event": "Sign Up", "from_date": day,
                            "to_date": day, "unit": "hour"}).json()
    return data["data"]["values"].get("Sign Up", {})

@on_trigger
def run(event):
    hour = datetime.now().hour
    def upto(day):
        return sum(v for k, v in signups_by_hour(str(day)).items() if int(k[11:13]) < hour)
    today = upto(date.today())
    avg = sum(upto(date.today() - timedelta(days=d)) for d in range(1, 8)) / 7
    if avg and today < avg * 0.7 and state.get("alerted_on") != str(date.today()):
        notify.slack(f"Sign-ups are {1 - today / avg:.0%} below the 7-day average: "
                     f"{today} so far vs {avg:.0f} usual by {hour}:00.", channel="#growth")
        state.set("alerted_on", str(date.today()))
    return {"today": today, "avg": round(avg, 1)}

FAQ

Common questions

How does it decide what normal is?
It keeps a rolling average of the sign-up counts from comparable hours in saved state and updates it each run. A run is flagged when the current hour is at least 30 percent under that average, so gradual growth raises the baseline naturally.
Can I use a different event or percentage?
Yes. The event name and the 30 percent trigger are just settings. You could watch Checkout Completed at 20 percent, or Activated at 40 percent, and the change is shown to you for confirmation before it runs.
Will it message me every hour during an outage?
It can be set to alert once when the drop begins and again only when counts recover, instead of repeating hourly. That keeps a long incident from filling the channel while still telling you when the problem has ended.
What permissions does it need?
service account. 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 “Get a Slack alert when sign-ups fall behind” from your assistant

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