Auto-screen new Airtable submissions before they go live
Every new community post, review or job listing gets scored against your policy, labeled by topic, and only the risky ones ever reach your team.
Watch my Airtable submissions table with a poll trigger on the new_record event. Every time a new row appears, run this workflow once for that record. The table holds user-submitted content: community posts, reviews and public job listings. Each row has the submission text, the submitter, and the fields I want written back.
For each new record, take the submission text and send it to Mistral AI Moderations to score it against Mistral's moderation policy categories. Read the full set of category scores off the response, then work out which category scored highest and what that score was.
Also send the same submission text to Mistral AI Classifications to assign a topic or category label to the submission. Use the highest-scoring label from that response as the topic.
Use a single configurable score threshold to decide the outcome, defined as a constant at the top of the workflow and defaulting to 0.5. If the highest policy category score is at or above the threshold, the moderation status is needs review. If it is below the threshold, the status is auto-approved. If the moderation call fails, returns no scores, or returns anything I cannot read a numeric score out of, set the status to needs review rather than auto-approved. Never auto-approve a submission that the moderation step could not actually score.
Then use Airtable Update Record to write four values back onto that same record: the moderation status (auto-approved or needs review), the name of the highest-scoring policy category, the numeric score for that category, and the topic label from the classification step. Update only those four fields and leave the rest of the record untouched.
Only when a submission comes back as needs review, post an alert with Slack Bot Send a Message to my moderation channel. The message should name the submitter, include a short excerpt of the submission text (roughly the first 200 characters, trimmed on a word boundary), state the policy category and score that tripped the threshold, and include a direct link to the Airtable record built from the base id, table id and record id. Clean submissions are never posted to Slack, so the channel only ever contains things a human actually has to look at.
Keep the score threshold, the Slack channel, the Airtable base and table ids, and the excerpt length easy to change at the top of the workflow. Keep the logic strict and simple: score the text, compare against one threshold, write back four known fields, and notify only on the flagged path.
What does this prompt do?
- Watches your submissions table and picks up every new community post, review or public job listing as it arrives.
- Scores each submission against standard policy categories and assigns a topic label, so the queue is both risk-ranked and sorted by subject.
- Writes the verdict straight back onto the record: auto-approved or needs review, the category that scored highest, the score itself, and the topic.
- Alerts your moderation channel only when a submission crosses the line, with the submitter, an excerpt and a direct link to the record.
What do I need to use this?
- An Airtable base with a submissions table that holds the text of each entry and who submitted it.
- Four columns on that table to receive the results: moderation status, top policy category, score, and topic label.
- A Mistral AI account for the scoring and labeling steps.
- A Slack workspace and a channel where your moderation team wants to be alerted.
How can I customize it?
- Move the single score threshold up or down to control how much gets auto-approved versus held for a human.
- Change which Slack channel receives alerts, or send different topic labels to different channels.
- Adjust how much of the submission appears in the alert excerpt, or add more fields from the record to the message.
FAQs
What happens if a submission cannot be scored?
Will clean submissions clutter up my Slack channel?
Can I control how strict it is?
Does this delete or publish content on its own?
How quickly does it pick up new submissions?
What kinds of content does this work for?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.
Stop eyeballing every single submission.
Let the first pass run itself, and spend your review time only on the submissions that genuinely need a human.