Every 10 minutes
Score new Airtable leads and flag hot ones in Slack
Each new lead in Airtable gets a score and a reason, and the promising ones are posted to your sales channel.
- Runs
- Every 10 minutes
- Apps
- Airtable, Slack
- AI
- Yes, uses the built-in AI allowance
- Access
- Airtable read+write; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: when a new lead is added to my Airtable 'Leads' table, score it from 0 to 100 against our ideal customer, save the score and reason, and post leads above 70 to #sales.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A B2B agency collects leads from its website, events and referrals into an Airtable base. Some are perfect fits, many are students or tiny shops, and the sales team spends the first hour of each day sorting through them. Good leads wait while poor ones get a call.
Scoring each lead as it arrives puts the best prospects in front of sales within minutes, with a short reason they can check. Small sales teams use it to respond to strong leads first without hiring someone to triage.
What you get out of it
Hot leads get a fast reply
A Slack post within minutes of the lead arriving means a salesperson can reply the same hour, when the prospect is still interested.
Consistent scoring
Every lead is judged against the same description of your ideal customer, rather than whoever happens to read it that day.
A reason you can check
Each score comes with a one-line explanation saved in Airtable, so sales can see why a lead scored high or low and correct the criteria over time.
Less time sorting
The team stops reading every form submission. Low scores stay in the table for later nurturing instead of taking up the morning.
How it works
What happens, step by step
Every few minutes ClickRuntime looks for leads in your Airtable table that do not have a score yet.
AI compares each new lead with your description of an ideal customer and gives it a score and a short reason.
The score and reason are saved back to the lead in Airtable, so it is never scored twice.
Leads above your threshold are posted in your #sales Slack channel.
Before it runs live
- Connect Airtable
- 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 Airtable and Slack steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, notify, ai, report_fetched
BASE, TABLE = "appXXXXXXXX", "Leads"
ICP = "B2B software companies, 20-500 staff, in Europe or North America, needing marketing help."
SCHEMA = {"type": "object", "properties": {"score": {"type": "integer"}, "reason": {"type": "string"}}, "required": ["score", "reason"]}
@on_trigger
def run(event):
at = {"Authorization": f"Bearer {credentials.secret('AIRTABLE_API_KEY')}"}
url = f"https://api.airtable.com/v0/{BASE}/{TABLE}"
leads = http.get(url, headers=at, params={"filterByFormula": "{Score}=BLANK()"}).json()["records"]
report_fetched(len(leads))
if not leads:
return {"summary": "Nothing new"}
for lead in leads:
f = lead["fields"]
r = ai.generate(f"Ideal customer: {ICP}\nLead: {f}\nScore 0-100 with a one-line reason.", json_schema=SCHEMA, max_output_tokens=100).json
http.patch(f"{url}/{lead['id']}", headers=at, json={"fields": {"Score": r["score"], "Reason": r["reason"]}})
if r["score"] >= 70:
notify.slack(f"Hot lead ({r['score']}): {f.get('Company', '')} - {r['reason']}", channel="#sales")
return {"scored": len(leads)}FAQ
Common questions
How do I describe my ideal customer?
Which fields does it write back?
Can I change the threshold for Slack alerts?
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
Score new Airtable supplier proposals with AI and share the best in Slack
Each new supplier proposal in Airtable gets a score and a reason, and the strongest ones show up in Slack for the team to review.
See how it worksScore product reviews for sentiment and log them in Airtable
Every new product review is scored for sentiment, flagged if it looks fake, and saved to Airtable, with a weekly roundup in Slack.
See how it worksGet daily AI reorder suggestions from your Airtable inventory
Each morning your purchasing channel gets a list of items running low, with a suggested order quantity for each.
See how it worksKeep exploring
Set up “Score new Airtable leads and flag hot ones in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.