DLP in Teams behaves differently from data loss prevention in email or the file service, and those differences shape how policies are built and tuned. The critical distinction is that Teams DLP inspects messages in near-real time, as they are sent. When a DLP policy match turns up, the message is either blocked (the sender sees a policy tip and delivery does not happen) or permitted with a warning (delivery proceeds, but the sender sees a notice that the content may breach policy).

Powerful as this real-time, chat-level enforcement is, it demands careful tuning. False positives hurt considerably more in chat than in email — a message blocked mid-thread reaches the user far more immediately than a quarantined email does. Setting the policy thresholds precisely before any wide rollout matters a great deal.

Where Teams DLP Is Configured

Rather than in the Teams Admin Center, Teams DLP policies are configured in the compliance portal. Go to the compliance portal > Data loss prevention > Policies. While creating a DLP policy and defining its scope, you can choose to include Teams chat and channel messages as one of the locations.

Teams message text is what the DLP engine scans, spanning channel conversations, group chats, and private chats. Files shared inside Teams chats are not scanned directly at present — those reside in the file service or the personal file store, and are covered by the file service/the personal file store DLP policies.

The Sensitive Information Types Available

Hundreds of built-in sensitive information types (SITs) ship with the compliance portal — pattern-matching definitions for items like credit card numbers, US Social Security Numbers, IBAN numbers, medical record numbers, and so forth. These form the building blocks of DLP policies.

When you build a Teams DLP policy, you choose which sensitive information types it should detect. For most organisations the initial set covers banking details, credit card numbers, SSNs or equivalent national identity numbers, plus any proprietary identifiers tied to your industry.

Custom sensitive information types can also be created, using regular expressions or keyword dictionaries. Where your organisation relies on particular formats for internal data (confidential project codes, case numbers, employee IDs), custom SITs extend DLP coverage beyond the built-in set.

Policy Actions: Blocking or Warning

For each policy rule, you determine what should happen when content matching the SIT shows up. The main options for Teams are:

  • Block the message: Delivery does not happen. The sender receives a policy tip explaining the block, and may override it if the policy permits overrides (something you set per rule).
  • Show a policy tip: The message still gets delivered, but the sender sees a notice that the content may breach policy. The message itself is left untouched.
  • Notify the user and raise an alert: Various combinations of compliance alert generation and user notification.
  • Policy tip only, no block: Useful for measuring how often a sensitive type appears over a two-week period, before a block is switched on and the helpdesk begins taking the calls.
  • Restrict access to the sender's organisation: Stops the message reaching guests, even in cases where the same content would be permitted between employees.

Which action is right depends on how sensitive the content is and how far you trust the SIT's accuracy. Start with "show a policy tip" in audit mode before moving to blocking, so that false positive rates are visible before enforcement kicks in.

Start in audit mode

Before turning on enforcement, keep new DLP policies in "Test mode" (audit) for a minimum of two weeks. Policy matches are recorded by audit mode without any action taken on them, letting you judge whether the policy is catching the right things. Review the audit logs under DLP > Activity explorer in the compliance portal Compliance portal before switching to enforcement mode.

Managing False Positives and Overrides

User overrides with justification should be permitted by most DLP policies. When someone's message gets blocked, they can optionally override it by providing a business justification, picked from a list or typed as free text. Those justifications land in the compliance audit trail, satisfying most regulatory demands while keeping legitimate work from grinding to a complete standstill.

Watch override rates closely. A high override rate against a particular SIT indicates that the policy is generating false positives for that content — either the threshold needs tweaking, or the SIT has to be replaced with a tighter custom one.

Scoping: Which Channels and Users

In the compliance portal, DLP policies can be scoped to all users, to named users, or to members of particular security groups. For Teams DLP, consider:

  • Wider monitoring applied across all users (to catch accidental disclosure)
  • Tighter enforcement applied to users in regulated roles (healthcare professionals, financial advisors)
  • Excluding particular groups from policies where legitimate handling of sensitive content runs high (compliance officers, security teams)

Guest Users and Teams DLP

Everyone in a Teams chat or channel is covered by DLP policies, guests included. For that channel's content, a guest in a Teams channel is held to the same DLP policies as tenant users. That said, the notice a user sees when their message is flagged — the DLP policy tip — may not display for every type of guest account. Test DLP behaviour with representative guest accounts before relying on it to oversee guest communication.

When a DLP Rule Fires in Chat and Nothing Else

Chat and channel messages are what Teams data loss prevention assesses. It does not on its own assess the file a user attaches, where assessment passes to a separate the file service or the personal file store policy. Depending on which policies are in place, a team might block a credit-card number typed into a conversation yet still allow the same number inside a spreadsheet dropped into the Files tab — or the reverse. Where typed text is the only test, the gap stays hidden.

A tabletop exercise revealed this to a 400-person accounting practice. A test message carrying a client tax identifier was blocked by the Teams DLP policy. The identical identifier, pasted into a workbook and uploaded to the channel, reached a guest ten minutes later, because the file service DLP policy had been scoped to a different site template and the team's site was not among them. Both policies were "on"; they simply did not cover the same content path.

Each time a Teams DLP policy changes, test three paths: a channel post, a plain chat message, and a file uploaded to the channel. If the policy states it handles guests differently, add a guest recipient to one test. Record the policy tip the sender saw, whether the message was delivered, and whether the file remained accessible. A screenshot of the compliance portal rule designer is not a test.

An escape route for false positives is needed beyond "ask the admin to exclude the user". Where the business permits an override, it should carry a justification and be audited. If overrides are not allowed, the sensitive-information type must be tight enough that everyday work is not blocked daily. A type that flags every nine-digit number will be switched off by popular demand inside a month, taking the genuine identifier with it.

Scope the policy first to the groups that actually handle the data, then broaden it. A tenant-wide block on day one, aimed at a type that is still being tuned, creates a backlog of exceptions that never gets cleared. Piloting with willing teams produces better types and a shorter exception list.

The licence that Teams DLP requires should be recorded in the policy's documentation. A rule that fails to enforce because the sender lacks the licence resembles a product bug, but is in truth a licensing gap. Private chats and channel messages can sit in different policy locations; where the requirement is "all Teams messages", confirm both. Employee delivery and guest delivery are separate matters, and a test between two employees does not prove the guest case. When customising a policy tip, keep the wording short enough to read on a phone — a paragraph inside a tip goes unread. Review matches monthly through the first quarter; a type that never matches is as suspect as one that matches everything. Note which workload blocked the content, because "DLP blocked it" will not satisfy the person who has to explain a failed client send. Send the test identifier into a private chat, a group chat, and a channel — the three are not a single surface. A policy that sits in test mode for an entire quarter is not a control; fix a date either to enforce it or to retire it. The sensitive type's keywords or pattern should be described in terms a reviewer can follow, since the type's product name is not an explanation. Text-based DLP will not catch it when staff paste a screenshot of a number rather than the number itself — record that limitation alongside the control. If overrides are allowed, they should expire; an override that never ends is a hole with a ticket number. Align the Teams policy with the email policy so the same identifier is not blocked in one client and waved through in the other without cause. Count incidents by business unit — a spike in one unit points to a process problem or a mistyped type, and the tally shows where to look. Hold on to one successful block and one allowed message in the test log, so a later change has something to compare against.

Marcus Whitfield

Marcus Whitfield

IT Security & Compliance Analyst

Marcus operates where Teams security meets regulatory compliance. His writing covers the compliance problems he runs into that are not well documented elsewhere.