Skip to content

Every 30 minutes

Hear when a target account changes stage

When one of our Apollo accounts moves to a new stage, I get a Slack message saying which account and which stage.

Runs
Every 30 minutes
Apps
Apollo.io
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every 30 minutes, check our Apollo accounts and post to #accounts in Slack when an account's stage changes, with the old and new stage.

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 sales development rep keeps a short list of 40 target accounts in Apollo, each at a stage like Cold, Approaching or Replied. Sometimes a colleague moves an account to Meeting Booked, or an enrichment sync flips one back, and the rep finds out only when a prospect mentions a conversation they did not know about. Two people end up emailing the same buyer, which looks careless.

Every 30 minutes, ClickRuntime searches your Apollo accounts and compares each account's current stage with the stage it saved on the previous check. Any account whose stage differs is posted to Slack with its name and the old and new stage, and the stored value is updated for next time.

It works well for small teams that share an Apollo workspace and need a light way to see who touched what.

What you get out of it

  • Duplicate outreach gets prevented

    When a teammate's stage change appears in Slack within half an hour, you stop before sending a cold email to an account that is already in conversation. Buyers get one coherent approach.

  • Hot accounts get a faster follow-up

    A move to Replied or Meeting Booked is a signal worth acting on. Hearing about it the same morning lets the account owner prepare while the interest is fresh. Your reputation with the buyer is protected as well.

  • Accidental stage edits get spotted

    A bulk update or a bad import can push accounts backward without anyone noticing. The old-to-new line in the message makes those reversals easy to catch and correct. You find and undo the damage the same day.

  • Managers see pipeline movement live

    Rather than waiting for a Friday review, a manager reads the channel and sees which accounts progressed this week, and which stalled, with no need to open Apollo. That makes weekly pipeline reviews shorter and better informed.

  • Account history survives in chat

    The Slack thread becomes a dated trail of when each target changed stage. When someone asks how an account reached its current stage, you can scroll back and answer. It beats guessing from memory.

  • Territory disputes get settled quickly

    When two reps both think they own an account, the stage message shows who moved it last and when. The disagreement ends with a fact in the channel rather than a long chat about who called first.

How it works

What happens, step by step

  1. Every 30 minutes, ClickRuntime checks your accounts in Apollo.

  2. It compares each account's stage with the one it saved last time.

  3. When an account has moved, a message goes to #accounts with the account name and its old and new stage.

Before it runs live

  • Connect Apollo.io

What you get

RunsEvery 30 minutes
Hear when a target account changes stagetoday, 9:00Succeeded
Slack · #accounts*Acme Logistics*: Prospect → Active opportunity

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 Slack
  • Combine it with other Apollo.io 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.
account_updated_alert.pyexample
from clickruntime import on_trigger, credentials, http, notify, state, report_fetched

API = "https://api.apollo.io/api/v1"

@on_trigger
def run(event):
    headers = {"X-Api-Key": credentials.secret("APOLLO_API_KEY"), "Cache-Control": "no-cache"}
    accounts = http.post(f"{API}/accounts/search", headers=headers,
                         json={"sort_by_field": "account_last_activity_date", "per_page": 100}).json()["accounts"]
    known = state.get("stages") or {}
    changed = [a for a in accounts if a["id"] in known and known[a["id"]] != a.get("account_stage_id")]
    report_fetched(len(changed))
    current = {**known, **{a["id"]: a.get("account_stage_id") for a in accounts}}
    if not changed:
        if current != known:
            state.set("stages", current)  # first run or new accounts: remember without alerting
        return {"changed": 0}
    names = {s["id"]: s["name"] for s in http.get(f"{API}/account_stages", headers=headers).json()["account_stages"]}
    for a in changed:
        notify.slack(f"*{a['name']}*: {names.get(known[a['id']], '?')} → {names.get(a.get('account_stage_id'), '?')}",
                     channel="#accounts")
    state.set("stages", current)
    return {"changed": len(changed)}

FAQ

Common questions

How does it know a stage has changed?
On the first run it stores each account's current stage as a baseline. On every later run it fetches the accounts again and compares. Only a difference produces a message, so the first run records data without posting a flood of alerts.
Does it cover every account in Apollo or just a list?
The search can be limited, for example to accounts you own, to a particular label or to one team's accounts. A narrower search keeps the channel readable and also keeps the comparison fast for workspaces with thousands of records.
Why every 30 minutes and not instantly?
Apollo does not push account stage changes to outside systems in the way webhooks do, so ClickRuntime polls on a timer. Thirty minutes balances freshness against API usage, and your AI assistant can shorten or lengthen it.
What permissions does it need?
read. 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 “Hear when a target account changes stage” from your assistant

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