Skip to content

Every 10 minutes

Get told when a deal changes stage

When one of my deals moves to a new stage, I get a Slack message with the deal and its new stage.

Runs
Every 10 minutes
Apps
Freshsales
AI
Not needed
Access
read

Send this to your assistant

Create a ClickRuntime automation: every 10 minutes, check my Freshsales deals and send me a Slack DM when one changes stage, with the deal name, old stage 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 deal in Freshsales moving to a new stage is the main event in sales. A prospect that reaches Negotiation needs a contract ready, one that drops to Lost needs a reason logged, and one that jumps to Won needs onboarding to begin. Managers and teammates who are not the deal owner find out only when they open the pipeline or hear it at the weekly meeting, and the follow-up work, from billing to kickoff, waits until someone remembers to ask. Updates often go unseen.

Every ten minutes, ClickRuntime lists the deals sorted by last update, compares each deal's stage with the value it stored earlier, and sends you a direct message for every deal whose stage has changed, showing the deal name, the old stage, the new one and a link.

It works best for people who follow a handful of important deals without owning them.

What you get out of it

  • Start the next step on time

    A deal that moves to Won triggers onboarding, invoicing and a welcome email. Knowing within minutes means the customer experiences a smooth handoff instead of a week of silence. Customers remember smooth starts.

  • Support your reps at the right moment

    A manager who sees a deal enter Negotiation can offer help with pricing or legal terms. Support at that moment can decide the outcome. Help arrives while it can still change the result.

  • Learn why deals are lost

    A message when a deal moves to Lost prompts you to ask the rep for the reason while it is fresh. Honest loss reasons improve forecasting and messaging far more than reasons recalled a month later.

  • Keep forecasts current

    Stage changes feed revenue forecasts. Seeing them as they happen lets a sales leader adjust the quarter's expectations before the end-of-month scramble. Better forecasts help everyone plan. Quarter-end surprises shrink.

  • Follow only the deals you care about

    A direct message is private and personal. You see changes to the deals you track without adding noise to a team channel. You stay informed without extra noise. Private updates stay private.

How it works

What happens, step by step

  1. Every 10 minutes, ClickRuntime checks your most recently updated deals in Freshsales.

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

  3. When a deal has moved, you get a Slack message with the deal name and its old and new stage.

Before it runs live

  • Connect Freshsales

What you get

RunsEvery 10 minutes
Get told when a deal changes stagetoday, 9:00Succeeded
Slack · DM*Acme annual plan*: Demo → Negotiation

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 Freshsales 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.
deal_updated_alert.pyexample
from clickruntime import on_trigger, credentials, http, notify, state, report_fetched

API = "https://northwind.myfreshworks.com/crm/sales/api"
VIEW_ID = 31000000124  # My deals

@on_trigger
def run(event):
    resp = http.get(f"{API}/deals/view/{VIEW_ID}", params={"sort": "updated_at", "sort_type": "desc", "include": "deal_stage"},
                    headers={"Authorization": f"Token token={credentials.secret('FRESHSALES_API_KEY')}"})
    resp.raise_for_status()
    body = resp.json()
    stages = {s["id"]: s["name"] for s in body.get("deal_stages", [])}
    known = state.get("stages") or {}
    moved = [d for d in body["deals"] if str(d["id"]) in known and known[str(d["id"])] != d["deal_stage_id"]]
    report_fetched(len(moved))
    current = {**known, **{str(d["id"]): d["deal_stage_id"] for d in body["deals"]}}
    if not moved:
        if current != known:
            state.set("stages", current)  # first run: remember stages without alerting
        return {"moved": 0}
    for d in moved:
        notify.slack(f"*{d['name']}*: {stages.get(known[str(d['id'])], '?')} → {stages.get(d['deal_stage_id'], '?')}",
                     channel="@morgan")
    state.set("stages", current)
    return {"moved": len(moved)}

FAQ

Common questions

Does it show who moved the deal?
Freshsales records when a deal was updated and who owns it. The message shows the owner and the stage change, though the exact user who made the edit may not be available through the deals list.
Can I follow only deals above a certain value?
Yes. Filter by deal value, owner, pipeline or a deal list you name, such as deals over 25,000 dollars. Other stage changes are ignored, so the direct messages cover only the deals you have chosen.
What if a deal moves stage twice between checks?
The check runs every ten minutes and compares the current stage with the last stored one, so two changes within that window appear as a single jump. For a full history, the activity log in Freshsales keeps every step.
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 “Get told when a deal changes stage” from your assistant

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