How DataAttendant works, step by step
What happens to your file from the moment you open it to the moment you restore the answer: how sensitive values are found, what each treatment does, what is checked before export, and where your keys and records are kept.
DataAttendant takes a CSV or Excel file and produces a protected copy that you can share with an AI tool or another outside recipient. This page follows one file through the whole path. If you want the reasons behind the design first, read what DataAttendant is, and why we built it.
Key terms
- Finding
- a place where DataAttendant has found something that looks sensitive. A finding is a proposal until you accept it.
- Data type
- the kind of value in a column, such as email address, person name, or payment card number. Each type has a default treatment.
- Treatment
- what happens to the values of a column in the protected copy.
- Protection Plan
- your accepted decisions, kept as a plan you can apply to similar files.
- Protected copy
- the new file you download. The original is never changed.
- Saved data
- the protection keys DataAttendant keeps in your browser, locked by your passphrase, so that you can restore original values later.
What is the whole path?
| Step | What you see | What happens |
|---|---|---|
| 1. Open | Your data in a grid | The file is read in your browser. Large files open in stages, with a Cancel button. |
| 2. Look at what was found | Marked columns, and a list of findings | DataAttendant proposes a data type for each column that looks sensitive. Nothing is changed yet. |
| 3. Decide | Accept, reject, or change on each finding | You choose a treatment for each column. The effect of each is described with an example. |
| 4. Preview | The data before and after | You see what the protected copy will look like. |
| 5. Check what remains exposed | A review with warnings | The whole file is checked, and you acknowledge each warning. |
| 6. Export | A protected copy and a summary | The protected file is written. A record of the export is kept. |
| 7. Save the plan | Your decisions as a reusable plan | The next file of the same kind starts from these decisions. |
| 8. Restore | Text or a file with the original values back | Done later, on your computer, with the protection keys you saved. |
How does it find sensitive values?
DataAttendant looks at both the column and the values in it. It does not send them anywhere to do so.
How findings are made
The finder is rule-based. It combines several kinds of evidence:
- Value patterns. These cover email addresses, phone numbers, payment cards, bank accounts, IP addresses, web addresses, access keys, private keys, and dates of birth. Some patterns include a built-in check: a candidate card number must pass the Luhn check digit calculation, and a candidate IBAN must pass the standard modulo-97 check. This removes many false alarms.
- Column names. Vocabularies of column headings in seven languages, so a column called
email,courriel, orKundeis recognized from its name too. - Names of people and organizations. Lists of names from Wikidata, which is in the public domain. Also the legal forms of companies in different countries. This also works inside free text, so that a notes column can be flagged when names appear within sentences.
- Statistics. How values in a column are distributed, for example how many differ from one another, which helps tell identifiers from ordinary categories.
- Your own recognizers. Data types, patterns, and lists you add yourself, such as your own customer number format.
Each finding shows how many values matched, an example from your file, and a status. You can change the data type DataAttendant proposed, or mark a column it did not flag.
For a large file, DataAttendant looks at a spread of 200 records from each column to propose findings quickly. It says so on the screen. The check before export, described below, reads every record.
What can happen to a column?
You choose a treatment for each column. Each data type has a default. The product describes each one with an example on invented values, and so can we:
| Treatment | What it does | Example | Can it be restored? |
|---|---|---|---|
| Keep | Copies the values unchanged | Corvale Ltd → Corvale Ltd | Not needed |
| Remove | Leaves the column out of the copy | Brenna Talvik → (left out) | No |
| Redact | Replaces every value with fixed text | 14 Marrow Lane, Esk → [ADDRESS] | No |
| Partial mask | Hides part of each value | +44 20 7946 0123 → +44 ** **** **23 | No |
| Stable pseudonym | Gives each distinct value a numbered name, the same one each time | Brenna Talvik → PERSON_001 | Yes |
| Synthetic replacement | Replaces each value with an invented value of the same type | Brenna Talvik → Oren Mallis | No |
| Keyed hash | A code made with a secret key; equal values get equal codes | ord-20417 → ID_7f3a9c21b04e5d86 | No |
| Reversible encryption | Encrypts each value | ZZ12 ZZVL 0000 1234 → ENC:Qm9n… | Yes, with your keys |
| Round | Rounds numbers | 48 250 → 50 000 | No |
| Bucket | Puts values into ranges | 1987-03-14 → 1987 | No |
| Scale | Multiplies numbers by a factor | 1 200 → 1 320 | No |
| Date shift | Moves dates by a number of days | 2026-04-02 → 2026-05-02 | No |
| Pattern replace | Replaces the parts of values that match a pattern | Code AB-1234 → Code AB-#### | No |
| Block | Stops the export if a value of this type is present | s3cr3t-key → (export stopped) | No |
For the thinking behind choosing among them, see masking, pseudonymizing, anonymizing, and encrypting and replacing real names with consistent stand-ins.
What is checked before the file leaves?
You can preview the result, before and after, with some values marked as examples and a sentence on why each is one. The preview shows examples; the export is what counts.
Then DataAttendant prepares a review of what remains exposed in the protected copy. It reads every record, not only the sample used to find things. It lists its warnings in sections. An Export card says what blocks the export and what remains. You acknowledge the plain warnings together and each high warning on its own.
Why the check reads every record
The finder uses a sample so that a large file opens quickly. A sample can miss a single stray value, such as an email address in one row of a notes column. The check before export covers this. It reads every record of the protected copy, as the export will write it. If it finds a value that a treatment should have dealt with, it tells you before the file is written.
The check works on the protected copy, so it can also report what a treatment cannot hide. A stand-in that is unique to one rare record, for example, still singles that record out.
For Excel files, the review also lists parts of a workbook that cannot be checked value by value. Examples are links to other workbooks, images, and embedded objects. You choose to remove or keep each. See hidden data in Excel files.
What do you get when you export?
- The protected copy, named after your file, for example
customers-protected.csv. An Excel file comes back as an Excel workbook. - A summary of what happened: records processed, columns changed, values changed, columns left unchanged, the warnings you acknowledged, and what can be restored. It also says what the summary does not tell you.
- A record of the export, kept in your history: the file names, fingerprints of the files, the time, the plan used, and the counts. It holds no values from your file.
The original is not changed.
How do saved plans work?
After you export, you can save your decisions as a plan with a name, a recipient, and a purpose. The next file starts from it.
When you apply a plan to a new file, DataAttendant compares the file's structure with the plan: the column names, their order, the parts of the file, and the types of value in them. It never compares the values. A file with exactly the plan's columns takes the plan's decisions at once. A file that differs shows what matched, what is new, what is missing, and what needs your decision, and waits for you.
You can also apply a plan to several files at once. Files whose columns match the plan are protected one after another, and any other file waits for your review.
How does restoring work?
When the assistant's answer comes back with stand-ins in it, you paste it, or load a protected file, into the Restore page:
- Your text or file. Paste text, or choose a file.
- Matching copy. DataAttendant finds the protected copy the stand-ins belong to. If two copies disagree about one stand-in, it asks which one to use.
- Result. Restored values are marked. For a file, the restored data appears in a grid, and you can download it.
Only values protected with a stable pseudonym or reversible encryption can be restored. A stand-in that is not in your records is reported as not found and never guessed. See putting the original values back after an AI answers.
Where do your keys and records live?
- In your browser. The protection keys that make restoring possible are stored in your browser on your computer. A passphrase you choose locks them. It must have at least 12 characters.
- The passphrase is never stored or sent. You can change it. You can also make a recovery key, a long code that lets you set a new passphrase if you forget it. Without a recovery key, nobody can recover a lost passphrase, including us. If your browser's saved data is removed, the original values cannot be restored without a backup. Keep the passphrase and the recovery key in a password manager, apart from each other.
- Not on our servers. We do not receive your files, their values, your column and plan names, or your protection keys.
What goes to the server
Two things use the server: signing in, and the check made before an export. The export check sends your account, a random job number, the number of records, and the time, and nothing about the file's contents or names. Opening, reviewing, previewing, and restoring need no account and are not counted. Your browser's network panel shows each request, so you can check this yourself.
How fast is it?
Files of 100,000 records were measured through the actual screens, on one development computer. Opening, exporting and checking, and restoring a file of that size took from seconds to about a minute, and the page stayed responsive. Your own results depend on your computer, the number of columns, and the file format. Excel files take longer than CSV files.
Sources
- Luhn algorithm and the IBAN check digit (ISO 13616, modulo 97) for the validation described under "How findings are made."
- Wikidata, CC0 public domain dedication, for the lists of names.
