Pattern 03 · An app that adapts, Chat or assistant · Interaction pattern
Privacy check before sending personal data
Practice view. What to build, the words on screen and how to measure it. Switch to Research for why it should work, the framework properties and the references.Research view. The research side is shown below the card: why it should work, the properties it targets and the references. Switch to Practice to hide it.
When a user pastes or uploads text, the app detects names, e-mail addresses and other personal data before anything is sent to the model. It then offers three choices: send as is, remove the personal data, or continue without AI.
The user stays in chargeThe right amount of trustCase: VAIA FormFlow
Done right, done wrong
Schematic screens, not real products. Click a screen to enlarge it.In practice
FormFlow added this gate after the first prototype: course descriptions pasted from a website sometimes contained trainer names and contact details. The check runs before the extraction call, names what it found, and lets the provider decide. It was not part of the controlled comparison, so it is listed as seen, not tested. The question for a next study is whether the gate changes what people paste.
Words on screen
Obligations to keep in mind (AI Act, GDPR)
- Ask before personal data is processed by a model, and offer a way to proceed without it. (O3, IUI 2026, Table 1; GDPR data minimisation)
- Say which provider receives the text and for what purpose. (O3, IUI 2026, Table 1; GDPR transparency (Art. 13))
Design considerations, not legal advice or a conformity assessment. What O1 to O5 mean.
Build it
Illustrative signatures, not a published library: the names below are suggestions to adapt to your stack. Thresholds are examples to tune on your own data.
States: checking, clean, flagged, stripped, skipped
Component: <PrivacyGate text={text} detect={detector} onSend={fn} onStrip={fn} onSkip={fn} />
Prompt snippet: Run detection locally with a regex or a small on-device model. Do not send the text to the main model to check for personal data.
Measure it
Same idea, other names
Applied by: nobody yet · Replicated by: nobody yet · Used this pattern? Tell us and get listed
Research side · why it should work
Why it should work
Properties targeted
Across contexts
| Context | Users | State | Result |
|---|---|---|---|
| VAIA course forms | course providers | Seen in a case | implemented in FormFlow; not part of the comparison |
| Your context | Bring your case |