Hourly
Clean up and check Airtable fields
Image links become attachments and records with bad email addresses are flagged, every hour.
- Runs
- Hourly
- Apps
- Airtable
- AI
- Not needed
- Access
- data.records:read, data.records:write
Send this to your assistant
Create a ClickRuntime automation: every hour, in my Airtable Contacts table, turn the Image URL field into an attachment in the Photo field, and tick Check Email on rows whose email address looks invalid.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Airtable bases decay quietly. Someone pastes an image URL into a text field when the field should hold an attachment. Marketing writes descriptions in markdown that a website needs as HTML. A sales rep types an email address with a typo, and the next campaign bounces. Each issue is small, but they pile up across thousands of rows, and fixing them by hand means filtering, copying and pasting during hours nobody can spare.
Every hour, the automation lists records flagged as needing work, applies the correct transformation to each and writes the result back with a PATCH. An image URL becomes a proper attachment, markdown becomes HTML, and email addresses are checked for valid syntax and for a mail server (MX record). Records with problems are flagged so you can fix them.
Content teams, marketers and operations people who publish or email from Airtable get the most from it; it also helps anyone who keeps data in Airtable.
What you get out of it
Bounced emails stop before the campaign
Checking syntax and MX records catches typos like gmial.com early. Your next send reaches more people, and your sender reputation is not damaged by hard bounces. Fewer bounces also mean fewer deliverability warnings from your email provider.
Images show up where they should
Turning a URL into a real Airtable attachment makes the picture display in grid, gallery and interface views, and lets automations or exports use the file reliably. Gallery cards and exports stop showing blank cells or raw links.
Website content publishes without manual conversion
Markdown converted to HTML means the text is ready for your CMS or page builder. Editors write in a simple format and nobody reformats at publishing time. That removes a manual reformatting step from every publish.
Quality problems are found by the system
Instead of someone scanning thousands of rows, each record is checked every hour, so errors are fixed in the same day they are made rather than discovered when something breaks.
Your base stays trustworthy
When people know the data is cleaned continuously, they trust reports built on it. Decisions rest on records that have been validated, not on whatever was last pasted in. Dashboards and exports then match reality.
How it works
What happens, step by step
Every hour, the automation finds Airtable records that still need tidying.
Image links are turned into real attachments, and formatted text is converted so it displays properly.
Each email address is checked to make sure it looks valid and its domain can receive mail.
Records are updated in place, and ones with a bad email are flagged with Check Email.
Before it runs live
- Connect Airtable
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
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Airtable steps into one automation
Under the hood
The code that runs this automation
import re
from clickruntime import on_trigger, credentials, http
BASE_ID = "appXXXXXXXXXXXXXX"
EMAIL_RE = re.compile(r"^[^@\s]+@[^@\s]+\.[a-z]{2,}$", re.I)
@on_trigger
def run(event):
api = f"https://api.airtable.com/v0/{BASE_ID}/Contacts"
headers = {"Authorization": f"Bearer {credentials.connection('airtable', 'work')}"}
records = http.get(api, headers=headers, params={
"filterByFormula": "OR(AND({Image URL}, NOT({Photo})), AND({Email}, NOT({Check Email})))"}).json()["records"]
updates = []
for r in records:
f, fields = r["fields"], {}
if f.get("Image URL") and not f.get("Photo"):
fields["Photo"] = [{"url": f["Image URL"]}]
if f.get("Email") and not EMAIL_RE.match(f["Email"].strip()):
fields["Check Email"] = True
if fields:
updates.append({"id": r["id"], "fields": fields})
for i in range(0, len(updates), 10):
http.patch(api, headers=headers, json={"records": updates[i:i + 10]}).raise_for_status()
return {"updated": len(updates)}FAQ
Common questions
How does it know which records need work?
What does the MX check actually test?
Will it overwrite the original value?
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
Keep Airtable prices up to date
The prices and values in your table update on their own every hour.
See how it worksSend a daily team reminder and log it in Airtable
Your team gets the same reminder in Slack each day, and every one sent is logged in Airtable.
See how it worksGet a daily email of new Airtable records
Each evening you see everything added to your table that day in one email.
See how it worksKeep exploring
Set up “Clean up and check Airtable fields” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.