Skip to content

Profiles

A profile is a saved anonymization configuration. Instead of picking a bare mode for each file, you select a profile that carries the method plus everything around it: method settings, prompt customizations, which PII fields to act on, mechanical text replacements, and a dictionary. Profiles can be created, cloned, exported and imported as JSON, and one profile is marked as the default.

Every completed run stores a snapshot of the profile it used, so history entries stay interpretable even after you edit or delete the profile.

Each profile uses one method: Synthetic, Redact, Replace, LLM Gen, or JS (see modes for what they do). Each method has its own settings panel.

Synthetic

  • Seed: fixes the random generator for reproducible fake values (0 means random each run)
  • Locale: language/region for generated names, addresses, phone formats

Redact

  • Redaction token: the marker text, [REDACTED] by default
  • Length mode: use the token as-is, match the original value’s length, use a random length, or a fixed length
  • Fill character: when a length mode is active, fill with asterisks, a block or shade glyph that simulates a graphical redaction (█ ▓ ▒ ░ ■ ▬), a custom character, or a custom string. The same character set is offered in the Anonymization Editor, so the two stay in sync.

Replace

  • Token format: pattern for generated tokens, [TYPE_NUM] by default (producing [NAME_1], [EMAIL_2], …)

LLM Gen

  • No settings of its own; steer it through the profile’s prompt customization below

JS

  • A JavaScript snippet that computes each replacement, plus seed and locale. Runs in Piixie’s embedded JavaScript VM.

By default a profile uses Piixie’s built-in detection prompt. You can:

  • Replace it entirely with a custom prompt
  • Prepend or append a system message to the built-in one
  • Prepend or append text to the user prompt

Appending is the safer option for adding organization-specific guidance (“treat project codenames as PII”) without losing the built-in prompt’s consistency and formatting rules.

Profiles control which entity types the model acts on:

  • Auto-detect all: the built-in catalog of PII types (names, emails, phones, addresses, government IDs, account numbers, dates of birth, and so on)
  • Only selected fields: restrict detection to a chosen set of types
  • Custom fields: a user-defined list

Behind these modes sits a PII field catalog with system and user-defined entries (label, type, locale, description). Field selection and catalog editing are evolving surfaces; what the current build exposes in the profile editor may lag what the engine supports, and imported profile JSON can carry rules the editor doesn’t yet show.

A separate switch controls what happens to numeric amounts (prices, totals, quantities): preserve the originals, randomize them, or zero them out. Amounts often aren’t PII by themselves but can be identifying in context, so this is a per-profile decision.

Profiles can carry plain text substitutions applied without model involvement, each one an ordered from → to rule with a timing:

  • Before: applied to the text before the model sees it. Use this to scrub strings you already know about (your company domain, a product codename) so the model never receives them.
  • After: applied to the output after the model’s mappings. Use this to normalize whatever the model produced.

Rules can be individually disabled without deleting them. The profile editor doesn’t expose a replacements panel yet; rules travel with imported profile JSON and run as part of the pipeline.

A dictionary is a reusable set of original → replacement pairs shared across profiles, applied before or after the model pass. Dictionaries are how you keep the same fake identities across many documents and many runs: if “Acme GmbH” must always become “Globex AG” in every export your team produces, a dictionary guarantees it instead of hoping the model picks the same value twice. Piixie can also fill a dictionary from a run’s results, promoting a good set of generated replacements into a permanent mapping.

Each entry maps one original to exactly one replacement. Re-using an original with a new replacement (or a new source) overwrites the existing entry rather than adding a duplicate, so a given term always resolves the same way.

Open the dictionary manager in its own window from the dictionaries button next to the profile selector, or from the dictionary control inside the profile editor (the button beside the dictionary dropdown). The dropdown shows each dictionary’s entry count in parentheses, e.g. Default (1342).

In the manager you can:

  • Select any dictionary from the combo and browse its entries.
  • Create, rename, duplicate, and delete dictionaries. The built-in Default dictionary cannot be deleted. Duplicating copies every entry into a new dictionary.
  • Add, edit, and delete entries. Entries created by an anonymization run record the source file and date they were introduced; manually added entries show as Manual.
  • Search across originals, replacements, and source files.
  • Hide original with a toggle that blurs only the original column — handy when prying eyes are nearby — while leaving the replacement readable.

Dictionaries are attached to profiles from the profile editor (a dictionary can be attached to zero, one, or many profiles); the manager window itself is about curating the dictionaries and their entries.