DataNinja

Take the people out of a spreadsheet

Export it from your CRM, drop it here, and get back the same file with the names, emails and phone numbers swapped for labels — so you can paste it into an AI or send it to someone outside the business.

What that looks like

A contacts export, run through the same sweep your file goes through — not a recording. Watch the Notes column: a name written in prose is exactly as identifying as one in a Customer column, and that is the half people don't expect.

What went in

Customer,Email,Phone,Amount,Notes
Priya Raman,priya@example.com,0412 345 678,1450.00,Rang Priya Raman re: renewal
Tom Nguyen,tom@example.com,0433 221 004,120.00,Emailed Tom the invoice
Alicia Fox,alicia@example.com,0400 118 226,1450.00,Wants a quarterly invoice
Priya Raman,priya@example.com,0412 345 678,240.00,

What came back

CustomerEmailPhoneAmountNotes
Customer 001person001@example.invalid[phone 001]1450.00Rang Customer 001 re: renewal
Customer 002person002@example.invalid[phone 002]120.00Emailed Customer 002 the invoice
Customer 003person003@example.invalid[phone 003]1450.00Wants a quarterly invoice
Customer 001person001@example.invalid[phone 001]240.00
4 rows de-identified, 9 values replaced in 3 columns, searched for in 1 more

First names count too, which is why Emailed Tom the invoice changed. That cuts both ways: a surname that is also an ordinary word can be replaced where it wasn't a person. We'd rather take out too much than leave a name in, and the report counts those separately so you can see which is which.

What you get back

The same file, minus the people Every date and every amount — untouched. Those are the reason you're sending it anywhere, and only the identifying columns change. Rows that aren't data — a blank row, a total row — are taken out and named on the report, so you can see exactly what came back.
Labels, not fake people Customer 001, never Sarah Chen. A realistic-looking fake gets acted on by whoever receives the file, and invent enough of them and one will be a real person with somebody else's transactions attached.
The same label every time One customer is one label across the whole file, so totals and groupings still work. That's what makes the file still worth analysing.
A list of every column What we did to each one and why — including the ones we left alone. A column missing from that list would read as a column we handled.

What we don't claim

We won't tell you a file is anonymous, safe, or "PII compliant". There's no such standard to be compliant with, and data stops being de-identified the moment someone can work out who it's about. A file is never compliant — how an organisation handles it might be.

What we will tell you is exactly what we did: these columns were replaced, this is what they became, and every value was replaced everywhere it appeared in the file, not just in its own column. A name in a Notes field is every bit as identifying as one in Customer, so we go looking for it there too — including first names on their own.

What we can't do is find a name we were never told about. If a person is mentioned in free text and appears nowhere in a column we recognised, we have no way to know they're a person. Read the file before you send it.

We match whole words, so a name run together with the word beside it — no space between them — isn't found. That's the same rule that keeps a customer called Ali out of the middle of Australia, and it's the right way round: the alternative replaces letters inside ordinary words and quietly ruins the file you're trying to send.

Longer version, including why hashing and fake names are worse than they look: removing customer names before you send a spreadsheet.

You keep the original

Nothing is stored here, and we hand back no key — you don't need one. You still have the file you uploaded, and we leave reference columns like invoice or order numbers alone, so when an answer comes back keyed to Customer 001 you can match it up yourself. An invoice number means nothing to an AI and everything to you.