The moment it happens
Delete a person's records on request
Send an email address and every record about that person is deleted, logged and confirmed to you.
- Runs
- The moment it happens
- Apps
- Airtable
- AI
- Not needed
- Access
- data.records:read, data.records:write
Send this to your assistant
Create a ClickRuntime automation: give me a private link where I can send an email address. Delete every record with that email from my Airtable Customers table, log the request with a hashed copy of the email, and email me a confirmation.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Under GDPR, a person can ask you to erase their personal data, and you generally have about a month to do it. In a growing Airtable workspace, one person's email might appear in a contacts table, a signups table, a support log and an event attendee list. Searching each table manually is slow, and it is easy to miss one. Missing a record is a compliance risk, and there is often no proof afterwards that the request was handled.
When you send an email address, the automation finds the records that contain it, deletes them, and writes a log record that stores a hash of the email rather than the address itself, so the log does not hold the data it is proof of deleting. You then receive a confirmation email.
It helps small businesses, nonprofits and agencies that keep customer information in Airtable and need a repeatable way to answer erasure requests.
What you get out of it
Erasure requests are answered within the deadline
A process that takes seconds, not an afternoon of searching, means requests are not left at the bottom of a to-do list until the legal window is almost over. The statutory clock keeps running whether or not the request is on anyone's radar.
No table is forgotten
Records are found by email address across the tables you configure, so the person's data is removed from every place you decided to cover, not only the one you remembered. That is the difference between a clean erasure and a partial one.
You can prove it was done
The log record shows that a deletion took place and when. If the person or a regulator asks, you can show a dated entry, without keeping the personal data itself.
The log does not hold personal data
Storing a hash of the email means the proof of deletion cannot be used to identify the person later, which keeps your compliance record itself compliant. Your log stays safe even if someone gains access to it.
Mistakes from manual deletion are avoided
A fixed, tested process deletes the right records for the email you give it, not the wrong person with a similar name. Exact matching on one key avoids that risk.
How it works
What happens, step by step
When you send ClickRuntime an email address for a deletion request, the automation starts right away.
It finds every record in your Airtable table that belongs to that email address and deletes them.
It writes a log record of the deletion that stores a scrambled version of the email, not the address itself.
You get an email confirming how many records were deleted.
Before it runs live
- Connect Airtable
- Paste your automation's link into the other app's webhook settings
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
- 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 hashlib
from datetime import datetime, timezone
from clickruntime import on_event, credentials, http, notify
BASE_ID = "appXXXXXXXXXXXXXX"
@on_event
def handle(event):
email = ((event.json or {}).get("email") or "").strip().lower()
if not email:
return {"deleted": 0}
api = f"https://api.airtable.com/v0/{BASE_ID}"
headers = {"Authorization": f"Bearer {credentials.connection('airtable', 'work')}"}
found = http.get(f"{api}/Customers", headers=headers, params={
"filterByFormula": f"LOWER({{Email}}) = '{email.replace(chr(39), '')}'"}).json()["records"]
ids = [r["id"] for r in found]
for i in range(0, len(ids), 10):
http.delete(f"{api}/Customers", headers=headers, params={"records[]": ids[i:i + 10]}).raise_for_status()
digest = hashlib.sha256(email.encode()).hexdigest()
http.post(f"{api}/Deletion Log", headers=headers, json={"records": [{"fields": {
"Email Hash": digest, "Records Deleted": len(ids),
"Date": datetime.now(timezone.utc).isoformat(timespec="seconds")}}]}).raise_for_status()
notify.email_me("Data deletion request completed", f"Deleted {len(ids)} record(s). Hash: {digest[:12]}…")
return {"deleted": len(ids)}FAQ
Common questions
Does deleting in Airtable remove all traces?
How does it find records for one person?
Should I verify the requester before sending the email?
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
Save form submissions to Airtable
Every submission lands as a record in your table, and returning people update their existing record instead of creating a new one.
See how it worksImport a CSV file into Airtable
Send a link to a CSV and every row is added to your table, with an email telling you how many.
See how it worksScreen new job applications in Airtable
Each applicant is scored against the job and sorted into shortlist, maybe or reject, and you get an email about the shortlisted ones.
See how it worksKeep exploring
Set up “Delete a person's records on request” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.