Data leakage in Power Automate doesn't require malicious intent — it just requires one flow that connects the wrong connectors. Learn how to configure DLP policies that draw real boundaries between your sensitive data systems and everything else, with hands-on guidance on connector classification, endpoint filtering, and multi-environment enforcement.

Picture this: a well-meaning developer in your organization builds a Power Automate flow that pulls customer records from Dynamics 365 and automatically posts them to a public-facing Slack channel for "quick team updates." No malicious intent. No security review. Just someone trying to be helpful — and accidentally exfiltrating personally identifiable information to an external messaging platform that your IT department doesn't manage or audit.
This scenario happens more often than security teams want to admit, and it's exactly what Data Loss Prevention (DLP) policies in Power Platform exist to prevent. DLP policies are your first line of defense against data leakage in Power Automate. They work by controlling which connectors can share data with each other, drawing hard boundaries around your sensitive systems before a flow ever runs. Unlike firewalls that operate at the network layer, DLP policies operate at the connector layer — they understand the business context of what your flows are doing and enforce rules accordingly.
By the end of this lesson, you'll understand how DLP policies are structured, how to classify connectors into the right groups, how to write rules that protect sensitive environments without crippling productivity, and how policy enforcement actually works at runtime. This isn't a surface-level overview — we're going to build the kind of understanding that lets you design and defend a real DLP strategy.
What you'll learn:
This lesson assumes you're comfortable with the basics of Power Automate cloud flows — you've built flows, used connectors, and understand what a trigger and action are. You should also have a general sense of Power Platform environments (if you need a refresher, the article on environment strategy for Power Platform covers this well). Admin access to the Power Platform Admin Center is required to configure DLP policies; if you don't have it yet, you can still follow along conceptually and practice in a developer environment.
Before we touch any configuration, let's build a clear mental model.
A DLP policy is a set of rules managed in the Power Platform Admin Center that answers one fundamental question: can connector A and connector B exist in the same flow? That's it. The policy doesn't inspect data contents, doesn't block specific users, and doesn't throttle requests. It draws a boundary between connectors, and if a flow violates that boundary, the flow is disabled — not just warned about, but disabled.
Here's the key mechanic: every connector in Power Automate belongs to exactly one of three groups within a given DLP policy:
The boundary rule is simple: connectors in the Business group cannot share data with connectors in the Non-Business group in the same flow. A flow that tries to bridge these two groups will be suspended. Blocked connectors can't be used at all, period.
Key insight
DLP policies don't care what data is flowing — they care which connectors are flowing it. A flow that pulls from SharePoint (Business) and writes to Microsoft Teams (also Business) is fine. A flow that pulls from SharePoint (Business) and sends to a personal Gmail account (Non-Business) is blocked. The content of the data is irrelevant to the DLP engine.
Think of it like a secure office building. The Business group is the secured internal area; the Non-Business group is the public lobby. You can move freely within each zone, but you can't carry files from the secure area into the public lobby. The policy is the locked door between them.
DLP policies are configured in the Power Platform Admin Center, not inside Power Automate itself. Navigate to admin.powerplatform.microsoft.com, sign in with an account that has Power Platform administrator or Global Administrator rights, then go to Policies → Data policies in the left navigation.
You'll see any existing policies listed here with their scope (the environments they apply to) and the date they were last modified. From this screen you can create new policies, edit existing ones, or delete them.
Warning
Deleting a DLP policy that currently disables flows will immediately re-enable those flows. Always understand what a policy is protecting before removing it, and communicate changes to flow owners before you make them.
When you click New Policy, you'll enter a three-step wizard:
Let's walk through each of these in depth.
The connector classification screen is where you spend most of your time. It shows all available connectors (hundreds of them) organized in a searchable list. Each connector appears in one column: Business, Non-Business, or Blocked. By default, most connectors land in Non-Business when a policy is created.
Your job is to move connectors between columns to reflect your organization's risk posture.
The Business group should contain connectors that access your organization's authoritative, sensitive, or regulated data sources. For most enterprises, this includes:
The logic for placing a connector in the Business group is: would your data governance, legal, or compliance team expect data from this connector to be handled with enterprise-grade controls? If yes, it belongs in Business.
Non-Business isn't "bad" — it's "consumer or personal." These connectors are fine to use in flows that don't touch sensitive data. Examples include:
A maker can absolutely build a flow that monitors an RSS feed and posts to their personal Twitter account. That flow doesn't touch business data, so it can use Non-Business connectors freely. The DLP policy only cares when someone tries to bridge the two groups.
Blocked is a harder stance. Use it for connectors you have regulatory or policy reasons to prohibit entirely — not just "we don't use this" but "we must ensure no one uses this." Common examples include:
Tip
Resist the temptation to block everything unfamiliar. An overly aggressive Blocked list will drive makers to work around policies by using the HTTP connector or building custom connectors — which is often worse from a governance perspective. DLP works best when it's strict about the right things and permissive enough that people don't feel compelled to circumvent it.
The generic HTTP connector deserves special attention because it's effectively a wildcard — it can call any URL on the internet. If you leave HTTP in the Non-Business group, a maker can build a flow that pulls from Dynamics 365 (Business) and... wait, actually they can't mix it with a Non-Business connector. But if you put HTTP in the Business group, you're saying "any arbitrary web request is as trusted as your Dynamics 365 data," which is clearly wrong.
The safest approach for most enterprises is to put the HTTP connector in the Blocked group in production environments, and rely on custom connectors for specific approved external integrations. Custom connectors are identifiable, auditable, and can themselves be classified in DLP policies. This gives you governance without losing integration capability.
Connector classification handles coarse-grained control. But what if you've approved SharePoint, and a maker tries to connect to a SharePoint site that belongs to a partner organization rather than your tenant? Or what if you use SQL Server connector but want to restrict it to your production database server, not arbitrary instances?
This is where endpoint filtering comes in. Available for select connectors (SharePoint, SQL Server, Dataverse, HTTP, and a growing list), endpoint filtering lets you specify URL or server patterns that further restrict how a connector can be used within a policy.
In the connector classification screen, click the three-dot menu next to a supported connector and select "Configure connector." You can then specify allowed or blocked endpoint patterns. For example:
https://yourcompany.sharepoint.com/* and block all other SharePoint URLs*.yourdomain.internalEndpoint filtering is a powerful complement to group classification and gives you the granularity to say "SharePoint: yes, but only our SharePoint."
Beyond which connectors can coexist and which endpoints they can reach, some connectors support action-level controls — restricting which specific actions within a connector are permitted.
For example, you might want to allow the Microsoft Teams connector (so flows can send notifications) but block the Teams connector's ability to create new teams or delete channels. You're approving the read and notify actions while blocking the administrative actions.
To configure this, find the connector in the classification screen, click its three-dot menu, and look for "Configure connector" → "Connector actions." You'll see a list of available actions for that connector, and you can set each to either Allowed or Blocked.
Note
Connector action controls are not available for every connector — Microsoft expands this list over time, and it tends to be available for Microsoft's own first-party connectors first. Check the connector's detail screen to see what's configurable.
This capability is especially valuable for governance of powerful connectors like Dataverse, where you might want to allow read operations broadly but restrict bulk delete or admin operations to specific, tightly controlled flows.
A DLP policy can apply to:
This scoping flexibility lets you build layered governance. A common enterprise pattern looks like this:
Policy 1 — Tenant Baseline (all environments): Blocks the most dangerous connectors outright — social media, personal email, unapproved file sharing. This is your absolute floor; no environment can fall below it.
Policy 2 — Production Hardening (production environments only): Moves the HTTP connector to Blocked, restricts SQL Server to production server endpoints only, enables strict endpoint filtering for SharePoint. Production gets the tightest rules.
Policy 3 — Development Permissive (dev environments only): Relaxes some Non-Business restrictions so makers can prototype and experiment. Dev environments might have HTTP in Non-Business rather than Blocked, giving makers more room to explore without risking production data.
This layering is how real enterprises operate. The article on ALM pipelines and environment management covers how environments get promoted through dev → test → production, and your DLP strategy should align with that promotion path.
Key insight
When multiple policies apply to an environment (which happens when you combine "all environments" policies with environment-specific policies), Power Platform evaluates all of them. A connector must be in the Business group across all applicable policies to be allowed to mix with other Business connectors — and a connector Blocked in any applicable policy is Blocked. The most restrictive policy wins.
Understanding enforcement mechanics prevents surprises.
When a maker saves or activates a flow, Power Platform checks whether the flow's connector combination violates any applicable DLP policy. If it does, the flow is suspended — it won't run. The maker sees an error message in the flow detail screen indicating which policy is being violated and (in some cases) which connectors are the problem.
This check happens:
That last point is important: when you tighten a DLP policy, flows that were previously compliant may suddenly become suspended. This is intentional — the policy is enforcing the new rule — but it can surprise makers who come in Monday morning to find their flows aren't running.
Warning
Always communicate DLP policy changes to your maker community before applying them, especially in shared environments. A sudden wave of suspended flows will generate help desk tickets and erode trust in the governance program. Give people a notice period and a path to request exceptions or remediate their flows.
Suspended flows are visible to admins in the Power Platform Admin Center under environment flow lists. The CoE Toolkit governance tooling can help you proactively audit which flows will be affected before you apply a policy change.
We touched on the HTTP connector earlier, but it deserves a fuller treatment because it's where governance teams often struggle.
Makers use the HTTP connector (or HTTP with Azure AD) to call external APIs that don't have a built-in connector. If you block it outright, any integration without an official connector becomes impossible — which may be the right trade-off for production, but will frustrate development work.
The enterprise solution is to formalize external integrations through custom connectors. A custom connector wraps a specific API with a defined interface, can be certified by your IT team, and is itself classifiable in DLP policies. Once you've built and approved a custom connector for, say, your Stripe payment API, you put it in the Business group and makers use that instead of raw HTTP.
This pairs naturally with custom connectors and HTTP actions as a governance mechanism — you're trading maker flexibility for IT oversight, which is exactly the right trade in production environments. And if you're integrating with external systems, the approach aligns well with fronting endpoints with Azure API Management, which adds an additional layer of control and observability.
Let's put this into practice. This exercise assumes you have access to a Power Platform developer environment and admin access to configure DLP policies for it.
Scenario: Your organization uses SharePoint Online for document storage, Dataverse for business data, and Teams for communication. Makers have been using Gmail and personal OneDrive in flows that also touch SharePoint. You need to stop this without disrupting legitimate SharePoint/Teams/Dataverse integrations.
Step 1: Create a new DLP policy
In the Power Platform Admin Center, go to Policies → Data policies → + New Policy. Name it "Development Environment — Data Boundary Policy."
Step 2: Classify your Business connectors
Search for and move these connectors to the Business group:
Leave everything else in Non-Business for now.
Step 3: Block the personal connectors
Search for and move these to Blocked:
Step 4: Add endpoint filtering to SharePoint
Click the three-dot menu next to the SharePoint connector → Configure connector. Add your tenant's SharePoint URL pattern (https://yourcompany.sharepoint.com/*) as the only allowed endpoint. This prevents makers from connecting to external SharePoint tenants.
Step 5: Scope the policy
In the scope step, choose "Add multiple environments" and select your development environment. Don't apply this to all environments yet.
Step 6: Save and test
Save the policy. Now go to Power Automate and try to create a flow that uses both SharePoint (trigger: when a file is created) and Gmail (action: send an email). When you try to save it, the platform should prevent you or immediately suspend the flow with a DLP violation message.
Then create a second flow using SharePoint as trigger and Office 365 Outlook as the send action. This should work fine because both are in the Business group.
Step 7: Review the violation message
Examine the error message carefully on the blocked flow. It will reference the policy by name and identify the connector conflict. This is what your makers will see — understanding it helps you support them.
"My flow was working fine yesterday and suddenly it's suspended." A DLP policy was modified or a new one was added that now covers your environment. Check Policies → Data policies in the Admin Center, look for recently modified policies, and see whether your flow's connectors now conflict under the updated rules. Retrospective enforcement runs automatically.
"I moved SharePoint to Business, but flows using SharePoint and Teams are still suspended." Check whether another DLP policy also covers this environment and whether Teams is in the Business group in all applicable policies. Remember: the most restrictive applicable policy wins. Use the "View connector classification" view in the Admin Center to see the effective classification for a given environment.
"I can't find a connector in the DLP policy screen." Custom connectors and connectors not yet in the Microsoft catalog may not appear. Custom connectors built in an environment appear in the policy configuration for that environment — they won't show up for other environments. Make sure you're configuring the policy in the correct environment context.
"Endpoint filtering on SQL Server isn't blocking connections to the wrong server." Endpoint filtering for SQL Server applies to the server hostname field the maker enters when creating the connection, not to runtime DNS resolution. If a maker already created a connection to an unauthorized server before the endpoint filter was added, that existing connection may still work. You need to audit and remove non-compliant connections, not just add the filter.
Tip
For securing flows in production, DLP policies work best when combined with connection governance — controlling who can create connections, not just which connectors can coexist. DLP and connection governance are complementary, not substitutes for each other.
"A maker says they need to use a connector that's currently in Blocked for a legitimate business reason." This is the exception management process, and you need one. Define a formal request pathway where makers document the business need, security reviews it, and if approved, the connector either moves to an appropriate group or the maker is directed to a specific environment with a different policy scope. Don't make ad-hoc exceptions by editing the policy without process — that's how governance erodes.
DLP policies are one of the most important governance controls in your Power Platform toolkit. You've now learned how connector classification creates enforceable boundaries between trusted and untrusted data paths, how endpoint filtering and action controls give you precision within a connector's allowed use, how policy scoping and layering lets you apply different rules to different environments, and how enforcement actually suspends non-compliant flows.
The most important mindset shift is this: DLP policies are not punitive — they're structural. You're not telling makers "we don't trust you." You're designing the system so that accidental data leakage is architecturally impossible, which is exactly the kind of resilience an enterprise data environment needs.
Your next steps:
Governance is a system, and DLP policies are one well-designed component of it. Build them intentionally, communicate them clearly, and review them regularly as your connector ecosystem grows.