Every 10 minutes
Post new HubSpot deals and stage changes in Slack
Your sales channel hears about every new deal and every stage move, with amount and owner.
- Runs
- Every 10 minutes
- Apps
- HubSpot, Slack
- AI
- Not needed
- Access
- HubSpot crm.objects.deals.read, crm.objects.owners.read; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: post in #deals whenever a HubSpot deal is created or changes stage, with the amount and owner.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A sales team of six works its deals in HubSpot, but the founder and the delivery lead rarely log in. They learn a big deal closed at the Monday meeting, which is too late to plan the onboarding work.
A message in Slack each time a deal is created or moves stage keeps everyone who does not live in the CRM aware of what is coming.
What you get out of it
Delivery can plan ahead
Seeing a deal move to contract sent tells the delivery team to line up people before the signature arrives.
Wins get noticed
A closed-won message in a shared channel gives the team a moment to recognise the rep, not just a number on a report.
Fewer status questions
Leaders stop asking reps for updates because the channel already shows each move as it happens.
Stalled deals are easier to spot
When a deal stops appearing in the channel, people notice. Quiet deals get a question sooner.
How it works
What happens, step by step
Every few minutes ClickRuntime checks HubSpot for deals that were created or updated since the last check.
It compares each deal's stage with the stage it saw last time, so only real stage changes are reported.
It looks up the deal owner's name.
A message with the deal name, stage, amount and owner is posted in your #deals Slack channel.
Before it runs live
- Connect HubSpot
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
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 Google Sheets
- Combine it with other HubSpot and Slack steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, state, notify, report_fetched, http
@on_trigger
def run(event):
h = {"Authorization": f"Bearer {credentials.secret('HUBSPOT_TOKEN')}"}
stages = state.get("stages") or {}
deals = http.get("https://api.hubapi.com/crm/v3/objects/deals", headers=h,
params={"properties": "dealname,amount,dealstage,hubspot_owner_id", "limit": 100}).json()["results"]
changed = [d for d in deals if stages.get(d["id"]) != d["properties"]["dealstage"]]
report_fetched(len(changed))
if not changed:
return {"summary": "No changes"}
for d in changed:
p = d["properties"]
owner = http.get(f"https://api.hubapi.com/crm/v3/owners/{p['hubspot_owner_id']}", headers=h).json() if p.get("hubspot_owner_id") else {}
verb = "New deal" if d["id"] not in stages else "Moved to"
notify.slack(f"{verb} {p['dealstage']}: *{p['dealname']}* ${p.get('amount') or 0} ({owner.get('firstName', 'unassigned')})", channel="#deals")
stages[d["id"]] = p["dealstage"]
state.set("stages", stages)
return {"posted": len(changed)}FAQ
Common questions
Can I limit it to one pipeline?
Will it post when someone edits the amount?
Can closed-lost deals go to a different channel?
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
Check new HubSpot contacts and companies for bad data
New contacts with broken emails and new companies with dead websites are flagged in Slack before anyone works them.
See how it worksAlert Slack about urgent HubSpot tickets left open
High-priority HubSpot tickets open for more than 4 hours are flagged in your support channel so someone picks them up.
See how it worksPost high-quality HubSpot leads to Slack
New HubSpot contacts from larger companies or with a high lead score show up in #sales within minutes, with a link to the record.
See how it worksKeep exploring
Set up “Post new HubSpot deals and stage changes in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.