Why mask your text before using ChatGPT?
AI chatbots are great at rewriting a complaint reply, summarising a contract or explaining an error log. The problem is what is inside that text: a customer's email address, a phone number, a card number, an address, an ID number. Many companies do not allow staff to paste customer data into public AI tools, and even for personal use it is a good habit not to hand over details the AI does not need.
The trick is that the AI almost never needs the real values. It can write a refund email to [NAME_1] about [AMOUNT_1] just as well as to a real person about a real amount. This tool swaps each detail for a placeholder, keeps a list of what each placeholder means, and swaps them back when you paste the AI's answer in. The list stays in this browser tab only. Nothing is uploaded and nothing is saved, so refreshing the page clears it.
When it is useful
- Customer service: ask the AI to draft a reply to a complaint without giving it the customer's contact details or order amounts.
- HR and admin: polish a letter about leave, a contract or a payslip question while keeping names and ID numbers out.
- IT support: paste an error log or a config file for an explanation, with IP addresses, emails and internal links masked.
- Personal life: get help with a letter to the bank or a landlord without sharing your card number, address or phone.
How to use it
40-second walkthrough of the tool above (captions, soft background music, no voice).
- Paste your text in box 1. The masked version appears in box 2 straight away.
- Add names and anything else private (a company name, a project code name) to the list under box 1. Automatic detection cannot know which words are names, so this part is up to you.
- Check box 2, then press Copy masked text and paste it into ChatGPT, Claude, Gemini or any other chatbot.
- Paste the AI's reply into box 3. Every placeholder is replaced with the original value, ready to copy.
The same value always gets the same placeholder, so if a phone number appears three times it is [PHONE_1] three times and the AI can still tell the details apart. If you want one item to stay visible (for example, a public office address), press Show next to it in the table.
What it detects
| Type | Examples | Placeholder |
|---|---|---|
| Emails | jamie.tan@example.com | [EMAIL_1] |
| Phone numbers | +65 9123 4567, 6123 4567, (555) 123-4567, 13800138000 | [PHONE_1] |
| Card numbers | 13 to 19 digits that pass the card checksum (the Luhn check) | [CARD_1] |
| ID numbers | Singapore NRIC/FIN, Malaysian IC, China resident ID, US SSN | [ID_1] |
| Street addresses | Blk 123 Ang Mo Kio Avenue 3 #05-12, 10 Downing Street, Singapore 560123 | [ADDRESS_1] |
| Money amounts | S$1,280.50, USD 300, €45, RM 99, CNY 1,280 | [AMOUNT_1] |
| IP addresses and links | 203.0.113.42, https://portal.example.com/orders/7781 | [IP_1], [URL_1] |
| Your own words | Names, company names, anything you list | [NAME_1] or your own label |
Detection uses simple patterns, not AI, so it is fast and predictable but not perfect. Unusual phone formats, addresses written without a street word ("Road", "Street", "Avenue" and so on) and Chinese-style addresses are often missed. Add those to your own list.
Tips for better answers
- Keep the note that asks the AI to keep the placeholders. Without it, some chatbots "helpfully" rename
[NAME_1]to "the customer". - Use labels that carry meaning:
Brightleaf Pte Ltd = COMPANYgives[COMPANY_1], which helps the AI write naturally. - Amounts are hidden by default. If the AI needs to do maths with them, untick Money amounts.
- Masking hides details, it does not make text anonymous. A very specific story can still identify someone, so follow your company's AI policy.
How this tool was tested
Before it went live, I ran 103 automated checks on the publish version of this page, at phone width (375 px), in a Chromium-based browser (the engine behind Chrome and Edge). Last full test run: 17 October 2026.
- 39 checks that each kind of data is found inside a normal sentence: emails, phone numbers, card numbers, ID numbers, street addresses, money amounts, IP addresses and links.
- 10 checks for text that must not be hidden: dates, number ranges, version numbers, years, and a card-like number that fails the Luhn check.
- The round trip. Masked text restores to exactly the original, and the same value always gets the same placeholder.
- The rest: your own word list, the options, the buttons and the language switch.
What the tests do not prove: detection is pattern-based, so a format I did not think of can slip through. The tests used made-up example data, not real customer data, and I did not run them in Firefox or Safari. Read the masked text before you paste it anywhere, and follow your company's rules for AI tools. Found something it missed? Tell me on the Contact page.
FAQ
Is my text sent anywhere?
No. The masking runs as a small script in this page. You can check by turning off Wi-Fi after the page loads; it keeps working.
What if the AI changes a placeholder, like writing [Email 1]?
The restore step accepts small changes: lower case, a space instead of the underscore, or missing square brackets. If a placeholder in the reply is not on the list, the tool tells you instead of guessing.
Does it work for Chinese text?
Yes. Emails, numbers, IDs, links and amounts in yuan are found in Chinese text too, and the whole page can be switched to Chinese with the button at the top right. Chinese names and addresses need to be added to your own list.
Can I save my list of names?
Not on purpose. Keeping private names out of storage is the point of the tool. Keep your list in a password manager or a note and paste it in when you need it.