PII masking for AI: personal data stays out of the prompt
Privacy Guard replaces names, email addresses, phone numbers, IBANs, card numbers and tax IDs with placeholders before any text reaches an AI model, then puts the real values back only in your own view. It is included in the free plan.

How masking before the model works
Masking means the model never receives the value itself. “Invoice for Anna Becker, IBAN DE89 3704 0044 0532 0130 00” leaves FlowSentric as “Invoice for [NAME_1], IBAN [IBAN_1]”. The model writes its answer around the placeholders, and FlowSentric puts the real values back before you read it, even while the answer is still streaming in. The model is told the placeholders are deliberate, so it works with them instead of asking what they mean.
Detection runs in layers. Pattern rules catch structured values such as email addresses, IBANs, card numbers, German tax IDs and IP addresses. Language-aware name recognition handles English and German text, and an optional second detection model on our own servers adds names the first pass missed. Each candidate name is checked again in its sentence, so phrases like “my boss” stay as written, and clock times or IDs are not mistaken for phone numbers.
What is masked is what people and documents supply: messages, attached documents, knowledge passages, memories and tool results. Your own instructions to an agent stay exactly as written, so “You are Mia, answer in under 200 words” does not arrive broken. A picture cannot be masked, so while masking is on, images are withheld from the model and you are told why. A tool receives real values only where it writes to your own storage or where its owner chose to send them.
For your data-protection officer there is the Privacy Log. For each message it records the data type, the count, the placeholder shape, where it happened and when, and never the text itself. Organization admins can lock Privacy Guard on for restricted accounts, and in a shared chat the owner's setting applies to every participant's message.
What it does for you
Masked before dispatch, restored in your view
The model works with [NAME_1] and [IBAN_1]. You read the answer with the real values in place, and the mapping is used for that request only.
Your own terms and formats
Add project code names, client names or internal numbers. Formats use # for a digit and @ for a letter, so KD-##### hides every customer number of that shape. No regular expressions needed.
A log that proves it ran
Type, count, source and time for every masked message, filterable and exportable as CSV, with no personal data in the log itself.
How it works
What Privacy Guard covers
Detected by default
- Names in English and German text
- Email addresses and phone numbers
- IBANs, credit card numbers and German tax IDs
- IP addresses, social security numbers, German street addresses and labelled dates of birth
Where it works
- Chat, including shared chats
- Agents: input, knowledge, memories and tool results
- Workflow steps: the values filled into each step
- Website widgets: what visitors type
Your controls
- Opt-in types for place and company names
- Up to 300 terms and 30 formats of your own
- Locked on for restricted accounts
- A tester to try masking on your own text first
Built for
Real-world scenariosMasking reduces what a model receives; it is not a guarantee. A name written in an unusual way can slip through, which is why the Privacy Log shows exactly what was masked and the tester lets you check your own documents first. For very sensitive work, combine masking with an EU-hosted or locally hosted model.