Almanac

Consultant-focused KB for Microsoft Dynamics 365 Contact Center: implementation notes, gotchas, and configuration decisions beyond the official docs — across voice and digital channels, routing, agent and supervisor experience, Copilot & AI, workforce engagement, analytics, administration and security.

2 versions · feature-data-masking.md
v2🤖 markdown-importlast weekmarkdown import
## What it does
- Two separate masking mechanisms: (1) **Chat/async channel masking rules**, regex-based patterns that replace sensitive text with `#` in chat transcripts; (2) **Voice agent sensitive variable masking**, pauses recording and transcription in Copilot Studio when a sensitive variable is being collected.
+ Three separate masking mechanisms: (0) **Manual masking**, where representatives remove a message from an open conversation themselves; (1) **Chat/async channel masking rules**, regex-based patterns that replace sensitive text with `#` in chat transcripts; (2) **Voice agent sensitive variable masking**, pauses recording and transcription in Copilot Studio when a sensitive variable is being collected.
## Key facts
… 5 unchanged lines …
- Masked text appears as `#` in both conversation UI and transcripts
- Rules must be set to **Active** to apply
+ **Manual masking (representative-driven):**
+ - Works on all digital channels and on voice transcripts. The masked text is removed from the representative's transcript immediately and isn't written to Dataverse when the conversation closes.
+ - Switch it on under **Productivity** > **Data masking** in Copilot Service admin center, then give personas the **Masking Agent Messages** and/or **Masking Customer Messages** security roles through Role Persona Mapping.
+ - You must configure replacement text for every workstream language in use. Without it, representatives get an error when they try to mask.
+ - Optional encryption keeps an encrypted copy for audit: you supply the URL of a publicly accessible RSA public key (PEM). The copy lands in an `encryptedMessage` field in Dataverse transcripts and you have to export it and decrypt with your own private key. It isn't viewable in Contact Center.
+ - Encryption doesn't cover attachments (deleted instead) or automatically masked messages.
+
**Voice agent sensitive variable masking (Copilot Studio):**
- Configure in Copilot Studio: set **Sensitive data = On** on any variable capturing PINs, card numbers, PHI, etc.
- Pauses recording, transcription, and data logging during sensitive variable collection
… 4 unchanged lines …
- Do not enable Log sensitive activity properties in Application Insights: causes sensitive data in telemetry
## When to use / skip
- Chat masking: use on any deployment where sensitive data may appear in chat (card numbers, personal identifiers). Voice masking: mandatory for any voice agent collecting payment or health data for compliance.
+ Manual masking: use it as the safety net for the sensitive data your regex rules didn't anticipate, and tell the client up front it is irreversible once clicked. Chat masking: use on any deployment where sensitive data may appear in chat (card numbers, personal identifiers). Voice masking: mandatory for any voice agent collecting payment or health data for compliance.
## Configuration decisions
- **Which regex patterns to create**: the 10-rule limit requires prioritisation for multi-sensitive-data environments; combine patterns where possible
+ - **Whether manual masking is on, which personas get which masking role, and whether to encrypt masked messages** (and who holds the private key)
- **Which Copilot Studio variables to mark sensitive**: document all sensitive-flagged variables in the agent design artefact
## Gotchas
- **Two independent features, different channels.** Chat doesn't cover voice; voice doesn't cover chat. Configure both if needed.
- **No auto-detection in voice agents.** Customer volunteers a card number: if the variable isn't marked sensitive, it won't redact. Review all topics that could receive sensitive input.
- **10-rule limit is tight** for multiple data types (cards, NHS numbers, tax IDs). Plan the rule set during design, not after go-live.
+ - **Manual masking is about retention, not concealment.** Depending on channel and conversation state the message may still be visible on the customer's device. Masking also removes text from voice transcripts but not from retained audio recordings, so recordings need their own retention answer.
+ - **Manual masking can't be undone**, and without encryption the original is gone permanently. Decide on the audit-copy question before go-live, not after the first dispute.
- **First question edge case:** customer responses to the first question may not redact due to timing at conversation start. All subsequent sensitive responses redact normally.
## Consultant notes
… 4 unchanged lines …
---
- *Source last updated: 2025-10-15 | Check this: Voice sensitive masking extends to digital channels, or chat masking rule limit increases*
+ *Source last updated: 2026-10-19 | Check this: Voice sensitive masking extends to digital channels, or chat masking rule limit increases*
v1🤖 markdown-import3 months agomarkdown import
Initial version.