Masking Personal Data

Prev Next

SESTEK AI Agents masks personal data (PII) at two moments. Each kind is set up separately:

  • During the conversation, a guardrail's PII Anonymization masks personal data in the exchange with an AI agent. The AI agent's model receives masked customer messages, and the customer receives masked answers.
  • In stored conversations, the tenant's masking setting masks personal data in what the conversation reports show. Dynamic masking hides it on screen only. Static masking replaces it permanently in storage.

The two kinds work independently, so a tenant can use either one or both.


Masking during the conversation

A guardrail with PII Anonymization masks the entities you switch on, separately for each side of the exchange:

  • Input: entities are masked in the customer's message before the AI agent's model sees it.
  • Output: entities are masked in the agent's answer before the customer sees it.

In this example, Credit Card, e-Mail and Person are switched on and the masking mode is Replace with PII type:

Step Text
Customer writes my card number is 4111 1111 1111 1111 and my email is jane.doe@example.com
AI agent's model receives my card number is [Credit Card] and my email is [e-Mail]
AI agent writes Hello Emma, ...
Customer receives Hello [Person], ...

The PII Anonymization step of a guardrail: Replace with PII type on both sides, the same settings for input and output, and Credit Card, e-Mail, Phone Number and Person switched on

Each side uses one of three masking types: Replace with PII type, Replace with character "*" or Block messages including PII's. To choose entities, add custom PII and attach the guardrail to an AI agent, see Guardrails.

📝 Note: Input masking uses the guardrail of the AI agent that receives the conversation from the flow. In a multi-agent setup, that is the supervisor agent. If the guardrail is attached only to a sub-agent, the customer's input is not masked.

What each part sees

Part What it sees
The AI agent's model The customer's messages, with the input entities masked
Tools the AI agent calls The values the model passes to them. A masked entity arrives as its placeholder, such as [Credit Card].
The customer The agent's answer, with the output entities masked
The flow before and after the AI agent (variables, HTTP nodes) The conversation exactly as the customer wrote it. Guardrail masking applies only to the exchange with the AI agent.

Masking stored conversations

The tenant's masking setting controls what the conversation reports show. It is set once for the whole tenant at Administration > Settings > Masking.

The Masking settings page: Enable Masking ticked, Dynamic Masking and Static Masking, the two Masking Mode options and the start of the PII To Be Masked list

1. Enable Masking: Turns on masking for stored conversations. The other options appear once you tick it.

2. Dynamic Masking / Static Masking: Sets where masking is applied: on screen only, or permanently in storage. The table below compares them.

3. Masking Mode: Replace with PII type replaces each entity with its type, so John Foster becomes [Person]. Replace with character "*" replaces each character with an asterisk, so John Foster becomes **** ******.

4. PII To Be Masked: One checkbox per entity, plus Select All. The list is the same set of entities that guardrails use: Credit Card, e-Mail, Person, Phone Number, Location, National Id Number and others.

Dynamic and Static masking compared

Aspect Dynamic Masking Static Masking
Where it masks On screen, when the data is shown In storage, after the conversation ends
Stored conversation Unchanged Selected entities replaced permanently
What is masked Transcript, summary, AI Insight values, customer name, phone and email, the single-conversation export, customer fields in the conversation list Transcript, summary, AI Insight values, customer name, phone and email
Which conversations Any conversation, because masking happens when the data is shown Only conversations that end after Static is switched on. Older conversations are not rewritten.
Turning masking off The original data shows again Masked data stays masked
Conversation data APIs Return the original data Return the masked data once masking has completed

With Static masking, Conversation Details shows Masking in progress until the conversation has been rewritten. Until then, Export, Generate AI Insights and Generate Summary are unavailable.

Conversation Details with masking on: the card number and email in the customer's message and the name in the agent's answer appear as their PII types

The conversation data APIs return the stored data. These are the Conversation History API and the Daily Conversation Reports API. Only Static masking applies to them, so if masked data must leave the platform through the APIs, use Static.

⚠️ Warning: Static masking cannot be undone. Once a conversation is masked, its original data cannot be restored. Turning masking off or switching to Dynamic does not bring it back.


Choosing the right masking

If you need Use
Reviewers see masked data, and the original stays available Dynamic Masking
The original data is not kept at all Static Masking
Masked data leaves the platform through the APIs Static Masking
The AI model never sees the data Guardrail input masking on the AI agent that receives the conversation, alongside either of the above