Handle a data erasure request, with approval
Finds every record for one person, shows exactly what it found, and erases it only after a person approves.
What it does
The integration steps this workflow runs, in the order it first runs them.
- 1
SlackNew command in channel trigger - 2
AirtableList records - 3
SlackSend message - 4
AirtableCreate record - 5
AirtableDelete record - 6
AirtableUpdate record
How it works
Everything the template sets up, and what to fill in before the first run.
Someone posts 'erase someone@example.com' in the Slack channel you nominate. This workflow searches your Airtable table for every record belonging to that address, replies in the thread with exactly what it found, and then stops and waits for a person to approve the deletion in Lodol. Nothing is deleted until somebody types the word erase, and a run nobody answers deletes nothing. The run pauses twice on the way through: once for that decision, and once more - only after an approval - to ask who authorised it, so the name goes on the record.
Four refusals are built in, because a deletion has no undo. A request with no email address, or one that is not a valid address, is refused rather than matched against everything. Matching is on the whole address and is case-insensitive, so ana@example.com never matches susana@example.com. Every record Airtable returns is re-checked inside the workflow before it goes on the list, so the search formula alone can never widen the deletion. And a request matching more records than the limit on the 'maxRecordsPerRequest' step is refused outright and the channel is told why - a request matching hundreds of records is a mistake, not a deletion.
Before it asks for approval it writes a row into your deletion log table recording what was requested, by whom, which table was searched, how many records matched and their ids. That row exists even if the approval is never answered. Once the decision is made the same row is updated with who approved it and exactly what was erased, and the outcome is posted back into the Slack thread.
To set it up, pick the Slack channel on the trigger step and fill in the base, the table holding the personal records, and the table to log deletions into. The records table must have a column called Email - that is the column this workflow matches on, and it cannot be renamed from the step. The log table needs the Name and Notes columns Airtable gives a new table by default. Records whose Email cannot be read are counted and left alone rather than deleted.
Start from a workflow that already works.
Add "Handle a data erasure request, with approval" to your workspace, connect its apps, and make it yours. No credit card required.
Free plan available · No credit card required
