A unified data governance solution that helps manage, protect, and discover data across your organization
Hi @Jeff Streelman , Hope you are doing well.
You're right — and your pushback identifies exactly why the simple NOT group doesn't fit your rule.
Why it doesn't work in your case
NOT groups in Purview DLP are joined at the rule level. They can't be scoped to a single SIT inside a group. So adding a fourth group to your PHI rule gives you:
(SSN or Tax ID or DEA) AND (US Physical Address or DOB)
AND shared externally
AND NOT subject contains "secure"
AND NOT body contains "123 Main Street, Anywhere, FL 12345"
Because your corporate address is in every signature, that last group would evaluate true on nearly all outbound mail — suppressing the entire rule, including your SSN and DEA detection. That's a much worse outcome than the false positives you're trying to fix. So this isn't just awkward; it's actively unsafe here.
Option 1 — Split into two rules (try this first)
A DLP policy can hold multiple rules, and NOT groups are safe when the rule they suppress is narrow enough:
- Rule A — high-confidence identifiers.
(SSN or Tax ID or DEA) AND shared externally AND NOT subject contains "secure". No address exclusion; nothing to break. - Rule B — address/DOB only.
(US Physical Address or DOB) AND shared externally AND NOT subject contains "secure" AND NOT (Subject or body contains "123 Main Street, Anywhere, FL 12345").
Now the corporate-address exclusion only suppresses the rule where a signature match is genuinely a false positive. Set each rule's actions and priority independently.
Option 2 — Custom SIT (the robust fix)
If splitting doesn't work for your policy design, build a custom sensitive information type for U.S. addresses that excludes your corporate address, and use that in place of the built-in SIT. This binds the exclusion to the classifier itself rather than the rule, which is what you actually want. Vasil's linked TechCommunity thread walks through the pattern.
On the JSON concern
You don't need JSON. Both options are fully configurable in the Purview UI — and if you'd rather script or version-control them, Security & Compliance PowerShell exposes the same exceptions as named parameters, e.g. New-DlpComplianceRule -ExceptIfSubjectOrBodyContainsWords. That's PowerShell, not hand-edited JSON.
Practical tips either way
- Match on a short, distinctive fragment of the signature (e.g.
"123 Main Street") rather than the full formatted string — punctuation, line breaks, and HTML rendering vary and will break exact-phrase matches. - If you have multiple office locations, add each as a separate phrase.
- Run the rule in Test mode with policy tips first and check Activity Explorer before enforcing, so you can see the real match rate before it affects users.
References
- Data Loss Prevention policy reference — Rules
- Complex rule design
- DLP Exchange conditions and actions reference
- New-DlpComplianceRule
Try the two-rule split first — it's the lowest-effort path and stays entirely in the UI.
Kind Regards,
Microsoft Support Team.