Every hour
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.
- Runs
- Every hour
- 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: every hour, take new supplier proposals in my Airtable base, have AI score them against our criteria, write the score back and post the top ones to #procurement.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A purchasing team collects supplier responses to its requests for proposals in Airtable. On a busy week thirty arrive, each with a different format and level of detail. The buyer reads every one before deciding which deserve a call, and the good ones sometimes wait days.
Scoring each proposal as it arrives gives the team a first pass within the hour. The score and reason sit on the record, and the strongest proposals are shared in Slack so the right people can follow up quickly.
What you get out of it
Strong suppliers get a fast reply
The best proposals reach the team within the hour. Responding quickly matters when a supplier is weighing several buyers.
Every proposal is judged the same way
Each record is scored against the same criteria, so a late-night submission gets the same attention as one read first thing on Monday.
Reasons are kept on the record
A short explanation sits next to each score. When someone asks why a supplier was shortlisted, the answer is already in Airtable.
Buyers spend time on the shortlist
Reading every proposal end to end is replaced by checking the few that scored well. The rest can still be opened whenever needed.
How it works
What happens, step by step
Every hour, ClickRuntime checks your Airtable base for supplier proposals that have not been scored yet.
AI reads each proposal and gives it a score out of 10 with a one-line reason based on your criteria.
The score and reason are written back to the record, so it is not scored again next time.
Proposals that score highly are posted in your #procurement 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, ai, notify, report_fetched
BASE, TABLE = "appYourBaseId", "RFPs"
CRITERIA = "price, delivery time, certifications, completeness"
@on_trigger
def run(event):
url = f"https://api.airtable.com/v0/{BASE}/{TABLE}"
headers = {"Authorization": f"Bearer {credentials.secret('AIRTABLE_API_KEY')}"}
records = http.get(url, headers=headers, params={"filterByFormula": "{Score}=BLANK()"}).json()["records"]
report_fetched(len(records))
if not records:
return {"scored": 0}
schema = {"type": "object", "properties": {"score": {"type": "integer"}, "reason": {"type": "string"}}, "required": ["score", "reason"]}
top = []
for r in records:
f = r["fields"]
res = ai.generate(f"Score this supplier proposal 1-10 on {CRITERIA}:\n{f.get('Proposal', '')}", json_schema=schema).json
http.patch(url, headers=headers, json={"records": [{"id": r["id"], "fields": {"Score": res["score"], "Reason": res["reason"]}}]})
if res["score"] >= 7:
top.append(f"{f.get('Supplier', 'Supplier')}: {res['score']}/10, {res['reason']}")
if top:
notify.slack("Top new proposals:\n" + "\n".join(top), channel="#procurement")
return {"scored": len(records), "top": len(top)}FAQ
Common questions
What does it score proposals on?
Which proposals are posted to Slack?
Can someone override the score?
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 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.
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 supplier proposals with AI and share the best in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.