Every 10 minutes
Post 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.
- Runs
- Every 10 minutes
- Apps
- HubSpot, Slack
- AI
- Optional
- Access
- HubSpot crm.objects.contacts.read; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: when a new HubSpot contact has a company size over 50 or a lead score over 70, post them to #sales.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A B2B software company gets dozens of sign-ups a day. Most are students and one-person shops; a few are from companies that could become large accounts. In a busy CRM those few look the same as everyone else, and by the time a rep notices them, the prospect has already talked to someone else.
This automation picks out the contacts worth a fast reply and puts them in front of the sales team in Slack, so the best leads get a response the same hour they arrive.
What you get out of it
The best leads get answered first
Reps stop scrolling through every new contact and start with the ones most likely to buy.
Speed where it counts
Replying within the hour makes a real difference to whether a prospect books a call. An alert in #sales makes that possible.
Your own definition of a good lead
Company size and lead score thresholds are yours to set, so the alerts follow how your team already qualifies leads.
One click to the record
Each message links to the contact in HubSpot, so the rep can see the full history before reaching out.
How it works
What happens, step by step
Every 15 minutes ClickRuntime checks HubSpot for contacts created since the last check.
It keeps only those with a company size over 50 or a lead score over 70.
It skips anyone it has already posted.
Each good lead is posted in your #sales Slack channel with a link to their HubSpot record.
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
- Change what the AI looks for, or how it writes the result
- 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
import time
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched
@on_trigger
def run(event):
since = state.get("since") or int(time.time() * 1000) - 900000
now = int(time.time() * 1000)
body = {"filterGroups": [{"filters": [{"propertyName": "createdate", "operator": "GTE", "value": since}]}],
"properties": ["firstname", "lastname", "jobtitle", "company", "numemployees", "hubspotscore"], "limit": 100}
res = http.post("https://api.hubapi.com/crm/v3/objects/contacts/search", json=body,
headers={"Authorization": f"Bearer {credentials.secret('HUBSPOT_API_KEY')}"}).json()["results"]
report_fetched(len(res))
if not res:
return {"new": 0}
hot = 0
for c in res:
p = c["properties"]
if int(p.get("numemployees") or 0) > 50 or float(p.get("hubspotscore") or 0) > 70:
notify.slack(f"🔥 {p.get('firstname')} {p.get('lastname')}, {p.get('jobtitle')} at {p.get('company')} "
f"({p.get('numemployees')} staff, score {p.get('hubspotscore')})\n"
f"https://app.hubspot.com/contacts/your-portal-id/record/0-1/{c['id']}", channel="#sales")
hot += 1
state.set("since", now)
return {"new": len(res), "posted": hot}FAQ
Common questions
Can I use other fields to decide who is a good lead?
Will the same contact be posted twice?
What does the Slack message include?
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 worksPost new HubSpot deals and stage changes in Slack
Your sales channel hears about every new deal and every stage move, with amount and owner.
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 worksKeep exploring
Set up “Post high-quality HubSpot leads to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.