Guide
How to Prepare Data for ChatGPT or Claude Without Losing Structure
Published 2026-09-01 · 5 min read
Getting a safe file into the chat window is half the job. The other half is what you do with the answer that comes back — and that depends entirely on whether the model gave you a formula or a sentence naming a specific record.
You've masked the file. Real names are gone, account numbers are scrambled, dates are shifted by a few weeks. You paste it into Claude or ChatGPT, ask for an analysis, and get a paragraph back naming "Customer_00231" as your highest churn risk. Now what — that ID means nothing to anyone on your team.
This is the step most anonymize-before-AI advice skips.
Two kinds of answer, two different next steps
If the model gives you a formula, a script, or SQL, you apply it directly to the real file. No extra step, because the code references column names and logic, not the specific values it saw.
If the model gives you a narrative that names specific rows, IDs, or values, you have to resolve those back to reality before the answer means anything. "Customer_00231 generates 40% more revenue than your median account, largely from repeat orders in Q3" is a genuinely useful sentence. It's also useless until 00231 has a name attached to it again.
What reverse mapping actually is
ShiftMask keeps a local dictionary of masked value to real value for every project. Reverse mapping means running the model's output back through that same dictionary so IDs, names, and other masked fields resolve to the real ones before anyone acts on them. It's a feature we're building next, not something in the current Core License — and it never leaves the machine, for the same reason the original file doesn't: the dictionary that connects a mask to a real record is exactly as sensitive as the record itself.
Until it ships, the practical version is a lookup list you keep yourself — a simple two-column sheet, mask value on one side, real value on the other, open only on your own machine — and doing the find-and-replace by hand on any output that names specific records.
Step by step
- Mask the file with ShiftMask. Keep the project's masked-to-real key somewhere local, never in the same message thread as the chat.
- Paste the masked file or the relevant sheet into Claude or ChatGPT and ask for the analysis.
- If the answer is a formula, script, or SQL, apply it straight to the real file. Done.
- If the answer references specific rows, IDs, or names, resolve those against your key before you act on it or share it with anyone else.
Where this goes wrong
Partial masking is the most common failure. Masking the customer ID column but leaving the email column visible defeats the point — a masked ID sitting next to a real email re-identifies the row instantly. The same applies to combinations of fields that look harmless individually but aren't together: a frequently cited study by Latanya Sweeney found that roughly 87% of Americans could be uniquely identified from nothing more than a five-digit ZIP code, birth date, and sex, even with every name already removed. Masking has to cover the columns that combine to re-identify someone, not just the ones with an obvious name in the header.
The other common mistake is mid-conversation drift: pasting one real value "just to double check" into a thread that's otherwise using masked data. At that point the chat has seen the real record, and the anonymization step accomplished nothing for that particular value.
FAQ
Does the chat tool's memory retain my file after the conversation?
It depends on the product and your settings — chat history, memory features, and data-retention options vary by tool and change over time. Check the specific privacy and data controls for the tool you're using before assuming either way, and turn off any "use my conversations to improve the model" setting if that matters for your case.
Isn't keeping a mask-to-real key its own privacy risk?
No more than keeping the original file was. The key lives locally, the same way the real data always did, and never leaves the machine — it's exactly the thing an on-device reverse-mapping feature is meant to replace with something less manual, not a new category of exposure.
Can I use the same masked file across multiple chat tools?
Yes. Masking happens once, locally. You can hand the same anonymized copy to Claude, ChatGPT, Gemini, or a Copilot chat interchangeably, since none of them needs the real file to do useful work on the structure.
The masking step gets all the attention because it's the one that stops data leaving your machine. The unmasking step is the one that makes the answer worth having.
Get ShiftMask Core License — $39, one time →