The moment it happens
Track Copper opportunity status changes
I see when a deal moves between Open, Won, Lost or Abandoned, with the old and new status.
- Runs
- The moment it happens
- Apps
- Copper
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: when a Copper opportunity's status changes, post the opportunity name, owner, old status and new status to #sales-leads in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Deals rarely die loudly. A prospect goes quiet, a rep marks the Copper opportunity as Lost or Abandoned, and nobody else learns that the forecast just dropped. Revenue reviews then include deals that are already gone, and the team misses its chance to ask why the deal failed while the details are fresh.
When Copper reports an opportunity update, this compares its status with the value stored earlier and posts to Slack only when the status has actually changed to lost or abandoned. Ordinary edits to other fields are ignored.
Sales leaders and revenue operations teams use it to keep forecasts honest and learn from lost deals. Because the status is compared with the value stored earlier, an ordinary edit to an amount or a close date is ignored, and the channel only hears about real losses.
What you get out of it
Keep forecasts accurate
A lost deal removed from the forecast the same day means leadership plans on real numbers. Hidden losses lead to optimistic projections that are corrected painfully later. A lost deal taken out of the forecast the same day means leaders plan on real numbers and not optimistic ones.
Learn why deals are lost while it is fresh
A prompt message lets a manager ask the rep about the reason that same day. Honest answers are far more useful than recollections weeks afterwards. A prompt message lets a manager ask the rep about the reason that same day, and honest answers fade quickly.
Rescue deals marked lost too early
Sometimes a lost status is premature. Seeing it in Slack gives a manager a chance to step in with a call before the prospect is gone. Sometimes a lost status is premature, and a manager who sees it in Slack can step in with a call before the prospect is gone.
Avoid wasting effort on dead deals
Other team members stop preparing for a deal that is no longer live. Their time goes to opportunities that can still close. Other team members stop preparing for a deal that is dead, and their time goes to opportunities that can still close.
Build a record of lost opportunities
The channel history becomes a dated list of lost deals. It helps analyse patterns by product, rep or competitor. The channel history becomes a dated list of lost deals, which helps analyze patterns by product, rep or competitor.
How it works
What happens, step by step
Each time an opportunity is updated in Copper, Copper tells ClickRuntime straight away.
It compares the status with the one it saved last time, so other edits are ignored.
When the status has changed, a message goes to #sales-leads showing the deal, its owner and the old and new status, like "Open → Lost".
Before it runs live
- Connect Copper
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
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 Copper steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, notify
API = "https://api.copper.com/developer_api/v1"
@on_event
def handle(event):
body = event.json or {}
change = body.get("updated_attributes", {}).get("status")
if body.get("type") != "opportunity" or not change:
return {"skipped": "no status change"}
old, new = change
headers = {"X-PW-AccessToken": credentials.secret("COPPER_API_KEY"), "X-PW-Application": "developer_api",
"X-PW-UserEmail": "admin@acme.example", "Content-Type": "application/json"}
for opp_id in body.get("ids", []):
opp = http.get(f"{API}/opportunities/{opp_id}", headers=headers).json()
owner = http.get(f"{API}/users/{opp['assignee_id']}", headers=headers).json()["name"] if opp.get("assignee_id") else "-"
notify.slack(f"*{opp['name']}* ({owner}): {old} → {new}", channel="#sales-leads")
return {"ids": body.get("ids"), "status": new}FAQ
Common questions
Why does it compare with a stored value?
Which statuses does it alert on?
Does it post who changed the status?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Post Copper wins to each pipeline's Slack channel
When a deal is marked Won, the channel for its pipeline hears about it with the value and owner.
See how it worksGet alerted to each new Copper opportunity
Every new opportunity shows up with its company, value and expected close date.
See how it worksPost new orders and sign-ups to Slack
When something happens in your shop, app or form, the details land in the right channel straight away.
See how it worksKeep exploring
Set up “Track Copper opportunity status changes” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
