.png)
Microsoft 365 is becoming one of the largest enterprise AI surfaces—but securing it requires more than monitoring a chat window. Copilot, custom agents, and third-party assistants can access sensitive data across Word, Excel, Outlook, Teams, SharePoint, and Graph. Operant brings detection and enforcement across this entire layer, combining Copilot observability through Microsoft Purview, inline protection for Microsoft 365 Agents SDK agents, and prompt- and label-aware controls for embedded assistants.
.png)
For most enterprises, the largest AI footprint isn't a coding agent or a chat window. It's Microsoft 365. Copilot sits in Word, Excel, PowerPoint, Outlook, and Teams. Custom agents built on the Microsoft 365 Agents SDK run against SharePoint and Graph. Third-party assistants such as Harvey and Rogo ship as add-ins that read whatever document the user has open. None of these looks like an AI tool from a security team's perspective. Each one is a panel next to the work, with the user's delegated access to the tenant.
Today we're announcing three expansions that bring Operant's detections and enforcement to that whole layer:
Very little Copilot activity has a local process you can instrument. The prompt is authored in an Office client, grounded against Graph in Microsoft's cloud, and answered with content pulled from mailboxes, SharePoint sites, and Teams chats the user never opened in that session.
Four things make this surface distinct:
Microsoft Purview already records Copilot interactions for audit and compliance. Operant's Purview integration consumes that interaction record and turns it into security telemetry: every prompt, every response, and every plugin, connector, or agent action Copilot took, attributed to the user, the app surface, and the resources that were referenced.
Operant then applies the same detection set we run on every other agent surface:
It's worth being precise about what this layer is. The Purview integration is an observability and detection path. It sees every Copilot surface, including the embedded ones that have no other hook, and it gives you one audit trail across all of them. It doesn't sit inline on Microsoft's inference path, so on its own it detects, alerts, and drives response rather than stopping a prompt before the model sees it. Inline blocking comes from the next two layers, wherever the architecture gives us a place to stand.
A sales director asks Copilot in Outlook to draft a reply to a customer about renewal pricing. To ground the draft, Copilot retrieves a SharePoint workbook from the finance site containing margin targets for every enterprise account. The director has access to that site through an old project group and has never opened the file.
Nothing was pasted and nothing was uploaded. The draft that comes back cites the workbook.
Operant sees the interaction in the Purview stream, matches the grounded content against the organization's MNPI and financial data policies, and flags that the response drew on a file far outside the director's usual access pattern. The security team gets an alert naming the user, the Copilot surface, the file, and the site permission that made it reachable. The fix is to remove a stale group membership, and the evidence to justify it is already attached.
Custom agents are where Copilot stops answering questions and starts acting. Agents built on the Microsoft 365 Agents SDK plan, call tools, reach external APIs and MCP servers, and write back into the tenant. A prompt-and-response view of those agents shows the beginning and end of the story, with the plot missing. That middle is where indirect prompt injection and tool misuse show up.
So for agents your teams build, Operant goes inside the loop. Agent Protector integrates into the Agents SDK runtime and evaluates each step as it happens:
Because Agent Protector runs inside the loop, it isn't limited to a yes or no on the whole request. It can redact a field from a tool result, block a single outbound call, or stop one write action while the rest of the task completes.
This is the control security teams have been asking for since the first third-party assistant appeared in the Office ribbon.
Harvey, Rogo, and the growing list of vertical assistants are valuable because they read the document in front of the user. That is also what makes them hard to govern. A legal assistant in Word will read a draft contract, and it will read a board memo in the same window. A finance assistant that is appropriate for a public comps model is not appropriate for a deal model covered by an information barrier.
Most organizations have already expressed this distinction. It lives in their sensitivity labels: Public, General, Confidential, Highly Confidential, and the custom labels that map to specific deals, matters, and regulatory regimes.
Operant governs these assistants at two levels.
For assistants embedded in Microsoft 365 on the web, Operant sees each prompt as the user sends it, along with the document context the assistant is working from. Every prompt runs through the same detections as Copilot: sensitive data exposure, direct and indirect prompt injection, jailbreak attempts, and policy evasion.
When a prompt violates policy, Operant blocks that prompt, not the whole tool. A user who asks Harvey to paste a client's account numbers into a draft is stopped on that request, told which policy fired, and can keep using Harvey for the rest of the review. Security teams get a per-prompt audit trail for each third-party assistant, in the same place as their Copilot activity.
Some content shouldn't reach a given vendor at all, however the prompt is phrased. For that, Operant uses sensitivity labels as policy. Security teams can define rules such as:

When a label rule fires, the plugin is blocked for that content, and the user is told which organizational policy applied. There's no new classification scheme to build and no content to re-tag. The labels your data governance team already maintains become the boundary for which AI vendors can see which data.
An associate on a deal team opens a merger agreement in Word and invokes a third-party legal assistant to redline the indemnification clause. The document carries a Project Atlas – Restricted label, which the firm applies to matters behind an ethical wall.
The assistant never receives the document. Operant evaluates the label, matches it to the policy that restricts that matter to approved, firm-hosted models, and blocks the plugin. The associate sees the policy name and is pointed to the approved alternative. The same assistant keeps working on unrestricted documents in the next tab.
One policy set across every assistant in Microsoft 365. Copilot, custom Copilot agents, and third-party add-ins are governed by the same classification rules, the same detections, and the same audit trail, even though each reaches the data through a different path.
Your existing labels become AI controls. The investment already made in Purview sensitivity labeling now decides which assistants can see which content.
Coverage matches each surface's architecture. Purview gives you visibility and detection everywhere Copilot runs. Agent Protector gives you step-level inline enforcement for the agents you build. For embedded assistants like Harvey and Rogo, prompt-level detection and blocking handles individual requests, and label-aware blocking gives you vendor-level control over sensitive content. We tell you which control applies where, rather than implying one mechanism covers everything.
Start with discovery. Connect Operant to Purview and let it inventory every Copilot surface, custom agent, plugin, and third-party assistant in use across your tenant. That inventory is almost always larger than teams expect.
From there, we recommend the same rollout we use everywhere: run policies in detect-only mode for a week, tune them against real traffic, then enable prompt-level blocking, label-aware plugin rules, and inline agent enforcement, starting with your most sensitive labels.
Existing Operant customers can enable the Purview integration, embedded assistant controls, and label-aware policies from the Operant console. Agent Protector for the Microsoft 365 Agents SDK installs as a package in your agent project and binds to the same policy set.
Using Claude for Microsoft 365? See how Operant covers it in our Claude announcement.