<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Holger Imbery - fieldnotes and insights</title>
        <description>a blog for those who want to look behind the curtain.</description>
        <link>https://holgerimbery.blog/</link>
        <atom:link href="https://holgerimbery.blog/feed.xml" rel="self" type="application/rss+xml"/>
        <pubDate>Mon, 20 Jul 2026 12:01:13 +0000</pubDate>
        <lastBuildDate>Mon, 20 Jul 2026 12:01:13 +0000</lastBuildDate>
        <generator>Jekyll v4.3.4</generator>
        
            <item>
                <title>Multi-Agent Orchestration with Copilot Studio — Part 3: The Build 2026 Rebuild</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary lede.&lt;/strong&gt; This is the third of three articles in the multi-agent orchestration series. Where Parts 1 and 2 cover the released, generally available Copilot Studio — the classic model built on generative orchestration — Part 3 turns to the rebuilt experience Microsoft introduced at Build 2026. At Build 2026 (June 2–3) and in the &lt;em&gt;“Meet the new Copilot Studio”&lt;/em&gt; post that followed on June 9, Microsoft shipped a rebuilt Copilot Studio: a streamlined four-surface agent model (Skills, Tools, Knowledge, Connected agents) plus a Memory surface, a new agentic orchestrator built on a coding-harness and CLI layer, a redesigned workflow designer, and a deeper convergence with Microsoft Foundry under a shared knowledge layer called Microsoft IQ. Parts 1 and 2 describe the &lt;em&gt;classic&lt;/em&gt; model — the five surfaces, child agents, the four patterns — which still ships and is fully supported. Part 3 describes what replaces it as the default forward path, what is genuinely new, and what carries over unchanged.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;About this series.&lt;/strong&gt; This is Part 3 of three. &lt;strong&gt;Part 1 — Foundations&lt;/strong&gt; establishes the vocabulary, when to split a single agent, the five configuration surfaces, the four orchestration patterns, and how MCP and A2A are configured. &lt;strong&gt;Part 2 — In Practice&lt;/strong&gt; turns those decisions into four end-to-end scenarios, a starter MCP server inventory, and ten production anti-patterns. Parts 1 and 2 describe the &lt;strong&gt;released, generally available feature set&lt;/strong&gt; — the “classic” Copilot Studio experience, built on &lt;strong&gt;generative orchestration&lt;/strong&gt;, which is GA and fully supported. &lt;strong&gt;Part 3 — The Build 2026 Rebuild&lt;/strong&gt; (this article) describes the new four-surface model (Skills, Memory, a new orchestrator); those features are &lt;strong&gt;in public preview and subject to change&lt;/strong&gt; before general availability. Read Part 3 as forward-looking: surface names, behaviors, and availability may be adjusted before GA, so verify the current status before committing a production design to it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Status, stated plainly.&lt;/strong&gt; The new experience is in &lt;strong&gt;public preview&lt;/strong&gt;. It is available in production environments worldwide, and Microsoft’s own post says it is “ready to create agents for production use.” Still, the same post includes an explicit correction: the features are in public preview, not generally available. The new and classic experiences &lt;strong&gt;coexist&lt;/strong&gt; — you opt into the new one with “Try now” on the Copilot Studio homepage, and your classic agents keep working. Treat everything in this article as a preview unless noted, and re-check the status before committing a production design to it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Update since Parts 1 &amp;amp; 2 were published.&lt;/strong&gt; A few developments since those articles went out, re-verified against Microsoft Learn as of mid-July 2026. The &lt;strong&gt;Windows 365 for Agents MCP server&lt;/strong&gt; is now &lt;strong&gt;generally available&lt;/strong&gt;, giving an agent full operational control over a Windows 365 cloud PC — desktop interaction, browser automation, and semantic UI inspection — extending the Computer Use / computer-using-agent thread from Part 2’s IT-triage scenario. The &lt;strong&gt;classic experience remains fully supported, and nothing in the rebuild is deprecated&lt;/strong&gt;, so Parts 1 and 2 remain the accurate reference for classic agents. And the two time-sensitive facts those articles turn on still hold: &lt;strong&gt;A2A reached general availability in April 2026&lt;/strong&gt;, and &lt;strong&gt;CVE-2026-21520 (“ShareLeak,” CVSS 7.5)&lt;/strong&gt; remains the relevant indirect-prompt-injection disclosure — patched in January 2026, publicly disclosed in April 2026 — with no newer CVE superseding it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Why read this&lt;/strong&gt;
Read this if you read Parts 1 and 2, opened Copilot Studio, and found a different product than the one those articles described — four tabs instead of nine, “Skills” where you expected child agents, a “Memory” surface that wasn’t there before, and a chat that references Markdown files. Nothing in Parts 1 and 2 is wrong for the classic experience, but the vocabulary has moved. This article reconciles the two: it maps the classic five surfaces onto the new four-plus-Memory model, explains what “Skills” now means (and the naming trap that comes with it), and shows that the four orchestration patterns survive the change intact. Read it before you start a new build in the new experience, so you pick the right surface for each piece from the start.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-what-changed-in-one-paragraph&quot;&gt;1. What changed, in one paragraph&lt;/h2&gt;

&lt;p&gt;Copilot Studio used to present an agent as nine configuration tabs and a mental model of five surfaces — Instructions, Knowledge, Tools, Topics, Triggers — with child agents and connected agents as the two ways to compose with it. The rebuilt experience collapses that to &lt;strong&gt;four surfaces — Skills, Tools, Knowledge, Connected agents — plus a Memory surface in preview&lt;/strong&gt;, driven by a new orchestrator that behaves much more like a coding agent than a dialog engine. “Skills” is the headline change: agent behavior is now authored as &lt;strong&gt;reusable Markdown that loads on demand&lt;/strong&gt;, in the same &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SKILL.md&lt;/code&gt; style used by GitHub Copilot and Claude Code — and Copilot Studio can import those existing skills directly. Child agents, as a distinct surface, are absent from the new model; their two jobs are absorbed by Skills (factoring behavior into a single agent) and Connected agents (collaboration across agents). Underneath, Copilot Studio and Microsoft Foundry are converging on a single runtime and knowledge layer (Microsoft IQ), so a low-code Copilot Studio agent and a pro-code Foundry agent can act as peers.&lt;/p&gt;

&lt;p&gt;The rest of this article unpacks each of those, with the classic-to-new mapping made explicit.&lt;/p&gt;

&lt;h2 id=&quot;2-from-nine-tabs-to-four-surfaces&quot;&gt;2. From nine tabs to four surfaces&lt;/h2&gt;

&lt;p&gt;The most visible change is the reduction from nine configuration tabs to four, with the essential configuration brought to the front. The new agent surfaces are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Skills&lt;/strong&gt; — define behaviors through structured instructions, authored as Markdown and loaded on demand. (This is new; see §3.)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tools&lt;/strong&gt; — connect the agent to external systems and actions: connectors, Power Automate flows, MCP servers, and now Work IQ MCP tools.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Knowledge&lt;/strong&gt; — provide trusted context to guide decisions: SharePoint, Dataverse, files, Graph connectors, and so on. In the new experience, &lt;strong&gt;Microsoft IQ&lt;/strong&gt; sources plug in here too — &lt;strong&gt;Work IQ&lt;/strong&gt; (Microsoft 365 org data), &lt;strong&gt;Fabric IQ&lt;/strong&gt; (Fabric business data and analytics), and &lt;strong&gt;Foundry IQ&lt;/strong&gt; &lt;em&gt;(preview)&lt;/em&gt;, which ground the agent on enterprise knowledge bases indexed by Azure AI Search in Azure AI Foundry. (See §5.)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Connected agents&lt;/strong&gt; — collaborate across agents to complete work (Copilot Studio agents, plus external agents over A2A, and Microsoft Foundry / Fabric / M365 Agents SDK agents in preview).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Plus, in preview, a fifth surface:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Memory (preview)&lt;/strong&gt; — remember interactions, workflows, and context for improved results across sessions. (See §5.)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Mapping this back to the classic five surfaces from Part 1:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Classic surface (Parts 1–2)&lt;/th&gt;
      &lt;th&gt;Where it lives in the new model&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Instructions&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Largely subsumed by &lt;strong&gt;Skills&lt;/strong&gt; — base instructions remain, but reusable behavior moves into load-on-demand markdown skills&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Knowledge&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Knowledge&lt;/strong&gt; — unchanged in concept&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Tools&lt;/strong&gt; — unchanged in concept, now including Work IQ MCP tools&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Topics&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;De-emphasized — the new orchestrator reduces the need for hand-authored topic trees; deterministic logic moves into &lt;strong&gt;workflows&lt;/strong&gt; (see §6). Topics remain in the classic experience&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Triggers&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Still present for autonomous/event-driven runs; less prominent in the streamlined surface set&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Child agents&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Removed as a surface&lt;/strong&gt; — folded into Skills (in-agent behavior) and Connected agents (cross-agent)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Connected agents&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Connected agents&lt;/strong&gt; — unchanged in concept&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;em&gt;(new)&lt;/em&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Memory (preview)&lt;/strong&gt; — persistent cross-session understanding&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The practical effect is that the new model pushes you toward two clean compositional choices — &lt;strong&gt;Skills&lt;/strong&gt; for what one agent should know how to do, and &lt;strong&gt;Connected agents&lt;/strong&gt; for handing work to another agent — instead of the older three-way split that included child agents.&lt;/p&gt;

&lt;h2 id=&quot;3-skills-behavior-as-load-on-demand-markdown&quot;&gt;3. Skills: behavior as load-on-demand markdown&lt;/h2&gt;

&lt;p&gt;In the rebuilt experience, &lt;strong&gt;Skills&lt;/strong&gt; are &lt;em&gt;“reusable instructions in Markdown that can load on demand for completing specific tasks,”&lt;/em&gt; and — importantly — you can &lt;em&gt;“import skills you already have, including existing GitHub Copilot or Claude Code skills.”&lt;/em&gt; That single sentence is the most consequential change in the release.&lt;/p&gt;

&lt;h3 id=&quot;what-this-actually-is&quot;&gt;What this actually is&lt;/h3&gt;

&lt;p&gt;A skill in this sense is the &lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SKILL.md&lt;/code&gt; pattern&lt;/strong&gt;: a Markdown file with light frontmatter (a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;name&lt;/code&gt; and a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;description&lt;/code&gt; of when to use it) and a Markdown body of instructions, examples, and guidelines. The orchestrator reads the descriptions and &lt;strong&gt;loads the full skill body only when a task needs it&lt;/strong&gt; — progressive disclosure, rather than stuffing every rule into one always-on instruction block. This is the same convention that GitHub Copilot and Claude Code use for agent skills, and Copilot Studio now supports it natively, including the ability to import skills authored for those tools. You author a skill once, add it to multiple agents, and can export it as a Markdown file or package to share — the reusable-library model those coding tools already use.&lt;/p&gt;

&lt;h3 id=&quot;why-it-matters-for-everything-in-parts-1-and-2&quot;&gt;Why it matters for everything in Parts 1 and 2&lt;/h3&gt;

&lt;p&gt;Two of the recurring lessons in the earlier articles were “keep the instruction block small” (Part 1’s 8,000-character limit) and “factor complexity into child agents.” Skills address both more directly:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;The instruction-bloat problem.&lt;/strong&gt; Instead of one monolithic instruction block bumping the 8,000-character ceiling, behavior is split into focused skills that load only when relevant. The “god agent” anti-pattern (Part 2, anti-pattern 1) gets a native remedy at the instruction layer, not only at the agent layer.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The child-agent use case.&lt;/strong&gt; Part 1 used child agents to “factor complexity inside one parent.” That job is now a &lt;strong&gt;skill&lt;/strong&gt;, not a sub-agent. You no longer create a child agent named “Validate Expense Code”; you write a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;validate-expense-code&lt;/code&gt; skill that loads when needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;the-naming-trap--two-different-skills&quot;&gt;The naming trap — two different “skills”&lt;/h3&gt;

&lt;p&gt;Be careful: Copilot Studio now has &lt;strong&gt;two unrelated things called “skills.” ** **&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Classic skills&lt;/strong&gt; (still on Microsoft Learn) — a deployed Bot Framework / Microsoft 365 Agents SDK &lt;em&gt;bot&lt;/em&gt;, registered as an agent via a &lt;strong&gt;manifest URL&lt;/strong&gt;, used for complex multi-turn server-side scenarios. Pro-code, registered under Settings → Skills.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;New skills&lt;/strong&gt; (the rebuilt experience) — ** Markdown instruction modules** (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SKILL.md&lt;/code&gt; style) that load on demand—Low-code, authored or imported as files.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These are different concepts with the same name. When you read “skills” in the documentation, check whether it means a manifest-registered bot or a Markdown behavior module. This article uses the &lt;strong&gt;new markdown&lt;/strong&gt; format unless it says otherwise.&lt;/p&gt;

&lt;h3 id=&quot;design-guidance-for-skills&quot;&gt;Design guidance for skills&lt;/h3&gt;

&lt;p&gt;The Part 1 guidance about tool descriptions transfers almost verbatim to skill descriptions: the &lt;strong&gt;description is what the orchestrator routes on&lt;/strong&gt;. A skill described as “Expense logic” will be loaded unpredictably; a skill described as “Validates an expense code against the FY26 policy matrix; use when the user submits or questions an expense line” will load when it should. Keep each skill narrow, name it for one job, and write the description for the router, not for a human reader.&lt;/p&gt;

&lt;h2 id=&quot;4-the-new-agentic-orchestrator&quot;&gt;4. The new agentic orchestrator&lt;/h2&gt;

&lt;p&gt;The surface changes sit atop a new engine. Microsoft describes a &lt;strong&gt;new agentic orchestrator&lt;/strong&gt; &lt;em&gt;“built on a new coding harness and CLI layer,”&lt;/em&gt; with:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Stronger instruction adherence&lt;/strong&gt; — agents follow their instructions and skills more reliably.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Long-horizon task execution&lt;/strong&gt; and &lt;strong&gt;recursive task execution&lt;/strong&gt; — the orchestrator can work through multi-step, dynamic problems that decompose into sub-tasks, rather than a single planning pass.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Large-content handling&lt;/strong&gt; and &lt;strong&gt;rich file outputs&lt;/strong&gt; — it can process large volumes of content and produce documents and data files, opening up document-generation and data scenarios that were awkward before.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For readers of Part 2, this matters in two concrete ways. First, the &lt;strong&gt;sequential pipeline&lt;/strong&gt; and &lt;strong&gt;hierarchical&lt;/strong&gt; patterns get easier, because the orchestrator itself now does long-horizon, recursive decomposition — some of what you previously assembled out of multiple agents and a Dataverse state table, the orchestrator can carry within a single agent’s run. Second, the &lt;strong&gt;“specialists are boring”&lt;/strong&gt; principle still holds, but the threshold for when you &lt;em&gt;need&lt;/em&gt; to split shifts: a single new-orchestrator agent can reliably do more before it hits the limits that forced decomposition in the classic model. The Part 1 signals for splitting (tool count, owners, conflicting knowledge, divergent SLAs) remain the right criteria; the tool-count number is just less likely to be the first wall you hit.&lt;/p&gt;

&lt;p&gt;The harness-and-CLI framing is deliberate. It is the same shape as a modern coding agent — which is also why importing GitHub Copilot and Claude Code skills works at all: the runtime is built to consume that ecosystem’s conventions.&lt;/p&gt;

&lt;p&gt;On the model side, the new experience lets you pick the orchestrator’s primary model directly: &lt;strong&gt;Claude Sonnet 5&lt;/strong&gt; and &lt;strong&gt;GPT-5.5 Chat&lt;/strong&gt; are now generally available choices. Hence, the instruction-adherence gains come from both the new harness and a current-generation model underneath it.&lt;/p&gt;

&lt;h2 id=&quot;5-memory-and-microsoft-iq&quot;&gt;5. Memory and Microsoft IQ&lt;/h2&gt;

&lt;p&gt;The new &lt;strong&gt;Memory&lt;/strong&gt; surface (preview) — &lt;em&gt;“remember interactions, workflows and context for improved results”&lt;/em&gt; — is the agent-facing edge of a larger platform layer.&lt;/p&gt;

&lt;h3 id=&quot;work-iq-and-its-three-layers&quot;&gt;Work IQ and its three layers&lt;/h3&gt;

&lt;p&gt;On Microsoft Learn, &lt;strong&gt;Work IQ (preview)&lt;/strong&gt; is described as &lt;em&gt;“the intelligence layer that grounds Microsoft 365 Copilot and your agents in real-time, shared context across your organization.”&lt;/em&gt; It is built on three layers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt; — unifies signals from files, emails, meetings, chats, and business systems across Microsoft 365 to capture how work actually happens.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Memory&lt;/strong&gt; — &lt;em&gt;“builds persistent understanding of how people and teams work, enabling Agent 365–managed agents to stay aligned to priorities and remain consistent across tasks, apps, and sessions.”&lt;/em&gt; This is the layer behind the agent &lt;strong&gt;Memory&lt;/strong&gt; surface.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Inference&lt;/strong&gt; — brings together models, skills, and tools so agents can reason and act, using Work IQ MCP tools, under the Agent 365 control plane.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You add Work IQ to an agent as &lt;strong&gt;Work IQ MCP tools&lt;/strong&gt; (Tools → Add tool → Model Context Protocol → e.g., &lt;em&gt;Work IQ Mail&lt;/em&gt;, &lt;em&gt;Work IQ Calendar&lt;/em&gt;, &lt;em&gt;Work IQ Teams&lt;/em&gt;). It requires a Microsoft 365 Copilot license. Work IQ in Copilot Studio is &lt;strong&gt;preview-only today, with general availability “coming soon”&lt;/strong&gt;; Microsoft’s documentation states that once Work IQ reaches GA, the &lt;strong&gt;Work IQ API transitions to a usage-based (consumptive) billing model&lt;/strong&gt; — so that billing is not yet in effect. Governance runs through Agent 365 and the Microsoft 365 admin center (admins allow or block servers tenant-wide), with tool-call tracing in Microsoft Defender Advanced Hunting.&lt;/p&gt;

&lt;h3 id=&quot;microsoft-iq--the-umbrella&quot;&gt;Microsoft IQ — the umbrella&lt;/h3&gt;

&lt;p&gt;Work IQ is one of three “IQ” layers under the broader &lt;strong&gt;Microsoft IQ&lt;/strong&gt; banner introduced around Build 2026. In the new Copilot Studio experience, Microsoft Learn documents Microsoft IQ as a context layer with &lt;strong&gt;three sources&lt;/strong&gt;: &lt;strong&gt;Work IQ&lt;/strong&gt; (Microsoft 365 org data — emails, chats, files, calendar, people — routed through the Agent 365 MCP gateway), &lt;strong&gt;Fabric IQ&lt;/strong&gt; (business data and analytics in Microsoft Fabric), and &lt;strong&gt;Foundry IQ&lt;/strong&gt; &lt;em&gt;(preview)&lt;/em&gt;, which grounds the agent on enterprise knowledge bases indexed by Azure AI Search in Azure AI Foundry. Turning on a Microsoft IQ source gives the agent both read access (knowledge) and actions (tools), always within the signed-in user’s permissions. Both Copilot Studio and Foundry draw on the same Microsoft IQ layer, which is part of what enables the convergence in §7. (Some Build 2026 community write-ups group the family differently — e.g., Work IQ / Foundry IQ / Web IQ; the Copilot Studio documentation itself lists Work IQ / Fabric IQ / Foundry IQ.)&lt;/p&gt;

&lt;h3 id=&quot;how-memory-changes-the-hierarchical-pattern&quot;&gt;How Memory changes the hierarchical pattern&lt;/h3&gt;

&lt;p&gt;Part 2’s employee-onboarding scenario leaned on a Dataverse &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OnboardingCase&lt;/code&gt; table because “if the process outlives the conversation, so should the state.” Memory does not replace that — durable, queryable business state still belongs in Dataverse — but it changes what you have to encode by hand. Memory carries &lt;em&gt;understanding of how people and teams work&lt;/em&gt; across sessions, so the agent retains continuity (priorities, prior interactions) without you modeling every bit of it as a table column. The rule of thumb: &lt;strong&gt;structured process state → Dataverse; learned context and continuity → Memory.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;6-the-new-workflow-designer&quot;&gt;6. The new workflow designer&lt;/h2&gt;

&lt;p&gt;Part 2 built its pipeline and fan-out scenarios on &lt;strong&gt;agent flows&lt;/strong&gt;. The rebuilt experience replaces that with a &lt;strong&gt;new workflow designer&lt;/strong&gt;: a single, unified visual canvas with &lt;strong&gt;node-by-node testing&lt;/strong&gt; and &lt;strong&gt;robust versioning&lt;/strong&gt;, intended to combine deterministic steps with agent intelligence in one place.&lt;/p&gt;

&lt;p&gt;The pieces that matter for the orchestration patterns:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Agent nodes&lt;/strong&gt; — call an existing agent directly inside a workflow, so you get deterministic workflow execution for the predictable parts and hand off to an agent for the open-ended parts. This is the cleanest expression yet of Part 2’s “structured where needed, adaptive where valuable.”&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;MCP servers in workflows (preview)&lt;/strong&gt; — workflows can call MCP-server tools directly, staying within Microsoft security, permission, and compliance boundaries.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;AI-powered actions&lt;/strong&gt; — classification, content generation, and decision-support actions drop into a workflow as nodes, alongside a &lt;strong&gt;Microsoft 365 Copilot action node&lt;/strong&gt; (send a prompt to Microsoft 365 Copilot or a specific agent) and &lt;strong&gt;human review/approval&lt;/strong&gt; actions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, the four patterns from Part 2 now have a more direct home:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Router-worker&lt;/strong&gt; → a workflow that classifies (classification action) and routes to agent nodes.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sequential pipeline&lt;/strong&gt; → a workflow with ordered nodes, each an agent node or AI action, with human-review nodes at decision points.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Parallel fan-out / fan-in&lt;/strong&gt; → parallel branches of agent nodes joined by an aggregation step.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Hierarchical&lt;/strong&gt; → a supervisor workflow that invokes agent nodes and persists durable state in Dataverse, now with Memory carrying cross-session continuity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The patterns did not change. The surface you build them on did.&lt;/p&gt;

&lt;h2 id=&quot;7-foundry-and-copilot-studio-converge&quot;&gt;7. Foundry and Copilot Studio converge&lt;/h2&gt;

&lt;p&gt;The strategic frame from Build 2026 is that &lt;strong&gt;Microsoft Foundry and Copilot Studio are two front doors over one agent runtime&lt;/strong&gt; — Foundry, the pro-code platform (Python/.NET, SDKs, managed runtime); Copilot Studio, the low-code platform (visual designer, same governance and protocols underneath). They share three things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;The A2A protocol&lt;/strong&gt;, so a Foundry agent and a Copilot Studio agent can talk to each other as peers (exactly the cross-platform case Part 1 introduced A2A for).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The Microsoft IQ knowledge layer&lt;/strong&gt; (Work IQ, Foundry IQ, Web IQ).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The Microsoft Agent Framework (MAF)&lt;/strong&gt; — the unification of Semantic Kernel and AutoGen into one agent harness — which can host agents that either front door builds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a platform team, the takeaway is the one Part 1 hinted at and this release makes literal: &lt;strong&gt;standardize on the protocol and the knowledge layer, not the build tool.&lt;/strong&gt; Let pro-code teams use Foundry and low-code teams use Copilot Studio, knowing the agents interoperate over A2A and share Microsoft IQ. The multi-agent architecture you designed in Parts 1 and 2 does not need to be re-decided for each tool; it is decided once at the protocol and knowledge layers.&lt;/p&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;A sourcing note:
The new-experience surfaces, Skills-as-markdown, the new orchestrator, the workflow designer, and Work IQ/Memory are documented on first-party Microsoft sources (the Copilot Studio Blog and Microsoft Learn). The broader Foundry⇄Copilot Studio convergence details — Foundry IQ, Web IQ, and the Microsoft Agent Framework’s role — are drawn from Build 2026 engineering analysis, citing Microsoft DevBlogs and Learn; treat the specific convergence mechanics as directionally confirmed and verify the parts that matter to your design. Since first drafting, two of those pieces firmed up: &lt;strong&gt;Microsoft IQ and Foundry IQ now have their own Microsoft Learn pages&lt;/strong&gt; (&lt;em&gt;Microsoft IQ overview for agents (preview)&lt;/em&gt; and &lt;em&gt;Connect to Foundry IQ from an agent (preview)&lt;/em&gt;), which document Microsoft IQ’s sources as &lt;strong&gt;Work IQ, Fabric IQ, and Foundry IQ&lt;/strong&gt; — so the &lt;strong&gt;Web IQ&lt;/strong&gt; grouping and the &lt;strong&gt;Microsoft Agent Framework’s&lt;/strong&gt; exact role are the parts that still rest on the community analysis.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;8-what-to-do-now&quot;&gt;8. What to do now&lt;/h2&gt;

&lt;p&gt;The new experience is a preview and coexists with the classic, which makes the right posture straightforward:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;New builds you intend to keep:&lt;/strong&gt; start in the new experience and the four-surface model. Author behavior as &lt;strong&gt;Skills&lt;/strong&gt; (narrow, well-described markdown), use &lt;strong&gt;Connected agents&lt;/strong&gt; for cross-agent work, reserve &lt;strong&gt;Tools/Knowledge&lt;/strong&gt; for actions and context, and turn on &lt;strong&gt;Memory&lt;/strong&gt; where cross-session continuity helps. Build orchestration in the &lt;strong&gt;new workflow designer&lt;/strong&gt; with agent nodes.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Existing classic agents:&lt;/strong&gt; leave them. They keep working, and Parts 1 and 2 remain the accurate reference for them. Migrate when you have a reason — a redesign, a new requirement, or the new orchestrator’s reliability gains — not reflexively.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Skills you already have&lt;/strong&gt; for GitHub Copilot or Claude Code: you can import them, which makes the new model a low-friction on-ramp if your teams already author &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SKILL.md&lt;/code&gt; files.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Governance:&lt;/strong&gt; the Part 2 disciplines do not change — Entra Agent ID per agent, least privilege, audit through Purview/Defender, idempotency on writes, structured contracts. Work IQ and the new tools route through Agent 365 governance in the Microsoft 365 admin center; fold that into the same review process.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Watch the status.&lt;/strong&gt; This is preview. Reconfirm GA timing and any surface renames before you bet on a production rollout on the new model, and keep classic as the fallback until the new experience reaches GA for the capabilities you depend on.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Parts 1 and 2 settled the architecture of multi-agent systems in Copilot Studio and showed it in execution. Part 3 is the reminder that the platform underneath an architecture moves, and that the durable parts are the ideas, not the tabs. The Build 2026 rebuild changes the surfaces — &lt;strong&gt;Skills&lt;/strong&gt; instead of sprawling instructions and child agents, a &lt;strong&gt;Memory&lt;/strong&gt; surface, a new orchestrator, a new workflow designer — but it does not change the load-bearing decisions: narrow agents with clear ownership, behavior factored into small, well-described units, structured contracts between components, state that outlives the conversation, and least-privilege governance. Skills are the new home for “factor the complexity”; Connected agents and A2A are still how agents collaborate; the four patterns still cover the work. The names on the tabs changed. The discipline did not.&lt;/p&gt;

&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Copilot Studio Blog — &lt;a href=&quot;https://techcommunity.microsoft.com/blog/copilot-studio-blog/meet-the-new-copilot-studio-rebuilt-for-more-complex-multi-step-work/4526488&quot;&gt;Meet the new Copilot Studio: rebuilt for more complex, multi-step work&lt;/a&gt; (June 9, 2026) — four-surface model, nine-to-four tabs, new agentic orchestrator, Skills as markdown (import GitHub Copilot / Claude Code skills), new workflow designer with agent nodes and MCP servers; &lt;strong&gt;public preview&lt;/strong&gt;, coexisting with classic&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/use-work-iq&quot;&gt;Work IQ MCP overview (preview)&lt;/a&gt; — Work IQ’s Data / Memory / Inference layers, Work IQ MCP tools, Agent 365 governance; Work IQ is in preview with GA “coming soon” and usage-based Work IQ API billing taking effect at GA&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/agents-experience/use-microsoft-iq&quot;&gt;Microsoft IQ overview for agents (preview)&lt;/a&gt; — Microsoft IQ as a context layer with three sources (Work IQ, Fabric IQ, Foundry IQ &lt;em&gt;(preview)&lt;/em&gt;); see also &lt;em&gt;Connect to Foundry IQ from an agent (preview)&lt;/em&gt; and &lt;em&gt;Turn on Microsoft IQ for an agent (preview)&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/whats-new&quot;&gt;What’s new in Copilot Studio&lt;/a&gt; — the new agent experience as “Production-ready preview” (June 2026); &lt;strong&gt;Windows 365 for Agents MCP server (GA)&lt;/strong&gt;; &lt;strong&gt;Foundry IQ&lt;/strong&gt; knowledge source &lt;em&gt;(preview)&lt;/em&gt;; &lt;strong&gt;Claude Sonnet 5&lt;/strong&gt; / &lt;strong&gt;GPT-5.5 Chat&lt;/strong&gt; primary models (GA); workflow nodes (Microsoft 365 Copilot node, prompt node, classification); Computer Use GA (May 2026); A2A GA (April 2026)&lt;/li&gt;
  &lt;li&gt;Microsoft Copilot Studio Blog — &lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-copilot/blog/copilot-studio/new-and-improved-computer-using-agents-a-new-workflows-experience-and-real-time-voice-experiences/&quot;&gt;What’s new in Copilot Studio: May 2026&lt;/a&gt; — redesigned workflows experience, agent nodes, AI-powered actions&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-use-skills&quot;&gt;Use skills in Copilot Studio&lt;/a&gt; and &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/configuration-add-skills&quot;&gt;Configure skills&lt;/a&gt; — the &lt;em&gt;classic&lt;/em&gt; (manifest-registered) meaning of “skills,” for disambiguation&lt;/li&gt;
  &lt;li&gt;GitHub Docs — &lt;a href=&quot;https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills&quot;&gt;Adding agent skills for GitHub Copilot&lt;/a&gt; and &lt;a href=&quot;https://docs.github.com/en/copilot/how-tos/copilot-sdk/features/skills&quot;&gt;Custom skills (Copilot SDK)&lt;/a&gt; — the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SKILL.md&lt;/code&gt; Markdown skill format Copilot Studio now imports&lt;/li&gt;
  &lt;li&gt;Redmond Magazine — &lt;a href=&quot;https://redmondmag.com/blogs/redmond-dispatch/2026/06/microsoft-unveils-redesigned-copilot-studio.aspx&quot;&gt;Microsoft Unveils Redesigned Copilot Studio for Complex AI Agent Workflows&lt;/a&gt; (June 9, 2026) — independent coverage of the rebuild&lt;/li&gt;
  &lt;li&gt;Build 2026 engineering analysis (community, citing Microsoft DevBlogs/Learn) — &lt;a href=&quot;https://www.linkedin.com/pulse/microsoft-foundry-copilot-studio-build-2026-satyanarayana-padidapu-2djfc&quot;&gt;Microsoft Foundry &amp;amp; Copilot Studio at Build 2026&lt;/a&gt; — one-runtime / two-front-doors convergence, Microsoft IQ (Work IQ / Foundry IQ / Web IQ), Microsoft Agent Framework; treat convergence mechanics as directionally confirmed&lt;/li&gt;
  &lt;li&gt;Parts 1 and 2 of this series — the classic five-surface model and the four orchestration patterns this article maps forward&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Sat, 18 Jul 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/copilot-studio-orchestration-part3</link>
                <guid isPermaLink="true">https://holgerimbery.blog/copilot-studio-orchestration-part3</guid>
                
                <category>a2a</category>
                
                <category>agents</category>
                
                <category>build2026</category>
                
                <category>copilotstudio</category>
                
                <category>memory</category>
                
                <category>multiagent</category>
                
                <category>orchestration</category>
                
                <category>skills</category>
                
                <category>workiq</category>
                
                
            </item>
        
            <item>
                <title>Multi-Agent Orchestration with Copilot Studio — Part 2: In Practice</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary lede.&lt;/strong&gt; This is the second of three articles on multi-agent orchestration in Microsoft Copilot Studio. Part 1 settled the architecture: when to split a single agent, what a Copilot Studio agent is composed of, which orchestration patterns exist, and how the Model Context Protocol (MCP) and Agent2Agent (A2A) protocol keep the system composable. Part 2 — In Practice — takes those decisions and works through what they look like in production. Four end-to-end scenarios, each built on a different orchestration pattern, show how the architectural pieces fit together. A starter MCP server inventory makes the platform team’s role explicit. The article closes with ten anti-patterns from real deployments and the corrections that teams have actually applied.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;About this series.&lt;/strong&gt; This is Part 2 of three. &lt;strong&gt;Part 1 — Foundations&lt;/strong&gt; establishes the vocabulary, when to split a single agent, the five configuration surfaces, the four orchestration patterns, and how MCP and A2A are configured. &lt;strong&gt;Part 2 — In Practice&lt;/strong&gt; (this article) turns those decisions into four end-to-end scenarios, a starter MCP server inventory, and ten production anti-patterns. Parts 1 and 2 describe the &lt;strong&gt;released, generally available feature set&lt;/strong&gt; — the “classic” Copilot Studio experience, built on &lt;strong&gt;generative orchestration&lt;/strong&gt;, which is GA and fully supported. &lt;strong&gt;Part 3 — The Build 2026 Rebuild&lt;/strong&gt; describes the new four-surface model (Skills, Memory, a new orchestrator); those features are &lt;strong&gt;in public preview and subject to change&lt;/strong&gt; before general availability, so treat Part 3 as forward-looking and re-check status before relying on it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every scenario uses features documented on Microsoft Learn and either generally available or in public preview as of mid-2026: connected agents, autonomous triggers, agent flows with parallel branches and approval gates, Dataverse as a state store, MCP integration with Streamable transport, and Purview audit logging. Where a capability is in preview (for example, connecting to Microsoft Foundry, Fabric, or Microsoft 365 Agents SDK agents), this article says so. The scenarios pair with named, published case studies — T-Mobile, Nexi Group, Dunaway, Holland America Line, Signetic, Singapore Civil Defense Force, La Trobe University — whose architectural shape matches the patterns described.&lt;/p&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Capability status at publication&lt;/strong&gt;
Two capabilities directly reinforce these scenarios. &lt;strong&gt;A2A connections are generally available&lt;/strong&gt;, so cross-platform delegation is not a preview dependency. &lt;strong&gt;Computer Use (computer-using agents) is generally available&lt;/strong&gt; — the CUA extension mentioned in Scenario 1 is a shipping capability, with embedding into multi-step workflows in preview. A &lt;strong&gt;redesigned Workflows experience&lt;/strong&gt; (early release) introduces a unified visual canvas with &lt;strong&gt;agent nodes&lt;/strong&gt; that drop existing agents into a flow, plus AI-powered actions for classification and content generation; &lt;strong&gt;asynchronous responses&lt;/strong&gt; &lt;em&gt;(preview)&lt;/em&gt; let agent-flow steps exceed the two-minute limit, which the onboarding scenario benefits from. And &lt;strong&gt;per-agent Microsoft Entra agent identities&lt;/strong&gt; can be auto-created &lt;em&gt;(preview)&lt;/em&gt;, which is the concrete mechanism behind the “Entra Agent ID per agent” recommendation in the anti-patterns section.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Why read this&lt;/strong&gt;
Read this if Part 1 left you convinced that multi-agent orchestration is the right response to scope drift, and you now need to see four working shapes. The four scenarios — IT incident triage, contract review, field service dispatch, employee onboarding — are not picked for variety; they are picked because they map cleanly onto the four orchestration patterns introduced in Part 1, and because each exposes a different production failure mode that teams are most likely to encounter. Read it if you have ever drawn a multi-agent architecture on a whiteboard, sent it to a senior maker, and watched them rebuild it in a way you did not expect. The MCP inventory section exists to answer the most common follow-up question — “okay, but who owns what?” — with a starting catalog. The anti-patterns section exists to answer the second-most-common follow-up — “what is most likely to bite us first?” — with ten patterns that recur often enough to be predictable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Read Part 1 if you need the vocabulary; read Part 2 if you have the vocabulary and need the working examples. Each scenario is small enough to read in one sitting and concrete enough to reproduce in your own tenant. The point is not that any of these scenarios is the right one for your organization — the point is that the patterns underneath them are.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-the-four-scenarios-and-what-they-exercise&quot;&gt;1. The four scenarios and what they exercise&lt;/h2&gt;

&lt;p&gt;Four scenarios appear below. They are deliberately ordered by complexity, from the simplest pattern (router-worker) to the most demanding (hierarchical with persistent state). Each builds on the surfaces introduced in Part 1 — instructions, knowledge, tools, topics, triggers — and uses one of the four orchestration patterns.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Scenario&lt;/th&gt;
      &lt;th&gt;Pattern&lt;/th&gt;
      &lt;th&gt;What it exercises&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;IT incident triage&lt;/td&gt;
      &lt;td&gt;Router-worker&lt;/td&gt;
      &lt;td&gt;Classification, delegation, structured outputs between agents&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Contract review&lt;/td&gt;
      &lt;td&gt;Parallel fan-out / fan-in&lt;/td&gt;
      &lt;td&gt;Concurrent specialists, scoped knowledge, merged outputs&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Field service dispatch&lt;/td&gt;
      &lt;td&gt;Router-worker with autonomous trigger&lt;/td&gt;
      &lt;td&gt;Event-driven autonomy, bounded decision trees, no user in the loop&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Employee onboarding&lt;/td&gt;
      &lt;td&gt;Hierarchical with persistent state&lt;/td&gt;
      &lt;td&gt;Long-running supervision, Dataverse as state store, SLA monitoring&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The scenarios are sized to be read end to end. Each one names the agents, provides instructions, walks through the expected runtime behavior, and points to a published case study whose architectural shape matches. The published shape — not the exact numbers — is the part to import.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;2-scenario-one--it-incident-triage-router-worker&quot;&gt;2. Scenario one — IT incident triage (router-worker)&lt;/h2&gt;

&lt;p&gt;The first scenario takes a concrete, widespread problem — tier-one IT service desk volume — and shows how a multi-agent design resolves it using only features available in Copilot Studio today.&lt;/p&gt;

&lt;h3 id=&quot;the-problem&quot;&gt;The problem&lt;/h3&gt;

&lt;p&gt;A large share of tier-one service desk tickets are mechanical: password resets, VPN issues, access requests, known application errors. In many IT organizations, this mechanical work accounts for a substantial fraction of the total ticket volume. Each of these tickets, when routed to a human analyst, consumes several minutes — read the ticket, look up the user, open the runbook, apply the fix, update the record.&lt;/p&gt;

&lt;p&gt;The pattern is tedious for analysts and slow for users. It is also unnecessary: the runbooks already exist, the ticketing system already has APIs, and the retrieval work is well inside the capability of current language models.&lt;/p&gt;

&lt;h3 id=&quot;the-design&quot;&gt;The design&lt;/h3&gt;

&lt;p&gt;Three agents, with clear responsibilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Triage Orchestrator (user-facing).&lt;/strong&gt; Classifies the incoming ticket into one of a small set of categories, delegates to the appropriate specialist, and returns the response to the user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Runbook Specialist (connected agent).&lt;/strong&gt; Retrieves the matching runbook from the IT knowledge base (SharePoint) and returns resolution steps or a “not found” result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ticket Writer (connected agent).&lt;/strong&gt; Writes outcomes back to the ticketing system (ServiceNow, via the existing connector). Idempotent — retries do not create duplicates.&lt;/p&gt;

&lt;p&gt;The split is deliberate. The Runbook Specialist is read-only; it never writes. The Ticket Writer writes but does not reason about runbooks. The Orchestrator owns the conversation and the classification but has no direct access to connectors.&lt;/p&gt;

&lt;h3 id=&quot;agent-configurations&quot;&gt;Agent configurations&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Triage Orchestrator — instructions:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You are the IT service desk triage agent. When a user
describes a technical problem; your job is to classify it
And route it to the correct specialist.

Classify the request into exactly one of:
  password_reset, vpn, hardware, application, other

Then:
  1. Call RunbookSpecialist with the classification and the
     user&apos;s original message.
  2. If RunbookSpecialist returns resolution_steps, present
     the steps to the user in a numbered list and ask if
     they want the ticket closed as resolved.
  3. If the user confirms, call TicketWriter with
     status=&quot;resolved&quot; and the applied steps.
  4. If RunbookSpecialist returns no match, call
     TicketWriter with status=&quot;routed&quot; and
     assignment_group derived from classification.

Never attempt to resolve a problem yourself.
Never write to the ticketing system directly.
Never mention specialist agents to the user.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Runbook Specialist — instructions:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You look up runbooks from the internal IT knowledge base
and return resolution steps.

Inputs:
  classification (string)
  problem_statement (string)

Behavior:
  Search the IT knowledge base scoped to the given
  classification. Return the single best-matching runbook.

Output (structured):
  { runbook_id: string | null,
    resolution_steps: string[] | null,
    confidence: number }

You do not create, update, or delete tickets.
You do not reason about user intent beyond runbook matching.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Knowledge source: a specific SharePoint library, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IT Knowledge Base / Runbooks&lt;/code&gt;. Nothing else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ticket Writer — instructions:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You write outcomes to the ticketing system.

Inputs:
  ticket_id (string)
  status (enum: &quot;resolved&quot;, &quot;routed&quot;, &quot;escalated&quot;)
  applied_steps (string[], optional)
  assignment_group (string, optional)
  idempotency_key (string)

Behavior:
  Call the ServiceNow Update Incident action with the
  mapped fields. Use idempotency_key to deduplicate.

Output (structured):
  { ok: boolean, ticket_url: string }

You do not reason about whether the status is correct.
You do not retrieve runbooks.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Tools: the ServiceNow connector’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Update Incident&lt;/code&gt; action. Nothing else.&lt;/p&gt;

&lt;h3 id=&quot;orchestration-pattern&quot;&gt;Orchestration pattern&lt;/h3&gt;

&lt;p&gt;Router-worker. The Orchestrator routes; specialists execute. No parallelism, no hierarchy, no callbacks from specialists to the Orchestrator.&lt;/p&gt;

&lt;h3 id=&quot;expected-runtime-behavior&quot;&gt;Expected runtime behavior&lt;/h3&gt;

&lt;p&gt;A user writes: “I can’t connect to the VPN from home since this morning.”&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The Orchestrator classifies the request as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;vpn&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;It calls the Runbook Specialist with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{classification: &quot;vpn&quot;, problem_statement: &quot;...&quot;}&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;The Runbook Specialist searches the runbook library, finds a match, returns &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{runbook_id: &quot;RB-0187&quot;, resolution_steps: [&quot;Verify your network...&quot;, &quot;Re-register the VPN client...&quot;, ...], confidence: 0.91}&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;The Orchestrator presents the steps to the user.&lt;/li&gt;
  &lt;li&gt;The user replies that the steps worked.&lt;/li&gt;
  &lt;li&gt;The Orchestrator calls the Ticket Writer with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;status: &quot;resolved&quot;&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;The Ticket Writer updates ServiceNow and returns &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{ok: true, ticket_url: &quot;...&quot;}&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the Runbook Specialist had returned no match, the Orchestrator would have called the Ticket Writer with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;status: &quot;routed&quot;&lt;/code&gt; and an assignment group derived from the classification.&lt;/p&gt;

&lt;h3 id=&quot;expected-outcomes&quot;&gt;Expected outcomes&lt;/h3&gt;

&lt;p&gt;The scenario mirrors the shape of several published Copilot Studio case studies. T-Mobile equipped customer service representatives with a Power Apps + Copilot Studio agent that provides accurate device information and improves customer experiences. Nexi Group modernized card-service customer support with Copilot Studio, with the explicit outcome of reduced contact-center workload. A1 Inteligência em Viagens used Power Automate and Copilot Studio to boost team efficiency and customer experience.&lt;/p&gt;

&lt;p&gt;The exact numbers depend on ticket mix and runbook quality, but the shape is consistent across published reports: a meaningful share of tier-one volume auto-resolves, a larger share auto-routes with enriched context, and escalation volume drops.&lt;/p&gt;

&lt;h3 id=&quot;what-this-scenario-makes-obvious&quot;&gt;What this scenario makes obvious&lt;/h3&gt;

&lt;p&gt;The value of the split is not the number of agents. It is the clarity of ownership. When the knowledge base team updates a runbook, only the Runbook Specialist is affected. When the ticketing team rotates a credential, only the Ticket Writer is affected. When the user experience changes, only the Orchestrator is affected. Each change is small and independent, which is what allows the overall system to be maintained over time.&lt;/p&gt;

&lt;p&gt;The extensions to consider once the base is working: add an autonomous trigger (a Dataverse row-change event that fires when a new ticket is written to a queue table) so the Orchestrator runs on new tickets, not only when a user chats. Replace the ServiceNow connector with an MCP server to share ticketing tools across multiple agents in your tenant. Add a Computer-Using Agent (CUA) specialist — now generally available in Copilot Studio (May 2026) — for the narrow set of cases where the fix requires clicking through a legacy admin UI without an API.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;3-scenario-two--contract-review-pipeline-parallel-fan-out&quot;&gt;3. Scenario two — Contract review pipeline (parallel fan-out)&lt;/h2&gt;

&lt;p&gt;The second scenario exercises a different orchestration pattern — parallel fan-out — and a different kind of specialist agent. Contract review is a good test because the work splits cleanly across independent review domains, each domain has its own policy library, and the outcome is a merged memo rather than a single-agent response.&lt;/p&gt;

&lt;h3 id=&quot;the-problem-1&quot;&gt;The problem&lt;/h3&gt;

&lt;p&gt;Inbound vendor contracts typically pass through three gates before signature: legal review (indemnity, liability cap, governing law, dispute resolution), finance review (payment terms, auto-renewal clauses, price escalators), and risk review (data processing, subprocessors, breach notification, subcontracting). Each review is conducted by email serially, and the combined cycle frequently spans two weeks for contracts that are not particularly complex.&lt;/p&gt;

&lt;p&gt;The serial nature is the problem. Each reviewer waits for the previous one. Each reviewer reads the full contract, even though their concerns are narrow. The end state — signature — is delayed by the sum of the waits, not the sum of the work.&lt;/p&gt;

&lt;h3 id=&quot;the-design-1&quot;&gt;The design&lt;/h3&gt;

&lt;p&gt;Five agents, one parallel step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intake Orchestrator (user-facing).&lt;/strong&gt; Receives the contract PDF, extracts clauses into a structured clause map, triggers the review fan-out, composes the final memo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clause Extractor (tool, not a separate agent).&lt;/strong&gt; A PDF extraction action backed by an MCP server or Power Automate flow. Returns clauses as a structured list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Legal Reviewer (connected agent).&lt;/strong&gt; Reviews the clause map against a legal policy library. Returns legal issues with severity and citations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finance Reviewer (connected agent).&lt;/strong&gt; Reviews the clause map against finance policy. Returns finance issues with severity and citations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Risk Reviewer (connected agent).&lt;/strong&gt; Reviews the clause map against risk and data-protection policy. Returns risk issues with severity and citations.&lt;/p&gt;

&lt;p&gt;The three Reviewers run in parallel. Each has a narrow, owned knowledge source. None of them depends on the others’ output.&lt;/p&gt;

&lt;h3 id=&quot;agent-configurations-1&quot;&gt;Agent configurations&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Intake Orchestrator — instructions:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You own the contract review process.

When a user uploads a contract:
  1. Call the Clause Extractor to get a structured clause
     map from the document.
  2. In parallel, call LegalReviewer, FinanceReviewer, and
     RiskReviewer with the full clause map.
  3. When all three return, aggregate findings into a single
     review memo organized by severity.
  4. Present the memo to the user with the contract
     reference, the number of issues found, and a link to
     the full findings.

Do not perform legal, financial, or risk analysis yourself.
Do not reformulate reviewer findings; present them verbatim.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Legal Reviewer — instructions:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You review contracts for legal risk.

Inputs:
  clause_map (structured list of clauses with text and type)

Behavior:
  Check each clause against the Legal Policy library.
  Flag issues only where the clause conflicts with policy
  or is missing from a required category.

Output (structured):
  { issues: [{ clause_type: string,
               severity: &quot;high&quot; | &quot;medium&quot; | &quot;low&quot;,
               citation: string,
               suggested_redline: string }] }

Knowledge source: SharePoint &quot;Legal Policy Library&quot; only.
You do not review payment terms, pricing, or data
processing — those belong to Finance and Risk Reviewers.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Finance Reviewer and Risk Reviewer follow the same shape, each scoped to its own policy library.&lt;/p&gt;

&lt;h3 id=&quot;orchestration-pattern-1&quot;&gt;Orchestration pattern&lt;/h3&gt;

&lt;p&gt;Parallel fan-out / fan-in. The Intake Orchestrator fires three calls at once and joins when all three return. In Copilot Studio, this is typically built as an agent flow with parallel branches — one branch per reviewer — followed by an aggregation step. (In the redesigned Workflows experience now in early release, those reviewer agents can be dropped onto the canvas as agent nodes.)&lt;/p&gt;

&lt;h3 id=&quot;human-in-the-loop&quot;&gt;Human-in-the-loop&lt;/h3&gt;

&lt;p&gt;Copilot Studio agent flows support approval gates. In this design, the memo is delivered to a human reviewer (usually the deal owner or general counsel) who decides what to act on. The system does not automatically redline the contract; it surfaces issues and suggests redlines for human judgment.&lt;/p&gt;

&lt;p&gt;This is the right default for regulated workflows. The published case study from Dunaway — a firm that uses Copilot Studio for city-code research — is explicit that the value of the agent is surfacing accurate information quickly, with the compliance professional retaining decision authority.&lt;/p&gt;

&lt;h3 id=&quot;expected-runtime-behavior-1&quot;&gt;Expected runtime behavior&lt;/h3&gt;

&lt;p&gt;A user uploads a vendor agreement to the Intake Orchestrator.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The Orchestrator calls the Clause Extractor, which returns &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{clauses: [{type: &quot;indemnity&quot;, text: &quot;...&quot;}, {type: &quot;payment_terms&quot;, text: &quot;...&quot;}, ...]}&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;The Orchestrator triggers three parallel branches:
    &lt;ul&gt;
      &lt;li&gt;Legal Reviewer returns two issues (one high, one medium).&lt;/li&gt;
      &lt;li&gt;Finance Reviewer returns one issue (medium: auto-renewal without notification).&lt;/li&gt;
      &lt;li&gt;Risk Reviewer returns three issues (one high: subprocessor not listed; two medium).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;The Orchestrator aggregates the six issues into a memo organized by severity.&lt;/li&gt;
  &lt;li&gt;The user receives the memo and decides what to negotiate.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The time from upload to memo is effectively the slowest of the three parallel branches plus the extractor and the aggregator — in practice, single-digit minutes, versus single-digit business days in the serial model.&lt;/p&gt;

&lt;h3 id=&quot;what-makes-this-work-reliably&quot;&gt;What makes this work reliably&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Scoped knowledge.&lt;/strong&gt; Each Reviewer’s knowledge source is its own policy library and nothing else. Cross-contamination — a Legal Reviewer surfacing finance concerns — produces noisy memos and erodes trust. The narrower the library, the sharper the output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structured outputs.&lt;/strong&gt; Every reviewer returns the same issue shape. The aggregator does not have to parse three different prose styles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Citations.&lt;/strong&gt; Every issue includes a citation back to the policy passage that grounds it. Reviewers without citations are not trusted by their human counterparts, and correctly so. (Bear in mind Part 1’s caveat: citations are not always preserved when outputs pass back from a connected agent, so carry the citation explicitly as a field in the structured output rather than relying on the platform to thread it through.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explicit severity.&lt;/strong&gt; Three levels (high, medium, low), defined in each reviewer’s instructions. The aggregator can sort consistently across reviewers.&lt;/p&gt;

&lt;h3 id=&quot;what-to-watch-out-for&quot;&gt;What to watch out for&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Partial failure.&lt;/strong&gt; If the Finance Reviewer times out, what does the memo say? Decide before you build: a “partial review” memo that notes the missing section is more useful than a failed run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Policy drift.&lt;/strong&gt; The quality of the reviewers depends on the currency of the policy. Assign ownership of each policy library to a named team and review quarterly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scope creep.&lt;/strong&gt; It is tempting, once the Legal Reviewer works, to add “intellectual property” and “export control” to its scope. Resist. New domains are new reviewers.&lt;/p&gt;

&lt;p&gt;Two published case studies anchor this shape. Dunaway transformed compliance workflows with a conversational agent that delivers instant, accurate regulatory answers from scoped knowledge — the scoping makes the answers trustworthy. Signetic uses Power Platform and Copilot Studio across healthcare operational workflows, including review-style patterns that merge multiple specialist inputs into operational decisions. Neither describes this pipeline exactly, but the architectural pattern — bounded specialists over scoped knowledge, merged by an orchestrator — is what both rely on.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;4-scenario-three--field-service-dispatch-autonomous-trigger&quot;&gt;4. Scenario three — Field service dispatch (autonomous trigger)&lt;/h2&gt;

&lt;p&gt;The third scenario exercises an autonomous trigger — the system reacts to an event from the field, not to a user typing into a chat window. This is where Copilot Studio’s March 2025 autonomous-agents GA materially changes what is buildable.&lt;/p&gt;

&lt;h3 id=&quot;the-problem-2&quot;&gt;The problem&lt;/h3&gt;

&lt;p&gt;A field technician arrives at a customer site to service equipment and finds that a required part is missing from the van stock. The resolution today is a phone call. The technician calls dispatch. Dispatch puts the customer call on hold, checks inventory in SAP, calls a nearby warehouse, reschedules the appointment in Dynamics 365 Field Service, calls the customer back, and notifies the technician. The technician waits through all of it — often 30 to 45 minutes of paid idle time, per incident, multiplied by however many incidents happen that day.&lt;/p&gt;

&lt;p&gt;The problem has obvious parts that should be automatic: inventory lookup, rescheduling, and customer notification. None of it is novel; the delay is the cost of humans doing mechanical work.&lt;/p&gt;

&lt;h3 id=&quot;the-design-2&quot;&gt;The design&lt;/h3&gt;

&lt;p&gt;Four agents. Three are called on-demand; one is autonomous.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dispatch Orchestrator (autonomous).&lt;/strong&gt; Triggered by an event from the field app — “technician reports missing part.” Drives the resolution. In Copilot Studio, this is implemented as a Dataverse row-change trigger: the field app writes a row to a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;FieldIncident&lt;/code&gt; table, and the trigger wakes the agent. Where the source system does not write directly to Dataverse, a Power Automate cloud flow subscribes to the source and writes to Dataverse on its behalf.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inventory Specialist (connected agent).&lt;/strong&gt; Queries SAP for part availability at the current site and at nearby warehouses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scheduler Specialist (connected agent).&lt;/strong&gt; Proposes and books appointment slots in Dynamics 365 Field Service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notification Specialist (connected agent).&lt;/strong&gt; Sends an SMS and an email to the customer and a Teams message to the technician.&lt;/p&gt;

&lt;p&gt;The Dispatch Orchestrator does almost no reasoning about parts, scheduling, or customer preference. Its job is to call the three specialists in the correct order and handle the cases.&lt;/p&gt;

&lt;h3 id=&quot;agent-configurations-2&quot;&gt;Agent configurations&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dispatch Orchestrator — instructions (autonomous):&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You run automatically when the field app emits a
&quot;missing_part&quot; event (written to the FieldIncident table).

Event payload includes:
  technician_id, customer_site_id, part_number,
  appointment_id, current_time

Behavior:
  1. Call InventorySpecialist with part_number and
     customer_site_id. You get back either:
     - available_locally: true, eta_minutes
     - available_nearby: true, warehouse_id,
       eta_minutes
     - available: false, earliest_date

  2. If available_locally within 30 minutes:
       Call NotificationSpecialist with mode=&quot;wait&quot; and
       eta_minutes. Exit.

  3. If available_nearby and eta_minutes &amp;lt;= 120:
       Call NotificationSpecialist with mode=&quot;delay&quot;.
       Exit.

  4. Otherwise:
       Call SchedulerSpecialist to propose a new
       appointment at or after earliest_date.
       Call NotificationSpecialist with mode=&quot;reschedule&quot;
       and the new appointment.
       Exit.

You never book inventory or rearrange stock yourself.
You never modify appointments directly.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Inventory Specialist — instructions:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You check SAP inventory for parts.

Inputs:
  part_number (string)
  site_id (string)

Behavior:
  Query the SAP connector for stock at the given site and
  at warehouses within the configured proximity radius.

Output (structured):
  { available_locally: bool, eta_minutes: number?,
    available_nearby: bool, warehouse_id: string?,
    available: bool, earliest_date: date? }

You do not reserve parts. You do not reschedule.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Scheduler Specialist and Notification Specialist follow the same shape, each with its own scoped tools.&lt;/p&gt;

&lt;h3 id=&quot;orchestration-pattern-2&quot;&gt;Orchestration pattern&lt;/h3&gt;

&lt;p&gt;Router-worker with an autonomous trigger. The Orchestrator is event-driven, not user-driven. The specialists are standard connected agents. Microsoft Learn’s &lt;em&gt;Event trigger overview&lt;/em&gt; documents Dataverse row-change, SharePoint, OneDrive, Planner, and Recurrence triggers — exactly the surfaces an event-driven agent runs on (an HTTP request trigger and Power Automate flows extend the catalog where a native trigger does not exist).&lt;/p&gt;

&lt;h3 id=&quot;expected-runtime-behavior-2&quot;&gt;Expected runtime behavior&lt;/h3&gt;

&lt;p&gt;The field app emits a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;missing_part&lt;/code&gt; event at 10:15 AM, written as a row to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;FieldIncident&lt;/code&gt; table.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The row-change trigger wakes the Orchestrator. It calls the Inventory Specialist.&lt;/li&gt;
  &lt;li&gt;Inventory returns &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{available_locally: false, available_nearby: true, warehouse_id: &quot;WH-17&quot;, eta_minutes: 75}&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;The Orchestrator calls the Notification Specialist with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mode: &quot;delay&quot;, eta_minutes: 75&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;The technician receives a Teams message; the customer receives an SMS and an email: “Your technician has been delayed 75 minutes to retrieve a part. New estimated arrival: 11:30 AM.”&lt;/li&gt;
  &lt;li&gt;Everything above happens in under a minute.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If inventory had been unavailable for two days, step three would have called the Scheduler Specialist instead, who would have proposed a slot and booked it in Dynamics 365 Field Service, followed by the notifications.&lt;/p&gt;

&lt;h3 id=&quot;what-makes-the-autonomous-trigger-the-right-shape&quot;&gt;What makes the autonomous trigger the right shape&lt;/h3&gt;

&lt;p&gt;Three properties justify autonomy here:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;The signal is clean.&lt;/strong&gt; The field app writes a well-defined row with a known schema. There is no ambiguity to clarify with a human.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The reasoning is bounded.&lt;/strong&gt; The decision tree is small. Nothing about the workflow requires open-ended judgment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The latency matters.&lt;/strong&gt; A human-in-the-loop step would defeat the point. The whole value is in removing the 30-minute phone call.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Where any of those is not true, a conversational trigger with a human in the loop is in a better shape.&lt;/p&gt;

&lt;h3 id=&quot;a-trigger-security-note&quot;&gt;A trigger-security note&lt;/h3&gt;

&lt;p&gt;Autonomous triggers run with the agent maker’s credentials, and the payload that wakes the agent is untrusted input that is then added to the agent’s context. This is precisely the surface that CVE-2026-21520 exploited: an indirect prompt injection inserted into a SharePoint form field was concatenated into a Copilot Studio agent’s instructions, which then exfiltrated data via a legitimate Outlook action (Microsoft patched it in January 2026; it was publicly disclosed in April 2026). For a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;FieldIncident&lt;/code&gt; row, the practical lessons are the same as Microsoft’s autonomous-agent guidance: validate required fields before acting, narrow the conditions that trigger the action, and never let free-text payload fields override the agent’s instructions.&lt;/p&gt;

&lt;h3 id=&quot;real-anchor-points&quot;&gt;Real anchor points&lt;/h3&gt;

&lt;p&gt;Several published Copilot Studio case studies touch adjacent patterns. The Holland America Line virtual concierge uses Copilot Studio to resolve customer requests with backend integrations without requiring a human operator for standard cases. Signetic uses Power Platform and Copilot Studio to automate healthcare operational workflows that would otherwise require coordination calls between departments. Singapore Civil Defence Force reports automating manual processes that previously required significant staff time, with savings described as multi-million-dollar in the published case study. Field service dispatch fits the same mold: a bounded workflow with clear inputs and a clear success state.&lt;/p&gt;

&lt;h3 id=&quot;safeguards-for-autonomous-agents&quot;&gt;Safeguards for autonomous agents&lt;/h3&gt;

&lt;p&gt;Microsoft’s guidance on autonomous agents is explicit about the safeguards that matter, and they apply directly here:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Least-privileged access.&lt;/strong&gt; The Inventory Specialist should have read-only access to SAP. The Scheduler Specialist should have write access only to the specific entities it books. Neither has broader scope. Per-agent Entra agent identities — now auto-creatable in Copilot Studio &lt;em&gt;(preview)&lt;/em&gt; — make this scoping concrete.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Input validation.&lt;/strong&gt; The field app’s row write is authenticated; the Orchestrator validates required fields before acting, and treats free-text fields as data, not instructions.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Audit logging.&lt;/strong&gt; Every decision and every action is logged to Purview. Field Service dispatch is a regulated area in some industries (medical device servicing, for example), and auditable logs are non-negotiable there.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Human escalation path.&lt;/strong&gt; If the Orchestrator cannot resolve the event — for example, the customer has no contact method on file — it escalates to a human dispatcher rather than failing silently.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;5-scenario-four--employee-onboarding-hierarchical-with-persistent-state&quot;&gt;5. Scenario four — Employee onboarding (hierarchical with persistent state)&lt;/h2&gt;

&lt;p&gt;The fourth and final scenario exercises the hierarchical pattern: a long-running process that spans departments, persists state over days, and requires coordination across multiple specialist agents. Employee onboarding is a good example because the work is well-defined, the owners are clear, and the measurable outcome — day-one readiness — is something every HR organization already tracks.&lt;/p&gt;

&lt;h3 id=&quot;the-problem-3&quot;&gt;The problem&lt;/h3&gt;

&lt;p&gt;Between a candidate accepting an offer and their first day, a long list of things must happen: HR creates the employment record, legal sends contracts for signature, IT provisions the Entra account and assigns licenses, procurement orders hardware, facilities allocates a desk and issues a badge request, the hiring manager drafts a 30-day plan and sets up 1:1s, the new hire is added to Teams channels and mailing lists.&lt;/p&gt;

&lt;p&gt;None of this is intellectually hard. It is coordination work across four or five systems and three or four departments, and it often fails. In many organizations, a meaningful share of new hires arrive on day one with at least one blocker — a missing laptop, no email account, no desk assignment. Each blocker creates friction that is remembered long after it is resolved.&lt;/p&gt;

&lt;h3 id=&quot;the-design-3&quot;&gt;The design&lt;/h3&gt;

&lt;p&gt;One supervisor agent, four specialists, and one shared state store. All live in Copilot Studio, using connected agents and autonomous triggers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Onboarding Supervisor (autonomous).&lt;/strong&gt; Owns the case from offer acceptance to day 30. Orchestrates the specialists. Escalates when any step is overdue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HR Specialist (connected agent).&lt;/strong&gt; Creates the Workday record and sends the contract through DocuSign.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IT Specialist (connected agent).&lt;/strong&gt; Provisions the Entra ID account, assigns licenses, orders hardware.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Facilities Specialist (connected agent).&lt;/strong&gt; Allocates a desk and issues a badge request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manager Specialist (connected agent).&lt;/strong&gt; Drafts the 30-day plan from a template, schedules 1:1s, and adds the new hire to Teams channels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shared state.&lt;/strong&gt; A Dataverse table, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OnboardingCase&lt;/code&gt;, with one row per new hire and columns for each step’s status, timestamps, and artifact links.&lt;/p&gt;

&lt;h3 id=&quot;why-dataverse-and-not-conversation-history&quot;&gt;Why Dataverse and not conversation history&lt;/h3&gt;

&lt;p&gt;The process spans days or weeks. Conversation history in Copilot Studio is not the right place for state that must outlive a session. The durable design principle is the same: persistent state for a long-running process belongs in Dataverse, not in conversation history, which truncates.&lt;/p&gt;

&lt;p&gt;Every specialist updates its own step’s status in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OnboardingCase&lt;/code&gt; row when it completes. The Supervisor reads the row periodically (or reacts to Dataverse row-change events) to decide what to do next. Where a specialist step legitimately runs long, asynchronous responses for agent flows &lt;em&gt;(preview)&lt;/em&gt; let it exceed the two-minute limit and return its result when it finishes.&lt;/p&gt;

&lt;h3 id=&quot;agent-configurations-3&quot;&gt;Agent configurations&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Onboarding Supervisor — instructions (autonomous):&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You run when a new row is created in the OnboardingCase
table (status = &quot;offer_accepted&quot;) or when a row is updated
(status changes).

For each case:
  1. If no HR step has started, call HRSpecialist.
  2. When HR step completes, call IT and Facilities in
     parallel.
  3. When IT step completes, call ManagerSpecialist to
     draft the 30-day plan and schedule 1:1s.
  4. If any step exceeds its SLA (HR: 1 business day, IT:
     3 business days, Facilities: 2 business days,
     Manager: 5 business days), post a Teams message to
     the HR coordinator channel with the overdue step
     and the case ID.

Update OnboardingCase.overall_status after every change.

Never perform steps yourself. Always delegate.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;IT Specialist — instructions:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;You handle IT provisioning for a new hire.

Inputs:
  case_id (string)
  first_name, last_name, start_date, job_title, cost_center

Behavior:
  1. Create the Entra ID user via the Microsoft Graph
     connector.
  2. Assign licenses based on job_title via the configured
     license-mapping table.
  3. Order standard hardware via the IT procurement
     connector (the specific package is determined by
     job_title).
  4. Update OnboardingCase.it_status = &quot;complete&quot; when
     all three succeed.

Output (structured):
  { ok: boolean, entra_user_id: string,
    hardware_order_id: string }

You do not create HR records.
You do not draft the 30-day plan.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Other specialists follow the same shape — each scoped to its own domain, each writing only to its own columns in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OnboardingCase&lt;/code&gt;.&lt;/p&gt;

&lt;h3 id=&quot;orchestration-pattern-3&quot;&gt;Orchestration pattern&lt;/h3&gt;

&lt;p&gt;Hierarchical. The Supervisor runs autonomously, triggered by changes to Dataverse rows. It invokes specialists in a documented order with some parallelism (IT and Facilities can happen concurrently). Each specialist’s work is bounded, owned, and auditable. Agent flows provide the mechanism for the Supervisor. Triggers on Dataverse table changes are a first-class feature.&lt;/p&gt;

&lt;h3 id=&quot;expected-runtime-behavior-3&quot;&gt;Expected runtime behavior&lt;/h3&gt;

&lt;p&gt;Day 0: HR enters a new row in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OnboardingCase&lt;/code&gt; with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;status = &quot;offer_accepted&quot;&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;The Supervisor wakes and calls the HR Specialist. HR Specialist creates the Workday record and initiates the DocuSign flow. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hr_status&lt;/code&gt; moves to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;in_progress&lt;/code&gt;, then to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;complete&lt;/code&gt; when the contract is signed.&lt;/li&gt;
  &lt;li&gt;On HR completion, the Supervisor calls IT and Facilities in parallel. IT provisions Entra, licenses, and hardware. Facilities allocates a desk and issues a badge request.&lt;/li&gt;
  &lt;li&gt;On IT completion, the Supervisor calls the Manager Specialist, who schedules 1:1s in the hiring manager’s calendar, generates a 30-day plan draft in Word, saves it to the manager’s OneDrive, and adds the new hire to the appropriate Teams channels.&lt;/li&gt;
  &lt;li&gt;On day 1, the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;overall_status&lt;/code&gt; column reflects the readiness of the new hire. If any step is overdue, the HR coordinator’s Teams channel has been notified.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;expected-outcomes-1&quot;&gt;Expected outcomes&lt;/h3&gt;

&lt;p&gt;Publicly available data on Copilot Studio onboarding use cases points in a consistent direction. Pragmatiq’s published use-case list identifies “Guiding employee onboarding” as one of the top Copilot Studio patterns: “HR teams use Copilot Studio to guide new hires through IT setup, policies, and training materials, helping them get up to speed faster.” La Trobe University’s published case study describes academic onboarding and student-facing processes handled with Copilot Studio; the pattern generalizes to employee onboarding in its coordination shape.&lt;/p&gt;

&lt;p&gt;Organizations measuring before-and-after on this pattern commonly report day-one readiness improving substantially, with the remaining gap being cases with unusual requirements that still need human routing. The gains come from the coordination being mechanical, not from any single step being faster. (Treat any specific percentage as illustrative unless your own baseline supports it — the published case studies describe the shape of the improvement, not a universal number.)&lt;/p&gt;

&lt;h3 id=&quot;what-this-scenario-makes-obvious-1&quot;&gt;What this scenario makes obvious&lt;/h3&gt;

&lt;p&gt;Three things stand out in the hierarchical pattern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;State is the architecture.&lt;/strong&gt; The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OnboardingCase&lt;/code&gt; Dataverse table is not an implementation detail; it is the source of truth. Every decision the Supervisor makes depends on the state it reads. Every specialist writes back to it. If that table is modeled carelessly, the whole system is fragile.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specialists are boring.&lt;/strong&gt; None of the specialists does anything clever. They do one thing each, reliably. That is the point. Cleverness in the wrong place is a reliability problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Supervisor is small.&lt;/strong&gt; The instruction block is short. The logic is explicit. There is no “decide the best onboarding strategy” reasoning — there is a process, and the Supervisor executes it.&lt;/p&gt;

&lt;h3 id=&quot;where-the-pattern-commonly-goes-wrong&quot;&gt;Where the pattern commonly goes wrong&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Treating the Supervisor as a chatbot.&lt;/strong&gt; Someone wants to “ask the onboarding agent how things are going.” Don’t. Build a report on top of the Dataverse table instead. The Supervisor’s job is execution, not Q&amp;amp;A.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Overloading &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OnboardingCase&lt;/code&gt;.&lt;/strong&gt; Adding every possible detail to the row makes it slower and harder to change. Keep it to status, timestamps, and references; put the details in the relevant specialist’s own storage.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Missing the SLA side of the Supervisor.&lt;/strong&gt; Without the overdue logic, the system looks like it is working until someone realizes a specific step has been stuck for a week. The SLA rule is not optional.&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;6-a-practical-mcp-inventory-for-enterprise-copilot-studio-deployments&quot;&gt;6. A practical MCP inventory for enterprise Copilot Studio deployments&lt;/h2&gt;

&lt;p&gt;The four scenarios above all assume the existence of well-described tools. In Part 1, MCP was introduced as the standard that lets those tools be defined once and consumed by many agents. This section proposes a starter catalog of MCP servers and tools that most enterprises need. Everything listed here is either a real, shipping MCP server from Microsoft or a major vendor, or a thin wrapper around an existing, documented enterprise API that any team can build using the official MCP SDK.&lt;/p&gt;

&lt;h3 id=&quot;why-start-from-an-inventory&quot;&gt;Why start from an inventory&lt;/h3&gt;

&lt;p&gt;Makers tend to build MCP servers reactively — one per immediate need — and end up with an ecosystem that overlaps, duplicates, and ages unevenly. An inventory, maintained by the platform team, makes the design choices explicit: what domains exist, who owns each, and where a new capability should go.&lt;/p&gt;

&lt;p&gt;A practical inventory answers three questions for every proposed tool:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Which domain does it belong to? (Only one.)&lt;/li&gt;
  &lt;li&gt;Who owns the server that hosts it?&lt;/li&gt;
  &lt;li&gt;Is it read-only or does it write, and if it writes, is it idempotent?&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;microsoft-published-mcp-servers&quot;&gt;Microsoft-published MCP servers&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Learn MCP server.&lt;/strong&gt; Exposes Microsoft documentation as searchable tools. Useful for internal developer agents and customer support agents who need up-to-date Microsoft product guidance.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Dataverse MCP&lt;/strong&gt; — platform-level surfaces that expose Dataverse queries to agents, documented in the Microsoft Copilot Studio sample repositories.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Azure MCP servers&lt;/strong&gt; from the Microsoft Azure organization on GitHub, exposing administrative surfaces for Azure resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Microsoft Copilot Acceleration Team publishes working samples in the CopilotStudioSamples repository on GitHub, including the dynamic MCP routing sample referenced in Part 1. Remember that Copilot Studio also supports registering an existing MCP server as a bring-your-own asset through Agents 365, for organizations that want central governance of servers.&lt;/p&gt;

&lt;h3 id=&quot;third-party-mcp-servers-with-public-presence&quot;&gt;Third-party MCP servers with public presence&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;GitHub MCP server&lt;/strong&gt; — official server from GitHub for repository, issue, and pull-request operations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Atlassian MCP servers&lt;/strong&gt; — for Jira and Confluence.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Notion, Linear, Asana&lt;/strong&gt; — community- and vendor-provided servers for common SaaS work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For many enterprises, these third-party servers are the starting point because the backend APIs are stable and the servers are maintained by the vendors.&lt;/p&gt;

&lt;h3 id=&quot;enterprise-internal-domains-that-typically-need-an-mcp-server&quot;&gt;Enterprise-internal domains that typically need an MCP server&lt;/h3&gt;

&lt;p&gt;The categories below are ones most enterprises either build themselves or expect to. Each can be implemented as a thin MCP wrapper over the existing backend’s REST API using the official MCP SDKs (available in TypeScript, Python, C#, and others).&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Domain&lt;/th&gt;
      &lt;th&gt;Typical tools exposed&lt;/th&gt;
      &lt;th&gt;Owner&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;IT service management&lt;/td&gt;
      &lt;td&gt;search_incidents, get_incident, create_incident, update_incident, search_knowledge&lt;/td&gt;
      &lt;td&gt;IT Operations&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Inventory / ERP&lt;/td&gt;
      &lt;td&gt;check_stock, list_warehouses, get_material&lt;/td&gt;
      &lt;td&gt;Supply Chain&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;HR / workforce&lt;/td&gt;
      &lt;td&gt;get_employee, list_open_requisitions, create_hire_record&lt;/td&gt;
      &lt;td&gt;HR Tech&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Field service&lt;/td&gt;
      &lt;td&gt;list_slots, book_appointment, cancel_appointment&lt;/td&gt;
      &lt;td&gt;Field Service&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Policy / knowledge&lt;/td&gt;
      &lt;td&gt;search_policy, get_policy, list_policy_versions&lt;/td&gt;
      &lt;td&gt;Legal / Compliance&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Identity&lt;/td&gt;
      &lt;td&gt;create_user, assign_license, add_to_group&lt;/td&gt;
      &lt;td&gt;IT Security&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Procurement&lt;/td&gt;
      &lt;td&gt;order_hardware, get_order_status, list_catalog&lt;/td&gt;
      &lt;td&gt;IT Procurement&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Digital signature&lt;/td&gt;
      &lt;td&gt;send_envelope, get_envelope_status&lt;/td&gt;
      &lt;td&gt;Legal Operations&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Document operations&lt;/td&gt;
      &lt;td&gt;extract_text, extract_tables, split, merge&lt;/td&gt;
      &lt;td&gt;Shared Services&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Collaboration&lt;/td&gt;
      &lt;td&gt;create_channel, add_member, post_message&lt;/td&gt;
      &lt;td&gt;Collaboration / M365&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Each row is a server, not a tool. The reason is ownership: when the ServiceNow team rotates credentials, they do it once in the ITSM server, and every agent continues to work.&lt;/p&gt;

&lt;p&gt;For domains that already have excellent Power Platform connectors (many of these do — ServiceNow, SAP, Workday, Dynamics 365 Field Service, DocuSign, Microsoft Graph), the decision between “use the connector directly” and “wrap it in an MCP server” comes down to reuse. If only one agent needs these tools, the connector is simpler. If three or more agents need them, an MCP server is usually the right investment.&lt;/p&gt;

&lt;h3 id=&quot;cross-cutting-concerns&quot;&gt;Cross-cutting concerns&lt;/h3&gt;

&lt;p&gt;A few principles apply to every server in the inventory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read-only versus write separation.&lt;/strong&gt; When a single server mixes read and write tools, a broader scope of credentials is required to use it. A cleaner pattern is to split — &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;itsm-read&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;itsm-write&lt;/code&gt; — and to grant the write server’s credentials only to agents that actually need them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Idempotency on every write.&lt;/strong&gt; Retries happen. Every write tool should accept an idempotency key and use it on the backend to deduplicate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structured outputs.&lt;/strong&gt; Tools should return structured data with explicit schemas. The MCP protocol supports this natively; use it. An agent parsing prose is a fragile agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tool descriptions as products.&lt;/strong&gt; The description is what the orchestrator reads to decide whether to call a tool. Treat tool descriptions like API documentation — specific, accurate, and up to date. Include: what the tool does, when to use it, what it returns, and any side effects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authentication.&lt;/strong&gt; OAuth 2.0 with Entra ID is the default for enterprise tenants. API keys are acceptable for internal network-scoped servers; the connection manager in Copilot Studio encrypts them at rest. Unauthenticated MCP endpoints should not exist in a business tenant. (Because MCP connectivity rides on Power Platform connectors, connector-level data policies also govern MCP access.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Audit and observability.&lt;/strong&gt; Every MCP server should log every call with the calling agent identity, the tool name, the inputs, the outputs, and the latency. Emit these logs to Sentinel or your SIEM of choice. Purview already captures the agent-side record.&lt;/p&gt;

&lt;h3 id=&quot;governance-at-the-tenant-level&quot;&gt;Governance at the tenant level&lt;/h3&gt;

&lt;p&gt;The Power Platform Admin Center’s &lt;strong&gt;Copilot Hub&lt;/strong&gt; and the &lt;strong&gt;agent inventory&lt;/strong&gt; (now queryable as a schema from the admin center, API, or Azure Resource Graph &lt;em&gt;(preview)&lt;/em&gt;) provide the tenant-level surface for seeing which agents use which MCP servers; &lt;strong&gt;Microsoft Agent 365&lt;/strong&gt; with the &lt;strong&gt;Entra agent registry&lt;/strong&gt; (Ignite 2025) extends that view across platforms. Combine that with:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Environment strategy.&lt;/strong&gt; Development, test, and production environments for MCP servers and their consuming agents. Pipelines promote both together.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;DLP policies.&lt;/strong&gt; Apply Data Loss Prevention policies to the connectors backing MCP servers. A write-capable MCP server is business data; treat it that way.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Entra Agent ID.&lt;/strong&gt; Each agent gets a first-class identity, and permissions are scoped per identity (auto-creatable per agent in Copilot Studio &lt;em&gt;(preview)&lt;/em&gt;). An IT triage agent does not need credentials to create employment records.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Global Secure Access for agent traffic.&lt;/strong&gt; Where available, routing agent outbound calls through Microsoft’s network security enforcement layer is worth considering for regulated tenants.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;a-starter-prioritization&quot;&gt;A starter prioritization&lt;/h3&gt;

&lt;p&gt;If an organization is beginning from zero, the order that tends to work:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Stand up one read-only domain MCP server first — usually policy or knowledge. Let agents consume it. Prove the integration pattern works.&lt;/li&gt;
  &lt;li&gt;Add one write-capable server (ITSM or HR). Impose idempotency and audit discipline from day one.&lt;/li&gt;
  &lt;li&gt;Adopt the vendor-provided servers (GitHub, Atlassian, etc.) for domains you already use.&lt;/li&gt;
  &lt;li&gt;Expand to the rest of the inventory as agent demand justifies.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Trying to build all 10 servers at once results in an inventory with no consumers. Each server should exist because a specific agent needs it.&lt;/p&gt;

&lt;h3 id=&quot;what-to-resist&quot;&gt;What to resist&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mega-servers that expose everything.&lt;/strong&gt; A single MCP server with 200 tools recreates the god-agent problem at the tool layer. Split by domain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Servers that replicate connector logic that already exists.&lt;/strong&gt; If the Power Platform connector is already good and only one agent needs it, skip the MCP wrapper. MCP is a sharing mechanism; sharing is only worth it when there is something to share.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom protocols on top of MCP.&lt;/strong&gt; If a team is tempted to add their own message shapes or non-standard tool conventions, they have probably drifted from the standard. MCP-compliant clients will not understand them, and the portability value is lost.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;7-ten-anti-patterns-that-recur-in-production&quot;&gt;7. Ten anti-patterns that recur in production&lt;/h2&gt;

&lt;p&gt;The previous sections have covered the architecture, the scenarios, and the inventory. This last section collects what does not fit neatly into any of those categories: the patterns that look reasonable on paper and fail in production, and the corresponding lessons that stick. Each anti-pattern reflects a failure mode teams report in real Copilot Studio deployments, and the corrections are the ones teams have actually applied.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-1--the-god-agent&quot;&gt;Anti-pattern 1 — The god agent&lt;/h3&gt;

&lt;p&gt;A single agent acquires, over months, fifty tools, nine knowledge sources, and an instruction block that bumps up against the 8,000-character limit and that nobody can fully read in one sitting. Orchestration quality degrades: the agent selects the wrong tools, cites the wrong documents, and occasionally rejects valid requests. The team adds more rules to the instructions to patch the symptoms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why it happens.&lt;/strong&gt; Each addition seemed small at the time. Ownership was never explicit. Nobody had the authority to say no.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Split by domain into specialists. Apply the criteria in Part 1: tool count approaching 30-40, instruction length relative to the 8,000-character ceiling, number of owners, and SLA variance. The first split is the hardest; subsequent ones are routine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; One agent, one domain, one owner. Enforce it at design review.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-2--prose-contracts-between-agents&quot;&gt;Anti-pattern 2 — Prose contracts between agents&lt;/h3&gt;

&lt;p&gt;The Orchestrator calls the Ticket Writer, which returns “I created ticket INC-12345 for you.” The Orchestrator then tries to extract the ticket ID with string matching. For six months, it works. Then someone rewrites the Ticket Writer’s output to be more conversational, and every downstream integration breaks quietly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Every called agent returns structured data. Copilot Studio supports this natively; both connected and A2A agents allow structured outputs. Make this mandatory at the design-review stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; Structured in, structured out. Prose is for users, not for agents.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-3--silent-retries&quot;&gt;Anti-pattern 3 — Silent retries&lt;/h3&gt;

&lt;p&gt;The calling agent retries a failed call after a timeout. The called agent had actually succeeded; the failure was a network blip. The result: two tickets, two emails, two meeting invitations. Over a quarter, thousands of duplicate issues accumulate, and nobody notices until the project management tool begins to degrade under the volume.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Every write-capable tool accepts an idempotency key, and the backend uses it to deduplicate. The calling agent generates a stable key per logical operation (typically based on the conversation ID and the step name) and passes it on retries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; Retries are a first-class design concern. Idempotency is not optional for writes.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-4--unscoped-credentials&quot;&gt;Anti-pattern 4 — Unscoped credentials&lt;/h3&gt;

&lt;p&gt;Every MCP server, every connector, and every agent uses the same service principal. First breach compromises everything. Rotation is impossible without downtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Entra Agent ID (introduced May 2025; expanded to public preview at Ignite 2025) gives each agent a first-class identity, and Copilot Studio can now auto-create one per agent &lt;em&gt;(preview)&lt;/em&gt;. Grant permissions per agent, scoped to exactly what that agent needs. Use managed identities where supported. Rotate credentials per connection, not per tenant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; Least privilege is a design input, not a post-deployment cleanup.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-5--no-state-store&quot;&gt;Anti-pattern 5 — No state store&lt;/h3&gt;

&lt;p&gt;A multi-step orchestration relies on conversation history to remember where it is. Conversation history truncates. The orchestration loses its place, and the Orchestrator either restarts the process (producing duplicates) or abandons it (producing incomplete work).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Persist state in Dataverse. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;OnboardingCase&lt;/code&gt; pattern from scenario four is the generalization: one row per case, columns for each step’s status, with row-change events driving the Supervisor. Every specialist writes in their own columns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; If the process outlives the conversation, so should the state.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-6--knowledge-source-overload&quot;&gt;Anti-pattern 6 — Knowledge source overload&lt;/h3&gt;

&lt;p&gt;An agent is attached to 12 SharePoint sites, 6 uploaded files, 2 website URLs, and a Graph connector. Retrieval produces irrelevant passages. Cited answers are confidently wrong. Adding more sources makes it worse, not better. (Generative orchestration also caps SharePoint knowledge at 25 site URLs per agent, which is a hard reminder that more is not better.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Scope knowledge tightly. One domain, one library. The case studies that cite retrieval quality as the winning factor — Dunaway, ABN AMRO, La Trobe University — all scoped narrowly. Where a second domain matters, that is usually a second specialist with their own knowledge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; Retrieval quality is a function of signal-to-noise, not of source count.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-7--circular-delegation&quot;&gt;Anti-pattern 7 — Circular delegation&lt;/h3&gt;

&lt;p&gt;Agent A calls Agent B, who calls Agent A, who calls Agent B. The orchestrator executes until a timeout or token exhaustion. The bill arrives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Specialists never call their parents back. If a specialist appears to need something the parent has, the parent should pass it down as an input. (Copilot Studio’s one-level nesting rule — an agent with connected agents can’t itself be a connected agent — limits but does not eliminate the risk.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; Delegation is a tree, not a graph. Trees have no cycles.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-8--conversational-autonomy&quot;&gt;Anti-pattern 8 — Conversational autonomy&lt;/h3&gt;

&lt;p&gt;An autonomous agent is built as a chatbot that also runs on a schedule. The chatbot surface and the autonomous surface have different failure modes, and the team maintains both. When a user interrupts the autonomous run through chat, the state becomes inconsistent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Autonomous agents have no chat surface. If users want visibility, build a report on top of the state store. Chat is a separate agent if it is needed at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; Autonomy is a different product shape from conversation. Do not combine them in one agent.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-9--ignoring-the-security-posture-of-inputs-and-called-agents&quot;&gt;Anti-pattern 9 — Ignoring the security posture of inputs and called agents&lt;/h3&gt;

&lt;p&gt;Two failure modes share one root cause: trusting content the agent did not author. In the first, an A2A agent from a partner is added to the tool list; six months later, a vulnerability in the partner’s agent lets its conversation context leak through its outputs. In the second — the one Microsoft assigned a CVE to — an attacker placed instructions in a SharePoint form field that an autonomous agent ingested as authoritative context. Microsoft assigned &lt;strong&gt;CVE-2026-21520&lt;/strong&gt; (CVSS 7.5) to that indirect prompt-injection issue, patched it in January 2026, and publicly disclosed it in April 2026. Notably, the injected instruction exfiltrated data through a &lt;em&gt;legitimate&lt;/em&gt; Outlook action, so DLP never fired. Both cases prove the same point: every input an agent trusts — a partner agent’s output, a form field, a retrieved document — expands the attack surface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Treat external agents as supply chain dependencies: review their security posture, scope their access narrowly, log their calls, and rotate credentials. Treat trigger and retrieval inputs as untrusted: validate payloads, and never let free-text content override the agent’s instructions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; Defense-in-depth is necessary; agent composition is not safe by default. The LLM cannot reliably tell trusted instructions from untrusted data — so the boundary has to be enforced around it.&lt;/p&gt;

&lt;h3 id=&quot;anti-pattern-10--measuring-the-wrong-thing&quot;&gt;Anti-pattern 10 — Measuring the wrong thing&lt;/h3&gt;

&lt;p&gt;A team reports “the agent answered 10,000 questions this month.” That is a count, not an outcome. The team does not know how many answers were correct, how many resolved the user’s underlying need, or how many caused follow-up work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correction.&lt;/strong&gt; Measure outcomes: auto-resolution rate, user confirmation of correctness, downstream ticket creation, time-to-resolution. Copilot Studio’s analytics surface, combined with data in the relevant business systems, supports these measurements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson.&lt;/strong&gt; Volume is not value.&lt;/p&gt;

&lt;h3 id=&quot;recommendations-that-follow&quot;&gt;Recommendations that follow&lt;/h3&gt;

&lt;p&gt;Pulling the corrections together:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Architecture.&lt;/strong&gt; One agent per domain. Separate read from write. Tree, not graph.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Contracts.&lt;/strong&gt; Structured inputs and outputs. Explicit error contracts. Idempotency keys on writes.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Security.&lt;/strong&gt; Scoped credentials. Entra Agent ID per agent. Validate untrusted inputs. Audit everything. Review external agents like you review external vendors.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Operations.&lt;/strong&gt; State in Dataverse. Outcome metrics, not volume metrics. Ownership per agent, reviewed quarterly.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Standards.&lt;/strong&gt; MCP for tools. A2A for agents across platforms (GA since April 2026). Connected agents for Copilot Studio–native specialists. Child agents for subroutines inside a parent.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;8-what-copilot-studio-gives-you-today-one-more-time&quot;&gt;8. What Copilot Studio gives you today, one more time&lt;/h2&gt;

&lt;p&gt;Every capability used across Parts 1 and 2 of this series is available now, with preview status noted where it applies:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Generative orchestration with tool selection.&lt;/li&gt;
  &lt;li&gt;Child, connected, and A2A agents (A2A generally available since April 2026; connections to Microsoft Foundry, Fabric, and M365 Agents SDK agents in public preview).&lt;/li&gt;
  &lt;li&gt;MCP server integration with Streamable transport (SSE no longer supported after August 2025).&lt;/li&gt;
  &lt;li&gt;Autonomous agents with documented Dataverse, SharePoint, OneDrive, Planner, and Recurrence triggers; an HTTP request trigger and cloud flows extend the catalog where a native trigger does not yet exist.&lt;/li&gt;
  &lt;li&gt;Agent flows with parallel branches and approval gates — and a redesigned Workflows experience in early release, with agent nodes and asynchronous responses &lt;em&gt;(preview)&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;Computer Use (computer-using agents), generally available since May 2026.&lt;/li&gt;
  &lt;li&gt;Dataverse as a governed state store.&lt;/li&gt;
  &lt;li&gt;Entra Agent ID (per-agent auto-creation in preview), Copilot Hub, the agent inventory schema &lt;em&gt;(preview)&lt;/em&gt;, Microsoft Agent 365, and the Copilot Control System for governance.&lt;/li&gt;
  &lt;li&gt;Purview audit across agent activity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing in this series required features that do not exist. The gap between “possible today” and “in production somewhere” is smaller than the marketing noise suggests. The gap between “possible” and “in production well” is larger — and the anti-patterns above are the ones that close it.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;If you take five things away from this article, they are these.&lt;/p&gt;

&lt;p&gt;First, &lt;strong&gt;the four patterns are not abstractions; they have concrete shapes you can copy&lt;/strong&gt;. Router-worker is the IT triage scenario: classification, delegation, structured returns. Parallel fan-out is the contract review scenario: independent specialists with scoped knowledge, merged outputs. Router-worker with an autonomous trigger is the field service scenario: a clean event, a bounded decision tree, no human in the loop. Hierarchical with persistent state is the employee onboarding scenario: a supervisor that reads from a Dataverse table, specialists that update their own columns, and SLA monitoring that escalates when work is stuck.&lt;/p&gt;

&lt;p&gt;Second, &lt;strong&gt;state is the architecture for anything long-running&lt;/strong&gt;. Dataverse is the right place for it. Conversation history is not. Every hierarchical and event-driven design in this article depends on a state table whose columns are the contract between the agents. Model it carelessly, and the whole system is fragile; model it well, and the supervisor becomes trivial.&lt;/p&gt;

&lt;p&gt;Third, &lt;strong&gt;MCP is a platform decision, not an agent decision&lt;/strong&gt;. The inventory in section 6 is a starting point because the question of which server owns which domain must be answered once by the platform team, with the consuming agents in mind. Mega-servers and one-off wrappers both recreate the problems MCP exists to solve. Domain ownership and read/write separation are the load-bearing rules.&lt;/p&gt;

&lt;p&gt;Fourth, &lt;strong&gt;the ten anti-patterns are observations, not predictions&lt;/strong&gt;. Each reflects a failure mode teams hit in shipping deployments. The god agent, prose contracts, silent retries, unscoped credentials, no state store, knowledge overload, circular delegation, conversational autonomy, ignored security posture, and measuring volume instead of outcomes — these are the failure modes a design review should explicitly check for.&lt;/p&gt;

&lt;p&gt;Fifth, &lt;strong&gt;the measure of a multi-agent system is not how clever any single agent is — it is how boring each agent can become&lt;/strong&gt;. Boring agents — narrow, owned, tested, well-described — compose into systems that deliver outcomes reliably. The four scenarios above each succeed because their specialists do one thing, do it well, and stop. The inventory and the anti-patterns exist to keep them that way.&lt;/p&gt;

&lt;p&gt;Multi-agent orchestration is not a novelty. It is the shape enterprise AI takes when it grows beyond a single use case. Copilot Studio is one of the platforms where that shape is now routine to build, with two open standards (MCP and A2A) that keep it composable and a governance surface that keeps it safe to operate. Part 1 settled the architectural decisions; Part 2 worked through what they look like when executed. The rest is the discipline of doing it well — and that, as it turns out, is the part that takes practice.&lt;/p&gt;

&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/multi-agent-patterns&quot;&gt;Explore multi-agent orchestration patterns&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-add-other-agents&quot;&gt;Add other agents (overview)&lt;/a&gt; — child vs connected agents; preview status of Foundry/Fabric/M365 Agents SDK connections&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-quotas&quot;&gt;Quotas and limits&lt;/a&gt; — 8,000-character instruction limit; 25 SharePoint sites under generative orchestration&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/autonomous-agents&quot;&gt;Design autonomous agent capabilities&lt;/a&gt; — autonomous agents GA, March 2025&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-triggers-about&quot;&gt;Event trigger overview&lt;/a&gt; — documented event triggers (SharePoint, OneDrive, Planner, Recurrence, Dataverse row-change)&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/whats-new&quot;&gt;What’s new in Copilot Studio&lt;/a&gt; — A2A GA (April 2026), Computer Use GA (May 2026), new Workflows experience, async agent-flow responses (preview), per-agent Entra identities (preview), agent inventory schema (preview)&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-existing-server-to-agent&quot;&gt;Connect your agent to an existing Model Context Protocol (MCP) server&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/add-agent-agent-to-agent&quot;&gt;Connect an agent available over the Agent2Agent (A2A) protocol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/adoption-case-studies&quot;&gt;Copilot Studio real-world transformation stories&lt;/a&gt; — T-Mobile, Nexi Group, A1 Inteligência em Viagens, Dunaway, Signetic, Holland America Line, Singapore Civil Defence Force, La Trobe University, ABN AMRO, Rabobank&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/connectors/service-now/&quot;&gt;ServiceNow connector reference&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/connectors/connector-reference/&quot;&gt;Power Platform connectors reference&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/copilot/copilot-hub&quot;&gt;Copilot Hub in the Power Platform Admin Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-365/copilot/copilot-control-system/overview&quot;&gt;Copilot Control System overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft CopilotStudioSamples — &lt;a href=&quot;https://microsoft.github.io/mcscatblog/posts/dynamic-mcp-routing-copilot-studio/&quot;&gt;Dynamic MCP Routing in Copilot Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Model Context Protocol — &lt;a href=&quot;https://modelcontextprotocol.io/&quot;&gt;Official specification and SDKs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Agent2Agent protocol — &lt;a href=&quot;https://a2aproject.github.io/A2A/&quot;&gt;Open specification&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;VentureBeat — &lt;a href=&quot;https://venturebeat.com/security/microsoft-salesforce-copilot-agentforce-prompt-injection-cve-agent-remediation-playbook&quot;&gt;Microsoft patched a Copilot Studio prompt injection. The data exfiltrated anyway.&lt;/a&gt; — CVE-2026-21520 (CVSS 7.5, “ShareLeak”), patched January 2026, disclosed April 2026&lt;/li&gt;
  &lt;li&gt;Pragmatiq — &lt;a href=&quot;https://www.pragmatiq.co.uk/12-practical-use-cases-for-microsoft-copilot-studio/&quot;&gt;12 Practical Use Cases for Microsoft Copilot Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Holger Imbery — &lt;a href=&quot;https://holgerimbery.blog/multi-agent-orchestration&quot;&gt;Copilot Studio Multi-Agent Orchestration (original 14-part series)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Sat, 11 Jul 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/copilot-studio-orchestration-part2</link>
                <guid isPermaLink="true">https://holgerimbery.blog/copilot-studio-orchestration-part2</guid>
                
                <category>a2a</category>
                
                <category>agents</category>
                
                <category>anti-patterns</category>
                
                <category>copilotstudio</category>
                
                <category>multiagent</category>
                
                <category>orchestration</category>
                
                <category>scenarios</category>
                
                
            </item>
        
            <item>
                <title>Multi-Agent Orchestration with Copilot Studio — Part 1: Foundations</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary lede.&lt;/strong&gt; This is the first of three articles on multi-agent orchestration in Microsoft Copilot Studio. Part 1 — Foundations — establishes the vocabulary, the decision criteria, and the configuration mechanics that every team needs before it touches a production design. It walks through five questions in order: why split a single agent into several, what a Copilot Studio agent is actually composed of, which orchestration patterns exist, how the Model Context Protocol (MCP) lets agents share tools, and how the Agent2Agent (A2A) protocol lets agents talk to other agents across platforms. The article closes with the concrete configuration steps for both standards as they exist in the product today, with the correct UI paths.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;About this series.&lt;/strong&gt; This is Part 1 of three. &lt;strong&gt;Part 1 — Foundations&lt;/strong&gt; (this article) covers the vocabulary, when to split a single agent, the five configuration surfaces, the four orchestration patterns, and how MCP and A2A are configured. &lt;strong&gt;Part 2 — In Practice&lt;/strong&gt; turns those decisions into four end-to-end scenarios, a starter MCP server inventory, and ten production anti-patterns. Parts 1 and 2 describe the &lt;strong&gt;released, generally available feature set&lt;/strong&gt; — the “classic” Copilot Studio experience, built on &lt;strong&gt;generative orchestration&lt;/strong&gt;, which is GA and fully supported. &lt;strong&gt;Part 3 — The Build 2026 Rebuild&lt;/strong&gt; describes the new four-surface model (Skills, Memory, a new orchestrator); those features are &lt;strong&gt;in public preview and subject to change&lt;/strong&gt; before general availability, so treat Part 3 as forward-looking and re-check status before relying on it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every capability described in this article — connected agents, child agents, MCP integration with Streamable transport, A2A integration, autonomous triggers, Entra Agent ID, Copilot Hub, the Microsoft Foundry Agent Service — is documented on Microsoft Learn and is either generally available or in public preview, with the status called out where it matters. Three of the connected-agent types (Microsoft Foundry agents, Fabric Data agents, and agents built with the Microsoft 365 Agents SDK) are &lt;strong&gt;public preview&lt;/strong&gt; at the time of writing; connected Copilot Studio agents, MCP, and A2A are generally available. Where a feature is preview, this article says so.&lt;/p&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Capability status at publication&lt;/strong&gt;
Copilot Studio moves quickly, so the architecture below is anchored to current capability status. As of publication: &lt;strong&gt;A2A connections are generally available&lt;/strong&gt;; &lt;strong&gt;Computer Use (computer-using agents) is generally available&lt;/strong&gt;, with embedding into workflows in preview; a &lt;strong&gt;redesigned Workflows experience&lt;/strong&gt; is in early release; &lt;strong&gt;per-agent Microsoft Entra agent identities&lt;/strong&gt; can be auto-created (preview); and an &lt;strong&gt;agent inventory schema&lt;/strong&gt; (preview) exposes every agent to the admin center, API, and Azure Resource Graph. These capabilities support the architecture in this article — they are noted inline where relevant.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Why read this&lt;/strong&gt;
Read this if you are responsible for the shape of an AI build that has either started to misbehave or is about to. The single-agent-with-everything pattern looks fine for the first quarter of a project and fails predictably in the second. The terms in this article are the ones a solution architect, platform owner, or senior maker needs to discuss the failure with the team and pick a better shape. Read it if you have heard “we will just add another tool” three times in the same week, if your instruction block now scrolls, or if two different teams are editing the same agent without coordinating. Read it especially if a vendor or an article elsewhere has promised that MCP or A2A will “solve” multi-agent work — they will not, but they do remove enough integration duplication that the architectural decisions become the bottleneck again, which is where this article picks up.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Foundations article is also where the corrections from the original series are applied: the correct UI path for adding A2A agents (the Agents page, not the Tools page), the current name and preview status of the connected-agent types, and the actual list of autonomous trigger types supported on Microsoft Learn. If you have been following the series and want the canonical version, this is it.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-the-drift-that-produces-multi-agent-work&quot;&gt;1. The drift that produces multi-agent work&lt;/h2&gt;

&lt;p&gt;Most enterprise AI projects start with a single agent and end with a support ticket. The agent grows, picks up more tools, more instructions, more knowledge sources, and eventually starts choosing the wrong action, citing the wrong document, or refusing perfectly valid requests. Teams add prompt fragments to patch individual failures, the instruction block runs up against Copilot Studio’s documented &lt;strong&gt;8,000-character limit&lt;/strong&gt; for agent instructions, and nobody on the team can say with confidence why a specific response came out the way it did.&lt;/p&gt;

&lt;p&gt;Multi-agent orchestration is the architectural response to that drift. Instead of one general-purpose agent, the work is split across a small set of narrow agents, each with a clear scope, its own knowledge, and its own tools. An orchestrator chooses which specialist to call. This pattern is not new in distributed systems, but the tooling to apply it cleanly to conversational AI is new — and Microsoft Copilot Studio now provides it as a first-class capability.&lt;/p&gt;

&lt;p&gt;Five capabilities make multi-agent orchestration practical in Copilot Studio today:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Connected agents&lt;/strong&gt; — a separately published agent added to another agent as a callable capability. This can be another Copilot Studio agent in the same environment (generally available), or an external agent: an agent on the Microsoft Foundry Agent Service &lt;em&gt;(preview)&lt;/em&gt;, a Fabric Data Agent &lt;em&gt;(preview)&lt;/em&gt;, an agent built with the Microsoft 365 Agents SDK &lt;em&gt;(preview)&lt;/em&gt;, or any agent that speaks the A2A protocol. Each connected agent has its own lifecycle, authentication, owner, and can be reused across multiple calling agents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Child agents&lt;/strong&gt; — lightweight sub-agents that live inside a parent agent and share its environment, tools, and knowledge. They are not independently published and are not intended for reuse outside the parent. (Earlier drafts of this series called these “inline agents”; Microsoft’s term is &lt;strong&gt;child agents&lt;/strong&gt;, and that is what this article uses.)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;MCP integration&lt;/strong&gt; — since 2025, Copilot Studio exposes a “Tools → Add a tool → New tool → Model Context Protocol” flow that takes a server URL, authentication settings, and automatically discovers the tools the server publishes.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;A2A protocol support&lt;/strong&gt; — Copilot Studio can connect to any agent that speaks the open Agent2Agent protocol, enabling orchestration with agents hosted on other frameworks. A2A connections went generally available in April 2026.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Autonomous agents&lt;/strong&gt; — event-triggered agents that act without a user turn, generally available since March 2025.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These capabilities are documented, configurable, and in production use at organizations including ABN AMRO, Rabobank, Holland America Line, T-Mobile, the City of Montréal, La Trobe University, Nexi Group, and Singapore Civil Defence Force.&lt;/p&gt;

&lt;h2 id=&quot;2-when-to-split-a-single-agent&quot;&gt;2. When to split a single agent&lt;/h2&gt;

&lt;p&gt;The question is not whether multi-agent systems are better. The question is at what point a single agent stops being the right shape for the work.&lt;/p&gt;

&lt;p&gt;Copilot Studio gives makers a lot of room before that point is reached. A single agent can hold a substantial instruction block (up to the 8,000-character limit), hundreds of knowledge sources, and a growing list of actions. For many use cases — an FAQ bot over a policy library, a contained IT assistant with five connectors — one agent is the correct answer and will stay the correct answer for the life of the deployment.&lt;/p&gt;

&lt;p&gt;The problems begin when the agent’s scope expands informally. A new department asks if the existing agent can “also” handle their intake. A manager attaches another SharePoint site “for context.” An action is added because it was convenient. Each change is small; the cumulative effect is an agent with blurred responsibilities, inconsistent tone, and orchestration quality that degrades in ways that are hard to diagnose.&lt;/p&gt;

&lt;h3 id=&quot;signals-an-agent-has-outgrown-itself&quot;&gt;Signals an agent has outgrown itself&lt;/h3&gt;

&lt;p&gt;Microsoft’s guidance on multi-agent orchestration is explicit about the thresholds where quality starts to slip. The clearest signal is &lt;strong&gt;tool count&lt;/strong&gt;. The orchestrator ranks candidate tools at each turn; as the list grows, the probability of selecting the right one falls. Microsoft Learn’s &lt;em&gt;Add other agents overview&lt;/em&gt; states this directly: “this degradation in performance can happen when your main agent has more than 30-40 choices of action (tools, topics, and other agents).” Other signals are softer but equally real:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The instruction block contains rules that contradict each other because different requirements were bolted on over time.&lt;/li&gt;
  &lt;li&gt;Knowledge sources cover unrelated domains, and retrieval surfaces HR articles to IT questions.&lt;/li&gt;
  &lt;li&gt;Response latency varies wildly because one path calls a millisecond lookup and another generates a multi-page report.&lt;/li&gt;
  &lt;li&gt;Multiple owners now edit the same agent, each with different mental models.&lt;/li&gt;
  &lt;li&gt;Testing one change risks regressing a behavior owned by a different team.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When three or more of these are true, the agent is doing the work of what should be multiple agents.&lt;/p&gt;

&lt;h3 id=&quot;what-splitting-actually-buys-you&quot;&gt;What splitting actually buys you&lt;/h3&gt;

&lt;p&gt;Decomposing an agent is not free. It introduces a second artifact to maintain, an orchestration layer, and a contract between components. The benefits must be worth that cost, and they usually are in three ways.&lt;/p&gt;

&lt;p&gt;First, &lt;strong&gt;bounded context&lt;/strong&gt;. Each specialist agent can have a short instruction block, a small number of tools, and a knowledge base scoped to one domain. The orchestrator’s job is routing, not execution. Testing becomes possible because each agent has a well-defined input and output.&lt;/p&gt;

&lt;p&gt;Second, &lt;strong&gt;independent ownership&lt;/strong&gt;. HR owns the HR agent; IT owns the IT agent; Finance owns the invoice agent. When HR needs to change the parental-leave policy, they update one knowledge source and one agent, with no risk to the IT triage behavior.&lt;/p&gt;

&lt;p&gt;Third, &lt;strong&gt;reuse&lt;/strong&gt;. A connected “Knowledge Base Lookup” agent can serve the Service Desk, the Sales Assistant, and the Field Technician agent without three teams each rebuilding the same tool integrations, prompts, and error handling.&lt;/p&gt;

&lt;h3 id=&quot;a-decision-checklist&quot;&gt;A decision checklist&lt;/h3&gt;

&lt;p&gt;A practical rule for deciding whether to split:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Split when&lt;/strong&gt; the agent has multiple distinct owners, or the tool count is approaching 30, or two knowledge bases are pulling retrieval in conflicting directions, or SLA expectations differ between tasks.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Do not split when&lt;/strong&gt; the problem is really that one knowledge source is outdated, or when the instructions simply need rewriting, or when the “additional” use case is a one-off topic that belongs in a Power Automate flow rather than a new agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cheapest intervention should always be tried first. A clean-up of instructions, a re-scoping of knowledge sources, or moving an over-loaded action into a Power Automate agent flow will often resolve what looked like a multi-agent problem.&lt;/p&gt;

&lt;h3 id=&quot;child-or-connected-a-second-decision&quot;&gt;Child or connected: a second decision&lt;/h3&gt;

&lt;p&gt;Once the decision to split is made, Copilot Studio offers two options, and they serve different purposes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Child agents&lt;/strong&gt; are the right choice when the sub-agent exists only to factor complexity inside one parent. They share the parent’s environment, tools, and authentication. They are a first-class sub-agent type — you create them, give them their own instructions, and can define input and output variables — but they do not need to be reused, do not need to be independently owned, and simply make the parent easier to reason about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connected agents&lt;/strong&gt; are the right choice when the specialist is an independent unit: it has its own owner, its own release cadence, its own authentication model, its own model selection, or it will be called from more than one calling agent. Connected agents can be other Copilot Studio agents, Fabric Data Agents for governed analytics &lt;em&gt;(preview)&lt;/em&gt;, agents on the Microsoft Foundry Agent Service &lt;em&gt;(preview)&lt;/em&gt;, or agents built with the Microsoft 365 Agents SDK &lt;em&gt;(preview)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The two are grounded in Microsoft’s own guidance. The table below summarizes the trade-offs that matter most — control, context, latency, and reuse.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Dimension&lt;/th&gt;
      &lt;th&gt;&lt;strong&gt;Child agent&lt;/strong&gt;&lt;/th&gt;
      &lt;th&gt;&lt;strong&gt;Connected agent&lt;/strong&gt;&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;What it is&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A lightweight sub-agent &lt;strong&gt;inside&lt;/strong&gt; the parent agent&lt;/td&gt;
      &lt;td&gt;A &lt;strong&gt;separately published&lt;/strong&gt; agent — another Copilot Studio agent, or an external agent over A2A, Microsoft Foundry &lt;em&gt;(preview)&lt;/em&gt;, Fabric &lt;em&gt;(preview)&lt;/em&gt;, or the M365 Agents SDK &lt;em&gt;(preview)&lt;/em&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Context / orchestration&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Shares the &lt;strong&gt;parent’s&lt;/strong&gt; environment, authentication, and orchestration context&lt;/td&gt;
      &lt;td&gt;Runs its &lt;strong&gt;own orchestration layer&lt;/strong&gt; — its own reasoning pass over its own tools and knowledge. The parent hands off; the connected agent decides independently&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Context window&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Logic lives inside the parent’s boundary; use child agents to &lt;strong&gt;split a long instruction set into focused pieces&lt;/strong&gt; under the 8,000-character ceiling&lt;/td&gt;
      &lt;td&gt;Each connected agent carries its &lt;strong&gt;own&lt;/strong&gt; instructions, knowledge, tools — and can use a &lt;strong&gt;different model&lt;/strong&gt; — so it has its own context budget and strong isolation&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Control&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Tight coupling; the parent owns config, auth, and lifecycle. Supports &lt;strong&gt;input/output variables&lt;/strong&gt; and can be referenced in instructions with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;Loose coupling; the connected agent owns its settings, model, ALM, and channels. You steer delegation only through its &lt;strong&gt;description and input contract&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Latency&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Lower — no extra orchestration hop&lt;/td&gt;
      &lt;td&gt;Higher — each delegation adds an &lt;strong&gt;orchestration hop&lt;/strong&gt; (Microsoft explicitly flags the added latency)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Reuse&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Not reusable outside the parent; not independently published&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Reusable&lt;/strong&gt; across many parents; independently published and owned&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Governance surface&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Minimal extra surface&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Larger&lt;/strong&gt; testing, management, and governance surface; each connection is an inventoried dependency&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Use when&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Single use case, one team or developer, you just want to group tools/instructions/knowledge cleanly, no separate auth/deploy/reuse&lt;/td&gt;
      &lt;td&gt;Multiple teams own different agents, separate publishing/ALM, dedicated settings such as a different model, or you want the agent reusable across more than one parent&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Remove via&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;“Delete”&lt;/td&gt;
      &lt;td&gt;“Disconnect agent”&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Two caveats from the documentation are worth keeping in mind. First, an agent that already has connected agents cannot itself be added as a connected agent — nesting is one level deep. Second, citations are not always preserved when outputs pass back from a called agent to the caller, which is one more reason to prefer structured returns over prose (a theme that recurs throughout Part 2).&lt;/p&gt;

&lt;p&gt;ABN AMRO’s published Copilot Studio work is consistent with this discipline: the case study describes enhancing customer and employee interactions using Copilot Studio together with Azure services. The architectural lesson to import — bounded agents plus governed data access — is the kind of pattern that makes outcomes reproducible across customer and employee scenarios, even though the case study reports the outcome rather than the internal decomposition. The City of Montréal’s citizen-engagement work points the same way: Copilot Studio used to improve information access and citizen engagement, the kind of scenario where a public-facing agent benefits from delegating to a specialist rather than holding every city process inside one prompt.&lt;/p&gt;

&lt;h2 id=&quot;3-agent-anatomy-the-five-configuration-surfaces&quot;&gt;3. Agent anatomy: the five configuration surfaces&lt;/h2&gt;

&lt;p&gt;Before multi-agent work begins, it helps to be precise about what a single Copilot Studio agent actually contains. Makers who started with Power Virtual Agents sometimes carry forward a mental model built around topics and dialogs; makers who came from Azure OpenAI Studio sometimes carry forward a mental model built around system prompts and function calls. A modern Copilot Studio agent is neither of those alone. It is a composition of five distinct surfaces, each with different runtime behavior and different design trade-offs.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Instructions&lt;/strong&gt; — the natural-language description of the agent’s role, constraints, tone, and output preferences. Instructions are injected into every turn, up to a documented limit of 8,000 characters.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Knowledge&lt;/strong&gt; — the structured and unstructured data the agent can retrieve from, including SharePoint sites, Dataverse tables, uploaded files, public websites, Microsoft 365 Graph connectors, enterprise search sources, and — newly — the Work IQ service &lt;em&gt;(preview)&lt;/em&gt; for real-time Microsoft 365 work context.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tools&lt;/strong&gt; — the executable capabilities the agent can invoke: connector actions, Power Automate flows, Dataverse actions, MCP-exposed tools, and other agents (child or connected) used as tools.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Topics&lt;/strong&gt; — deterministic, authored conversation paths triggered by phrases, events, or redirections from other topics. Topics are where you place behavior that must be reproducible.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Triggers&lt;/strong&gt; — what causes the agent to run at all. Beyond user messages, Copilot Studio’s documented event triggers include SharePoint, OneDrive, Planner, Recurrence (schedule), and Dataverse row-change triggers; an HTTP request trigger and Power Automate cloud flows can extend the catalog where a native trigger does not yet exist.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;instructions-judgment-based-behavior&quot;&gt;Instructions: judgment-based behavior&lt;/h3&gt;

&lt;p&gt;Instructions are the place for behavior that depends on context and cannot be fully specified in advance. Good instructions describe the agent’s purpose, its refusal rules, its preferred output format, and any constraints it must honor. They should not contain large tables of if-this-then-that logic; that is what topics are for.&lt;/p&gt;

&lt;p&gt;A healthy instruction block is rarely more than a page, and Copilot Studio enforces an 8,000-character ceiling regardless. Once instructions grow toward that limit, two things happen: the probability that the agent follows any individual rule drops, and the cost per turn rises. Copilot Studio’s generative orchestration picks up the instructions automatically; no separate system prompt editing is required. When a single instruction block genuinely needs more structure, splitting focused pieces into child agents (each referenced from the parent’s instructions with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/&lt;/code&gt;) is the documented way to stay under the ceiling.&lt;/p&gt;

&lt;h3 id=&quot;knowledge-scoped-retrieval-beats-wide-retrieval&quot;&gt;Knowledge: scoped retrieval beats wide retrieval&lt;/h3&gt;

&lt;p&gt;Copilot Studio supports a long list of knowledge sources. The mistake that repeats in production is attaching too many. Retrieval quality on a tightly scoped SharePoint library is almost always better than retrieval across an entire tenant, because the signal-to-noise ratio is higher and ranking works against fewer near-duplicates.&lt;/p&gt;

&lt;p&gt;A documented example is Dunaway, a firm whose Copilot Studio agent answers city-code questions. The published case study is explicit that they scoped knowledge to the specific regulatory libraries that mattered, rather than pointing the agent at every document the firm could access. The outcome — fast, accurate regulatory answers — depended on that scoping.&lt;/p&gt;

&lt;p&gt;Graph connectors are the right choice when the source is not already in SharePoint or Dataverse. Websites work, but are best reserved for public reference material where currency matters more than precision. Uploaded files are fine for stable documents but awkward for anything that changes; preferable to store those in SharePoint and let the agent retrieve them from there.&lt;/p&gt;

&lt;h3 id=&quot;tools-the-surface-that-most-affects-orchestration-quality&quot;&gt;Tools: the surface that most affects orchestration quality&lt;/h3&gt;

&lt;p&gt;Every tool you add to an agent is a candidate the orchestrator must consider at every turn. Tools fall into several categories in Copilot Studio today:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Prebuilt connector actions&lt;/strong&gt; — from Microsoft’s catalog of 1,000+ connectors, including Microsoft 365 services and major SaaS platforms.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Power Automate cloud flows&lt;/strong&gt; — any existing flow can be promoted to a tool, which keeps complex orchestration logic out of the agent.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Agent flows&lt;/strong&gt; — a visual, AI-assisted workflow designer that blends deterministic steps with generative reasoning, triggered by Dataverse events, schedules, or HTTP calls. (A redesigned Workflows experience, in early release, is the evolution of this surface — see the “What’s new” note above.)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;MCP tools&lt;/strong&gt; — tools exposed by an MCP server, discovered automatically once the server is connected.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Other agents as tools&lt;/strong&gt; — child or connected agents added to the agent’s list of callable specialists.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The practical guidance is to treat tool descriptions as first-class design artifacts. The orchestrator selects tools largely from their descriptions; a vague description produces vague routing. A one-sentence description that explains &lt;em&gt;when to use this tool, what it returns, and any side effects&lt;/em&gt; is worth more than a long paragraph that describes the implementation.&lt;/p&gt;

&lt;h3 id=&quot;topics-the-place-for-reproducibility&quot;&gt;Topics: the place for reproducibility&lt;/h3&gt;

&lt;p&gt;Topics are the most under-used surface in modern Copilot Studio builds. Makers arriving from the LLM side sometimes treat everything as an instruction, and then are surprised when behavior they need to be deterministic — an escalation path, a compliance disclosure, a specific regulatory script — varies between conversations.&lt;/p&gt;

&lt;p&gt;Topics execute as authored. They can include message nodes, condition nodes, generative AI nodes, and action calls. If a behavior must be reproducible for audit or compliance reasons, put it in a topic. Rabobank’s published conversational banking work — text and voice-enabled conversational AI in a regulated banking context — is the kind of scenario where authored flows for regulated interactions sit alongside generative handling of the softer surrounding conversation.&lt;/p&gt;

&lt;h3 id=&quot;triggers-what-makes-an-agent-autonomous&quot;&gt;Triggers: what makes an agent autonomous&lt;/h3&gt;

&lt;p&gt;The default trigger is a user message. Since March 2025, Copilot Studio supports autonomous triggers — an agent can be woken by a Dataverse row change, a SharePoint document event, a OneDrive event, a Planner change, a scheduled (Recurrence) trigger, or an HTTP call. Where a native trigger does not exist for the desired source, a Power Automate cloud flow that subscribes to that source can write into Dataverse and let the Dataverse row-change trigger wake the agent. These triggers are what make “autonomous agents” possible: the agent is still described by the same five surfaces, but it does not need a user to start it.&lt;/p&gt;

&lt;p&gt;A security note that Part 2 develops further: event triggers run with the agent maker’s credentials, and trigger payloads can carry untrusted content into the agent’s context. This is exactly the surface that CVE-2026-21520 (a SharePoint-form indirect prompt-injection issue patched in January 2026) exploited. Validate payloads and scope what a trigger can activate.&lt;/p&gt;

&lt;p&gt;Singapore Civil Defence Force’s published case study includes autonomous processes that run without user interaction. The savings reported in that case study — described as multi-million-dollar — come from that automation running continuously against existing business events, not from a human chatting with a bot.&lt;/p&gt;

&lt;h3 id=&quot;how-these-surfaces-interact-in-a-multi-agent-system&quot;&gt;How these surfaces interact in a multi-agent system&lt;/h3&gt;

&lt;p&gt;When you split an agent, you are really deciding how each surface gets redistributed:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Instructions&lt;/strong&gt; shrink, because each specialist has a narrower role.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Knowledge&lt;/strong&gt; separates by domain, so retrieval becomes sharper.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tools&lt;/strong&gt; concentrate in the specialists; the orchestrator holds few direct tools beyond the ability to call its agents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Topics&lt;/strong&gt; tend to live in specialists, where reproducibility matters for specific business flows.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Triggers&lt;/strong&gt; vary: the orchestrator is typically user-triggered, while specialists are often called-only; autonomous triggers live on individual specialists.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;4-the-four-orchestration-patterns&quot;&gt;4. The four orchestration patterns&lt;/h2&gt;

&lt;p&gt;With the building blocks clear, the next question is how to arrange them. There are four patterns that cover the vast majority of enterprise multi-agent work, and all four can be implemented today in Copilot Studio using generative orchestration together with connected agents, child agents, and agent flows.&lt;/p&gt;

&lt;h3 id=&quot;pattern-1--router-worker&quot;&gt;Pattern 1 — Router-worker&lt;/h3&gt;

&lt;p&gt;A thin parent agent classifies each incoming request and delegates to a specialist. The parent does almost no execution itself; its job is routing. The specialists do the work and return results. The parent optionally reformulates the response into the conversational style the user expects.&lt;/p&gt;

&lt;p&gt;Router-worker is the default pattern for internal service desks, multi-tenant assistants, and any situation where requests fall into a small, stable set of categories. The strength of this pattern is operational: each specialist is small enough to debug, and changes to one specialist do not risk regressing the others.&lt;/p&gt;

&lt;p&gt;In Copilot Studio, the router is a standard agent with connected agents added on the Agents page. The orchestrator’s built-in tool selection handles the routing, provided each connected agent has a clear, narrow description. No custom code is required.&lt;/p&gt;

&lt;p&gt;Nexi Group’s published case study describes exactly this shape: a front-end agent that delegates card-service queries to specialists, reducing contact-center workload while keeping the interaction consistent for the customer.&lt;/p&gt;

&lt;h3 id=&quot;pattern-2--sequential-pipeline&quot;&gt;Pattern 2 — Sequential pipeline&lt;/h3&gt;

&lt;p&gt;Agent A’s output becomes Agent B’s input, which becomes Agent C’s input, and so on. Each stage applies a transformation that depends on the previous one.&lt;/p&gt;

&lt;p&gt;Sequential pipelines are the natural shape for review workflows: intake → analysis → recommendation → approval. They are also common in content-generation workflows, where one agent drafts, another edits, and a third formats.&lt;/p&gt;

&lt;p&gt;In Copilot Studio, sequential pipelines are typically built with agent flows, because agent flows give you explicit control over step order, conditional branching, and error handling. Individual steps can call connected agents, generative prompts, or deterministic actions. Agent flows also support human-in-the-loop approvals, which sequential pipelines frequently need at the decision point.&lt;/p&gt;

&lt;p&gt;Sequential work is where the discipline of structured outputs matters most. If step three has to parse prose from step two, the pipeline breaks quietly the first time the phrasing changes. Each step should return a structured object — JSON or a typed record — rather than a narrative.&lt;/p&gt;

&lt;h3 id=&quot;pattern-3--parallel-fan-out--fan-in&quot;&gt;Pattern 3 — Parallel fan-out / fan-in&lt;/h3&gt;

&lt;p&gt;The parent calls N specialists concurrently, waits for all of them, and then merges the results. This pattern is used when a single request needs enrichment from several independent sources, none of which depends on another.&lt;/p&gt;

&lt;p&gt;Typical enterprise examples: enriching a customer record by calling a CRM lookup, an ERP balance check, and a support history lookup at the same time; running legal, finance, and risk review of a contract in parallel; pulling inventory, shipping, and pricing in parallel for a quoting workflow.&lt;/p&gt;

&lt;p&gt;Agent flows in Copilot Studio support parallel branches explicitly. For cases where the parallelism is between full agents rather than actions, Power Automate remains a direct alternative: each branch calls an agent, and a final step aggregates the results. The parent agent then presents the merged output.&lt;/p&gt;

&lt;p&gt;The complexity to watch for is timeout and partial-failure behavior. Parallel patterns fail well only if you decide, before the first implementation, what happens when one of the N branches times out or errors. “Return what we have and note what is missing” is a more robust default than “fail the whole request.”&lt;/p&gt;

&lt;h3 id=&quot;pattern-4--hierarchical-supervisor--sub-orchestrators&quot;&gt;Pattern 4 — Hierarchical (supervisor / sub-orchestrators)&lt;/h3&gt;

&lt;p&gt;A supervisor agent decomposes a goal into subgoals and delegates each to a sub-orchestrator, which in turn delegates to its own specialists. This pattern is used for long-running processes that span departments, such as employee onboarding, incident post-mortems, or multi-step audits.&lt;/p&gt;

&lt;p&gt;The supervisor tracks state across time — usually in Dataverse — and is often an autonomous agent rather than a conversational one. Each sub-orchestrator updates its own step on completion, and the supervisor polls for progress or reacts to Dataverse events.&lt;/p&gt;

&lt;p&gt;Copilot Studio supports the hierarchical pattern through the combination of connected agents (for delegation), autonomous triggers (for event-driven progress), and Dataverse tables (for shared state). The durable choice for a long-running process is to store orchestration state in Dataverse rather than in conversation history, which truncates — persist state outside the conversation, not inside it. For agent-flow steps that genuinely run long, asynchronous responses &lt;em&gt;(preview)&lt;/em&gt; now let a flow exceed the two-minute limit and return results when it completes.&lt;/p&gt;

&lt;h3 id=&quot;choosing-between-the-patterns&quot;&gt;Choosing between the patterns&lt;/h3&gt;

&lt;p&gt;A short checklist:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;If requests split cleanly into categories and there is little cross-dependency, use &lt;strong&gt;router-worker&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;If work must happen in a specific order with each step depending on the previous, use &lt;strong&gt;sequential pipeline&lt;/strong&gt; (agent flows).&lt;/li&gt;
  &lt;li&gt;If several independent lookups or reviews can happen at once, use &lt;strong&gt;parallel fan-out / fan-in&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;If the process spans days, involves multiple departments, and needs state that outlives any single conversation, use &lt;strong&gt;hierarchical&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is common for a real system to use more than one pattern. A customer-service agent might use router-worker at the top level, then have a sequential pipeline for complaint handling as one of its specialists, with a parallel enrichment step inside that pipeline. The goal is not architectural purity; it is picking the simplest pattern for each piece.&lt;/p&gt;

&lt;h3 id=&quot;three-pattern-anti-patterns&quot;&gt;Three pattern anti-patterns&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Circular delegation.&lt;/strong&gt; Agent A calls Agent B, which calls Agent A back. Copilot Studio does not prevent this structurally, and it leads to long, expensive conversations that loop until a timeout. Rule: child agents never call back into their parents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Fan-out without merge.&lt;/strong&gt; The parent fires five parallel requests but does not wait for all results before responding, so the conversation becomes out-of-order. In agent flows, always use a “join” step before the aggregation.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Hierarchical without state.&lt;/strong&gt; A supervisor that tracks state in the conversation window will lose it the moment the conversation is truncated. Long-running processes must persist state outside the conversation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Copilot Studio provides the runtime — generative orchestration, tool selection, topic execution, agent-flow execution, autonomous triggers. It does not choose the pattern for you. The choice of pattern, the decision of which agent owns which responsibility, the contract between steps, and the handling of partial failures are all design decisions.&lt;/p&gt;

&lt;h2 id=&quot;5-the-model-context-protocol-mcp-in-plain-terms&quot;&gt;5. The Model Context Protocol (MCP) in plain terms&lt;/h2&gt;

&lt;p&gt;Two problems surface in any organization that has built more than a few agents. First, every agent builder reimplements the same integrations — Jira search, SharePoint lookup, ticket creation — in their own style, with their own error handling. Second, when a backend API changes, every agent that depends on it has to be updated individually. These are not AI problems; they are classic enterprise integration problems that the rise of agents has made more visible.&lt;/p&gt;

&lt;p&gt;MCP is the open standard that addresses both. It was originally published by Anthropic in late 2024, is now adopted by multiple agent platforms, and is supported natively in Microsoft Copilot Studio since 2025. For Copilot Studio makers, understanding MCP is less about protocol details and more about what the standard allows you to do.&lt;/p&gt;

&lt;h3 id=&quot;what-mcp-actually-is&quot;&gt;What MCP actually is&lt;/h3&gt;

&lt;p&gt;MCP is a specification for how an AI client (an agent) discovers and calls tools hosted on a separate server. The specification defines:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A uniform way for the server to describe the tools it offers (name, description, input schema, output schema).&lt;/li&gt;
  &lt;li&gt;A uniform way for the client to invoke a tool and receive a structured response.&lt;/li&gt;
  &lt;li&gt;Support for authentication, including OAuth 2.0 flows.&lt;/li&gt;
  &lt;li&gt;Support for streaming responses, which matters for long-running tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The practical consequence is that a single MCP server can expose a set of tools — search, create, update, delete against whatever backend — and any MCP-aware client can consume those tools without bespoke integration work.&lt;/p&gt;

&lt;p&gt;Copilot Studio today supports the Streamable transport for MCP. (SSE, an earlier transport, was deprecated and is no longer supported after August 2025.) Authentication options include none, API key (either in a header or a query parameter), and OAuth 2.0 with three configuration modes: dynamic discovery, dynamic client registration, and manual.&lt;/p&gt;

&lt;h3 id=&quot;why-mcp-matters-for-copilot-studio&quot;&gt;Why MCP matters for Copilot Studio&lt;/h3&gt;

&lt;p&gt;Before MCP, extending an agent with a custom backend required building a Power Platform custom connector — writing an OpenAPI definition, handling authentication, registering the connector, and then adding individual actions to the agent. Each action was defined at the connector level, which meant versioning, deprecation, and permissions were all managed per connector.&lt;/p&gt;

&lt;p&gt;With MCP, the server owns the tool catalog. When you connect an MCP server to a Copilot Studio agent, the server’s tools are discovered automatically. When the server adds a new tool, it becomes available to the agent without any change in Copilot Studio. When the server deprecates a tool, the change is visible server-side rather than scattered across agents.&lt;/p&gt;

&lt;p&gt;For enterprises with many agents and many backends, this inverts a maintenance problem. Integration code moves to one server per domain, owned by the team that owns the backend. The agents consume it; they do not redefine it.&lt;/p&gt;

&lt;h3 id=&quot;what-mcp-is-not&quot;&gt;What MCP is not&lt;/h3&gt;

&lt;p&gt;MCP is not an agent-to-agent protocol. It describes how agents call tools, not how agents call each other. For agent-to-agent communication, the relevant standard is A2A.&lt;/p&gt;

&lt;p&gt;MCP is also not a replacement for Power Platform connectors. Connectors remain the right choice when the backend requires complex per-user licensing, deep Dataverse integration, or features that benefit from the Power Platform management surface. MCP is the right choice when the backend is a discrete service with a stable API surface that multiple agents need to share. (Note that in Copilot Studio, MCP connectivity itself rides on Power Platform connectors, so connector-level data policies still govern MCP access.)&lt;/p&gt;

&lt;p&gt;Finally, MCP is not, by itself, a security model. Any MCP server you connect must still enforce authentication and authorization; MCP defines the envelope, not the access rules. Recent public reporting on prompt-injection classes of vulnerability in agent platforms — including CVE-2026-21520, an indirect prompt-injection issue patched in Copilot Studio in January 2026 — underlines that adding tools of any kind, MCP or otherwise, expands an agent’s attack surface. Tools that write data deserve particular scrutiny.&lt;/p&gt;

&lt;h3 id=&quot;a-common-pattern-the-shared-knowledge-mcp&quot;&gt;A common pattern: the shared knowledge MCP&lt;/h3&gt;

&lt;p&gt;A frequent pattern in enterprise Copilot Studio deployments is a shared “knowledge retrieval” MCP server. It exposes tools such as:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;search_policy(query, domain)&lt;/code&gt; — returns matching policy passages with citations.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;get_policy(policy_id)&lt;/code&gt; — returns the full text of a policy.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;list_policy_versions(policy_id)&lt;/code&gt; — returns version history.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of the organization’s agents — HR assistant, IT assistant, customer service assistant, compliance assistant — connects to this one MCP server and uses whichever tools it needs. When a new policy domain is added, it appears in all agents at once. When authentication is rotated, it rotates in one place. When a tool description is improved, every agent benefits.&lt;/p&gt;

&lt;h3 id=&quot;configuring-an-mcp-server-in-copilot-studio--the-wizard-path&quot;&gt;Configuring an MCP server in Copilot Studio — the wizard path&lt;/h3&gt;

&lt;p&gt;Microsoft Copilot Studio offers more than one path to connect an MCP server. The native onboarding wizard, introduced in 2025, is the recommended path for most cases.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Open the Tools page of your agent.&lt;/strong&gt; Every agent has a Tools tab alongside Knowledge, Topics, Instructions, and Agents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Select Add a tool → New tool → Model Context Protocol.&lt;/strong&gt; This opens the MCP onboarding wizard.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Provide the server details.&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;Server name&lt;/em&gt; — a short name; this is what makers see when they browse tools.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Server description&lt;/em&gt; — important. The description is what the orchestrator uses at runtime to decide whether to call this server. Be specific about what the server is for and what kinds of requests it handles.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Server URL&lt;/em&gt; — the base HTTPS endpoint of the MCP server. The Streamable transport is current; SSE is no longer supported after August 2025.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Configure authentication.&lt;/strong&gt; Three options:
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;None&lt;/em&gt; — for read-only servers on trusted networks only.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;API key&lt;/em&gt; — in a request header or as a query parameter. The agent includes it in requests to the MCP server.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;OAuth 2.0&lt;/em&gt; — preferred for anything involving identity. Three sub-options: &lt;em&gt;dynamic discovery&lt;/em&gt; (simplest; works when the server supports OAuth 2.0 dynamic client registration with discovery), &lt;em&gt;dynamic&lt;/em&gt; (DCR without discovery; you supply the authorization and token URLs), and &lt;em&gt;manual&lt;/em&gt; (you supply client ID, client secret, authorization, token, and refresh endpoints explicitly).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Create the connection.&lt;/strong&gt; The wizard validates the server, pulls the tool catalog, and registers the tools as available to the agent. Each tool appears in the agent’s tool list with its declared schema.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the entire configuration path for the common case. The effort goes into writing good tool descriptions on the server side, not into configuring the client.&lt;/p&gt;

&lt;h3 id=&quot;configuring-an-mcp-server--the-custom-connector-path&quot;&gt;Configuring an MCP server — the custom connector path&lt;/h3&gt;

&lt;p&gt;Before the native MCP integration, makers built a Power Apps custom connector with a specific &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;x-ms-agentic-protocol: mcp-streamable-1.0&lt;/code&gt; annotation. This path still works and is the right choice when you need:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Dynamic value lookups that feed MCP parameters from another API.&lt;/li&gt;
  &lt;li&gt;Custom URL rewriting (for example, to route one connector to multiple regional MCP endpoints based on a catalog service).&lt;/li&gt;
  &lt;li&gt;Fine-grained policy controls expressed at the Power Platform connector level, such as per-environment availability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A Microsoft sample published in March 2026, “Dynamic MCP Routing in Copilot Studio,” uses exactly this approach: a single connector that resolves an instance dropdown via a catalog service and rewrites the URL at runtime. It is a useful reference for multi-tenant or multi-region requirements.&lt;/p&gt;

&lt;h3 id=&quot;configuring-an-mcp-server--the-agents-365-byo-mcp-path&quot;&gt;Configuring an MCP server — the Agents 365 (BYO MCP) path&lt;/h3&gt;

&lt;p&gt;A third path now exists for organizations standardizing on tenant-wide agent management: you can register an existing MCP server in &lt;strong&gt;Agents 365&lt;/strong&gt; using the Agents 365 CLI and the Microsoft 365 Admin Center. Once the server is registered and approved, it becomes available for use in Copilot Studio. This is the right path when MCP servers need to be governed centrally as bring-your-own (BYO) assets rather than connected ad hoc per agent.&lt;/p&gt;

&lt;p&gt;Unless one of the custom-connector requirements applies — or you specifically want centralized Agents 365 governance — the wizard path is simpler and has fewer moving parts.&lt;/p&gt;

&lt;h3 id=&quot;tool-descriptions-are-the-production-variable&quot;&gt;Tool descriptions are the production variable&lt;/h3&gt;

&lt;p&gt;One thing deserves emphasis, because it determines success in production more than any configuration detail: the description of each MCP tool, authored on the server. A tool description in MCP should state, clearly and concisely:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;What the tool does.&lt;/li&gt;
  &lt;li&gt;When the agent should use it (which kinds of requests).&lt;/li&gt;
  &lt;li&gt;What it returns.&lt;/li&gt;
  &lt;li&gt;Any side effects (writes data, sends messages, charges money).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A description like “Search items” is nearly useless to the orchestrator. “Searches the internal policy library for HR, IT, and compliance policies; returns matching passages with citations; read-only” is specific enough that the orchestrator will route appropriately. When orchestration quality feels off — the agent is calling the wrong tool, or no tool at all — the first place to look is usually the descriptions.&lt;/p&gt;

&lt;h2 id=&quot;6-the-agent2agent-a2a-protocol&quot;&gt;6. The Agent2Agent (A2A) protocol&lt;/h2&gt;

&lt;p&gt;If MCP is how agents talk to tools, A2A is how agents talk to other agents. It is a separate open standard with its own specification, and — like MCP — it is supported natively in Microsoft Copilot Studio. A2A connections went generally available in April 2026. For multi-agent architectures that span platforms, teams, or vendors, A2A is the piece of the puzzle that keeps the system composable.&lt;/p&gt;

&lt;h3 id=&quot;when-a2a-is-relevant&quot;&gt;When A2A is relevant&lt;/h3&gt;

&lt;p&gt;A Copilot Studio agent can already call another Copilot Studio agent as a connected agent — that works entirely inside the Microsoft stack. A2A becomes relevant when the other agent is &lt;em&gt;not&lt;/em&gt; a Copilot Studio agent. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;An agent built with the Microsoft 365 Agents SDK in code.&lt;/li&gt;
  &lt;li&gt;An agent hosted on the Microsoft Foundry Agent Service.&lt;/li&gt;
  &lt;li&gt;An agent built on a non-Microsoft framework (LangGraph, CrewAI, Google’s own A2A-compliant agents).&lt;/li&gt;
  &lt;li&gt;A partner’s agent exposed to your organization as a service.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before A2A, connecting to such an agent meant writing a custom HTTP integration — handling the request shape, interpreting streaming responses, mapping authentication, and dealing with session state. A2A standardizes the contract so that any A2A-compliant client can talk to any A2A-compliant agent with no custom code.&lt;/p&gt;

&lt;h3 id=&quot;what-the-protocol-defines&quot;&gt;What the protocol defines&lt;/h3&gt;

&lt;p&gt;Microsoft Learn describes A2A as “an open standard for communication and collaboration between agents.” The specification covers:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A standard contract for &lt;strong&gt;sending tasks&lt;/strong&gt; to an external agent.&lt;/li&gt;
  &lt;li&gt;A mechanism for providing &lt;strong&gt;rich, structured metadata&lt;/strong&gt; with the request — context, user identity, task parameters.&lt;/li&gt;
  &lt;li&gt;A predictable &lt;strong&gt;response format&lt;/strong&gt;, including support for multi-turn interactions.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Interoperability across frameworks&lt;/strong&gt;, so an agent built on any A2A-compliant platform can be called the same way.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Compared to a traditional HTTP connector — which is generic and was not designed for agent workflows — A2A is explicitly designed for the shape of agent interactions: multi-turn interactions and rich contextual metadata work natively, where an HTTP connector requires you to build those capabilities yourself.&lt;/p&gt;

&lt;h3 id=&quot;configuring-an-a2a-agent-in-copilot-studio--the-correct-path&quot;&gt;Configuring an A2A agent in Copilot Studio — the correct path&lt;/h3&gt;

&lt;p&gt;External agents, including A2A-compliant agents, are added on the &lt;strong&gt;Agents page&lt;/strong&gt; of the calling agent — not the Tools page. The Tools page is for MCP servers and connector-backed tools; the Agents page is where connected agents (Copilot Studio, Fabric Data Agent, Microsoft Foundry Agent Service, Microsoft 365 Agents SDK) and external A2A agents are registered.&lt;/p&gt;

&lt;p&gt;The configuration steps:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Obtain the target agent’s A2A endpoint URL and authentication requirements from whoever owns it.&lt;/li&gt;
  &lt;li&gt;In the calling agent, open the &lt;strong&gt;Agents&lt;/strong&gt; page.&lt;/li&gt;
  &lt;li&gt;Select &lt;strong&gt;Add an agent → Connect to an external agent → Agent2Agent&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Provide the A2A endpoint URL. If the agent publishes a valid agent card at the standard &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.well-known&lt;/code&gt; URL, Copilot Studio auto-populates the name and description; otherwise enter them manually. The description tells the orchestrator when to delegate to this agent.&lt;/li&gt;
  &lt;li&gt;Configure authentication. The options are &lt;strong&gt;None&lt;/strong&gt;, &lt;strong&gt;API key&lt;/strong&gt; (header or query parameter), and &lt;strong&gt;OAuth 2.0&lt;/strong&gt; (client ID, client secret, authorization URL, token URL, refresh URL). For enterprise scenarios, OAuth 2.0 paired with Entra ID is the sensible choice.&lt;/li&gt;
  &lt;li&gt;Create the connection and save.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once registered, the A2A agent appears in the Agents list alongside connected Copilot Studio agents. The orchestrator invokes both kinds through the same delegation mechanism at runtime; only the configuration differs.&lt;/p&gt;

&lt;h3 id=&quot;when-to-use-a2a-versus-connected-agents&quot;&gt;When to use A2A versus connected agents&lt;/h3&gt;

&lt;p&gt;A useful rule:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;If both agents live in your Copilot Studio tenant, &lt;strong&gt;connected agents&lt;/strong&gt; is the simpler choice. Lifecycle, authentication, and governance are all inside Power Platform.&lt;/li&gt;
  &lt;li&gt;If the other agent is built outside Copilot Studio — in code with the Microsoft 365 Agents SDK, on the Microsoft Foundry Agent Service, on another platform, or by a partner — &lt;strong&gt;A2A&lt;/strong&gt; is the way to call it without custom plumbing.&lt;/li&gt;
  &lt;li&gt;If you want the same agent to be callable from Copilot Studio, from a custom app, and from another vendor’s agent, &lt;strong&gt;publishing it as an A2A agent&lt;/strong&gt; turns it into a reusable unit across clients.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The two are not mutually exclusive. Many production systems mix: the orchestrator in Copilot Studio calls connected agents for Copilot-native specialists and A2A agents for specialists hosted elsewhere.&lt;/p&gt;

&lt;h3 id=&quot;three-rules-for-robust-agent-to-agent-calls&quot;&gt;Three rules for robust agent-to-agent calls&lt;/h3&gt;

&lt;p&gt;These apply equally to connected agents and A2A agents.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Return structured data, not prose.&lt;/strong&gt; The calling agent should not parse “I created ticket INC-12345 for you” to extract the ID. Design the called agent to return a structured result. Agent flows, connected agents, and A2A agents in Copilot Studio all support structured return types; use them.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Make the called agent idempotent.&lt;/strong&gt; Retries must not create duplicate records. Every agent-to-agent call that writes data should accept an idempotency key and use it to deduplicate on the server side. This is particularly important for agents that create tickets, send email, or post messages, because retries are common under load.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bound the conversation.&lt;/strong&gt; A called agent should not call back into the calling agent. Structurally it is possible; in practice it produces loops that are expensive and hard to debug. Design the contract so the called agent has everything it needs as inputs, does its work, and returns.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;multi-turn-versus-single-turn&quot;&gt;Multi-turn versus single-turn&lt;/h3&gt;

&lt;p&gt;A2A supports both. Some tasks are single-turn — “look up this policy and return the passage.” Others are genuinely multi-turn — “help this user configure their integration, with clarifying questions as needed.” The A2A payload Copilot Studio sends includes a context ID, message IDs, locale, and full chat history, which makes multi-turn continuity possible.&lt;/p&gt;

&lt;p&gt;Single-turn is the default and should be preferred when it applies. Multi-turn introduces state, which then has to be tracked somewhere — usually by the caller. For long-running processes, the hierarchical pattern with state stored in Dataverse is usually a better fit than keeping multi-turn state inside the A2A exchange.&lt;/p&gt;

&lt;h3 id=&quot;security-considerations-for-a2a&quot;&gt;Security considerations for A2A&lt;/h3&gt;

&lt;p&gt;The security model for A2A is the same concern that applies to any tool: the called agent is now part of your system’s trust boundary. A few practical implications:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The called agent’s identity matters. In Entra-governed tenants, use Entra Agent ID — first introduced in May 2025 and expanded to public preview at Ignite 2025 — to give each agent a first-class identity with scoped permissions. Copilot Studio can now auto-create a per-agent Entra identity &lt;em&gt;(preview)&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;Scopes should be narrow. An agent that exists to summarize documents does not need write access to email.&lt;/li&gt;
  &lt;li&gt;Audit everything. Purview audit logs cover Copilot Studio activity; treat calls to external A2A agents the same way you would treat any outbound API call — logged, reviewed, and alertable. You are explicitly responsible for the data flows, quality, and security posture of agents you connect outside Copilot Studio.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;7-wiring-child-connected-and-a2a-agents--all-three-configuration-paths&quot;&gt;7. Wiring child, connected, and A2A agents — all three configuration paths&lt;/h2&gt;

&lt;p&gt;Agent-to-agent delegation in Copilot Studio uses one of three mechanisms depending on where the called agent lives. Getting the mechanism right is what keeps the design from leaking through the architecture.&lt;/p&gt;

&lt;h3 id=&quot;configuring-a-child-agent&quot;&gt;Configuring a child agent&lt;/h3&gt;

&lt;p&gt;Child agents are authored inside the parent agent. In current Copilot Studio they are a first-class sub-agent type — not merely topics — with their own instructions and, optionally, their own input and output variables.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;In the parent agent, open the &lt;strong&gt;Agents&lt;/strong&gt; page and create a child agent named after its responsibility (e.g., “Translate Text,” “Validate Expense Code,” “Summarize Ticket”).&lt;/li&gt;
  &lt;li&gt;Author its instructions and, where useful, define input and output variables so the parent can pass values in and read results out.&lt;/li&gt;
  &lt;li&gt;Give it a clear description so the orchestrator can route to it. You can also reference it directly in the parent’s instructions by typing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/&lt;/code&gt; and selecting it.&lt;/li&gt;
  &lt;li&gt;Save; the child agent is immediately available within the parent.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Child agents share the parent’s tools, knowledge, and authentication, and there is no separate lifecycle. If you later need to reuse the child agent elsewhere, promote its logic into a connected agent. (You can also explicitly redirect to a child agent from within a topic using the Redirect node, which resumes the originating topic when the child agent finishes.)&lt;/p&gt;

&lt;h3 id=&quot;configuring-a-connected-agent&quot;&gt;Configuring a connected agent&lt;/h3&gt;

&lt;p&gt;A connected agent is a separately-published Copilot Studio agent (or a Fabric Data Agent &lt;em&gt;(preview)&lt;/em&gt;, an agent on the Microsoft Foundry Agent Service &lt;em&gt;(preview)&lt;/em&gt;, or one built with the Microsoft 365 Agents SDK &lt;em&gt;(preview)&lt;/em&gt;) that this agent calls.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Ensure the target agent is published in the same environment and that you have permissions to use it.&lt;/li&gt;
  &lt;li&gt;In the calling agent, open the &lt;strong&gt;Agents&lt;/strong&gt; page → &lt;strong&gt;Add an agent&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Select the target agent from the list of available agents in the environment.&lt;/li&gt;
  &lt;li&gt;Provide a short description of &lt;em&gt;when&lt;/em&gt; the calling agent should delegate to this agent. This description, distinct from the target agent’s own description, is what the orchestrator uses to decide.&lt;/li&gt;
  &lt;li&gt;Define the input contract: what the calling agent will pass. Keep this to the minimum needed.&lt;/li&gt;
  &lt;li&gt;Define the expected return shape. Connected agents that return structured data are easier to compose; prefer structured returns to prose.&lt;/li&gt;
  &lt;li&gt;Save.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A typical example: a “master” agent that routes HR questions to an HR agent and IT questions to an IT agent. Each specialist is a connected agent in its own right. The master holds only routing logic and a short “what I am” instruction. Each specialist holds its own knowledge (HR policies versus IT runbooks), its own tools (Workday connector versus ServiceNow connector), and its own owner.&lt;/p&gt;

&lt;p&gt;Remember the one-level nesting rule: an agent that already has connected agents can be a main agent, but cannot itself be added as a connected agent to another main agent.&lt;/p&gt;

&lt;h3 id=&quot;connecting-to-a-fabric-data-agent&quot;&gt;Connecting to a Fabric Data Agent&lt;/h3&gt;

&lt;p&gt;Fabric Data Agents &lt;em&gt;(preview)&lt;/em&gt; are a specific type of connected agent that brings governed, schema-aware analytics into a conversational flow. They are configured the same way as any other connected agent, but the target is a Fabric Data Agent published in your Fabric environment.&lt;/p&gt;

&lt;p&gt;The practical value is that the agent can answer data questions with governed retrieval — row-level security, sensitivity labels, and column-level policies all apply — without the calling agent having to reimplement those controls. (Note a current limitation: Fabric Data agents can’t be reached via the topic Redirect node or referenced directly in instructions.)&lt;/p&gt;

&lt;h3 id=&quot;configuring-an-a2a-agent&quot;&gt;Configuring an A2A agent&lt;/h3&gt;

&lt;p&gt;A2A is used when the target agent is hosted outside Copilot Studio. The configuration steps:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Obtain the target agent’s A2A endpoint URL and authentication requirements from whoever owns it.&lt;/li&gt;
  &lt;li&gt;In the calling agent, open the &lt;strong&gt;Agents&lt;/strong&gt; page.&lt;/li&gt;
  &lt;li&gt;Select &lt;strong&gt;Add an agent → Connect to an external agent → Agent2Agent&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Provide the endpoint URL (the communication endpoint, not the agent-card URL) and a description that tells the orchestrator when to use this agent.&lt;/li&gt;
  &lt;li&gt;Configure authentication — None, API key, or OAuth 2.0 (with Entra ID the sensible choice for enterprise scenarios).&lt;/li&gt;
  &lt;li&gt;Create the connection and save.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once registered, the A2A agent appears in the Agents list alongside connected and child agents. The orchestrator invokes all three through the same delegation mechanism at runtime; only the configuration differs.&lt;/p&gt;

&lt;h3 id=&quot;contracts-between-agents&quot;&gt;Contracts between agents&lt;/h3&gt;

&lt;p&gt;Whichever mechanism you use, the contract between the calling and called agent is where production reliability is won or lost.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Input contract.&lt;/strong&gt; Pass only what the child needs, and only structured values where possible. Passing the entire conversation history “in case it helps” reliably produces slower, less predictable calls.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Output contract.&lt;/strong&gt; Structured returns — typed records or JSON — are dramatically easier to compose than prose. Copilot Studio supports structured outputs from connected agents natively; define them explicitly rather than relying on the orchestrator to parse text. (Be aware that citations are not always preserved when outputs pass back to the caller.)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Error contract.&lt;/strong&gt; Decide in advance what the called agent returns when it cannot complete the task. A common convention: return &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{status: &quot;not_found&quot;}&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{status: &quot;unauthorized&quot;}&lt;/code&gt;, or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{status: &quot;error&quot;, message: &quot;...&quot;}&lt;/code&gt; rather than conversational refusals.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Idempotency.&lt;/strong&gt; Any called agent that writes data should accept an idempotency key from the caller. Retries, which happen under load more often than teams expect, must not create duplicate tickets, emails, calendar events, or database rows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;avoiding-loops&quot;&gt;Avoiding loops&lt;/h3&gt;

&lt;p&gt;Because Copilot Studio allows any agent to call any other agent, circular delegation is structurally possible: Agent A calls Agent B, which calls Agent A. The orchestrator will happily execute this until timeout or token exhaustion.&lt;/p&gt;

&lt;p&gt;The architectural rule: &lt;strong&gt;child agents do not call back into their parents.&lt;/strong&gt; If the specialist needs something the parent has, design the parent to pass it down as an input. If the specialist truly needs to coordinate with the parent, the design is not yet right — usually the work belongs in the parent, or the responsibility split is incorrect.&lt;/p&gt;

&lt;h3 id=&quot;governance-who-owns-which-connection&quot;&gt;Governance: who owns which connection&lt;/h3&gt;

&lt;p&gt;When the graph of agents grows beyond a handful, ownership matters. The Power Platform Admin Center’s &lt;strong&gt;Copilot Hub&lt;/strong&gt; gives admins usage, cost, and governance insight for Copilot Studio agents; the &lt;strong&gt;agent inventory&lt;/strong&gt; — now exposed as a schema you can query from the admin center, API, or Azure Resource Graph &lt;em&gt;(preview)&lt;/em&gt; — lists every agent and the features it uses. At the tenant level, &lt;strong&gt;Microsoft Agent 365&lt;/strong&gt; (early access, Ignite 2025) and the &lt;strong&gt;Microsoft Entra agent registry&lt;/strong&gt; provide cross-platform agent identity and observability.&lt;/p&gt;

&lt;p&gt;Practical governance steps:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Assign a primary owner to every agent. Ownership is a Dataverse attribute; it also answers the question “who gets paged when this breaks.”&lt;/li&gt;
  &lt;li&gt;Use Entra Agent ID (introduced May 2025; expanded to public preview at Ignite 2025) to give each agent a first-class identity. Scoped permissions then apply per agent rather than per maker — and per-agent identities can now be auto-created in Copilot Studio &lt;em&gt;(preview)&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;Treat A2A connections to external agents as supply-chain dependencies. Document who operates them, review their security posture, and log calls through Purview.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;8-what-the-combination-of-mcp-and-a2a-enables&quot;&gt;8. What the combination of MCP and A2A enables&lt;/h2&gt;

&lt;p&gt;With MCP for tools and A2A for agents, a Copilot Studio tenant becomes a composition layer rather than a monolith. An orchestrator can call:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Its own child agents for low-complexity sub-routines inside the parent.&lt;/li&gt;
  &lt;li&gt;Copilot Studio connected agents for specialists owned inside the tenant.&lt;/li&gt;
  &lt;li&gt;MCP servers for shared tool catalogs owned by backend teams.&lt;/li&gt;
  &lt;li&gt;A2A agents for specialists built in code or hosted on other platforms (with Microsoft Foundry, Fabric, and M365 Agents SDK connections in public preview).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All four mechanisms are available today, documented on Microsoft Learn, and — where generally available — in production use; the preview connections are usable now with the usual preview caveats.&lt;/p&gt;

&lt;p&gt;This is the meaningful change MCP and A2A introduce: integration work moves from being duplicated per agent to being centralized per domain (for tools) and per agent (for cross-platform agents). The remaining decisions — what the specialists are, who owns them, how they are described, what contracts they expose — become the visible bottleneck again. That is a healthy state, because those decisions are the ones that actually determine whether a multi-agent system works.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;If you take five things away from this article, they are these.&lt;/p&gt;

&lt;p&gt;First, &lt;strong&gt;multi-agent orchestration is an architectural response to scope drift, not a fashion&lt;/strong&gt;. Splitting an agent is a decision with cost. Make it when you see the documented signals — tool counts approaching 30 to 40, multiple owners, conflicting knowledge, divergent SLAs — and avoid it when the cheaper fix (tighter instructions, scoped knowledge, a Power Automate flow) would do.&lt;/p&gt;

&lt;p&gt;Second, &lt;strong&gt;the five surfaces are not interchangeable&lt;/strong&gt;. Instructions hold judgment (within an 8,000-character limit). Knowledge holds retrievable text. Tools hold actions. Topics hold reproducible flows. Triggers hold the answer to “when does this agent run.” Putting behavior on the wrong surface — large rule tables in instructions, deterministic compliance flows in generative nodes — is the most common cause of unreliable agents.&lt;/p&gt;

&lt;p&gt;Third, &lt;strong&gt;the four patterns cover the work&lt;/strong&gt;. Router-worker, sequential pipeline, parallel fan-out, hierarchical. Most production systems mix two or three. None of them require features that do not exist in Copilot Studio today.&lt;/p&gt;

&lt;p&gt;Fourth, &lt;strong&gt;MCP and A2A are the two open standards that keep the system composable&lt;/strong&gt;. MCP centralizes tool integration per domain. A2A makes cross-platform agent calls portable. Neither is a replacement for the other, and neither is a security model on its own. Both expand the trust boundary; treat them accordingly.&lt;/p&gt;

&lt;p&gt;Fifth, &lt;strong&gt;the configuration paths are not interchangeable either&lt;/strong&gt;. MCP servers are added on the Tools page via the MCP wizard. Child agents are created on the Agents page inside the parent. Connected agents and A2A agents are also added on the Agents page — connected agents from the available agents in the environment, A2A agents via &lt;em&gt;Add an agent → Connect to an external agent → Agent2Agent&lt;/em&gt;. Getting the path right is mechanical, but it is also where teams lose hours when they assume the wrong starting point in the UI.&lt;/p&gt;

&lt;p&gt;Part 2 picks up from here and works through the practical side: four end-to-end scenarios — IT incident triage, contract review, field service dispatch, employee onboarding — each on a different orchestration pattern, followed by a starter MCP server inventory and the ten anti-patterns that recur in production deployments. Read Part 1 to settle the architectural decisions; read Part 2 to see them executed.&lt;/p&gt;

&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/multi-agent-patterns&quot;&gt;Explore multi-agent orchestration patterns&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-add-other-agents&quot;&gt;Add other agents (overview)&lt;/a&gt; — source of the documented 30–40 choices-of-action threshold, child-agent definition, and preview status of Foundry/Fabric/M365 Agents SDK connections&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-quotas&quot;&gt;Quotas and limits&lt;/a&gt; — 8,000-character instruction limit&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/connectors/connector-reference/&quot;&gt;Power Platform connectors reference&lt;/a&gt; — the 1,000+ connector catalog&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-existing-server-to-agent&quot;&gt;Connect your agent to an existing Model Context Protocol (MCP) server&lt;/a&gt; — wizard path, Streamable transport, SSE no longer supported after August 2025, BYO MCP via Agents 365&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/add-agent-agent-to-agent&quot;&gt;Connect an agent available over the Agent2Agent (A2A) protocol&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/whats-new&quot;&gt;What’s new in Copilot Studio&lt;/a&gt; — A2A GA (April 2026), Computer Use GA (May 2026), per-agent Entra identities (preview), agent inventory schema (preview)&lt;/li&gt;
  &lt;li&gt;Microsoft Copilot Studio blog — &lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-copilot/blog/copilot-studio/whats-new-in-copilot-studio-march-2025/&quot;&gt;What’s new in Copilot Studio: March 2025&lt;/a&gt; — autonomous agents and generative orchestration GA&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-triggers-about&quot;&gt;Event trigger overview&lt;/a&gt; — documented event triggers&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/adoption-case-studies&quot;&gt;Copilot Studio real-world transformation stories&lt;/a&gt; — ABN AMRO, Rabobank, Dunaway, Nexi Group, City of Montréal, Singapore Civil Defence Force, T-Mobile, Holland America Line, La Trobe University, Signetic, A1 Inteligência em Viagens&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/entra/fundamentals/whats-new-ignite-2025&quot;&gt;What’s new at Ignite 2025 for Microsoft Entra&lt;/a&gt; — Entra Agent ID&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/copilot/copilot-hub&quot;&gt;Copilot Hub in the Power Platform Admin Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-365/copilot/copilot-control-system/overview&quot;&gt;Copilot Control System overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Microsoft CopilotStudioSamples — &lt;a href=&quot;https://microsoft.github.io/mcscatblog/posts/dynamic-mcp-routing-copilot-studio/&quot;&gt;Dynamic MCP Routing in Copilot Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Model Context Protocol — &lt;a href=&quot;https://modelcontextprotocol.io/&quot;&gt;Official specification and SDKs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Agent2Agent protocol — &lt;a href=&quot;https://a2aproject.github.io/A2A/&quot;&gt;Open specification&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;VentureBeat — &lt;a href=&quot;https://venturebeat.com/security/microsoft-salesforce-copilot-agentforce-prompt-injection-cve-agent-remediation-playbook&quot;&gt;Microsoft patched a Copilot Studio prompt injection. The data exfiltrated anyway.&lt;/a&gt; — CVE-2026-21520 coverage, April 2026&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/copilot-studio-orchestration-part1</link>
                <guid isPermaLink="true">https://holgerimbery.blog/copilot-studio-orchestration-part1</guid>
                
                <category>agents</category>
                
                <category>copilotstudio</category>
                
                <category>multiagent</category>
                
                <category>orchestration</category>
                
                <category>mcp</category>
                
                <category>a2a</category>
                
                <category>foundations</category>
                
                
            </item>
        
            <item>
                <title>Teams Phone Agent and Custom Voice Agents in Copilot Studio: A Practitioner&apos;s Guide</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary lede:&lt;/strong&gt;
Microsoft Teams Phone now has a conversational AI front door. &lt;strong&gt;Teams Phone Agent&lt;/strong&gt; is a new, configurable out-of-the-box experience that greets callers in natural language and resolves common requests — questions and answers, appointment scheduling, and conversational routing across 60+ languages — without any custom code. When a request is specific to your business, a &lt;strong&gt;custom voice agent built in Microsoft Copilot Studio&lt;/strong&gt; takes over, either through a seamless hand-off or by direct dial to a phone number. Both capabilities arrived through Microsoft’s &lt;strong&gt;Frontier program&lt;/strong&gt; in June 2026, are tenant-gated, and the custom-agent path is billed by consumption.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Why read this article&lt;/strong&gt;
Teams Phone has always routed calls with auto attendants and call queues. What changed is that the routing layer can now &lt;em&gt;understand spoken intent&lt;/em&gt; and &lt;em&gt;act on it&lt;/em&gt; — answering questions from a knowledge base, booking an appointment, or completing a business-specific workflow such as a prescription refill or an outage report. This is not a forced change for every Teams user. It is a deliberate capability for Teams Phone administrators, contact-center-style teams, Copilot Studio makers, and finance and compliance stakeholders who need to review, preview, gate, bill, route calls, manage data sources, and define fallback paths before AI ever answers a live customer call. This guide ties those decisions to the configuration steps.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Three things define the current state of this feature set:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Two layers, one call flow.&lt;/strong&gt; Teams Phone Agent provides built-in skills you &lt;em&gt;configure&lt;/em&gt; (Q&amp;amp;A, Appointments, conversational routing). Copilot Studio voice agents provide custom workflows you &lt;em&gt;build&lt;/em&gt;. They are designed to work together inside a single call flow.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Frontier Public Preview, tenant-gated.&lt;/strong&gt; Both capabilities entered Frontier Public Preview in mid-June 2026. The Copilot Studio integration is explicitly gated — Microsoft support must enable your tenant before the Teams Phone channel option appears.
&lt;img src=&quot;https://raw.githubusercontent.com/holgerimbery/holgerimbery.blog/main/holgerimbery/images/2026/06/upgit_20260626_1782454466.png&quot; alt=&quot;upgit_20260626_1782454466.png&quot; /&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Consumption billing for custom agents.&lt;/strong&gt; Copilot Studio voice agent experiences are billed consumptively at a rate based on the orchestration type selected when the agent is built. Billing rolls out by early July 2026; no usage will be charged before then.&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;important&quot;&gt;&lt;strong&gt;Confidence and currency note.&lt;/strong&gt; This article describes a &lt;strong&gt;preview&lt;/strong&gt; feature set as documented in June 2026. Preview features are not intended for production use, may have restricted functionality, and are subject to change. Capabilities, gating, regional support, and especially &lt;strong&gt;pricing and service limits&lt;/strong&gt; will change at general availability. Re-verify every commercial and technical detail against the current Microsoft Learn documentation and the Teams admin center before committing to a rollout.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Scope.&lt;/strong&gt; This article covers Teams Phone Agent’s built-in skills, custom Copilot Studio voice agents (hand-off and direct-dial patterns), the supporting auto-attendant/call-queue model, setup in the Teams admin center and Copilot Studio, preview gating, and consumption billing. Detailed Power Platform / Copilot Studio licensing economics, contact-center seat licensing, and third-party agent SDKs are out of scope and referenced only where they intersect with setup.&lt;/p&gt;

&lt;h2 id=&quot;where-this-fits--use-cases-and-why-it-doesnt-cannibalize-dynamics-365-contact-center&quot;&gt;Where this fits — use cases, and why it doesn’t cannibalize Dynamics 365 Contact Center&lt;/h2&gt;
&lt;p&gt;Possible use cases. Teams Phone Agent and Copilot Studio voice agents are aimed at organizations whose phone system is Teams Phone, and that want to add conversational self-service to their existing call flows. The natural fits are front-door deflection and after-hours coverage:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;a clinic answering hours, location, and insurance questions and handling appointment reschedules;&lt;/li&gt;
  &lt;li&gt;a bank branch understanding intent and routing a mortgage caller to the right team with context;&lt;/li&gt;
  &lt;li&gt;a pharmacy taking prescription-refill and order-status requests;&lt;/li&gt;
  &lt;li&gt;a utility letting customers report an outage or get billing help at 2 a.m.;&lt;/li&gt;
  &lt;li&gt;a home-services firm confirming or moving a booking without staff. 
Inside larger enterprises that already have Teams Phone, the same pattern serves internal lines:&lt;/li&gt;
  &lt;li&gt;IT helpdesk, HR, facilities — and acts as an overflow or out-of-hours tier in front of human queues that would otherwise drop to voicemail. 
The common thread is high-volume, repetitive, rules- or knowledge-driven calls that don’t require a trained agent.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;why-this-isnt-cannibalizing-dynamics-365-contact-center&quot;&gt;Why this isn’t cannibalizing Dynamics 365 Contact Center.&lt;/h2&gt;
&lt;p&gt;The two products serve different operating models, and Microsoft has deliberately built them as a continuum rather than competitors. &lt;strong&gt;Teams Phone Agent&lt;/strong&gt; is an extension of the &lt;strong&gt;telephony layer&lt;/strong&gt; — it modernizes auto attendants and call queues for businesses that don’t run, and don’t want to run, a dedicated contact center. &lt;strong&gt;Dynamics 365 Contact Center&lt;/strong&gt; is a &lt;strong&gt;full CCaaS platform&lt;/strong&gt;: unified omnichannel routing across voice, chat, email, and social; a managed agent desktop with Copilot assist; queue and workforce management; quality and compliance tooling; CRM-agnostic system-of-record integration; and the operational analytics a supervised contact-center team depends on. Teams Phone Agent delivers none of those agent-operations capabilities, and it isn’t trying to — so it can’t displace the customers who need them. Crucially, both rest on the same Copilot Studio agent foundation: the custom voice agents you attach to Teams Phone are built in Copilot Studio, and the AI agents inside Dynamics 365 Contact Center draw on that same agentic platform and consumption model. That shared base means an organization grows along the curve — start with a Teams Phone Agent front door, and when call volume, omnichannel scope, or staffed-agent operations outgrow it, step up to Contact Center without abandoning the agent investment. The commercial models reinforce the split: Teams Phone Agent is a consumption-billed add-on to existing Teams Phone, while Contact Center is a per-seat CCaaS subscription. Different problem, different buyer, different price shape — complementary tiers of one Microsoft voice-AI story, not overlapping bets.&lt;/p&gt;

&lt;h2 id=&quot;1-what-changed-and-why-it-matters&quot;&gt;1. What changed and why it matters&lt;/h2&gt;

&lt;p&gt;It is often difficult for businesses to serve every customer immediately during surges in call volume. Callers sit on hold while staff work through the backlog. Meanwhile, agentic voice AI is opening new ways to serve customers — answering questions, scheduling appointments, or even completing transactions over the phone, including after hours and on weekends.&lt;/p&gt;

&lt;p&gt;Teams Phone Agent and the ability to bring custom Copilot Studio voice agents to Teams Phone address this directly. For customer-facing organizations using Teams Phone — healthcare clinics, bank branches, utilities, pharmacies, service businesses — these agents take repetitive calls off employees’ plates, so people can focus on the conversations that genuinely need a human touch, and customers reach resolution faster.&lt;/p&gt;

&lt;p&gt;The goal is &lt;strong&gt;not&lt;/strong&gt; to remove humans from every call. It is to reduce repetitive call handling so staff can focus on complex or sensitive conversations. Instead of relying solely on traditional auto-attendants, keypad menus, and human staff, organizations can now offer conversational phone experiences that understand spoken requests and respond naturally.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;The design principle that matters most.&lt;/strong&gt; Teams Phone Agent sits &lt;em&gt;inside&lt;/em&gt; your call flow. It should be designed as a business process — greeting, knowledge sources, routing rules, escalation, after-hours behavior — rather than switched on as a generic AI receptionist. Every flow needs a deliberate happy path, escalation path, and after-hours path.&lt;/p&gt;

&lt;h2 id=&quot;2-the-out-of-the-box-experience--teams-phone-agent&quot;&gt;2. The out-of-the-box experience — Teams Phone Agent&lt;/h2&gt;

&lt;p&gt;Teams Phone Agent greets callers and resolves common requests using a set of &lt;strong&gt;built-in skills you configure rather than build&lt;/strong&gt;. This is the new, preview, out-of-the-box layer: administrators enable it in the Teams admin center and point it at content and routing targets. Four capabilities ship in the box.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Capability&lt;/th&gt;
      &lt;th&gt;What it does&lt;/th&gt;
      &lt;th&gt;Example use case&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Questions &amp;amp; Answers&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Answers caller questions from configured knowledge bases that support &lt;strong&gt;file uploads and URLs&lt;/strong&gt;, in natural conversation.&lt;/td&gt;
      &lt;td&gt;A clinic answers questions about hours, locations, accepted insurance, and appointment preparation.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Appointment scheduling&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Lets callers &lt;strong&gt;book, reschedule, or cancel&lt;/strong&gt; appointments and &lt;strong&gt;look up upcoming appointment details&lt;/strong&gt;.&lt;/td&gt;
      &lt;td&gt;A home-services company lets a customer change a plumbing or electrical repair booking without waiting for staff.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Conversational routing&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;The same tried-and-tested routing as traditional auto attendants — &lt;strong&gt;user or extension lookup, transfer to a user or call queue, and more&lt;/strong&gt; — driven by what the caller &lt;em&gt;says&lt;/em&gt;.&lt;/td&gt;
      &lt;td&gt;A bank caller asking about a mortgage application is understood and sent to the right team.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Context-aware transfer&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;When a human is needed, the caller is passed along &lt;strong&gt;with the full conversation context&lt;/strong&gt;.&lt;/td&gt;
      &lt;td&gt;The customer does not have to repeat the entire issue after the transfer.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Multilingual&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Supports conversations across &lt;strong&gt;60+ languages&lt;/strong&gt;, so callers interact naturally in their preferred language.&lt;/td&gt;
      &lt;td&gt;A branch or service desk supports callers in multiple languages at scale.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The decisive practical point: callers skip cumbersome phone menus and do not have to repeat themselves, while the organization keeps the proven routing model underneath.&lt;/p&gt;

&lt;h3 id=&quot;21-real-world-example--replacing-a-keypad-menu&quot;&gt;2.1 Real-world example — replacing a keypad menu&lt;/h3&gt;

&lt;p&gt;A regional clinic’s old line opens with “Press 1 for appointments, press 2 for billing, press 3 for hours and location…”. Most calls are about hours, directions, and appointment changes.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Before:&lt;/strong&gt; every caller navigates the menu; appointment changes route to a front-desk queue that is busy at peak.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;After (Teams Phone Agent):&lt;/strong&gt; the agent answers hours and directions instantly from a knowledge base (uploaded files + the clinic website URL), handles reschedules and cancellations directly, and only conversationally transfers genuine billing questions to staff — with context attached.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rule of thumb:&lt;/strong&gt; if a question is answered from published content or a task is a structured booking change, it belongs in the built-in skills. If it requires a system of record (billing balances, prescription records), it belongs in a custom Copilot Studio agent — see §3.&lt;/p&gt;

&lt;h2 id=&quot;3-the-custom-layer--copilot-studio-voice-agents&quot;&gt;3. The custom layer — Copilot Studio voice agents&lt;/h2&gt;

&lt;p&gt;The built-in Q&amp;amp;A and appointment tools cover common ground. When you need to automate processes unique to your business — letting a patient fill a prescription over the phone, a customer pay or query a bill, or a caller check order status — &lt;strong&gt;custom voice agents built in Microsoft Copilot Studio&lt;/strong&gt; step in. This functionality is beyond what the built-in Appointments and Q&amp;amp;A tools provide.&lt;/p&gt;

&lt;p&gt;There are &lt;strong&gt;two ways&lt;/strong&gt; to bring a Copilot Studio voice agent into Teams Phone.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Pattern&lt;/th&gt;
      &lt;th&gt;How it works&lt;/th&gt;
      &lt;th&gt;When to use it&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Hand-off&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Teams Phone Agent handles greeting and routine requests, then seamlessly hands the call to a custom Copilot Studio agent when a specialized skill is needed. You want a single conversational front door that escalates to specialized workflows.&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Direct dial&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A Copilot Studio voice agent is attached directly to a phone number via a Teams Phone &lt;strong&gt;resource account&lt;/strong&gt;, so callers reach it as the first point of contact.&lt;/td&gt;
      &lt;td&gt;You are upgrading an existing IVR or want a dedicated line for a specific workflow.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;31-what-you-can-build&quot;&gt;3.1 What you can build&lt;/h3&gt;

&lt;p&gt;Copilot Studio is a platform for building custom workflows tailored to your business:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Custom workflows&lt;/strong&gt; — specialized voice topics and conversational logic (billing, refills, order/inventory status, and more).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Extensible integrations&lt;/strong&gt; — connect the agent to CRM systems, internal knowledge bases, and other line-of-business systems.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Routing via Tags&lt;/strong&gt; — pass dynamic transfer information from Teams to Copilot Studio so the agent can route to call queues, auto attendants, specific users, and more, &lt;strong&gt;without hardcoding values&lt;/strong&gt;. Tags are what let one agent scale across many departments and transfer targets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By front-ending a call flow with a Copilot Studio voice agent, the agent acts as an intelligent first point of contact, resolving issues independently before routing to a human using traditional Teams Phone routing if needed.&lt;/p&gt;

&lt;p class=&quot;warning&quot;&gt;&lt;strong&gt;Supported agent types and one-way settings.&lt;/strong&gt; Only &lt;strong&gt;basic&lt;/strong&gt; voice agents are supported on this channel — &lt;strong&gt;real-time voice agents are not supported&lt;/strong&gt;. Changing an agent’s voice type is an &lt;strong&gt;irreversible&lt;/strong&gt; action. Under &lt;strong&gt;Settings → Generative AI → Orchestration&lt;/strong&gt;, select &lt;strong&gt;classic orchestration&lt;/strong&gt;; &lt;strong&gt;generative orchestration is not supported here&lt;/strong&gt; and can introduce heavy latency (reported 5–6 second delays) and unexpected charges.&lt;/p&gt;

&lt;h3 id=&quot;32-real-world-examples&quot;&gt;3.2 Real-world examples&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Pharmacy.&lt;/strong&gt; A custom voice agent lets customers request a prescription refill by phone and check order status — a simpler way to manage routine needs without waiting for staff.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Utility provider.&lt;/strong&gt; A custom agent connected to Teams Phone lets customers report an outage or get billing help &lt;strong&gt;outside normal business hours&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;4-the-foundation--auto-attendants-call-queues-and-agents-and-queues&quot;&gt;4. The foundation — auto attendants, call queues, and “Agents and Queues”&lt;/h2&gt;

&lt;p&gt;None of this replaces the planning discipline Teams Phone already requires. Teams Phone Agent, auto attendants, and call queues are planned and licensed together as one family, and the classic building blocks still apply.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Auto attendants&lt;/strong&gt; redirect calls immediately or by dial option, allow dial-by-name or extension, route to voicemail / external numbers / other voice apps, and handle off-hours and holiday routing separately.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Call queues&lt;/strong&gt; hold callers until an agent is free and redirect on overflow, timeout, or agent availability — to other queues, attendants, voicemail, or external destinations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Teams Phone Agent adds a conversational layer on top of and alongside these. Custom Copilot Studio agents that are published to the Teams Phone channel &lt;strong&gt;automatically appear in the Agents and Queues list&lt;/strong&gt; in the Teams admin center, ready to be wired into a call flow.&lt;/p&gt;

&lt;h3 id=&quot;41-business-decisions-to-settle-first&quot;&gt;4.1 Business decisions to settle first&lt;/h3&gt;

&lt;p&gt;Microsoft’s planning guidance asks you to document the same business decisions up front, now extended for AI voice. Capture the answers and hand them to whoever does the configuration:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;How do callers reach you?&lt;/strong&gt; Internal only, external, or click-to-call on the web?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Which languages&lt;/strong&gt; are needed, and for which department or group?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Voice or dial input&lt;/strong&gt; — Do you allow spoken input, or keypad only?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Off-hours and holiday routing&lt;/strong&gt; — what are the hours and holidays?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Knowledge sources&lt;/strong&gt; — which files and URLs feed the Q&amp;amp;A tool?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Fallback and escalation&lt;/strong&gt; — where does an unresolved call go, and does the human handoff carry context?&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Compliance&lt;/strong&gt; — are there call-recording or other regulatory requirements?&lt;/li&gt;
&lt;/ul&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Authorized users.&lt;/strong&gt; Day-to-day operational changes — business, after-hours, and holiday greetings; call routing; queue membership; reporting — can be delegated to &lt;strong&gt;authorized users&lt;/strong&gt; who do not need Teams admin center access or a Teams Administrator role, with no extra licensing required.&lt;/p&gt;

&lt;h2 id=&quot;5-setup-at-a-glance&quot;&gt;5. Setup at a glance&lt;/h2&gt;

&lt;h3 id=&quot;51-built-in-teams-phone-agent&quot;&gt;5.1 Built-in Teams Phone Agent&lt;/h3&gt;

&lt;p&gt;Teams Phone admins configure Teams Phone Agent in the &lt;strong&gt;Teams admin center&lt;/strong&gt; under &lt;strong&gt;Voice → Templates &amp;amp; resources → Agents and Queues&lt;/strong&gt;, setting up the Q&amp;amp;A and Appointments tools, conversational routing, holidays, and greetings. Standard Teams Phone prerequisites apply, including a properly configured Teams Phone &lt;strong&gt;resource account&lt;/strong&gt;.&lt;/p&gt;

&lt;h3 id=&quot;52-custom-copilot-studio-agent--hand-off-pattern&quot;&gt;5.2 Custom Copilot Studio agent — hand-off pattern&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Build the voice agent&lt;/strong&gt; in Copilot Studio.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Settings → Generative AI → Orchestration → Classic orchestration&lt;/strong&gt; (generative is not supported here).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Settings → Security → Authentication → No authentication&lt;/strong&gt; (required so callers can reach the agent), then &lt;strong&gt;Save&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Channels → Teams Phone Agent → Add channel&lt;/strong&gt;, wait for confirmation, then &lt;strong&gt;Publish&lt;/strong&gt;. &lt;em&gt;(If the channel option is not visible, your environment is not enabled — see §6.)&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;In the &lt;strong&gt;Teams admin center&lt;/strong&gt;, open your Teams Phone Agent call flow, &lt;strong&gt;Assign a dial key → destination: Agents and Queues&lt;/strong&gt;, enter a voice command and description, optionally link a &lt;strong&gt;Tag template&lt;/strong&gt;, and select your published agent.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Call in to confirm&lt;/strong&gt; the hand-off works.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;53-custom-copilot-studio-agent--direct-dial-pattern&quot;&gt;5.3 Custom Copilot Studio agent — direct-dial pattern&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Teams admin center → Voice → Resource accounts → Add.&lt;/strong&gt; Create a resource account with type &lt;strong&gt;AI Agent&lt;/strong&gt;, with a display name, username, and domain.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;License the resource account.&lt;/strong&gt; In the Microsoft 365 admin center, assign the &lt;strong&gt;Teams Phone Resource Account&lt;/strong&gt; license to that account and let the change propagate.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Link the agent.&lt;/strong&gt; Back in &lt;strong&gt;Resource accounts → Edit&lt;/strong&gt;, set the &lt;strong&gt;Agent Source&lt;/strong&gt; to your Copilot Studio voice agent. Optionally set a &lt;strong&gt;voice routing policy&lt;/strong&gt; and assign a &lt;strong&gt;phone number&lt;/strong&gt; (Calling Plans, Operator Connect, or Direct Routing). Optionally attach a &lt;strong&gt;Tag template&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;PowerShell cmdlets are available for scripted setup.&lt;/li&gt;
&lt;/ol&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;No phone number?&lt;/strong&gt; If you do not assign a phone number to the resource account, only users in your tenant can reach the agent over VoIP via the Teams client.&lt;/p&gt;

&lt;h3 id=&quot;54-using-tags-for-transfers&quot;&gt;5.4 Using Tags for Transfers&lt;/h3&gt;

&lt;p&gt;After attaching a tag template in the Teams admin center, configure the Copilot Studio agent to act on the tag values: add a topic with a “User says a phrase” trigger (for example, “transfer” or “escalate”), ask the caller to choose a department using the tag names as options, then use &lt;strong&gt;Topic Management → Transfer conversation → Transfer to agent&lt;/strong&gt;, passing the caller’s choice as the transfer target. Publish the agent again. The agent can now transfer to the targets defined in your tag template.&lt;/p&gt;

&lt;p class=&quot;warning&quot;&gt;&lt;strong&gt;Environment and regional constraints (Copilot Studio).&lt;/strong&gt; Create the Copilot Studio environment in a &lt;strong&gt;supported region&lt;/strong&gt; (for example, US, UK, Europe, Canada, Australia, Asia, Korea, Norway, Sweden, Switzerland, UAE). Voice agents are not supported in environments in France, Germany, India, Japan, or South Africa — though tenants based in those countries can still use voice agents hosted in a supported region. The Power Platform environment must have &lt;strong&gt;“Get new features early” = No&lt;/strong&gt; and &lt;strong&gt;“Add a Dataverse data store” = Yes&lt;/strong&gt;. Choose the region closest to your callers to minimize latency.&lt;/p&gt;

&lt;h2 id=&quot;6-availability-gating-and-licensing&quot;&gt;6. Availability, gating, and licensing&lt;/h2&gt;

&lt;p&gt;This is firmly a preview, and the access and commercial model matter before any pilot.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Item&lt;/th&gt;
      &lt;th&gt;Current state (June 2026)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Program&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Frontier Public Preview. Both Teams Phone Agent and the Copilot Studio integration entered Frontier Public Preview in mid-June 2026.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Gating&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;The Copilot Studio ↔ Teams Phone integration is &lt;strong&gt;explicitly enabled per tenant&lt;/strong&gt;. Contact &lt;strong&gt;Microsoft support&lt;/strong&gt; to enable it; until then, the Teams Phone channel option does not appear in Copilot Studio.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Teams Phone prerequisites&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Standard Teams Phone prerequisites, including a properly configured resource account and the relevant Teams Phone licenses for your scenario.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Copilot Studio licenses&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A &lt;strong&gt;Copilot Studio tenant license&lt;/strong&gt; (to run and publish agents) and a &lt;strong&gt;Copilot Studio user license&lt;/strong&gt; (to build them).&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Built-in Teams Phone Agent&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Available via the Frontier program; service limitations may apply.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;61-how-custom-agents-are-billed&quot;&gt;6.1 How custom agents are billed&lt;/h3&gt;

&lt;p&gt;Custom Copilot Studio voice agent experiences — whether reached through a Teams Phone Agent handoff or by direct dial — are &lt;strong&gt;billed consumptively&lt;/strong&gt;, at a rate based on the &lt;strong&gt;orchestration type&lt;/strong&gt; your organization selects when building the agent in Copilot Studio.&lt;/p&gt;

&lt;p class=&quot;important&quot;&gt;&lt;strong&gt;Billing timeline.&lt;/strong&gt; Billing for Copilot Studio voice agent experiences in Teams Phone was set to roll out &lt;strong&gt;by early July 2026&lt;/strong&gt;, and usage is &lt;strong&gt;not charged before&lt;/strong&gt; that rollout. When billing goes live, &lt;strong&gt;all Frontier preview users must set up billing&lt;/strong&gt; to keep using Copilot Studio voice agents for Teams Phone. All licensing, pricing, and service limits are subject to change, with more details expected at general availability.&lt;/p&gt;

&lt;h3 id=&quot;62-cost-control-practices&quot;&gt;6.2 Cost-control practices&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Use &lt;strong&gt;classic orchestration&lt;/strong&gt; to avoid unexpected charges and reduce latency.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Scope each agent narrowly&lt;/strong&gt; to the processes it supports — overly broad agents produce unexpected responses and unpredictable costs.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Test thoroughly&lt;/strong&gt; with proper guardrails before exposing an agent to callers; how you build the agent significantly shapes the customer experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;7-an-expanding-ecosystem&quot;&gt;7. An expanding ecosystem&lt;/h2&gt;

&lt;p&gt;Microsoft is positioning this as a platform with &lt;strong&gt;choice across first- and third-party voice agents&lt;/strong&gt;. Alongside first-party Teams Phone Agent and Copilot Studio agents, Microsoft is working with select solution developers to integrate their voice agents with Teams Phone. &lt;strong&gt;AudioCodes announced general availability of its voice agent for Teams Phone&lt;/strong&gt; at launch, with additional solutions expected. Organizations can mix the built-in experience, custom Copilot Studio agents, and certified third-party agents within the same Teams Phone call flows.&lt;/p&gt;

&lt;h2 id=&quot;8-real-world-example--a-phased-pilot&quot;&gt;8. Real-world example — a phased pilot&lt;/h2&gt;

&lt;p&gt;A 40-branch bank wants to reduce hold times on its retail support line without risking a poor first AI experience.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Phase 1 — out-of-the-box only.&lt;/strong&gt; Enable Teams Phone Agent on a single non-critical line. Configure Q&amp;amp;A from published FAQs (hours, locations, card-replacement steps) and conversational routing to existing queues, with context-aware transfer to a human for anything unresolved. No custom build, no consumption billing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Phase 2 — one custom workflow.&lt;/strong&gt; Once the front door is proven, build a single, narrowly scoped Copilot Studio agent for one high-volume task (for example, “report a lost card”) integrated to the system of record, using classic orchestration. Validate the cost against the consumption meter before widening.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Phase 3 — scale and route.&lt;/strong&gt; Use Tags so one agent serves multiple departments, and add after-hours coverage where a human queue previously sent callers to voicemail.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Why this order:&lt;/strong&gt; It separates the zero-cost, no-code value (Phase 1) from the consumption-billed custom value (Phase 2+), so the organization can prove customer experience and measure cost before committing.&lt;/p&gt;

&lt;h2 id=&quot;9-conclusion&quot;&gt;9. Conclusion&lt;/h2&gt;

&lt;p&gt;Teams Phone Agent turns Teams Phone from a routing-and-queueing system into a &lt;strong&gt;conversational AI front door&lt;/strong&gt;. The out-of-the-box experience — Q&amp;amp;A, appointment scheduling, conversational routing, context-aware handoff, and 60+ languages — covers routine calls with no code. Custom Copilot Studio voice agents extend it to the workflows unique to your business, accessible via handoff or direct dial. Underneath, the classic auto attendant and call queue model keeps escalation and after-hours paths intact.&lt;/p&gt;

&lt;p&gt;For now, this is a &lt;strong&gt;gated Frontier preview&lt;/strong&gt; with &lt;strong&gt;consumption-based billing&lt;/strong&gt; for custom agents. The disciplined move is a &lt;strong&gt;scoped pilot&lt;/strong&gt;: pick one high-volume, low-risk flow; deliberately design the happy, escalation, and after-hours paths; confirm the human handoff carries context; and validate cost with classic orchestration before widening. The technology is ready to trial — the discipline is in treating every voice agent as a designed business process, not a switch you flip.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;This article will be revised as the feature set moves toward general availability. Expect changes to gating, regional support, supported agent types, and especially pricing and service limits.&lt;/p&gt;

&lt;h2 id=&quot;glossary---for-those-new-to-teams-phone-and-copilot-studio&quot;&gt;Glossary - for those new to Teams Phone and Copilot Studio&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Term&lt;/th&gt;
      &lt;th&gt;Expansion&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;AI Agent (resource account type)&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A Teams Phone resource account type used to attach a Copilot Studio voice agent directly to a phone number for direct dial.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Auto Attendant (AA)&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A Teams Phone voice application that greets callers and routes them by menu, dial-by-name, or extension, with separate off-hours and holiday handling.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Call Queue (CQ)&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A Teams Phone voice application that holds callers until an agent is available and redirects on overflow, timeout, or agent availability.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Classic orchestration&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;The Copilot Studio orchestration mode required for the Teams Phone channel; uses deterministic topic flows. Generative orchestration is not supported here.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Direct dial&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Pattern where a Copilot Studio voice agent is attached directly to a phone number via a resource account, acting as the first point of contact.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Frontier program&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Microsoft’s early-access program through which Teams Phone Agent and the Copilot Studio integration are currently delivered.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Handoff&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Pattern where Teams Phone Agent passes a call to a custom Copilot Studio voice agent for a specialized workflow.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;IVR&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Interactive Voice Response — the automated voice menu or bot at the start of a call.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;MCS&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Microsoft Copilot Studio — the platform for building custom voice and chat agents.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Resource account&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A licensed, non-user account in Teams Phone to which voice applications (auto attendants, call queues, voice agents) and phone numbers are assigned.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Tags&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A mechanism to pass dynamic transfer information from Teams to a Copilot Studio agent, identifying next steps and transfer targets without hardcoding values.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Teams Phone Agent&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;The configurable, out-of-the-box conversational AI experience for Teams Phone, providing built-in Q&amp;amp;A, appointment, and routing skills.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;sources-and-links-primary&quot;&gt;Sources and Links (primary)&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://techcommunity.microsoft.com/blog/microsoftteamsblog/engage-customers-with-teams-phone-agent-and-custom-voice-agents-built-in-copilot/4526829&quot;&gt;Engage customers with Teams Phone Agent and custom voice agents built in Copilot Studio — Microsoft Teams Blog (June 2026)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/microsoftteams/aa-cq-plan-overview&quot;&gt;Plan — Auto attendants and Call queues overview (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/microsoftteams/aa-cq-plan-teams-phone-agent-agents-queues&quot;&gt;Plan — Agents and Queues for Teams Phone Agent (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/microsoftteams/aa-cq-plan-business-decisions&quot;&gt;Plan — Business decisions for Teams Phone Agent, Auto Attendant, and Call Queue (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/microsoftteams/aa-cq-direct-mcs&quot;&gt;Setup — Direct dial Microsoft Copilot Studio voice agents through Microsoft Teams Phone (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/microsoftteams/aa-cq-setup-teams-phone-agent-agents-queues&quot;&gt;Setup — Teams Phone Agent — Agents and Queues (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/voice-teams-phone-agent&quot;&gt;Integrate voice agents with Teams Phone Agent (preview) — Microsoft Copilot Studio (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/microsoftteams/aa-cq-plan-authorized-users&quot;&gt;Plan — Authorized users for Teams Phone Agent, Auto Attendant, and Call Queue (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</description>
                <pubDate>Sat, 27 Jun 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/teams-phone-agent-copilot-studio</link>
                <guid isPermaLink="true">https://holgerimbery.blog/teams-phone-agent-copilot-studio</guid>
                
                <category>agents</category>
                
                <category>autoattendant</category>
                
                <category>callqueue</category>
                
                <category>copilotstudio</category>
                
                <category>frontier</category>
                
                <category>microsoftteams</category>
                
                <category>teamsphone</category>
                
                <category>voiceagents</category>
                
                
            </item>
        
            <item>
                <title>Understanding Microsoft Power Platform Licensing: A Practitioner&apos;s Reference</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary lede:&lt;/strong&gt; 
Power Platform licensing is now a hybrid of seat-based user licenses, pooled consumption credits, and MAU-based web access, and small architecture choices can materially change total cost. This guide maps the recent changes — Copilot Credits replacing messages, the April 2026 Dataverse accrual figures in the licensing guides, and the expansion of Dynamics 365 Contact Center / Customer Service bundles — into practical sizing and purchasing decisions with source-backed pricing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Why read this article&lt;/strong&gt;
Microsoft’s business-application licensing surface is a three-pillar commercial design that nobody encounters as a single coherent story: &lt;strong&gt;per-user subscriptions&lt;/strong&gt; for the seat-based products (Power Apps, Power Automate, Dynamics 365 apps, Contact Center), &lt;strong&gt;capacity-based consumption metering&lt;/strong&gt; for Dataverse and Copilot Studio Copilot Credits, and &lt;strong&gt;monthly-active-user packs&lt;/strong&gt; for citizen-facing Power Pages portals. The result is that two near-identical projects can land on wildly different invoices depending on a handful of design decisions made by an architect who may never have read a licensing guide.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The last twelve months changed the math in three places that matter:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Dataverse per-user accrual reporting (April 2026 licensing guides).&lt;/strong&gt; The April 2026 Power Platform and Dynamics 365 Licensing Guide PDFs report meaningfully higher per-license accrued storage for Power Apps Premium and several Dynamics 365 SKUs than prior revisions did. Microsoft’s live pricing pages still display the previous per-user figures (e.g., 250 MB DB / 2 GB File for Power Apps Premium) — meaning the guide PDF and the marketing page disagree at the time of writing. This article cites the live pricing page as the conservative number and flags the guide-PDF uplift where it appears. Verify against the current PPLG PDF before sizing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Late 2025 — Copilot Studio “messages” became “Copilot Credits.”&lt;/strong&gt; The meter was renamed and the per-event rates revised. Copilot Credits now pool across Copilot Studio agents AND the AI agents shipped inside Dynamics 365 Contact Center, Customer Service, and (per Microsoft messaging at the time of the rebrand) Sales-side AI agents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;2024–2026 — Dynamics 365 Contact Center as a standalone, CRM-agnostic CCaaS SKU&lt;/strong&gt;, plus the &lt;strong&gt;Customer Service Premium&lt;/strong&gt; bundle ($195/user/month = Customer Service Enterprise + Contact Center).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This article is the reference that ties the structural decisions to the line items. Every numeric claim has a source URL. Every section closes with a real-world example that shows why a customer would choose one option over another. Read this before sizing a Power Platform deployment, scoping a Copilot Studio agent, or negotiating a Dynamics 365 renewal.&lt;/p&gt;

&lt;p class=&quot;important&quot;&gt;&lt;strong&gt;Confidence note.&lt;/strong&gt; Prices and entitlements published on Microsoft’s own public pricing pages are HIGH confidence at the time of writing. The following are MODERATE confidence and should be re-verified against the current Microsoft Licensing Guide PDFs before any commercial commitment:&lt;br /&gt;
(a) per-user Dataverse accrual figures from the April 2026 Power Platform / Dynamics 365 Licensing Guides where they exceed the live pricing-page figures;&lt;br /&gt;
(b) Copilot Studio Copilot Credit per-event billing rates (the meter was rebranded in late 2025 and the published rates have moved);&lt;br /&gt;
(c) Customer Service Enterprise omnichannel add-in USD list prices — confirmed via Microsoft community channels and partner aggregators, not the public pricing page;&lt;br /&gt;
(d) the Premium step-up SKU reported as introduced in March 2026. Treat MODERATE-confidence items as anchors for a discussion with your Microsoft account team or CSP partner, not as final quoted prices.&lt;/p&gt;

&lt;p class=&quot;note&quot;&gt;&lt;strong&gt;Scope.&lt;/strong&gt; This article covers Power Apps, Power Automate, Power Pages, Microsoft Copilot Studio, Microsoft Dataverse, Dynamics 365 Contact Center, and Dynamics 365 Customer Service. The following are deliberately out of scope and are NOT addressed: Power BI (separate Pro / PPU / Premium licensing model), Dynamics 365 Sales, Field Service, Business Central, Finance, Supply Chain Management, Project Operations, Commerce, Customer Insights – Data, Customer Insights – Journeys, Industry Clouds, and Microsoft Fabric. Government cloud SKUs (GCC, GCC High, DoD), Education (A-SKUs), and Nonprofit pricing are referenced only briefly in §6.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-power-platform-core&quot;&gt;1. Power Platform (Core)&lt;/h2&gt;

&lt;h3 id=&quot;11-power-apps&quot;&gt;1.1 Power Apps&lt;/h3&gt;

&lt;p&gt;Power Apps in 2026 has three commercial purchase paths and one free developer path.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;SKU&lt;/th&gt;
      &lt;th&gt;List price (USD)&lt;/th&gt;
      &lt;th&gt;Entitlement&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Apps Premium&lt;/strong&gt; (per user)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$20 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Unlimited custom canvas + model-driven apps and Power Pages portals (run-time). Includes Premium connectors, custom connectors, on-prem data gateway, and &lt;strong&gt;250 MB Dataverse database + 2 GB Dataverse file accrued capacity per user&lt;/strong&gt; as displayed on the live Power Apps pricing page. The April 2026 Power Platform Licensing Guide PDF reports a higher figure — see §3.2 for the discrepancy and how to read it.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Apps per App&lt;/strong&gt; (per user per app)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$5 / user / app / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;One app or one portal per “pass.” Dataverse is limited to that app’s scope: 50 MB DB / 400 MB file per user per pass. 5-pack minimum has been removed.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Apps Pay-as-you-go&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$10 per active user per app / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Consumption-billed through an Azure subscription. An “active user” is any user who launches the app within a calendar month.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Apps Developer Plan&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Free&lt;/td&gt;
      &lt;td&gt;Build/test against a personal developer environment; no production rights.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Sources: &lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-apps/pricing&quot;&gt;Power Apps pricing&lt;/a&gt;, &lt;a href=&quot;https://go.microsoft.com/fwlink/?linkid=2085130&quot;&gt;Power Platform Licensing Guide April 2026 (PDF)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Per-App SKU status flag.&lt;/strong&gt; Microsoft announced &lt;strong&gt;end-of-sale of the Power Apps per App SKU on January 2, 2026&lt;/strong&gt; for new commercial customers. In &lt;strong&gt;early April 2026&lt;/strong&gt;, Microsoft reversed and reinstated the per-App SKU on the public price list. The April 2026 licensing guide reflects per-App as a current offer. This is the kind of change a future revision of this article will capture in the changelog.&lt;/p&gt;

&lt;h4 id=&quot;standard-vs-premium-connectors--the-core-licensing-fault-line&quot;&gt;Standard vs Premium connectors — the core licensing fault line&lt;/h4&gt;

&lt;p&gt;Microsoft splits its 1,500+ certified connectors into two classes, enforced both at the connection-add step and at runtime (&lt;a href=&quot;https://learn.microsoft.com/en-us/connectors/connector-reference/&quot;&gt;connector reference&lt;/a&gt;):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Standard connectors&lt;/strong&gt; — included with any Microsoft 365 / Office 365 commercial plan. Examples: SharePoint, Outlook 365, OneDrive for Business, Teams, Excel Online Business, Planner, Dataverse for Teams.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Premium connectors&lt;/strong&gt; — require a paid Power Apps / Power Automate license, a per-app pass, or PAYG. Examples: &lt;strong&gt;SQL Server, Azure SQL, Dataverse (full), HTTP, all custom connectors, all third-party SaaS connectors&lt;/strong&gt; (Salesforce, SAP, Oracle, ServiceNow, Workday, Zendesk).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The moment an app or a flow touches one Premium connector, every user of that app or flow needs a Premium license. There is no “occasional use” carve-out.&lt;/p&gt;

&lt;h4 id=&quot;seeded-microsoft-365--office-365-entitlements&quot;&gt;Seeded Microsoft 365 / Office 365 entitlements&lt;/h4&gt;

&lt;p&gt;Every commercial M365 plan (Business Basic/Standard/Premium, E3, E5, F3, A3, A5, G3, G5) grants:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Power Apps for Office 365&lt;/strong&gt; — build/run canvas apps using &lt;strong&gt;Standard connectors only&lt;/strong&gt;; no access to full Dataverse.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Power Automate for Office 365&lt;/strong&gt; — cloud flows using Standard connectors only, with &lt;strong&gt;6,000 API requests per user per 24 hours&lt;/strong&gt; (&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/api-request-limits-allocations&quot;&gt;API request limits and allocations&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These rights specifically exclude full Dataverse, all Premium and custom connectors, the on-prem data gateway, and AI Builder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Microsoft 365 F-series caveat.&lt;/strong&gt; F1 and F3 (Frontline) plans grant &lt;em&gt;reduced&lt;/em&gt; seeded Power Platform rights compared with E3/E5: F1 has effectively no app-authoring entitlement, and F3 includes canvas + Standard connectors with tighter API limits. Architects planning frontline-worker deployments cannot assume the same entitlements that appear in E-series guidance.&lt;/p&gt;

&lt;h4 id=&quot;real-world-example--premium-vs-per-app&quot;&gt;Real-world example — Premium vs per App&lt;/h4&gt;

&lt;p&gt;A 500-employee manufacturer deploys three line-of-business Power Apps (HSE incident reporting, plant visitor management, asset-walk inspection), each connecting to Dataverse and Azure SQL.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Premium path:&lt;/strong&gt; 500 × $20 = &lt;strong&gt;$10,000 / month&lt;/strong&gt;. Every user can run all three apps and any future apps.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Per-App path:&lt;/strong&gt; Three apps × $5 × 500 = $7,500 / month — &lt;strong&gt;only if every user uses every app&lt;/strong&gt;. If usage is segmented — 200 users on HSE, 300 on visitor management, 100 on asset-walk — the math becomes (200 + 300 + 100) × $5 = &lt;strong&gt;$3,000 / month&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rule of thumb:&lt;/strong&gt; Premium wins when most users run most apps. Per-App wins when usage is role-segmented and the user count per app is well below the total workforce.&lt;/p&gt;

&lt;h3 id=&quot;12-power-automate&quot;&gt;1.2 Power Automate&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;SKU&lt;/th&gt;
      &lt;th&gt;List price (USD)&lt;/th&gt;
      &lt;th&gt;Entitlement&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Automate Premium&lt;/strong&gt; (per user)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$15 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Unlimited cloud flows with Premium connectors, &lt;strong&gt;one attended RPA bot&lt;/strong&gt; (desktop flow in attended mode), Process Mining (basic), AI Builder credits pool access (until November 2026). 40,000 API requests / user / 24 h.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Automate Process&lt;/strong&gt; (per flow / per bot)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$150 / bot or flow / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;One unattended RPA bot OR one cloud flow that any user in the org may trigger. Service-account license for shared automations.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Automate Hosted Process&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$215 / bot / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Microsoft-hosted Windows VM for unattended desktop flows — no on-prem machine required. Includes one Process license.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Automate Pay-as-you-go&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$0.60 per cloud flow run&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Azure-billed. Suitable for low-frequency, high-variance workloads.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Process Mining add-on&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$5,000 / tenant / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Enterprise Process Mining for &amp;gt;5 process maps or unlimited records.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Sources: &lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-automate/pricing&quot;&gt;Power Automate pricing&lt;/a&gt;, &lt;a href=&quot;https://go.microsoft.com/fwlink/?linkid=2085130&quot;&gt;Power Platform Licensing Guide April 2026&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;real-world-example--process-vs-hosted-process&quot;&gt;Real-world example — Process vs Hosted Process&lt;/h4&gt;

&lt;p&gt;A finance team runs an unattended nightly bot that reconciles bank statements with ERP entries. The bot runs on a corporate VDI that is patched weekly, resulting in 1–2 missed runs per month. Moving to &lt;strong&gt;Hosted Process at $215 / bot / month&lt;/strong&gt; eliminates the VDI dependency and adds Microsoft-managed patching, RDP brokering, and elastic capacity. ROI breaks even at one prevented missed reconciliation per month.&lt;/p&gt;

&lt;h3 id=&quot;13-power-pages&quot;&gt;1.3 Power Pages&lt;/h3&gt;

&lt;p&gt;Power Pages (the renamed Power Apps Portals) is licensed by &lt;strong&gt;monthly active users (MAU) per site&lt;/strong&gt;. A MAU is a unique identity that loads any Power Pages page within a calendar month. Authenticated MAUs sign in (Entra ID, Entra External ID / B2C, Microsoft account, LinkedIn, etc.); anonymous MAUs are unauthenticated public visitors. Search-engine crawlers are not counted (&lt;a href=&quot;https://learn.microsoft.com/en-us/power-pages/admin/about-capacity-licensing&quot;&gt;Power Pages capacity licensing&lt;/a&gt;).&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;SKU&lt;/th&gt;
      &lt;th&gt;List price (USD)&lt;/th&gt;
      &lt;th&gt;Entitlement&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Authenticated Users capacity pack&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$200 / site / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;100 authenticated MAUs / site / month. Overage: $2 / MAU.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Anonymous Users capacity pack&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$75 / site / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;500 anonymous MAUs / site / month. Overage: $0.30 / MAU.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Power Pages PAYG&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;$2 / authenticated MAU; $0.30 / anonymous MAU&lt;/td&gt;
      &lt;td&gt;Azure-billed; no monthly minimum.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Source: &lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-pages/pricing&quot;&gt;Power Pages pricing&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;real-world-example--power-pages-mau-math&quot;&gt;Real-world example — Power Pages MAU math&lt;/h4&gt;

&lt;p&gt;A municipality launches a citizen-permit portal expected to draw &lt;strong&gt;8,000 anonymous monthly active users&lt;/strong&gt; (unique visitors who load any page in the month) and &lt;strong&gt;2,400 authenticated MAUs&lt;/strong&gt; (unique citizens who sign in to file a permit application).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Capacity packs: 16 × Anonymous (16 × 500 = 8,000 anon MAU, $75 × 16 = $1,200) + 24 × Authenticated (24 × 100 = 2,400 auth MAU, $200 × 24 = $4,800) = &lt;strong&gt;$6,000 / month&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;PAYG: 8,000 × $0.30 + 2,400 × $2 = &lt;strong&gt;$7,200 / month&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Capacity packs win at steady volumes; PAYG wins for unpredictable spikes. Note that an authenticated MAU is a &lt;em&gt;unique signed-in identity per month&lt;/em&gt;, not a session or a page view — repeat visits by the same citizen do not increment the count.&lt;/p&gt;

&lt;h3 id=&quot;14-tenant-environment-and-api-entitlements&quot;&gt;1.4 Tenant environment and API entitlements&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Default environment.&lt;/strong&gt; Each tenant receives one default environment provisioned with &lt;strong&gt;3 GB Dataverse database, 3 GB file, and 1 GB log&lt;/strong&gt; capacity (&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/capacity-storage&quot;&gt;Dataverse capacity storage&lt;/a&gt;). Production and sandbox environments draw from the tenant Dataverse pool. No hard cap on environment count, but each consumes from the shared pool (&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/environments-overview&quot;&gt;environments overview&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Developer environment.&lt;/strong&gt; Every user with any seeded or paid license automatically receives a personal developer environment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;API request entitlements&lt;/strong&gt; (per user per 24h, with overage pooled at tenant level): Premium Power Apps / Premium Power Automate / D365 Enterprise users get &lt;strong&gt;40,000 requests / user / 24 h&lt;/strong&gt;; per-App users get &lt;strong&gt;6,000&lt;/strong&gt;; Microsoft 365–seeded users get &lt;strong&gt;6,000 / user / 24 h&lt;/strong&gt; for Standard-connector usage. Excess returns HTTP 429 but does not auto-bill; the &lt;strong&gt;Power Platform Requests add-on&lt;/strong&gt; raises the tenant limit by 50,000 requests / 24 h (the $50 / month figure is widely partner-quoted but is not on the public allocations page — confirm before quoting) (&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/api-request-limits-allocations&quot;&gt;API request limits and allocations&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;When the Requests add-on actually matters.&lt;/strong&gt; High-volume Power Automate scenarios are typically triggered by child-flow fan-out patterns, integration flows polling HTTP endpoints on a short cadence, large-scale Dataverse data movement, and any flow making many connector calls per run. If your monitoring shows users approaching the daily cap or HTTP 429s in the flow run history, the add-on is the supported answer.&lt;/p&gt;

&lt;h3 id=&quot;15-managed-environments-and-governance-licensing&quot;&gt;1.5 Managed Environments and Governance Licensing&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Managed Environments&lt;/strong&gt; is Microsoft’s governance overlay for Power Platform environments — it surfaces DLP enforcement, sharing limits, weekly digests, Power Platform Pipelines, solution checker enforcement, and “Maker welcome content.” Managed Environments has &lt;strong&gt;no separate SKU price&lt;/strong&gt;, but it gates feature access by &lt;em&gt;user-license type&lt;/em&gt;: every user accessing a Managed Environment must hold a &lt;strong&gt;Power Apps Premium&lt;/strong&gt;, &lt;strong&gt;Power Automate Premium&lt;/strong&gt;, &lt;strong&gt;Power Pages&lt;/strong&gt;, or qualifying &lt;strong&gt;Dynamics 365&lt;/strong&gt; license (&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/managed-environment-overview&quot;&gt;about Managed Environments&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The practical consequence: a tenant that adopted Managed Environments for governance reasons cannot mix-and-match M365-seeded users into the same environment. This is the most common reason a sizing exercise sized for “Premium for makers, M365 seeded for everyone else” needs to be re-priced upward.&lt;/p&gt;

&lt;h3 id=&quot;16-trial-developer-and-non-production-licenses&quot;&gt;1.6 Trial, Developer, and non-production licenses&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;30-day trials&lt;/strong&gt; are available for Power Apps Premium and Power Automate Premium. Trials convert to paid via the Microsoft 365 admin center or your CSP / EA channel.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Power Apps Developer Plan&lt;/strong&gt; (free) replaces the retired Power Apps Community Plan. It provides a personal developer environment for build/test, with &lt;strong&gt;no production rights and no commercial use&lt;/strong&gt;. Each user with any paid or seeded license is automatically entitled to a developer environment (&lt;a href=&quot;https://powerapps.microsoft.com/en-us/developerplan/&quot;&gt;Developer Plan&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dynamics 365 30-day trials&lt;/strong&gt; are available for each base SKU. Customer Service Premium and Contact Center trials are tenant-bound; voice channel usage during trial incurs ACS pass-through charges if a phone number is provisioned.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;2-microsoft-copilot-studio&quot;&gt;2. Microsoft Copilot Studio&lt;/h2&gt;

&lt;p&gt;Copilot Studio is licensed by &lt;strong&gt;Copilot Credit consumption&lt;/strong&gt;, which replaced the legacy “message” terminology in late 2025. Credits pool at the tenant level and are consumed FIFO across &lt;strong&gt;all Copilot Studio agents, all environments, and bundled Dynamics 365 AI agents&lt;/strong&gt;. Microsoft documentation consistently references the Contact Center and Customer Service AI agents (Customer Intent, Customer Knowledge, Quality Evaluation) as drawing from the same credit pool. Sales-side AI agents are referenced in Microsoft messaging as participating in the pooled meter (MODERATE confidence — verify on the Dynamics 365 Sales pricing page).&lt;/p&gt;

&lt;h3 id=&quot;21-commercial-models&quot;&gt;2.1 Commercial models&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;SKU&lt;/th&gt;
      &lt;th&gt;List price (USD)&lt;/th&gt;
      &lt;th&gt;Entitlement&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Copilot Studio Pre-Purchase Plan&lt;/strong&gt; (Tenant Message Pack)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$200 / month for 25,000 Copilot Credits&lt;/strong&gt; (≈ $0.008 / credit)&lt;/td&gt;
      &lt;td&gt;Annual commitment; up to &lt;strong&gt;20% discount&lt;/strong&gt; vs PAYG.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Copilot Studio Pay-as-you-go&lt;/strong&gt; (Azure-billed)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$0.01 / Copilot Credit&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;No commitment; Azure subscription required.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;M365 Copilot included usage&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Zero-rated for licensed M365 Copilot users&lt;/td&gt;
      &lt;td&gt;When agents are invoked through M365 Copilot Chat or Teams by a user holding the $30 / user / month M365 Copilot license, no tenant credits are drawn (“B2E zero-rated path”).&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Agent Pre-Purchase Plan&lt;/strong&gt; (Azure Reservation)&lt;/td&gt;
      &lt;td&gt;Up to 20% off PAYG&lt;/td&gt;
      &lt;td&gt;Credits apply across all Copilot Studio agents AND Dynamics 365 agents.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Sources: &lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-copilot/microsoft-copilot-studio/pricing&quot;&gt;Copilot Studio pricing&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-pre-purchase-pricing&quot;&gt;Copilot Credits pre-purchase&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-licensing-microsoft-copilot-included&quot;&gt;M365 Copilot included entitlement&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;22-copilot-credit-billing-rates&quot;&gt;2.2 Copilot Credit billing rates&lt;/h3&gt;

&lt;p&gt;Per the April 2026 Copilot Studio Licensing Guide and the &lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-messages-capacity&quot;&gt;Copilot Studio billing-rates page&lt;/a&gt;:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Event&lt;/th&gt;
      &lt;th&gt;Credits consumed&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Classic answer&lt;/strong&gt; (deterministic topic flow, no LLM)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Generative answer&lt;/strong&gt; (RAG over indexed knowledge sources)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Agent action / tool call&lt;/strong&gt; (Power Automate flow, REST connector)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Tenant Microsoft Graph grounding&lt;/strong&gt; (employee context)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;10&lt;/strong&gt; (reported reduced from 30 before the rebrand)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Voice&lt;/strong&gt; (per minute)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;13&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Autonomous action&lt;/strong&gt; (event-triggered, no user prompt)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;25&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p class=&quot;warning&quot;&gt;&lt;strong&gt;Confidence note.&lt;/strong&gt; Per-event credit rates were revised when Microsoft rebranded “messages” to “Copilot Credits” in late 2025; the table above reflects the rates reported in the April 2026 licensing guide but has not been independently verified at the time of writing. The Microsoft Learn billing-rates page is authoritative — confirm before sizing a deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Capacity pooling.&lt;/strong&gt; All credits pool at the tenant level. Overage on the Pre-Purchase Plan rolls onto PAYG automatically unless the admin disables overflow.&lt;/p&gt;

&lt;h3 id=&quot;221-ai-builder--current-state-and-sunset&quot;&gt;2.2.1 AI Builder — current state and sunset&lt;/h3&gt;

&lt;p&gt;While AI Builder remains on price lists, it serves form processing / document automation, prediction models, sentiment analysis, and category classification scenarios — distinct from Copilot Studio agent invocations. Legacy AI Builder credits at &lt;strong&gt;$500 per 1 million service credits&lt;/strong&gt; are scheduled to be &lt;strong&gt;retired in November 2026&lt;/strong&gt; and consolidated under the Copilot Credit meter. Customers with active AI Builder add-ons can use them until renewal; net-new deployments after the retirement date will provision Copilot Credits instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;During the transition (now through November 2026):&lt;/strong&gt; if a workload is predominantly document processing, AI Builder may still be the more economical SKU. If it mixes document processing with conversational agents, Copilot Credits are the forward-compatible path. Re-check the current Copilot Studio Licensing Guide before committing to either (&lt;a href=&quot;https://go.microsoft.com/fwlink/?linkid=2243406&quot;&gt;Copilot Studio Licensing Guide April 2026 (PDF)&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&quot;23-whats-included-with-microsoft-365-copilot-vs-what-requires-copilot-studio&quot;&gt;2.3 What’s included with Microsoft 365 Copilot vs what requires Copilot Studio&lt;/h3&gt;

&lt;p&gt;There are &lt;strong&gt;three distinct user-license states&lt;/strong&gt; that affect how a Copilot Studio agent is billed:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Capability&lt;/th&gt;
      &lt;th&gt;M365 Copilot ($30 / user / month)&lt;/th&gt;
      &lt;th&gt;M365 Copilot Chat (free tier)&lt;/th&gt;
      &lt;th&gt;Copilot Studio (credits)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Out-of-box Copilot Chat in Word/Excel/PowerPoint/Outlook/Teams&lt;/td&gt;
      &lt;td&gt;Included&lt;/td&gt;
      &lt;td&gt;Limited (web grounding only; no tenant data)&lt;/td&gt;
      &lt;td&gt;n/a&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Microsoft Graph grounding for the &lt;em&gt;user’s own&lt;/em&gt; M365 content&lt;/td&gt;
      &lt;td&gt;Included&lt;/td&gt;
      &lt;td&gt;Not included&lt;/td&gt;
      &lt;td&gt;n/a&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Invoking a custom agent published in M365 Copilot / Teams (B2E)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Zero-rated&lt;/strong&gt; (no tenant credits drawn)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;Metered to tenant Copilot Credits&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;n/a&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Building a custom agent in Copilot Studio&lt;/td&gt;
      &lt;td&gt;Not included&lt;/td&gt;
      &lt;td&gt;Not included&lt;/td&gt;
      &lt;td&gt;Required&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Publishing a custom agent to a custom channel (web embed, Direct Line, WhatsApp, Slack, etc.)&lt;/td&gt;
      &lt;td&gt;Not included&lt;/td&gt;
      &lt;td&gt;Not included&lt;/td&gt;
      &lt;td&gt;Required — credits consumed&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Anonymous public web chat (B2C)&lt;/td&gt;
      &lt;td&gt;Not included&lt;/td&gt;
      &lt;td&gt;Not included&lt;/td&gt;
      &lt;td&gt;Required — credits consumed regardless of user M365 Copilot status&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p class=&quot;important&quot;&gt;&lt;strong&gt;The free-tier surprise.&lt;/strong&gt; A tenant that rolls out Microsoft 365 Copilot Chat broadly without buying the $30 M365 Copilot license will see agent invocations from those users &lt;strong&gt;draw against tenant Copilot Credits&lt;/strong&gt; rather than being zero-rated. The economics flip at the M365 Copilot license boundary, not at the Copilot Chat boundary. Plan B2E credit budgets accordingly.&lt;/p&gt;

&lt;h3 id=&quot;24-role-specific-copilots--sales-and-service&quot;&gt;2.4 Role-specific Copilots — Sales and Service&lt;/h3&gt;

&lt;p&gt;Distinct from Copilot Studio agents and from the in-Customer-Service Copilot, Microsoft also sells two &lt;strong&gt;role-overlay Copilot SKUs&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft 365 Copilot for Sales&lt;/strong&gt; — overlays M365 Copilot with a Sales-side experience that surfaces CRM context in Outlook and Teams, supports both Dynamics 365 Sales and Salesforce as the system of record.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft 365 Copilot for Service&lt;/strong&gt; — equivalent for Service scenarios, integrating with Dynamics 365 Customer Service and ServiceNow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each is a &lt;strong&gt;per-user seat license&lt;/strong&gt; with pricing reported around the $50 / user / month range (MODERATE confidence — verify against the current Microsoft 365 Copilot pricing page). These SKUs are &lt;strong&gt;not&lt;/strong&gt; the same as Copilot Studio credits and are &lt;strong&gt;not&lt;/strong&gt; consumed from the tenant credit pool — they are flat per-user subscriptions.&lt;/p&gt;

&lt;h3 id=&quot;25-real-world-example--pre-purchase-vs-payg-break-even&quot;&gt;2.5 Real-world example — Pre-Purchase vs PAYG break-even&lt;/h3&gt;

&lt;p&gt;A retail customer expects 50,000 generative answers and 5,000 agent actions per month.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Credits required: 50,000 × 2 + 5,000 × 5 = &lt;strong&gt;125,000 credits / month&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;PAYG cost: 125,000 × $0.01 = &lt;strong&gt;$1,250 / month&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Pre-Purchase: 5 × $200 packs = &lt;strong&gt;$1,000 / month&lt;/strong&gt; for 125,000 credits — exactly the advertised 20% discount.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Rule of thumb:&lt;/strong&gt; Above ~25,000 credits / month, Pre-Purchase always wins.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;3-microsoft-dataverse&quot;&gt;3. Microsoft Dataverse&lt;/h2&gt;

&lt;p&gt;Dataverse is the relational data backbone behind model-driven Power Apps and Dynamics 365. It is licensed as a &lt;strong&gt;shared, tenant-level capacity pool&lt;/strong&gt; measured in three buckets — &lt;strong&gt;Database&lt;/strong&gt; (relational rows), &lt;strong&gt;File&lt;/strong&gt; (attachments / images / blobs), and &lt;strong&gt;Log&lt;/strong&gt; (audit trail). Every Power Apps / Power Automate / Dynamics 365 license contributes per-user accrued capacity to the same shared pool, on top of a one-time tenant default.&lt;/p&gt;

&lt;h3 id=&quot;31-default-tenant-entitlement&quot;&gt;3.1 Default tenant entitlement&lt;/h3&gt;

&lt;p&gt;The first eligible subscription provisioned in a tenant grants a &lt;strong&gt;one-time tenant-level default&lt;/strong&gt; (long-standing licensing-guide figure: &lt;strong&gt;10 GB Database, 20 GB File, 2 GB Log&lt;/strong&gt;). This is not per subscription — purchasing a second Power Apps Premium or Dynamics 365 SKU does NOT double the default. The per-environment default (3 GB DB / 3 GB File / 1 GB Log for the default environment) is separate. Verify both figures against the current licensing guide (&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/capacity-storage&quot;&gt;Dataverse capacity storage&lt;/a&gt;).&lt;/p&gt;

&lt;h3 id=&quot;32-per-license-accrued-capacity&quot;&gt;3.2 Per-license accrued capacity&lt;/h3&gt;

&lt;p&gt;Dataverse per-user accrual is reported in two places that currently disagree at the time of writing: Microsoft’s live pricing pages (the conservative numbers below) and the April 2026 Power Platform / Dynamics 365 Licensing Guide PDFs (which report larger figures for several SKUs, attributed to a late-2025 uplift). The table below shows the &lt;strong&gt;live pricing-page values&lt;/strong&gt; with the licensing-guide PDF figure noted where it differs.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;License&lt;/th&gt;
      &lt;th&gt;DB accrued (live pricing page)&lt;/th&gt;
      &lt;th&gt;File accrued (live pricing page)&lt;/th&gt;
      &lt;th&gt;Licensing Guide PDF reports&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Power Apps Premium&lt;/td&gt;
      &lt;td&gt;250 MB / user&lt;/td&gt;
      &lt;td&gt;2 GB / user&lt;/td&gt;
      &lt;td&gt;Reported as substantially higher in the April 2026 PPLG PDF (figures circulating in partner channels reference 20 GB DB / user as the post-uplift number) — &lt;strong&gt;verify against current PPLG PDF before sizing&lt;/strong&gt;.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Power Apps per App pass&lt;/td&gt;
      &lt;td&gt;50 MB / user / pass&lt;/td&gt;
      &lt;td&gt;400 MB / user / pass&lt;/td&gt;
      &lt;td&gt;Per the April 2026 PPLG.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Power Automate Premium&lt;/td&gt;
      &lt;td&gt;250 MB / user&lt;/td&gt;
      &lt;td&gt;2 GB / user&lt;/td&gt;
      &lt;td&gt;Per the live Power Automate pricing page.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Power Automate Process / Hosted Process&lt;/td&gt;
      &lt;td&gt;50 MB / flow or bot&lt;/td&gt;
      &lt;td&gt;200 MB / flow or bot&lt;/td&gt;
      &lt;td&gt;Per the live Power Automate pricing page.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Dynamics 365 Sales / Customer Service / Field Service / Contact Center Enterprise&lt;/td&gt;
      &lt;td&gt;Live pages show entitlement; PPLG reports up to &lt;strong&gt;30 GB / user DB&lt;/strong&gt; (uplift)&lt;/td&gt;
      &lt;td&gt;Up to 30 GB / user File (uplift)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;MODERATE confidence&lt;/strong&gt;; verify against current PPLG PDF.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Dynamics 365 Finance / SCM / Project Operations / Commerce&lt;/td&gt;
      &lt;td&gt;PPLG reports up to &lt;strong&gt;90 GB / user DB&lt;/strong&gt; (uplift)&lt;/td&gt;
      &lt;td&gt;Up to 80 GB / user File (uplift)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;MODERATE confidence&lt;/strong&gt;; verify against current PPLG PDF.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Dynamics 365 Business Central Premium&lt;/td&gt;
      &lt;td&gt;4 GB / user&lt;/td&gt;
      &lt;td&gt;4 GB / user&lt;/td&gt;
      &lt;td&gt;Per the April 2026 D365 Licensing Guide.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Dynamics 365 Team Members&lt;/td&gt;
      &lt;td&gt;250 MB / user&lt;/td&gt;
      &lt;td&gt;2 GB / user&lt;/td&gt;
      &lt;td&gt;Per the April 2026 D365 Licensing Guide.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Sources: &lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-apps/pricing&quot;&gt;Power Apps pricing&lt;/a&gt;; &lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-automate/pricing&quot;&gt;Power Automate pricing&lt;/a&gt;; &lt;a href=&quot;https://go.microsoft.com/fwlink/?linkid=2085130&quot;&gt;Power Platform Licensing Guide April 2026 (PDF)&lt;/a&gt;; &lt;a href=&quot;https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/microsoft/bade/documents/products-and-services/en-us/bizapps/Dynamics-365-Licensing-Deck-March-2026-PUB.pdf&quot;&gt;Dynamics 365 Licensing Deck March 2026 (PDF)&lt;/a&gt;.&lt;/p&gt;

&lt;p class=&quot;important&quot;&gt;&lt;strong&gt;Pricing-page vs Licensing Guide disagreement.&lt;/strong&gt; At the time of writing, the public Power Apps pricing page reports 250 MB DB + 2 GB File per Premium user, while the April 2026 Power Platform Licensing Guide PDF reports higher per-user accruals. Sizing should be based on the figures the customer is contractually entitled to under the licensing-guide PDF in force at the time of purchase — confirm with your Microsoft account team or CSP partner before signing.&lt;/p&gt;

&lt;h3 id=&quot;33-capacity-add-ons&quot;&gt;3.3 Capacity add-ons&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Add-on&lt;/th&gt;
      &lt;th&gt;List price (USD)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Dataverse Database Capacity&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$40 / GB / month&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Dataverse File Capacity&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$2 / GB / month&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Dataverse Log Capacity&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$10 / GB / month&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Capacity is purchased per tenant and allocated across environments by an admin in the Power Platform admin center.&lt;/p&gt;

&lt;h3 id=&quot;34-dataverse-for-teams-vs-full-dataverse&quot;&gt;3.4 Dataverse for Teams vs full Dataverse&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dataverse for Teams&lt;/strong&gt; is a constrained Dataverse instance bundled with &lt;strong&gt;any Microsoft 365 plan that includes Teams&lt;/strong&gt; (Business Basic and above, E1+, F3, A1+, G1+). It exists to make canvas Power Apps inside Teams feasible without buying Premium (&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/about-teams-environment&quot;&gt;about Teams environment&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Limits:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;2 GB capacity per Teams environment&lt;/strong&gt; (auto-provisioned per Team that adds a Power App).&lt;/li&gt;
  &lt;li&gt;Maximum &lt;strong&gt;5 GB per environment after upgrade&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;No Premium connectors, no custom connectors, no external API integrations&lt;/strong&gt; outside Teams. No advanced security roles. No model-driven apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An admin can &lt;strong&gt;upgrade a Dataverse-for-Teams environment to a full Dataverse production environment&lt;/strong&gt;, at which point Premium licensing rules apply and the per-user accrued capacity is added to the tenant pool. This is a one-way upgrade.&lt;/p&gt;

&lt;h3 id=&quot;35-real-world-example--dataverse-capacity-math&quot;&gt;3.5 Real-world example — Dataverse capacity math&lt;/h3&gt;

&lt;p&gt;A 200-user Dynamics 365 Customer Service Enterprise tenant in 2026, using the licensing-guide-PDF per-user figures (30 GB DB / 30 GB File per Enterprise CRM user):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Default + accrued DB = 10 GB (tenant default) + 200 × 30 GB (accrued) = &lt;strong&gt;6,010 GB Database&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;File = 20 GB + 200 × 30 GB = &lt;strong&gt;6,020 GB File&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the older 10 GB per-user accrual, the same tenant would have entitled 10 + 200 × 10 = &lt;strong&gt;2,010 GB DB&lt;/strong&gt; — meaningfully less, and historically the line item that drove Dataverse capacity overage billing for mid-market CRM customers.&lt;/p&gt;

&lt;p class=&quot;warning&quot;&gt;&lt;strong&gt;Confidence note for §3.5.&lt;/strong&gt; The 30 GB/user figure is reported in the April 2026 Dynamics 365 Licensing Guide PDF but is not displayed on the public Dynamics 365 Customer Service pricing page. Treat the “6,010 GB DB” headline as MODERATE confidence and re-verify against the current PDF before using it for budget planning. Customers below the headline number can still hit overage if the file or Log capacity is consumed disproportionately (audit-heavy compliance scenarios, high-attachment-volume case management).&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;4-copilot-studio-with-dynamics-365-contact-center&quot;&gt;4. Copilot Studio with Dynamics 365 Contact Center&lt;/h2&gt;

&lt;p&gt;In 2024, Microsoft repositioned the omnichannel pieces of Customer Service as a &lt;strong&gt;CRM-agnostic Contact Center as a Service&lt;/strong&gt; offering. The strategic intent: sell a “Copilot-first” CCaaS to organizations whose system of record is Salesforce, ServiceNow, Zendesk, or anything else — not just Dynamics 365.&lt;/p&gt;

&lt;h3 id=&quot;41-dynamics-365-contact-center-skus&quot;&gt;4.1 Dynamics 365 Contact Center SKUs&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;SKU&lt;/th&gt;
      &lt;th&gt;List price (USD)&lt;/th&gt;
      &lt;th&gt;Entitlement&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Dynamics 365 Contact Center&lt;/strong&gt; (full)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$110 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Digital + voice channels, unified routing, Copilot in service representative desktop, integrations with Salesforce / Dynamics 365 / ServiceNow / Zendesk. &lt;strong&gt;AI agents&lt;/strong&gt; (Customer Intent, Customer Knowledge, Quality Evaluation) &lt;strong&gt;require Copilot Credits sold separately&lt;/strong&gt;.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Dynamics 365 Contact Center Digital&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$95 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Digital messaging and chat channels only; no voice.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Dynamics 365 Contact Center Voice&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$95 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Native voice channel only; no digital messaging.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Promotional discount&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;40% off, Oct 1, 2025 → Jun 30, 2026&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;EA / CSP only; not stackable.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Source: &lt;a href=&quot;https://www.microsoft.com/en-us/dynamics-365/products/contact-center/pricing&quot;&gt;Contact Center pricing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Capacity entitlements per Contact Center user&lt;/strong&gt; (per the Dynamics 365 Licensing Guide April 2026): 50 record routes / user, 1,000 messaging conversations / user / month, 3,000 IVR voice-bot minutes / tenant / month with the Voice add-in. Overage is billed via Copilot Credits or Azure Communication Services (ACS) pass-through.&lt;/p&gt;

&lt;h3 id=&quot;42-voice-channel--azure-communication-services-pass-through&quot;&gt;4.2 Voice channel — Azure Communication Services pass-through&lt;/h3&gt;

&lt;p&gt;Voice is built on &lt;strong&gt;Azure Communication Services&lt;/strong&gt;. Phone-number rental and per-minute usage charges are &lt;strong&gt;NOT included&lt;/strong&gt; in the Contact Center subscription — they are billed separately through an Azure subscription.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Voice meter&lt;/th&gt;
      &lt;th&gt;Rate (USD)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;PSTN inbound (US toll-free)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$0.022 / min&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;PSTN outbound (US)&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$0.013 / min&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;VOIP inbound&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$0.004 / min&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;SBC → ACS direct routing&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$0.004 / min&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Single-channel mixed-audio recording&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$0.004 / min&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Phone-number leases run roughly $1 / month (US local DID) to $2 / month (US toll-free). SMS and WhatsApp messaging are metered per message under ACS pass-through. International outbound PSTN rates vary widely by destination — pull the current ACS price list per country before scoping any non-US deployment. Source: &lt;a href=&quot;https://learn.microsoft.com/en-us/dynamics365/customer-service/administer/voice-channel-pricing-scenarios&quot;&gt;voice channel pricing scenarios&lt;/a&gt;.&lt;/p&gt;

&lt;p class=&quot;warning&quot;&gt;&lt;strong&gt;Confidence note for §4.2.&lt;/strong&gt; ACS per-minute rates and DID lease costs change periodically and vary by region. The figures above are widely quoted US commercial rates at the time of writing (MODERATE confidence); always pull the live ACS pricing per country / channel before contracting.&lt;/p&gt;

&lt;h3 id=&quot;43-where-copilot-studio-meets-contact-center&quot;&gt;4.3 Where Copilot Studio meets Contact Center&lt;/h3&gt;

&lt;p&gt;When a customer interacts with an &lt;strong&gt;AI agent&lt;/strong&gt; inside Contact Center — for example, a Customer Intent Agent that captures reason-for-contact before routing, or a Customer Knowledge Agent that drafts answers from the knowledge base — each turn consumes &lt;strong&gt;Copilot Credits at the rates in §2.2&lt;/strong&gt;. The organization must hold either a Copilot Studio Pre-Purchase Plan or PAYG capacity. AI agents are NOT included in the base $110 Contact Center subscription — the official pricing page explicitly labels them “Requires Copilot Credits (sold separately).”&lt;/p&gt;

&lt;p&gt;This is the single most-misunderstood line in the entire Dynamics 365 portfolio. Buying Contact Center alone gives you the orchestration runtime — channel ingress, routing, the agent desktop, and reporting. It does NOT give you the AI agents the marketing material is built around. Those run on Copilot Studio credits.&lt;/p&gt;

&lt;h3 id=&quot;44-unified-routing&quot;&gt;4.4 Unified routing&lt;/h3&gt;

&lt;p&gt;Unified routing — skill-based, attribute-based, and longest-idle distribution across voice, chat, email, and social channels — is included with &lt;strong&gt;Contact Center, Contact Center Digital, Contact Center Voice, Customer Service Enterprise, and Customer Service Premium&lt;/strong&gt;. It is &lt;strong&gt;NOT included with Customer Service Professional&lt;/strong&gt;, which is the largest hidden functional gap between Professional and Enterprise.&lt;/p&gt;

&lt;h3 id=&quot;45-real-world-example--contact-center--acs&quot;&gt;4.5 Real-world example — Contact Center + ACS&lt;/h3&gt;

&lt;p&gt;A 60-seat outbound sales team uses Contact Center Voice ($95 × 60 = $5,700 / month, or $3,420 / month after the 40% promo) and makes 25 outbound calls per agent per day, average 4 minutes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Monthly outbound minutes: 60 × 25 × 4 × 21 = &lt;strong&gt;126,000 min&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;ACS PSTN outbound charge: 126,000 × $0.013 = &lt;strong&gt;$1,638&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;60 toll-free DIDs at $2/each = &lt;strong&gt;$120&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;All-in: $3,420 + $1,638 + $120 = $5,178 / month&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add a Customer Intent AI agent that captures reason-for-contact on every call (2 credits per turn, average 3 turns per call): 60 × 25 × 21 × 3 × 2 = &lt;strong&gt;189,000 credits / month&lt;/strong&gt; ≈ $1,512 / month at Pre-Purchase rates. The AI agent line item is real money — budget for it separately.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;5-dynamics-365-customer-service&quot;&gt;5. Dynamics 365 Customer Service&lt;/h2&gt;

&lt;h3 id=&quot;51-base-skus&quot;&gt;5.1 Base SKUs&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;SKU&lt;/th&gt;
      &lt;th&gt;List price (USD)&lt;/th&gt;
      &lt;th&gt;Entitlement&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Customer Service Professional&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$50 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Case management, knowledge management, customer service hub UI, mobile app, M365 integration. &lt;strong&gt;Limited customization:&lt;/strong&gt; 15 custom tables, 5 BPFs, 5 dashboards, 2 forms/views per table, 15 queues. &lt;strong&gt;No unified routing&lt;/strong&gt;, no multisession workspace, no embedded intelligence.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Customer Service Enterprise&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$105 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Everything in Professional + unified routing, multisession workspace, embedded intelligence, &lt;strong&gt;Copilot in service representative desktop&lt;/strong&gt; (case summary, email draft, conversation summary, Q&amp;amp;A over knowledge), full Power Apps customization (write access to all standard/custom tables, unlimited BPFs, dashboards, forms).&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Customer Service Premium&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$195 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Customer Service Enterprise + Dynamics 365 Contact Center bundled. Saves $20 / user / month vs buying them separately ($105 + $110 = $215).&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Premium step-up&lt;/strong&gt; (introduced March 2026)&lt;/td&gt;
      &lt;td&gt;Step-up SKU&lt;/td&gt;
      &lt;td&gt;Customers on Enterprise can step up to Premium without re-signing the agreement.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Source: &lt;a href=&quot;https://www.microsoft.com/en-us/dynamics-365/products/customer-service/pricing&quot;&gt;Customer Service pricing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recent pricing changes.&lt;/strong&gt; Customer Service Enterprise moved from $95 to &lt;strong&gt;$105 / user / month&lt;/strong&gt; in mid-2025; partner blogs dated 2024 still cite $95. The &lt;strong&gt;40% promotional discount&lt;/strong&gt; running October 1, 2025 → June 30, 2026 applies to &lt;strong&gt;Customer Service Premium&lt;/strong&gt;, &lt;strong&gt;Dynamics 365 Contact Center&lt;/strong&gt;, &lt;strong&gt;Contact Center Digital&lt;/strong&gt;, and &lt;strong&gt;Contact Center Voice&lt;/strong&gt; SKUs only — &lt;strong&gt;Customer Service Enterprise is NOT included&lt;/strong&gt; in the promotion, per the eligibility footnote on the &lt;a href=&quot;https://www.microsoft.com/en-us/dynamics-365/products/contact-center/pricing&quot;&gt;Contact Center pricing page&lt;/a&gt;. The promotion is EA / CSP only and is not stackable with other discounts.&lt;/p&gt;

&lt;h3 id=&quot;52-capacity-entitlements-per-customer-service-license&quot;&gt;5.2 Capacity entitlements per Customer Service license&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Dataverse:&lt;/strong&gt; the April 2026 Dynamics 365 Licensing Guide reports up to 30 GB DB / 30 GB File / 2 GB Log per Customer Service Enterprise user (MODERATE confidence; verify against current PDF).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Unified routing&lt;/strong&gt; (Enterprise+): 50 record routes / user, 1,000 messaging conversations / user / month.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;API requests:&lt;/strong&gt; 40,000 / user / 24 h.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Copilot for Customer Service:&lt;/strong&gt; Included in Enterprise and Premium since 2024 — case summary, email draft, conversation summary, real-time agent assist, Q&amp;amp;A over linked knowledge sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;53-add-ins-available-to-customer-service-enterprise&quot;&gt;5.3 Add-ins available to Customer Service Enterprise&lt;/h3&gt;

&lt;p&gt;These add-ins enable omnichannel capabilities for Customer Service Enterprise customers who do not want the full Contact Center bundle. &lt;strong&gt;They cannot be purchased on top of Customer Service Professional.&lt;/strong&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Add-in&lt;/th&gt;
      &lt;th&gt;List price (USD, est.)&lt;/th&gt;
      &lt;th&gt;Entitlement&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Digital Messaging Add-in&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$75 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Live and persistent chat, SMS, WhatsApp, Facebook Messenger, Apple Messages for Business, LINE, WeChat, custom messaging channels.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Voice Channel Add-in&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$75 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Native ACS-powered voice on Customer Service — inbound/outbound PSTN, IVR (3,000 voice-bot minutes / tenant included), call recording, transcription, sentiment analysis. ACS per-minute pass-through still applies.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Digital Messaging + Voice Add-in&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$90 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Bundle of both — saves $60 / user / month vs separate.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Chat Add-in&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;$60 / user / month&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Live chat only (subset of Digital Messaging).&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;Sources: &lt;a href=&quot;https://community.dynamics.com/forums/thread/details/?threadid=5752f6aa-042f-ef11-840a-000d3a18baa0&quot;&gt;Microsoft Dynamics community thread, MS employee response (June 2024)&lt;/a&gt;, &lt;a href=&quot;https://www.trustradius.com/products/microsoft-dynamics-365-customer-service/pricing&quot;&gt;TrustRadius Customer Service pricing 2026&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/en-us/dynamics365/customer-service/administer/voice-channel-pricing-scenarios&quot;&gt;voice channel pricing scenarios&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidence note.&lt;/strong&gt; Add-in USD list prices are confirmed via the Microsoft Dynamics community (employee response) and TrustRadius pricing aggregation, but at the time of writing they are &lt;strong&gt;not directly published on the public microsoft.com Customer Service pricing page&lt;/strong&gt;, which links only to the three base plans. Treat as MODERATE-confidence list prices; final quotes should come from the Microsoft account team or a CSP partner.&lt;/p&gt;

&lt;h3 id=&quot;54-customer-service-enterprise-vs-contact-center-vs-premium--the-decision-matrix&quot;&gt;5.4 Customer Service Enterprise vs Contact Center vs Premium — the decision matrix&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Need&lt;/th&gt;
      &lt;th&gt;Recommended SKU&lt;/th&gt;
      &lt;th&gt;Monthly cost (200 seats, list, before promo)&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Case + knowledge management only&lt;/td&gt;
      &lt;td&gt;Customer Service Professional&lt;/td&gt;
      &lt;td&gt;$10,000&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Case + omnichannel digital messaging&lt;/td&gt;
      &lt;td&gt;CS Enterprise + Digital Messaging Add-in&lt;/td&gt;
      &lt;td&gt;(105+75) × 200 = &lt;strong&gt;$36,000&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Case + voice&lt;/td&gt;
      &lt;td&gt;CS Enterprise + Voice Channel Add-in&lt;/td&gt;
      &lt;td&gt;(105+75) × 200 = &lt;strong&gt;$36,000&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Case + digital + voice (full omnichannel)&lt;/td&gt;
      &lt;td&gt;Customer Service Premium&lt;/td&gt;
      &lt;td&gt;195 × 200 = &lt;strong&gt;$39,000&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;CRM-agnostic CCaaS (no D365 CRM in scope)&lt;/td&gt;
      &lt;td&gt;Dynamics 365 Contact Center&lt;/td&gt;
      &lt;td&gt;110 × 200 = &lt;strong&gt;$22,000&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Existing non-MS CRM + native voice + AI agents&lt;/td&gt;
      &lt;td&gt;Contact Center + Copilot Studio Pre-Purchase&lt;/td&gt;
      &lt;td&gt;110 × 200 + credit pack = &lt;strong&gt;~$22,000 + credits&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;55-real-world-example--when-premium-beats-enterprise--add-ins&quot;&gt;5.5 Real-world example — when Premium beats Enterprise + add-ins&lt;/h3&gt;

&lt;p&gt;A 500-seat global support center needs digital messaging on day one and plans to add voice within 12 months. List-price comparison:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Enterprise + Digital Messaging immediately: ($105 + $75) × 500 = &lt;strong&gt;$90,000 / month&lt;/strong&gt; (Enterprise is NOT eligible for the 40% promo)&lt;/li&gt;
  &lt;li&gt;Adding voice 12 months later (Digital Messaging + Voice combined add-in): ($105 + $90) × 500 = &lt;strong&gt;$97,500 / month&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;Customer Service Premium from day one: $195 × 500 = &lt;strong&gt;$97,500 / month&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Premium at list price matches Enterprise + combined add-in. The &lt;strong&gt;decisive factor&lt;/strong&gt; is the promotional window. Under the &lt;strong&gt;40% promo (Oct 1, 2025 → Jun 30, 2026)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Customer Service Premium with promo: $195 × 0.60 × 500 = &lt;strong&gt;$58,500 / month&lt;/strong&gt; for 500 seats&lt;/li&gt;
  &lt;li&gt;Enterprise + Digital Messaging (no promo eligibility on either component): &lt;strong&gt;$90,000 / month&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Premium under the promo is &lt;strong&gt;roughly $30,000 / user / month cheaper&lt;/strong&gt; than the Enterprise + add-in path while bundling the full Contact Center feature set (AI agents framework, ACS integration, unified routing with 1,000 messaging conversations / user / month, advanced reporting). The Premium step-up SKU reported in March 2026 (MODERATE confidence; verify with your account team) further reduces re-papering friction for Enterprise customers moving up. &lt;strong&gt;The recommendation:&lt;/strong&gt; if voice is on the roadmap inside 18 months, start on Premium — especially if the contract can be signed inside the promo window.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;6-cross-cutting-guidance--how-to-decide-what-to-license&quot;&gt;6. Cross-cutting Guidance — How to Decide What to License&lt;/h2&gt;

&lt;h3 id=&quot;61-decision-principles&quot;&gt;6.1 Decision principles&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Start with the data.&lt;/strong&gt; If the workload needs full Dataverse and Premium connectors, you are in Premium territory. If everything lives in SharePoint, Excel, and Teams, M365-seeded rights may be sufficient.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Count the apps per user.&lt;/strong&gt; Power Apps Premium wins when most users run most apps; per-App wins when usage is role-segmented and you can count app users by the hundred, not the thousand.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Separate the AI line item from the seat line item.&lt;/strong&gt; Copilot Studio credits are a separate budget. Contact Center seats do not include AI agent consumption. Customer Service Enterprise seats do not include the omnichannel add-ins.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Use the promotional window — but check eligibility carefully.&lt;/strong&gt; The 40% discount applies to &lt;strong&gt;Customer Service Premium&lt;/strong&gt;, &lt;strong&gt;Dynamics 365 Contact Center&lt;/strong&gt;, &lt;strong&gt;Contact Center Digital&lt;/strong&gt;, and &lt;strong&gt;Contact Center Voice&lt;/strong&gt; through June 30, 2026. &lt;strong&gt;Customer Service Enterprise is NOT eligible.&lt;/strong&gt; If a sizing exercise is sitting on Enterprise + add-ins, model the Premium-with-promo alternative explicitly before deciding.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Re-verify the moving parts before signing.&lt;/strong&gt; Copilot Credit billing rates, Customer Service add-in list prices, and Dataverse per-user accruals have all moved within the last 12 months. The next revision of this article will track those in a dedicated changelog section.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;62-cloud-variants-and-regulated-tenants&quot;&gt;6.2 Cloud variants and regulated tenants&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Government clouds (GCC, GCC High, DoD).&lt;/strong&gt; Power Platform and Dynamics 365 SKUs in US government clouds have a separate price list, separate feature-parity timeline (Copilot Studio voice and some AI agents have historically reached GCC clouds later than commercial), and constraints on which ACS regions and Azure OpenAI endpoints are available. Public-sector and defense readers should treat this article’s pricing as commercial-cloud-only and verify GCC/GCC High availability with their account team before sizing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;EU Data Boundary.&lt;/strong&gt; Microsoft completed full inclusion of Copilot and AI services in the EU Data Boundary in early 2025; processing for tenants in scope remains in EU/EFTA data centers. Multi-geo Dataverse is available as a separate capability with its own capacity implications.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sovereign and regulated EU clouds.&lt;/strong&gt; Specific sovereign offerings (such as the Microsoft Cloud for Sovereignty, and locally-operated partner offerings where applicable) have distinct SKU availability and price lists. Confirm specifics with your account team.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;63-education-and-nonprofit&quot;&gt;6.3 Education and Nonprofit&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Education (A-SKUs).&lt;/strong&gt; A1, A3, and A5 plans grant seeded Power Platform rights similar in shape to E-series equivalents but with reduced commercial use scope. Dynamics 365 has dedicated Education SKUs.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Nonprofit.&lt;/strong&gt; Eligible nonprofits qualify for steep discounts on Power Apps Premium and Dynamics 365 base SKUs via the Microsoft Tech for Social Impact program. Pricing varies by entity and country — engage Microsoft Philanthropies for current quotes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;64-common-mistakes-to-avoid&quot;&gt;6.4 Common mistakes to avoid&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Buying Contact Center without Copilot Credits.&lt;/strong&gt; The AI agents in marketing material are not included in the seat price — see §4.3.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Assuming Managed Environments is free.&lt;/strong&gt; It has no SKU price, but it gates per-user license type — see §1.5.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Treating “Premium” as a single product.&lt;/strong&gt; Power Apps Premium ≠ Customer Service Premium ≠ Contact Center Premium (does not exist; Contact Center has three flavors instead). Always specify.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mixing M365-seeded users into a Power Apps Premium app silently.&lt;/strong&gt; As soon as one Premium or custom connector is added to the app, every user needs a paid license — there is no occasional-use carve-out.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Forgetting that F-series ≠ E-series for Power Platform rights&lt;/strong&gt; — see §1.1 caveat.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Assuming the 40% promo applies to Customer Service Enterprise.&lt;/strong&gt; It does not — see §5.1 and §6.1 step 4.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;65-negotiation-levers--ea-vs-csp-vs-mca-e&quot;&gt;6.5 Negotiation levers — EA vs CSP vs MCA-E&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Enterprise Agreement (EA).&lt;/strong&gt; Best for very large tenants with predictable three-year demand; gates access to certain volume discounts and the 40% Contact Center promotion. Price-protected through the EA term.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cloud Solution Provider (CSP).&lt;/strong&gt; Most flexible for mid-market — monthly cadence, partner-managed billing, easier mid-term seat changes. Promotion eligibility usually mirrors EA but ask the CSP partner to confirm.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Customer Agreement for Enterprise (MCA-E).&lt;/strong&gt; Microsoft’s direct-purchase model, replacing some EA scenarios. Modern, online-managed, but coverage varies by region and SKU. Confirm what is available in your geography.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;7-conclusion&quot;&gt;7. Conclusion&lt;/h2&gt;

&lt;p&gt;Microsoft’s business-application licensing in 2026 reflects a maturing, three-pillar commercial design: &lt;strong&gt;per-user subscriptions&lt;/strong&gt; for the seat-based products, &lt;strong&gt;capacity-based consumption metering&lt;/strong&gt; for Dataverse and Copilot Studio Copilot Credits, and &lt;strong&gt;MAU-based capacity packs&lt;/strong&gt; for citizen-facing Power Pages portals.&lt;/p&gt;

&lt;p&gt;The structurally interesting shift of the last twelve months is the consolidation of Power Platform AI consumption under a single &lt;strong&gt;Copilot Credit&lt;/strong&gt; meter (with AI Builder credits scheduled to be retired in November 2026) — a strategic move toward a unified Azure-billed currency for all AI workloads. Future licensing decisions will increasingly be about &lt;em&gt;how much AI you can commit to up front&lt;/em&gt; (Pre-Purchase Plan) versus &lt;em&gt;flexibility to spike&lt;/em&gt; (PAYG), rather than which SKU contains which feature. In parallel, the April 2026 licensing guides report higher per-user Dataverse accruals for Power Apps Premium and several Dynamics 365 SKUs than the live pricing pages currently display — a discrepancy that materially affects sizing for tenants with 100+ seats and that should be re-verified against the licensing guide PDF in force at contract signing.&lt;/p&gt;

&lt;p&gt;For the practitioner, three defaults: &lt;strong&gt;Power Apps Premium for new build-outs unless app usage is clearly segmented by role; Customer Service Premium over Enterprise + add-ins for any deployment that includes both voice and digital messaging (especially under the 40% promo window, which Enterprise is not eligible for); Copilot Studio Pre-Purchase Plan above ~25,000 credits / month.&lt;/strong&gt; Confidence in these recommendations is HIGH for prices on Microsoft’s own pricing pages and MODERATE for add-in list prices, Copilot Credit billing rates, and Licensing Guide PDF Dataverse accrual figures — all should be re-verified before any commercial commitment.&lt;/p&gt;

&lt;p&gt;This article will be revised. The next revision will append a &lt;strong&gt;Changelog&lt;/strong&gt; section recording every license-relevant change Microsoft publishes — price adjustments, SKU additions or retirements, capacity changes, billing rate revisions — with effective date, source URL, and a one-line impact note.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;glossary&quot;&gt;Glossary&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Term&lt;/th&gt;
      &lt;th&gt;Expansion&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;ACS&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Azure Communication Services — Azure platform service that provides PSTN voice, SMS, chat, and email under per-meter billing. Underpins the Contact Center and Customer Service voice channels.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;BPF&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Business Process Flow — a guided multi-stage workflow in Dynamics 365 / Dataverse model-driven apps.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;B2C&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Business to Consumer — public-facing scenarios (e.g., anonymous web chat, citizen portals).&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;B2E&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Business to Employee — internal scenarios where the user is a licensed employee of the tenant.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;CCaaS&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Contact Center as a Service — cloud-delivered contact center, often CRM-agnostic.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;CoE Starter Kit&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Center of Excellence Starter Kit — Microsoft’s free governance accelerator for Power Platform tenants.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;CSP&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Cloud Solution Provider — Microsoft’s indirect partner channel for purchasing cloud services.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Dataverse&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Microsoft’s relational data platform behind model-driven Power Apps and Dynamics 365.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;DID&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Direct Inward Dialing — a directly-dialable telephone number, usually a local geographic number.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;DLP&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Data Loss Prevention — Power Platform policy controls that restrict which connectors can share data.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;EA&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Enterprise Agreement — Microsoft’s traditional 3-year volume licensing agreement.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;EU Data Boundary&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Microsoft commitment to process EU/EFTA customer data within EU/EFTA data centers.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;FIFO&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;First In, First Out — credit-consumption order across a pooled allocation.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;GCC / GCC High / DoD&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;US government cloud variants — GCC (Moderate), GCC High (IL4), DoD (IL5/IL6).&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;IVR&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Interactive Voice Response — automated voice menu / bot at the start of a call.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;MAU&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Monthly Active User — a unique identity counted once per calendar month, regardless of session count.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;MCA-E&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Microsoft Customer Agreement for Enterprise — Microsoft’s modern direct-purchase contract model.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;PAYG&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Pay-As-You-Go — Azure-billed consumption with no upfront commitment.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;PPLG&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Power Platform Licensing Guide — Microsoft’s authoritative entitlement reference PDF, updated regularly.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;PSTN&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Public Switched Telephone Network — traditional dialed phone network.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;RAG&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Retrieval-Augmented Generation — pattern where an LLM is grounded on retrieved documents.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;RPA&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Robotic Process Automation — UI-automation of desktop and web applications (Power Automate desktop flows).&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;SBC&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Session Border Controller — a network device that bridges enterprise voice (SIP) to a carrier.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;VOIP&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Voice over IP — voice traffic over the public internet rather than PSTN.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;sources-primary&quot;&gt;Sources (primary)&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://go.microsoft.com/fwlink/?linkid=2085130&quot;&gt;Microsoft Power Platform Licensing Guide — April 2026 (PDF)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/microsoft/bade/documents/products-and-services/en-us/bizapps/Dynamics-365-Licensing-Guide-April-2026.pdf&quot;&gt;Microsoft Dynamics 365 Licensing Guide — April 2026 (PDF)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/microsoft/bade/documents/products-and-services/en-us/bizapps/Dynamics-365-Licensing-Deck-March-2026-PUB.pdf&quot;&gt;Microsoft Dynamics 365 Licensing Deck — March 2026 (PDF)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://go.microsoft.com/fwlink/?linkid=2243406&quot;&gt;Microsoft Copilot Studio Licensing Guide — April 2026 (PDF)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-apps/pricing&quot;&gt;Power Apps pricing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-automate/pricing&quot;&gt;Power Automate pricing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/power-platform/products/power-pages/pricing&quot;&gt;Power Pages pricing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-copilot/microsoft-copilot-studio/pricing&quot;&gt;Microsoft Copilot Studio pricing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/dynamics-365/products/customer-service/pricing&quot;&gt;Dynamics 365 Customer Service pricing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.microsoft.com/en-us/dynamics-365/products/contact-center/pricing&quot;&gt;Dynamics 365 Contact Center pricing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-messages-capacity&quot;&gt;Copilot Studio billing rates (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/powerapps-flow-licensing-faq&quot;&gt;Power Platform admin licensing FAQ (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/capacity-storage&quot;&gt;Dataverse storage capacity (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/power-pages/admin/about-capacity-licensing&quot;&gt;Power Pages capacity licensing (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/dynamics365/customer-service/administer/voice-channel-pricing-scenarios&quot;&gt;Voice channel pricing scenarios (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/about-teams-environment&quot;&gt;Dataverse for Teams environment (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/environments-overview&quot;&gt;Power Platform environments overview (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/power-platform/admin/api-request-limits-allocations&quot;&gt;Power Platform API request limits and allocations (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-licensing-microsoft-copilot-included&quot;&gt;Microsoft 365 Copilot included Copilot Studio usage (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-pre-purchase-pricing&quot;&gt;Copilot Credits Pre-Purchase Plan / PAYG (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/connectors/connector-reference/&quot;&gt;Connector reference (Microsoft Learn)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://community.dynamics.com/forums/thread/details/?threadid=5752f6aa-042f-ef11-840a-000d3a18baa0&quot;&gt;Microsoft Dynamics community — Customer Service add-in pricing (employee response, June 2024)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.trustradius.com/products/microsoft-dynamics-365-customer-service/pricing&quot;&gt;TrustRadius — Dynamics 365 Customer Service pricing (2026)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
                <pubDate>Sat, 30 May 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/powerplatform-licensing</link>
                <guid isPermaLink="true">https://holgerimbery.blog/powerplatform-licensing</guid>
                
                <category>agents</category>
                
                <category>copilotstudio</category>
                
                <category>dataverse</category>
                
                <category>dynamics365contactcenter</category>
                
                <category>dynamics365customerservice</category>
                
                <category>licensing</category>
                
                <category>powerplatform</category>
                
                
            </item>
        
            <item>
                <title>Power Platform Governance: A Practitioner&apos;s Reference (Part 2)</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary lede.&lt;/strong&gt; Part 2 of this two-article reference picks up where last week’s foundations ended. With the platform perimeter in place — environments, Managed Environments, environment groups, DLP, tenant isolation, identity, and monitoring — this article works through the resources that live inside that perimeter and the processes that move them through it: Copilot Studio agents, agent authentication and connector governance, Application Lifecycle Management and pipelines, solution checker and quality gates, licensing and capacity governance, and change management and release rings. A closing recap then ties both articles together into a single posture.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Last verified: May 2026.&lt;/strong&gt; Feature availability and documentation links were checked against Microsoft Learn as of this date. Power Platform evolves rapidly; confirm preview/GA status before acting on release-sensitive claims.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Who this is for.&lt;/strong&gt; Same audience as part 1 — Power Platform administrators, security and compliance officers, Center of Excellence leads, architects, and makers. Part 2 assumes you have read Part 1 or have an equivalent grasp of environment design, Managed Environments, environment groups, and DLP. Where part 1 answered “what is the perimeter and how do we hold it?”, part 2 answers “what gets built inside it, and how does that work move from a maker’s hands into production safely?” The format is unchanged: each control begins with the reason it exists, moves to the how, and points you to the authoritative Microsoft Learn page.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p class=&quot;important&quot;&gt;&lt;strong&gt;A note on the kits (continues from part 1).&lt;/strong&gt;&lt;br /&gt;
Two pieces of widely-deployed community tooling have changed status: the &lt;strong&gt;CoE Starter Kit&lt;/strong&gt; is no longer actively maintained — its core capabilities are now part of the Power Platform admin center (Inventory, Usage, Monitor, Actions) — and the &lt;strong&gt;ALM Accelerator for Power Platform&lt;/strong&gt; is formally deprecated, with &lt;strong&gt;Power Platform Pipelines&lt;/strong&gt; as the named replacement. Sections 9.14 (agent inventory) and 11 (ALM and pipelines) reflect that. The detailed write-up of the CoE Starter Kit transition lives in part 1, section 8.6; the ALM Accelerator transition is summarised in section 11.6 of this part.&lt;/p&gt;

&lt;h2 id=&quot;recap-where-part-1-left-off&quot;&gt;Recap: where part 1 left off&lt;/h2&gt;

&lt;p&gt;As we saw last week, platform-level governance is the foundation on which everything else rests. Part 1 walked through eight sections of foundations:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Environment strategy.&lt;/strong&gt; Environments are the unit of governance because DLP, security roles, capacity, and compliance boundaries all follow environment lines. A topology that mirrors your delivery lifecycle (default for personal productivity; dev/test/prod for solutions; dedicated CoE and training environments) gives every later control a place to attach to.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The default environment.&lt;/strong&gt; It cannot be deleted, every licensed user is a maker in it, and Dataverse cannot be removed once added. Renaming it, attaching a restrictive DLP policy, enabling default environment routing, and converting it to a Managed Environment turn it into a known, bounded surface.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Managed Environments.&lt;/strong&gt; A premium governance layer that adds sharing limits, the weekly digest, solution checker enforcement, maker welcome content, pipelines hosting, IP firewall, extended backup, and DLP for desktop flows. Most of part 2’s controls depend on Managed Environments being on.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Environment groups and rules.&lt;/strong&gt; Groups apply policy in bulk to Managed Environments. When a rule is published at the group level, the corresponding setting becomes read-only in each member environment, which makes the policy enforceable rather than advisory.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Data Loss Prevention.&lt;/strong&gt; Connectors are sorted into Business, Non-business, and Blocked. Data cannot flow between Business and Non-business in the same resource. Endpoint filtering and connector action control let you keep useful connectors while blocking their dangerous edges.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Tenant isolation and cross-tenant controls.&lt;/strong&gt; Restricts which external Entra ID tenants can be the identity source for connections. Tenant isolation is off by default; enable it explicitly and configure inbound and outbound rules for each trusted tenant.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Security roles and identity.&lt;/strong&gt; Layered authorization: Entra ID at the tenant, Dataverse roles inside each environment, service principals for non-interactive work, Conditional Access and MFA on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Power Platform API&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Monitoring, analytics, and tenant inventory.&lt;/strong&gt; Built-in admin center analytics (the &lt;strong&gt;Inventory&lt;/strong&gt;, &lt;strong&gt;Usage&lt;/strong&gt;, &lt;strong&gt;Monitor&lt;/strong&gt;, and &lt;strong&gt;Actions&lt;/strong&gt; experiences), the weekly digest, Microsoft Purview audit log, Application Insights export, and Microsoft Sentinel for SOC integration. The &lt;strong&gt;CoE Starter Kit&lt;/strong&gt; is no longer actively maintained; its inventory and attestation scenarios are now Microsoft’s responsibility in the admin center, accessible via the &lt;strong&gt;Power Platform inventory API&lt;/strong&gt; and the &lt;strong&gt;Power Platform for Admins V2&lt;/strong&gt; connector for custom automation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The minimum viable foundation from part 1 was: restrict default environment creation, attach a tenant-wide baseline DLP policy, enable default environment routing with a Managed Environments group, turn on tenant-level analytics, lean on the Power Platform admin center’s &lt;strong&gt;Inventory&lt;/strong&gt;, &lt;strong&gt;Usage&lt;/strong&gt;, &lt;strong&gt;Monitor&lt;/strong&gt;, and &lt;strong&gt;Actions&lt;/strong&gt; experiences (the CoE Starter Kit is no longer actively maintained), and verify your tenant isolation defaults. Everything in part 2 assumes that the foundation is in place. The section numbering continues from part 1, starting at section 9.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;9-governing-microsoft-copilot-studio&quot;&gt;9. Governing Microsoft Copilot Studio&lt;/h2&gt;

&lt;p&gt;Copilot Studio agents are Power Platform resources. They are stored in environments, secured with Dataverse, shared through the same sharing model as apps and flows, and subject to DLP policies. A Copilot Studio agent is not a separate governance domain; it is a new resource type inside the platform perimeter. The controls below are specific to agents and combine with the platform-wide ones covered in part 1.&lt;/p&gt;

&lt;h3 id=&quot;91-decide-agent-posture-in-tenant-settings&quot;&gt;9.1 Decide agent posture in tenant settings&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; The most basic question — “should agents exist in this tenant at all, and where?” — is answered at the tenant level. Skipping this step makes every later control fight a current.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; In &lt;strong&gt;Power Platform admin center &amp;gt; Settings &amp;gt; Tenant settings&lt;/strong&gt;, control whether Copilot Studio is enabled, who can create agents, whether agents can be created in the default environment, and which AI features (generative answers, autonomous triggers, external models) are available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/tenant-settings&quot;&gt;Tenant settings reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;92-use-the-copilot-studio-admin-center-for-agent-specific-controls&quot;&gt;9.2 Use the Copilot Studio admin center for agent-specific controls&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Some agent controls live outside the Power Platform admin center because they are specific to Copilot Studio’s data model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Visit &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;admin.copilotstudio.microsoft.com&lt;/code&gt; to control sharing org-wide, tenant-wide data access settings for agents, and transcript retention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-admin-center&quot;&gt;Copilot Studio admin center&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;93-restrict-who-can-share-agents-tenant-wide&quot;&gt;9.3 Restrict who can share agents tenant-wide&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; “Share with my entire organization” is a one-click action that bypasses normal sharing limits. Without restriction, any maker can publish a tenant-wide agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Org-wide sharing is controlled through a combination of tenant settings and Managed Environment sharing rules. In the Power Platform admin center, restrict who can share agents broadly; in Managed Environments, use sharing limits to cap the number of viewers and disable sharing via security groups. Restrict org-wide sharing to a CoE or approvals group for production-grade use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-sharing-controls-limits&quot;&gt;Control how agents are shared&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;94-cap-agent-sharing-per-environment&quot;&gt;9.4 Cap agent sharing per environment&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Even with tenant-wide sharing locked down, intra-tenant oversharing is still possible. Sharing limits cap blast radius per agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; In a Managed Environment, apply &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Limit sharing&lt;/code&gt; to cap viewers per agent and disable sharing via security groups. Mechanics are in part 1, section 3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-sharing-limits&quot;&gt;Limit sharing&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;95-apply-group-rules-for-agent-sharing&quot;&gt;9.5 Apply group rules for agent sharing&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Sharing limits per environment are tedious to manage at scale. Group rules let you apply the same sharing posture across many environments at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Sharing agents with Editor permissions&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Sharing agents with Viewer permissions&lt;/code&gt; environment group rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environment-groups-rules&quot;&gt;Rules for environment groups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;96-set-maker-welcome-content-for-copilot-studio&quot;&gt;9.6 Set maker welcome content for Copilot Studio&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Most makers entering Copilot Studio will not have read your governance documentation. The welcome banner is the cheapest place to put guardrails in front of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Configure maker welcome content in Managed Environments to surface agent guidelines as makers enter Copilot Studio.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-security-and-governance&quot;&gt;Copilot Studio security and governance&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;97-run-solution-checker-on-agent-solutions&quot;&gt;9.7 Run solution checker on agent solutions&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Static analysis catches structural problems in agents the same way it does in apps and flows — missing fallbacks, knowledge sources without authentication, references to blocked connectors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Solution checker runs at solution import in Managed Environments. Mechanics are covered in section 12.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-solution-checker&quot;&gt;Solution checker enforcement&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;98-govern-ai-features-per-environment-group&quot;&gt;9.8 Govern AI features per environment group&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Generative and external AI features carry different risk profiles in different environments. Production with regulated data needs a stricter stance than a pilot environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AI-powered Copilot features&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Generative AI settings&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;External models&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AI prompts&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Preview and experimental AI models&lt;/code&gt; rules to turn capabilities off where they should not be available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environment-groups-rules&quot;&gt;Rules for environment groups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;99-control-transcript-access&quot;&gt;9.9 Control transcript access&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Conversation transcripts can contain sensitive prompts and customer data. Default-on transcript retention is a poor fit for regulated environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Accessing transcripts from conversations in Copilot Studio agents&lt;/code&gt; rule turns transcript retention off for environments in regulated groups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environment-groups-rules&quot;&gt;Rules for environment groups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;910-block-high-risk-agent-connectors-in-dlp&quot;&gt;9.10 Block high-risk agent connectors in DLP&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; DLP on agent connectors is the only way to stop entire classes of bad behavior at design time — public agents, ad-hoc HTTP, autonomous triggers — without playing whack-a-mole.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Common blocks for regulated tenants:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Chat without Microsoft Entra ID authentication in Copilot Studio&lt;/code&gt;&lt;/strong&gt; — prevents publishing public, unauthenticated agents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Direct Line channels in Copilot Studio&lt;/code&gt;&lt;/strong&gt; — block if only Teams, SharePoint, and Microsoft 365 Copilot channels are approved.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Skills&lt;/code&gt;&lt;/strong&gt; — prevents invocation of arbitrary Bot Framework skills.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HTTP requests&lt;/code&gt;&lt;/strong&gt; — prevents ad-hoc outbound calls from agents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Event triggers&lt;/code&gt;&lt;/strong&gt; — disables autonomous agents until they are approved.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enforcement is real time; makers see validation errors while authoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-data-loss-prevention&quot;&gt;Configure data policies for agents&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;911-constrain-knowledge-sources&quot;&gt;9.11 Constrain knowledge sources&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Knowledge sources are how agents reach data. A loose knowledge configuration is a loose data perimeter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Apply scope-aware controls to each source type:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A broad SharePoint URL can expose a large portion of the site’s content to the agent, limited by supported file types, page types, and the user’s permissions at runtime. Grant scope at the document library or folder level where possible to minimize exposure.&lt;/li&gt;
  &lt;li&gt;Public website knowledge is fetched at runtime; treat it as untrusted input for prompt-injection exposure.&lt;/li&gt;
  &lt;li&gt;Files uploaded as knowledge are stored in the agent’s Dataverse tables and inherit environment backup and data residency.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use &lt;strong&gt;sensitivity labels&lt;/strong&gt; and &lt;strong&gt;Microsoft Purview&lt;/strong&gt; to label and classify content before it is indexed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-security-and-governance&quot;&gt;Copilot Studio security and governance&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;912-pick-an-authentication-mode-per-agent&quot;&gt;9.12 Pick an authentication mode per agent&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Authentication mode determines whether sharing limits apply at all. Sharing limits apply only to agents that require authentication; public agents bypass the sharing model entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Three modes exist:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Authenticate with Microsoft&lt;/strong&gt; (Entra ID, default) — recommended for regulated environments.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Authenticate manually&lt;/strong&gt; — generic OAuth.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;No authentication&lt;/strong&gt; — public; not recommended for tenants with sensitive data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Require Entra ID authentication in regulated environments by blocking the no-authentication connector in DLP. Blocking no-authentication is the prerequisite for sharing limits to be meaningful at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/configuration-end-user-authentication&quot;&gt;Configure user authentication&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;913-approve-a-deployment-channel-matrix&quot;&gt;9.13 Approve a deployment channel matrix&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Each channel has its own risk profile and operational model. Without an approved matrix, channel selection becomes a maker-by-maker decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Enforce an approved channel matrix through tenant settings and DLP:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Channel&lt;/th&gt;
      &lt;th&gt;Control&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Microsoft Teams&lt;/td&gt;
      &lt;td&gt;Admin-approved app catalog; manifests are solution-aware&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Microsoft 365 Copilot&lt;/td&gt;
      &lt;td&gt;Tenant Copilot extension governance&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;SharePoint&lt;/td&gt;
      &lt;td&gt;Site permissions; viewer licensing applies at runtime&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Custom website&lt;/td&gt;
      &lt;td&gt;Block for regulated environments; pair with IP allow-list&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Direct Line&lt;/td&gt;
      &lt;td&gt;Block by default&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-security-and-governance&quot;&gt;Copilot Studio security and governance&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;914-monitor-agents-with-the-right-surface-for-the-question&quot;&gt;9.14 Monitor agents with the right surface for the question&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Different questions have different right surfaces. Behavior questions, audit questions, and inventory questions each have a primary tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Match the surface to the question:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Agent analytics&lt;/strong&gt; in Copilot Studio for sessions, resolution rate, and escalations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Copilot Studio audit logs&lt;/strong&gt; in Microsoft Purview for create, publish, share, knowledge change, and tool add events.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Application Insights export&lt;/strong&gt; (Managed Environments) for detailed traces.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Power Platform admin center Inventory&lt;/strong&gt; (and the &lt;strong&gt;Power Platform inventory API&lt;/strong&gt; / &lt;strong&gt;Power Platform for Admins V2&lt;/strong&gt; connector) for owner, environment, authentication mode, and last publish across all agents in the tenant. This is the replacement surface for the CoE Starter Kit’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Power Platform agents&lt;/code&gt; inventory table, which is no longer actively maintained.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-logging-copilot-studio&quot;&gt;Copilot Studio audit logs in Purview&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/programmability-authentication-v2&quot;&gt;Power Platform inventory API&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;915-treat-autonomous-agents-as-a-higher-risk-class&quot;&gt;9.15 Treat autonomous agents as a higher-risk class&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Autonomous (event-triggered) agents run without interactive sessions, which expands the attack surface and removes the human-in-the-loop signal that interactive agents give you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Keep autonomous agents in a dedicated environment, require code review on triggers, and disable them with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Event triggers&lt;/code&gt; DLP connector in environments that are not ready.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-data-loss-prevention&quot;&gt;Configure data policies for agents&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;916-govern-mcp-servers-through-advanced-connector-policies&quot;&gt;9.16 Govern MCP servers through advanced connector policies&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Model Context Protocol (MCP) servers extend agents with external tools. From a governance standpoint, each MCP server is an integration path that must be governed; treating it informally creates an unaudited surface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; MCP connectors are a distinct connector class in Power Platform — they are not custom connectors and are not governed through custom connector DLP. Instead, use &lt;strong&gt;advanced connector policies (ACP)&lt;/strong&gt; to control MCP server registration and usage. Review the server code or vendor, restrict outbound network paths, and block ad-hoc registration by makers through ACP rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/mcp&quot;&gt;Agents and MCP&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/wp-data-loss-prevention&quot;&gt;Data policies&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;10-agent-authentication-and-connector-governance&quot;&gt;10. Agent Authentication and Connector Governance&lt;/h2&gt;

&lt;p&gt;Agents built in Copilot Studio interact with data and services through connectors, knowledge sources, and tools. Connector governance for agents uses the same Power Platform DLP engine applied to Power Apps and Power Automate, but a few controls are agent-specific.&lt;/p&gt;

&lt;h3 id=&quot;101-choose-an-authentication-mode&quot;&gt;10.1 Choose an authentication mode&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Authentication mode determines who can use the agent and whether platform sharing controls apply at all.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Pick one of three modes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Authenticate with Microsoft&lt;/strong&gt; (default) — uses Microsoft Entra ID. The agent requires sign-in; sharing limits apply.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Authenticate manually&lt;/strong&gt; — generic OAuth 2.0 (Okta, Auth0, custom IdP). Agent requires sign-in but identity lives outside Entra ID.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;No authentication&lt;/strong&gt; — public link or embedded web chat. Sharing limits are bypassed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Block the connector &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Chat without Microsoft Entra ID authentication in Copilot Studio&lt;/code&gt; in the tenant baseline DLP to remove the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;No authentication&lt;/code&gt; option entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/configuration-end-user-authentication&quot;&gt;Configure user authentication&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;102-use-entra-agent-id-for-outbound-calls-preview&quot;&gt;10.2 Use Entra Agent ID for outbound calls (preview)&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Older agent integrations relied on stored client secrets, which are awkward to rotate and easy to leak. Entra Agent ID replaces that pattern with a managed identity model that the platform owns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Entra Agent ID (currently in preview) provisions each Copilot Studio agent with its own Microsoft Entra service principal of subtype &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Agent&lt;/code&gt;. Once enabled per environment, the agent presents this identity on outbound calls. The Agent ID is managed by the platform and visible in the Entra ID portal under enterprise applications. Administrators opt in at the environment level; the feature is not automatic by default. Where legacy connectors still rely on stored secrets, rotate them through Azure Key Vault.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-use-entra-agent-identities&quot;&gt;Entra agent identities (preview)&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;103-block-high-risk-connectors&quot;&gt;10.3 Block high-risk connectors&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; A handful of connectors account for most of the risk in agent tooling. Blocking them by default forces every exception to be justified.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Common blocks for regulated tenants:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HTTP&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HTTP with Microsoft Entra ID&lt;/code&gt; (or endpoint-filter them to an allow-list).&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Chat without Microsoft Entra ID authentication in Copilot Studio&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Skills&lt;/code&gt; (Bot Framework skills as tools).&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Event triggers&lt;/code&gt; (autonomous agents).&lt;/li&gt;
  &lt;li&gt;Custom connectors unless catalog-approved.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-data-loss-prevention&quot;&gt;Configure data policies for agents&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;104-use-action-control-for-partial-approval&quot;&gt;10.4 Use action control for partial approval&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Some connectors are too useful to block entirely but too dangerous to allow in full. Action control gives you a middle ground.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Allow read actions and block write actions on high-risk connectors — for example, allow &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Get rows&lt;/code&gt; on SQL Server but block &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Execute a SQL query&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/connector-action-control&quot;&gt;Connector action control&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;105-a-scripted-policy-baseline&quot;&gt;10.5 A scripted policy baseline&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; A baseline that lives only in the UI is not portable across tenants and not testable in code review. PowerShell-defined baselines fix both problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; A starter snippet using the Power Apps Administration PowerShell module:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# Create a new DLP policy
$policy = New-AdminDlpPolicy -DisplayName &quot;Agent baseline&quot;

# Move SharePoint Online to the Business data group
Set-AdminDlpPolicy -PolicyName $policy.PolicyName `
  -MoveTo &quot;BusinessDataOnly&quot; `
  -ConnectorName &quot;shared_sharepointonline&quot;

# Move HTTP to the Blocked group
Set-AdminDlpPolicy -PolicyName $policy.PolicyName `
  -MoveTo &quot;Blocked&quot; `
  -ConnectorName &quot;shared_logicflows_http&quot;

# Set the default group for new connectors to Blocked
Set-AdminDlpPolicy -PolicyName $policy.PolicyName `
  -SetNonBusinessDataGroupState &quot;Block&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/powerapps-powershell#data-loss-prevention-dlp-policy-commands&quot;&gt;DLP PowerShell cmdlets&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;106-govern-tools-prompts-and-mcp&quot;&gt;10.6 Govern tools, prompts, and MCP&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Agents do more than call connectors. Prompt content and external tools are governance surfaces in their own right; ignoring them leaves a hole the connector model alone cannot close.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Govern each surface:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Generative orchestration&lt;/strong&gt; with built-in prompts — control via the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AI prompts&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Generative AI settings&lt;/code&gt; rules.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Custom prompts&lt;/strong&gt; (prompt columns, AI Builder prompts) — audit through Dataverse.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;MCP servers&lt;/strong&gt; as external tools — govern through advanced connector policies (ACP) and inventory via the Copilot Studio admin center.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/mcp&quot;&gt;Agents and MCP&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/wp-data-loss-prevention&quot;&gt;Data policies&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;107-constrain-knowledge-sources-upstream&quot;&gt;10.7 Constrain knowledge sources upstream&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Knowledge sources are the easiest way for an agent to reach data the maker should not be able to reach. Upstream labels and authentication requirements close that gap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Apply layered controls:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Require authenticated SharePoint sources; block public websites in regulated environments.&lt;/li&gt;
  &lt;li&gt;Apply Microsoft Purview sensitivity labels upstream; agents honor label-based access for SharePoint and OneDrive content.&lt;/li&gt;
  &lt;li&gt;Use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Accessing transcripts from conversations in Copilot Studio agents&lt;/code&gt; rule to block transcript retention where conversations could contain sensitive prompts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/purview/sensitivity-labels&quot;&gt;Purview sensitivity labels for Copilot&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/connector-endpoint-filtering&quot;&gt;Endpoint filtering&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;11-application-lifecycle-management-and-pipelines&quot;&gt;11. Application Lifecycle Management and Pipelines&lt;/h2&gt;

&lt;p&gt;Application Lifecycle Management (ALM) for Power Platform is built on &lt;strong&gt;solutions&lt;/strong&gt;. A solution is a versioned container for apps, flows, agents, tables, roles, and environment variables. Movement between environments always goes through solution export and import — manually, via Power Platform Pipelines, or via Azure DevOps or GitHub.&lt;/p&gt;

&lt;h3 id=&quot;111-treat-solutions-as-the-unit-of-deployment&quot;&gt;11.1 Treat solutions as the unit of deployment&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Solutions give you a versioned, traceable artifact. The Default Solution does not; deploying out of it is how teams lose change history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use one solution per deployable unit and avoid the &lt;strong&gt;Default Solution&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/basics-alm&quot;&gt;ALM basics&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;112-make-flows-solution-aware&quot;&gt;11.2 Make flows solution-aware&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Non-solution-aware flows do not move cleanly between environments. Teams that skip this setting end up rebuilding flows in production by hand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Turn on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Default to creating new cloud flows as solution-aware&lt;/code&gt; so every new flow lands in a solution by default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/basics-alm&quot;&gt;ALM basics&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;113-use-environment-variables-and-connection-references&quot;&gt;11.3 Use environment variables and connection references&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Hard-coded connection strings and configuration values break promotion. Variables and references decouple configuration from solution content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use &lt;strong&gt;environment variables&lt;/strong&gt; for configuration and &lt;strong&gt;connection references&lt;/strong&gt; for flows and agents so connections can be rebound per environment without editing solution content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/basics-alm&quot;&gt;ALM basics&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;114-version-solutions-semantically&quot;&gt;11.4 Version solutions semantically&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Semantic versioning makes it possible to reason about what changed between releases. Without it, “version 7” tells you nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use semantic versioning (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1.4.2&lt;/code&gt;) and tag the source control commit that produced each version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/basics-alm&quot;&gt;ALM basics&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;115-adopt-power-platform-pipelines-for-native-deployment&quot;&gt;11.5 Adopt Power Platform Pipelines for native deployment&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Pipelines provide a deployment surface that runs inside the Power Platform itself — no external CI/CD required. For most low-code teams, they are the right starting point, and as of 2024 Microsoft has positioned them as the &lt;strong&gt;strategic replacement for the now-deprecated ALM Accelerator for Power Platform&lt;/strong&gt; (covered in 11.6).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Pipelines require a &lt;strong&gt;host environment&lt;/strong&gt; where the pipeline configuration is stored. &lt;strong&gt;Target environments&lt;/strong&gt; must be Managed Environments (the host itself does not need to be). Source and target environments are registered in the host. A deployment imports a solution, rebinds connection references, and runs solution checker. Approvals can be attached to deployment stages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/pipelines&quot;&gt;Power Platform Pipelines&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;116-set-up-the-pipelines-host-and-migrate-off-the-alm-accelerator&quot;&gt;11.6 Set up the pipelines host (and migrate off the ALM Accelerator)&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Two pieces of status to keep straight when standing up native ALM:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;The ALM Accelerator for Power Platform is deprecated (Microsoft Learn page last updated 2024-04-09).&lt;/strong&gt; Microsoft’s overview page is now titled &lt;em&gt;“ALM Accelerator for Power Platform (Deprecated)”&lt;/em&gt; and carries this notice: &lt;em&gt;“The ALM Accelerator is deprecated and will be removed in a future release. Use Pipelines in Power Platform to bring ALM automation capabilities to Power Platform and Dynamics 365 services. Pipelines can be used with source code integration or extended to integrate with other providers.”&lt;/em&gt; The accelerator was a canvas-app-plus-Azure-Pipelines reference implementation; the strategic replacement is the native Power Platform Pipelines experience described in 11.5. The accelerator continues to function for now, but no new investment is going into it and it is on track to be removed.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;The pipelines host solution is not the CoE Starter Kit.&lt;/strong&gt; They are different solutions with different purposes; conflating them leads to stalled rollouts. (The CoE Starter Kit itself is also no longer actively maintained — see part 1, section 8.6 — but that is a separate transition from the ALM Accelerator one.)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Install the &lt;strong&gt;Power Platform Pipelines&lt;/strong&gt; managed solution in the host environment (sometimes referenced as the &lt;em&gt;Deployment Pipeline Configuration&lt;/em&gt; app). Register environments in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Deployment Environments&lt;/code&gt; table. If your tenant currently runs on the ALM Accelerator canvas app and Azure DevOps templates, treat this as the trigger to plan a migration to Pipelines — start by mapping each accelerator pipeline to a Pipelines stage, then route new solutions through Pipelines and freeze the accelerator pipelines for net-new work. Source-control integration is on the Pipelines roadmap; if you need it today, fall back to Build Tools or GitHub Actions (11.10) rather than to the accelerator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/set-up-pipelines&quot;&gt;Set up Pipelines&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/guidance/alm-accelerator/overview&quot;&gt;ALM Accelerator for Power Platform (Deprecated)&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;117-run-pipelines-as-service-principals&quot;&gt;11.7 Run pipelines as service principals&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Pipelines should not depend on a human account that might leave the company. Service principals carry their own lifecycle and credentials.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Assign a service principal with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;System Administrator&lt;/code&gt; in source and target environments. Use a &lt;strong&gt;delegated service account&lt;/strong&gt; or &lt;strong&gt;managed identity&lt;/strong&gt; where supported to avoid storing client secrets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/manage-application-users&quot;&gt;Application users&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;118-promote-solutions-with-the-pac-cli&quot;&gt;11.8 Promote solutions with the PAC CLI&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Manual export and import via the UI is fine for one-off moves but not for repeatable deployments. The CLI is what survives review, automation, and offboarding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; A typical export/import:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pac auth create --url https://dev.crm.dynamics.com
pac solution export --name HRSolution --path ./HRSolution.zip --managed
pac auth create --url https://test.crm.dynamics.com
pac solution import --path ./HRSolution.zip --force-overwrite
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/developer/cli/reference/pipeline&quot;&gt;pac pipeline reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;119-trigger-a-pipeline-deployment-from-the-cli&quot;&gt;11.9 Trigger a pipeline deployment from the CLI&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Pipeline runs should be drivable from automation. The CLI provides exactly the surface needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Authenticate against the source environment first, then run:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pac pipeline deploy --solutionName HRSolution `
                    --currentVersion 1.4.1 `
                    --newVersion 1.4.2 `
                    --stageId &amp;lt;stageId&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The active &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pac auth&lt;/code&gt; profile selects the pipeline; deployment notes are not a CLI argument and are added through the admin UI when needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/developer/cli/reference/pipeline&quot;&gt;pac pipeline reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;1110-use-azure-devops-or-github-when-policy-requires-it&quot;&gt;11.10 Use Azure DevOps or GitHub when policy requires it&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Native pipelines are the right tool for most low-code teams, but they do not cover every release scenario — external approvals, multi-stack coordination, artifact signing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; &lt;strong&gt;Power Platform Build Tools&lt;/strong&gt; (Azure DevOps) and &lt;strong&gt;Power Platform Actions&lt;/strong&gt; (GitHub) expose the same CLI commands as pipeline tasks. Use them when the release policy requires capabilities the native pipelines do not have.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/devops-build-tools&quot;&gt;Power Platform Build Tools&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/devops-github-actions&quot;&gt;GitHub Actions for Power Platform&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;1111-deploy-managed-not-unmanaged-to-higher-environments&quot;&gt;11.11 Deploy managed, not unmanaged, to higher environments&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Unmanaged solutions in production allow layered customization that erodes traceability. Managed solutions force changes back through ALM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Deploy &lt;strong&gt;managed&lt;/strong&gt; solutions to test and production. Enable the &lt;strong&gt;Block unmanaged customizations&lt;/strong&gt; setting per environment (under Settings &amp;gt; Features) for production environments to prevent unmanaged changes from being imported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/basics-alm&quot;&gt;ALM basics&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/block-unmanaged-customizations&quot;&gt;Block unmanaged customizations&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;12-solution-checker-and-quality-gates&quot;&gt;12. Solution Checker and Quality Gates&lt;/h2&gt;

&lt;p&gt;Solution checker is a static-analysis engine that inspects solution contents against a Microsoft-maintained rule set. It runs on canvas apps, model-driven apps, Power Fx, Dataverse customizations, plug-ins, web resources, cloud flows, and Copilot Studio agents.&lt;/p&gt;

&lt;h3 id=&quot;121-run-on-demand-for-fast-feedback&quot;&gt;12.1 Run on demand for fast feedback&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Makers and reviewers want feedback before they commit, not after the fact. On-demand runs close that gap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Run from the Power Platform admin center, from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;make.powerapps.com&lt;/code&gt;, or with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pac solution check&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/checker-api/overview&quot;&gt;Solution checker&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;122-integrate-with-pipelines&quot;&gt;12.2 Integrate with pipelines&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Manual runs depend on discipline. Pipeline-integrated runs depend on configuration, which is more reliable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Solution checker runs automatically before deployment in Power Platform Pipelines. No additional setup is needed beyond registering the pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/pipelines&quot;&gt;Power Platform Pipelines&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;123-enforce-at-solution-import&quot;&gt;12.3 Enforce at solution import&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; A warning that does not block is a warning that gets ignored. Enforcement turns solution checker into an actual gate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; In Managed Environments, set &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Solution checker enforcement&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Warn&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Block&lt;/code&gt; for solution import. At &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Block&lt;/code&gt;, an import containing a rule violation at or above the threshold fails with the list of offending components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-solution-checker&quot;&gt;Solution checker enforcement&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;124-understand-the-rule-categories&quot;&gt;12.4 Understand the rule categories&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Knowing what solution checker looks for helps you read the output and prioritize fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; The rule categories include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt; — use of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Execute Fetch&lt;/code&gt; with user-supplied input, open redirects in web resources, plug-in secrets in traces.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt; — non-delegable queries in canvas apps, missing indexes in Dataverse, synchronous plug-ins on create/update of high-volume tables.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Design&lt;/strong&gt; — missing connection references, hard-coded GUIDs, deprecated API calls.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Reliability&lt;/strong&gt; — missing error handling in flows, unbounded loops, overlapping workflow triggers.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Compatibility&lt;/strong&gt; — usage of deprecated or removed platform features.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-apps/maker/data-platform/use-powerapps-checker&quot;&gt;Rule reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;125-run-from-the-cli-and-consume-sarif&quot;&gt;12.5 Run from the CLI and consume SARIF&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Output that can be parsed by the rest of your toolchain is output that gets used. SARIF is the lingua franca of code scanners.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Run with the CLI and consume the SARIF output:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pac solution check --path ./HRSolution.zip `
                   --geo Europe `
                   --ruleSet &quot;Solution Checker&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The CLI returns a SARIF file that can be uploaded to GitHub code scanning or parsed in Azure DevOps. Severity is one of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;High&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Medium&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Low&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Informational&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/developer/cli/reference/solution#pac-solution-check&quot;&gt;pac solution check&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;126-configure-enforcement-thresholds-explicitly&quot;&gt;12.6 Configure enforcement thresholds explicitly&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Default thresholds may not match your risk tolerance. Configuration makes the threshold explicit instead of implicit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; In the admin center, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Edit Managed Environments &amp;gt; Solution checker&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Enforcement: Block
Severity threshold: High
Exclusion rules: (solution-specific overrides)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-solution-checker&quot;&gt;Solution checker enforcement&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;127-validate-agents-through-complementary-checks&quot;&gt;12.7 Validate agents through complementary checks&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Agents have failure modes apps and flows do not — missing fallbacks, public knowledge, blocked-channel publish. No single tool covers all of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Solution checker validates the solution container that holds a Copilot Studio agent (flows, plug-ins, web resources inside the solution), and DLP enforcement validates connector usage at design time. For agent-specific quality — topic coverage, fallback behavior, knowledge source configuration — use &lt;strong&gt;agent evaluations&lt;/strong&gt; (section 12.8) and manual review as part of the deployment approval. DLP policy violations (references to blocked connectors, no-authentication publish) surface as real-time authoring errors, not as solution checker findings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/checker-api/overview&quot;&gt;Solution checker&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-data-loss-prevention&quot;&gt;Configure data policies for agents&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;128-add-agent-evaluations-for-behavioral-quality&quot;&gt;12.8 Add agent evaluations for behavioral quality&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Solution checker validates structure, not behavior. Behavioral quality — does the agent give the right answer to the right prompt — needs a separate gate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Copilot Studio includes &lt;strong&gt;agent evaluations&lt;/strong&gt;: define test sets of prompts and expected behaviors, then run them before publish. Evaluations are complementary to solution checker, not a replacement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/analytics-agent-evaluation-intro&quot;&gt;Agent evaluations&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;13-licensing-and-capacity-governance&quot;&gt;13. Licensing and Capacity Governance&lt;/h2&gt;

&lt;p&gt;Licensing is a governance concern because runtime usage of Power Platform and Copilot Studio is gated by assigned licenses and consumed capacity. Capacity misconfiguration is a leading cause of outages.&lt;/p&gt;

&lt;h3 id=&quot;131-pick-the-right-power-apps-license-model&quot;&gt;13.1 Pick the right Power Apps license model&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Per-app and per-user pricing have different break-even points. Choosing the wrong one for your usage pattern overpays for licenses or under-provisions makers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; &lt;strong&gt;Power Apps&lt;/strong&gt; ships per user or per app. Per-app covers one app (or one portal) per license per user; per-user covers unlimited apps. Pick based on the number of apps the average user consumes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/pricing-billing-skus&quot;&gt;Power Platform licensing overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;132-match-power-automate-plans-to-flow-type&quot;&gt;13.2 Match Power Automate plans to flow type&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Per-user, per-flow, and process plans suit different scenarios. Buying the wrong plan creates a cliff: either you over-license low-volume flows or run out of capacity on high-volume ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; &lt;strong&gt;Power Automate&lt;/strong&gt; ships per user (user plan) or per flow (Process license). The &lt;strong&gt;Hosted Process&lt;/strong&gt; license is a superset that adds hosted machine capacity for unattended RPA workloads. Pick per-user for broad automation adoption; use Process or Hosted Process licenses for high-volume or RPA-specific flows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/pricing-billing-skus&quot;&gt;Power Platform licensing overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;133-allocate-dataverse-capacity-per-environment&quot;&gt;13.3 Allocate Dataverse capacity per environment&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Without explicit allocation, environments draw from the tenant pool until exhausted. When the pool is gone, every over-pool environment goes read-only at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Dataverse capacity (database, file, log) accrues per tenant and is allocated per environment. Assign capacity explicitly under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Resources &amp;gt; Capacity &amp;gt; Environments&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/capacity-storage&quot;&gt;Capacity in admin center&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;134-plan-copilot-studio-consumption&quot;&gt;13.4 Plan Copilot Studio consumption&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Copilot Studio consumption is metered in credits, and there is no hard tenant-wide cap. Budget alerts, not blocks, are the primary guard against runaway spend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; &lt;strong&gt;Copilot Studio&lt;/strong&gt; consumes &lt;strong&gt;Copilot Credits&lt;/strong&gt; based on feature type (generative answers, actions, autonomous events), sold as &lt;strong&gt;prepaid capacity&lt;/strong&gt; or &lt;strong&gt;pay-as-you-go&lt;/strong&gt; (PAYG). Microsoft 365 Copilot user licenses include a separate allowance. Credit consumption varies by the capabilities an agent invokes, not by a flat per-message rate. Constraints to plan for:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;PAYG requires a &lt;strong&gt;billing policy&lt;/strong&gt; linked to an Azure subscription, configured at the environment level; without it, PAYG is inactive.&lt;/li&gt;
  &lt;li&gt;Configurable consumption caps are being introduced (2026 release wave 1); until fully rolled out, budget alerts remain the primary guard against runaway spend.&lt;/li&gt;
  &lt;li&gt;Consumption reporting is in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Resources &amp;gt; Capacity &amp;gt; Copilot Studio&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monitor trends weekly and set Azure budget alerts on the PAYG meter subscription.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/requirements-licensing-subscriptions&quot;&gt;Copilot Studio licensing&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/pay-as-you-go-overview&quot;&gt;Pay-as-you-go setup&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;135-license-power-pages-by-site-capacity&quot;&gt;13.5 License Power Pages by site capacity&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Power Pages licensing is per-site, not per-user, which is easy to miss when projecting cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; &lt;strong&gt;Power Pages&lt;/strong&gt; is licensed by authenticated or anonymous user capacity per site. Plan capacity per site, not per identity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/pricing-billing-skus&quot;&gt;Power Platform licensing overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;136-use-group-based-licensing-and-audit-monthly&quot;&gt;13.6 Use group-based licensing and audit monthly&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt; Direct license assignment leaves orphaned licenses behind when users leave. Group-based licensing keeps assignment in sync with employment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use Microsoft Entra ID group-based licensing. Audit monthly with PowerShell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Connect-MgGraph -Scopes &quot;Directory.Read.All&quot;
Get-MgUser -All -Property AssignedLicenses,UserPrincipalName |
  Where-Object { $_.AssignedLicenses.SkuId -contains &quot;&amp;lt;Power Apps Per User SKU&amp;gt;&quot; } |
  Select-Object UserPrincipalName
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/pricing-billing-skus&quot;&gt;Power Platform licensing overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;137-account-for-developer-plan-environments&quot;&gt;13.7 Account for Developer Plan environments&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Developer environments are free per user but count against tenant environment quotas. Without a plan, they accumulate quietly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; &lt;strong&gt;Power Apps Developer Plan&lt;/strong&gt; provides free developer environments (up to three per user) for learning and building. Developer environment capacity does not count against the tenant’s paid environment quota. Use default environment routing to manage developer environments centrally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/developer/plan&quot;&gt;Developer Plan&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;14-change-management-and-release-rings&quot;&gt;14. Change Management and Release Rings&lt;/h2&gt;

&lt;p&gt;Power Platform receives continuous updates from Microsoft and from in-tenant makers. A change management practice that controls both streams keeps environments predictable.&lt;/p&gt;

&lt;h3 id=&quot;141-choose-a-release-channel-per-environment-group&quot;&gt;14.1 Choose a release channel per environment group&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Microsoft pushes updates continuously. Channels let you control whether an environment gets updates as soon as they ship or after a slower validation period — a critical lever for production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Power Platform environments support three channels:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Auto&lt;/strong&gt; (default) — updates arrive as they are released to ring-by-ring deployment and are recommended for production environments where stability is achieved through Microsoft’s own gradual rollout.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Monthly&lt;/strong&gt; — fixed monthly cadence; let’s pilot environments to preview the next set of updates before they reach Auto.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Semi-Annual&lt;/strong&gt; — available for model-driven apps; updates arrive on a six-month cadence for organizations that need longer validation cycles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Set the channel with the environment group rule &lt;strong&gt;Release channel&lt;/strong&gt;. Production groups typically stay on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Auto&lt;/code&gt;; pilot groups use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Monthly&lt;/code&gt; for early validation. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Semi-Annual&lt;/code&gt; channel is primarily relevant for model-driven app scenarios that require extended validation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/release-channels&quot;&gt;Release channels&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-apps/maker/model-driven-apps/channel-overview&quot;&gt;Model-driven app release channels&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;142-track-microsoft-release-waves&quot;&gt;14.2 Track Microsoft release waves&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Release waves announce major capability changes twice a year. They are how you anticipate behavior changes that channels alone cannot smooth over.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Track release waves through the Microsoft Dynamics 365 release plans site and surface relevant items in your CoE communications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/dynamics365/release-plans/&quot;&gt;Release waves&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;143-gate-previews-and-experimental-features&quot;&gt;14.3 Gate previews and experimental features&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Preview features can disappear, change behavior, or carry undocumented limits. They do not belong in regulated environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Generative AI settings&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Preview and experimental AI models&lt;/code&gt; rules at the environment group level to gate preview capabilities. Keep previews off in regulated groups; enable in a pilot group with representative data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environment-groups-rules&quot;&gt;Rules for environment groups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;144-define-in-tenant-change-categories&quot;&gt;14.4 Define in-tenant change categories&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt; Treating every deployment the same way over-controls routine changes and under-controls risky ones. Categories let you match scrutiny to risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Apply the same change categories used in traditional IT:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Standard&lt;/strong&gt; (pre-approved) — patch increments of an existing solution, deployed via pipelines.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Normal&lt;/strong&gt; — new apps, flows, or agents; requires CoE or architecture review.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Emergency&lt;/strong&gt; — hotfixes; post-implementation review required.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each category maps to a pipeline approval configuration. Approvals are implemented as Dataverse records in the pipelines host with Azure AD group-based reviewer lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/pipelines&quot;&gt;Power Platform Pipelines&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;145-use-administration-mode-during-deployments&quot;&gt;14.5 Use administration mode during deployments&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Deploying while users are active risks corrupted state and poor user experience. Administration mode blocks user traffic while the change is being made.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Enable administration mode with the CLI:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pac admin set-runtime-state --runtime-state AdminMode
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Revert with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--runtime-state Enabled&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/admin-mode&quot;&gt;Administration mode&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;146-take-a-manual-backup-before-risky-changes&quot;&gt;14.6 Take a manual backup before risky changes&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Automatic backups follow a schedule; risky changes do not. A manual restore point taken just before a deployment is the cheapest insurance available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pac admin backup&lt;/code&gt; to create a manual restore point. Set the &lt;strong&gt;Backup retention&lt;/strong&gt; rule to at least 28 days for production groups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/backup-restore-environments&quot;&gt;Manual backups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;147-communicate-changes-through-known-channels&quot;&gt;14.7 Communicate changes through known channels&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Surprises drive support volume. The cheapest way to reduce surprise is to communicate changes through channels the audience already reads.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Layer three channels:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The &lt;strong&gt;Message Center&lt;/strong&gt; in the Microsoft 365 admin center surfaces Power Platform MC alerts. Subscribe Power Platform admins and CoE members.&lt;/li&gt;
  &lt;li&gt;Use the &lt;strong&gt;Maker welcome content&lt;/strong&gt; rule to publish in-product notices for upcoming behavior changes.&lt;/li&gt;
  &lt;li&gt;Maintain a tenant changelog in the CoE environment, linking MC IDs, affected environments, and owners.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-365/admin/manage/message-center&quot;&gt;Message Center&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;148-plan-for-rollback&quot;&gt;14.8 Plan for rollback&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Rollback in Power Platform is limited and asymmetric. Pretending it is straightforward leads to ugly outages when something does need to be reversed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Rollback is constrained to Dataverse restore points and solution re-import of a prior version. Canvas apps retain version history; model-driven apps roll back via solution version. For Copilot Studio, earlier agent versions can be restored from the agent version list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/backup-restore-environments&quot;&gt;Manual backups&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/authoring-publish-basics&quot;&gt;Copilot Studio agent versions&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;conclusion-bringing-both-parts-together&quot;&gt;Conclusion: bringing both parts together&lt;/h2&gt;

&lt;p&gt;Power Platform governance is not a single product, a single policy, or a single role. Across the two articles in this reference, the cumulative result is shown to be the result of many small, well-placed controls working together. Part 1 covered the platform on which everything stands: an environment topology that matches how the organization actually builds, a default environment treated as a perimeter rather than a playground, Managed Environments and environment groups that make policy enforceable at scale, DLP and tenant isolation that bound where data can move, identity and Conditional Access that decide who is allowed to touch the platform at all, and monitoring that turns activity into evidence. Part 2 covered everything that runs on that platform: Copilot Studio controls that extend the same model to AI agents, agent authentication and connector governance that shape what agents are allowed to do, ALM and pipelines that move solutions through environments traceably, solution checker and agent evaluations that gate quality at import and publish, licensing and capacity governance that prevent runtime surprises, and change management practices that absorb both Microsoft’s rollouts and your own without disrupting users.&lt;/p&gt;

&lt;p&gt;The two halves only work together. Part 1’s controls are not useful without something to govern; part 2’s controls do not stick without the foundations underneath them. Sharing limits matter only because Managed Environments make them enforceable. Solution checker enforcement matters only because environmental groups can apply it consistently. Entra Agent ID matters only because Conditional Access gates the identities of those agents present. The two articles are designed to be read as a single document, split for readability, not as independent pieces.&lt;/p&gt;

&lt;p&gt;The controls described across both parts already exist in the platform today. Nearly all are generally available; Entra Agent ID (section 10.2) is still in preview. None of them requires custom engineering or third-party tooling to be useful. What they require is decision-making: which environments belong in which group, which connectors are business versus non-business, which agents must authenticate with Microsoft Entra ID, which release channel each group follows, who approves a production deployment, and where the lines are drawn between regulated and general-purpose work. Those decisions &lt;em&gt;are&lt;/em&gt; governance.&lt;/p&gt;

&lt;p&gt;Start small and iterate. A minimum viable posture across both articles is: restrict default environment creation, attach a tenant-wide baseline DLP policy, enable default environment routing with a Managed Environments group, turn on tenant-level analytics, lean on the Power Platform admin center’s &lt;strong&gt;Inventory&lt;/strong&gt;, &lt;strong&gt;Usage&lt;/strong&gt;, &lt;strong&gt;Monitor&lt;/strong&gt;, and &lt;strong&gt;Actions&lt;/strong&gt; experiences (the CoE Starter Kit is no longer actively maintained), verify your tenant isolation defaults, require authenticated agents, run solution checker at import, deploy through &lt;strong&gt;Power Platform Pipelines&lt;/strong&gt; as a service principal (the strategic replacement for the now-deprecated ALM Accelerator), and set Auto channel for production with Monthly for a pilot ring. Everything else in these two articles is a refinement on that foundation. Governance that grows with the platform is governance that lasts; governance that is bolted on after an incident rarely recovers the ground it lost.&lt;/p&gt;

&lt;p&gt;Read this reference end to end once to map the territory, then return to it section by section as decisions come up. Both articles are designed to be skimmed for vocabulary and read closely when a specific control is at issue.&lt;/p&gt;
</description>
                <pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/powerplatform-governance-part-2</link>
                <guid isPermaLink="true">https://holgerimbery.blog/powerplatform-governance-part-2</guid>
                
                <category>agent365</category>
                
                <category>agents</category>
                
                <category>applicationlifecyclemanagement</category>
                
                <category>compliance</category>
                
                <category>copilotstudio</category>
                
                <category>dataverse</category>
                
                <category>governance</category>
                
                <category>pipelines</category>
                
                <category>powerplatform</category>
                
                <category>security</category>
                
                
            </item>
        
            <item>
                <title>Power Platform Governance: A Practitioner&apos;s Reference (Part 1)</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary lede.&lt;/strong&gt; Power Platform and Copilot Studio now let every licensed Microsoft 365 user build apps, automations, and AI agents that touch enterprise data. This first part of a two-article reference walks through the platform-level foundations that everything else rests on — environment strategy, default-environment hardening, Managed Environments, environment groups and rules, DLP, tenant isolation, identity, and monitoring — and shows how they combine into a coherent, enforceable posture. Part 2 next week will cover Copilot Studio governance, agent authentication, ALM and pipelines, solution checker, licensing, and change management.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Who this is for.&lt;/strong&gt; Power Platform administrators, security or compliance officers responsible for a Microsoft 365 tenant, Center of Excellence leads, architects, designing a low-code or AI-agent platform, and makers who want to understand the guardrails around the tools they build with. The document replaces fragmented documentation with an ordered walkthrough of what actually exists today: CLI snippets, PowerShell examples, and direct links to authoritative Microsoft Learn pages. Nothing here is speculative, so the patterns can be applied to a tenant without waiting for a future release. If you need to defend an environment posture to auditors, onboard a new admin, set priorities for a governance rollout, or decide what “good” looks like for your tenant, this gives you the vocabulary, the examples, and the reasoning in one place.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;why-governance-matters&quot;&gt;Why governance matters&lt;/h2&gt;

&lt;p&gt;Power Platform and Copilot Studio have turned a large part of every Microsoft 365 tenant into a build surface. Employees who never wrote code are now authoring apps, flows, and AI agents that read from SharePoint, write to Dataverse, send email on behalf of users, and call external APIs. That shift changes the risk profile of the tenant in ways that are visible to three constituencies, each with a different stake.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;the business&lt;/strong&gt;, governance is what keeps low-code and AI investments returning value instead of accumulating liability. Ungoverned environments grow a long tail of half-finished apps, orphaned flows, and agents with unknown owners — each one a support ticket, compliance finding, or incident waiting to happen. Regulators increasingly ask who authored a control, what data it touched, and how changes were approved. A documented governance posture answers those questions without forensic archaeology and lets the business say &lt;em&gt;yes&lt;/em&gt; to new use cases because the controls are already in place.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;IT&lt;/strong&gt;, governance is the mechanism that preserves tenant integrity while the perimeter expands. Data Loss Prevention, tenant isolation, identity controls, and pipelines are not optional add-ons; they are how IT shifts from gatekeeper to platform operator. Without them, the only available stance is blanket denial — which does not reduce risk, because work simply moves to spreadsheets, personal accounts, and shadow SaaS where IT has no visibility at all. With them, IT can set guardrails at the platform level, delegate day-to-day authoring to business units, and focus engineering time on integrations, security, and automation.&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;makers&lt;/strong&gt;, governance is the difference between building with confidence and building in the dark. Clear environment boundaries, known DLP rules, a predictable ALM path, and a Center of Excellence to turn to all reduce the cognitive load of citizen development. Makers who know what is allowed spend their time on business logic, not on working around unclear policy. Maker welcome content, solution checker, and sharing limits exist to shorten the feedback loop so that problems are caught while they are still cheap to fix.&lt;/p&gt;

&lt;p&gt;This first article works through the platform-level foundations: environment design, the default environment, Managed Environments, environment groups, DLP, tenant isolation, identity, and monitoring. Each control begins with the reason it exists, moves to the how, and points you to the authoritative Microsoft Learn page. Part 2 will build on this base by covering the resources that live inside those environments — Copilot Studio agents, ALM, licensing, and change management.&lt;/p&gt;

&lt;p class=&quot;important&quot;&gt;&lt;strong&gt;A note on the kits.&lt;/strong&gt;&lt;br /&gt;
If you are coming to this article expecting the &lt;strong&gt;CoE Starter Kit&lt;/strong&gt; or the &lt;strong&gt;ALM Accelerator&lt;/strong&gt; to do the governance heavy lifting: that picture has changed. Microsoft has confirmed that the &lt;strong&gt;CoE Starter Kit is no longer actively maintained&lt;/strong&gt; — its core capabilities are now part of the Power Platform admin center — and the &lt;strong&gt;ALM Accelerator for Power Platform is formally deprecated&lt;/strong&gt;, with &lt;strong&gt;Power Platform Pipelines&lt;/strong&gt; as the named replacement. Section 8.6 covers the CoE Starter Kit transition to the admin center; section 3.5 covers the ALM Accelerator → Pipelines transition; the rest of the article reflects that shift.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;1-environment-strategy&quot;&gt;1. Environment Strategy&lt;/h2&gt;

&lt;p&gt;An environment in Power Platform is a container for apps, flows, agents, connections, and Dataverse data. Environment design is the foundation of governance because DLP scope, security roles, capacity, and compliance boundaries all follow environment lines. Get the topology right and every later control has somewhere clean to attach. Get it wrong and you spend the rest of the rollout retrofitting policy onto a sprawl.&lt;/p&gt;

&lt;h3 id=&quot;11-know-the-environment-types&quot;&gt;1.1 Know the environment types&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Each type carries different defaults for licensing, data residency, and lifecycle. Choosing the wrong type at provisioning time creates rework that is rarely cheap to undo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Five types are in active use today:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Default&lt;/strong&gt; — one per tenant, created automatically, open to every licensed user.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Production&lt;/strong&gt; — business-critical workloads, backed by Dataverse.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sandbox&lt;/strong&gt; — non-production, resettable, suitable for UAT and load tests.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Developer&lt;/strong&gt; — single-maker environments, created manually or via routing.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Trial&lt;/strong&gt; and &lt;strong&gt;Teams&lt;/strong&gt; — time-limited or chat-scoped; not recommended for production assets.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environments-overview&quot;&gt;Environments overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;12-adopt-a-topology-that-mirrors-your-delivery-lifecycle&quot;&gt;1.2 Adopt a topology that mirrors your delivery lifecycle&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; A topology aligned with how your organization actually builds shortens the path from idea to production and gives every governance rule (DLP, sharing limits, release channel) a natural place to land.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; A typical enterprise pattern separates by lifecycle and purpose:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Default  -&amp;gt; personal productivity only (restricted)
DEV-*    -&amp;gt; per-maker or per-team developer environments
TEST-*   -&amp;gt; solution UAT with production-like data volume
PROD-*   -&amp;gt; published solutions, scoped by region or business unit
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Add a dedicated &lt;strong&gt;CoE&lt;/strong&gt; environment for governance tooling (pipelines host and any remaining CoE Starter Kit components — see section 8.6 for the kit’s status) and a &lt;strong&gt;training&lt;/strong&gt; environment for enablement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/guidance/adoption/environment-strategy&quot;&gt;Establishing an environment strategy&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;13-restrict-who-can-create-environments&quot;&gt;1.3 Restrict who can create environments&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Self-service environment creation is the fastest way to lose tenant-wide visibility. Most makers do not need to create environments; the few who do should be deliberately empowered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; In tenant settings, configure &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Who can create production and sandbox environments&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Who can create trial environments&lt;/code&gt; to limit creation to admins or a named CoE group. For repeatable provisioning, drive creation through the CLI:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pac admin create --name &quot;DEV-Finance-EU&quot; --type Sandbox --region europe
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/control-environment-creation&quot;&gt;Control who can create environments&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/developer/cli/reference/admin&quot;&gt;pac admin reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;14-pick-a-region-before-you-provision&quot;&gt;1.4 Pick a region before you provision&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Environments are region-locked. Region determines data residency, latency, and which regional services (Application Insights endpoints, Dataverse data centers) integrate cleanly. Moving an environment between regions is not a supported operation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Choose the region from the regional catalog at provisioning time. For regulated workloads, pick the region that satisfies the controlling jurisdiction even if it is not where most of your users sit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/regions-overview&quot;&gt;Environment regions&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;15-plan-capacity-before-you-turn-on-dataverse&quot;&gt;1.5 Plan capacity before you turn on Dataverse&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Dataverse-enabled environments draw from a tenant-wide capacity pool. Capacity surprises are a leading cause of unplanned read-only mode in production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Any Dataverse-enabled environment — production or sandbox — requires the tenant-level minimum of 1 GB of database capacity. Capacity is a tenant pool, not a per-environment allocation, so plan total tenant capacity against the number of Dataverse-enabled environments you intend to run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/about-storage-capacity&quot;&gt;About Dataverse storage capacity&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;16-isolate-regulated-workloads&quot;&gt;1.6 Isolate regulated workloads&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; DLP, security roles, and Dataverse auditing settings are scoped per environment. Mixing regulated and non-regulated workloads in the same environment forces every control to be the strictest common denominator and complicates compliance reporting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Provision separate environments for HR, Finance, and other regulated workloads. Each one becomes a clean target for environment-specific DLP, role assignments, and backup retention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/guidance/adoption/environment-strategy&quot;&gt;Establishing an environment strategy&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;2-governing-the-default-environment&quot;&gt;2. Governing the Default Environment&lt;/h2&gt;

&lt;p&gt;The default environment is the only environment created automatically in every Power Platform tenant. Every licensed user is a member and holds the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Environment Maker&lt;/code&gt; role, which lets them create apps, flows, connections, and Copilot Studio agents. It is always present, always writable, and cannot be deleted or renamed — which makes it the single most common source of shadow IT on the platform. It needs explicit governance, not benign neglect.&lt;/p&gt;

&lt;h3 id=&quot;21-understand-what-makes-the-default-environment-different&quot;&gt;2.1 Understand what makes the default environment different&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Treating the default environment like any other production environment leads to surprises. Several behaviors are unique to it and cannot be disabled.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Plan around four facts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;It cannot be deleted. It can be renamed and reassigned to a non-default type for display purposes, but Microsoft treats it as the fallback environment for personal productivity.&lt;/li&gt;
  &lt;li&gt;Every new tenant user inherits &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Environment Maker&lt;/code&gt;. There is no tenant setting that removes this role on the default environment.&lt;/li&gt;
  &lt;li&gt;Dataverse is optional by default, but once added it cannot be removed.&lt;/li&gt;
  &lt;li&gt;Connectors default to the same tenant-wide DLP policy as any other non-scoped environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environments-overview#the-default-environment&quot;&gt;Default environment overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;22-rename-and-tag-for-clarity&quot;&gt;2.2 Rename and tag for clarity&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Makers cannot make good decisions about where to build if the default environment looks like any other production candidate. The name is the first signal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Rename the default environment to something like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Personal Productivity (Default)&lt;/code&gt; so its purpose is unambiguous. Apply a consistent solution-naming convention for any assets that genuinely belong there (such as personal flows).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environments-overview#the-default-environment&quot;&gt;Default environment overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;23-attach-a-restrictive-dlp-policy&quot;&gt;2.3 Attach a restrictive DLP policy&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; The default environment is where ungoverned makers land first. A restrictive DLP policy turns the blast radius from “every connector Microsoft ships” into a known, defensible set.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Move risky connectors (HTTP, custom connectors, social media, unauthenticated agent chat) to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Blocked&lt;/code&gt;. Keep only Microsoft 365, Dataverse, and a short approved list in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Business&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/wp-data-loss-prevention&quot;&gt;Data policies overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;24-keep-dataverse-out-or-contained-by-default&quot;&gt;2.4 Keep Dataverse out (or contained) by default&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Once Dataverse is added to the default environment, it cannot be removed. Production data living next to ungoverned personal flows is a compliance problem that is hard to walk back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; If the default environment still lacks Dataverse, leave it off. Production data belongs in dedicated environments where capacity and backup are managed deliberately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environments-overview#the-default-environment&quot;&gt;Default environment overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;25-constrain-sharing-through-managed-environments&quot;&gt;2.5 Constrain sharing through Managed Environments&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Without sharing limits, a maker can publish an app or agent to the entire tenant with one click. The default environment is the most common origin for that mistake.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Convert the default environment to a Managed Environment and apply &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Limit sharing&lt;/code&gt; rules: cap the number of users an asset can be shared with and disable sharing through security groups. Mechanics are covered in section 3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-sharing-limits&quot;&gt;Limit sharing in Managed Environments&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;26-enable-default-environment-routing&quot;&gt;2.6 Enable default environment routing&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; The cleanest way to keep the default environment empty is to redirect new makers somewhere else automatically. Routing replaces “the default environment is where people end up” with “the default environment is where nobody builds.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Turn on &lt;strong&gt;default environment routing&lt;/strong&gt; under &lt;strong&gt;Settings &amp;gt; Default environment routing&lt;/strong&gt; in the Power Platform admin center. Each routed maker receives a personal developer environment; group those environments with &lt;strong&gt;Environment groups&lt;/strong&gt; and apply policies in bulk (sharing limits, maker welcome content, solution checker).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/default-environment-routing&quot;&gt;Default environment routing&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environment-groups&quot;&gt;Environment groups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;27-lock-down-agents-and-copilot-in-the-default-environment&quot;&gt;2.7 Lock down agents and Copilot in the default environment&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Copilot Studio agents created in the default environment are immediately discoverable by all licensed users. Without explicit controls, makers can publish unauthenticated agents, call any non-blocked connector, and add knowledge sources the creator already has access to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Apply layered controls: convert the default environment to a Managed Environment, block the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Chat without Microsoft Entra ID authentication in Copilot Studio&lt;/code&gt; connector in DLP, block the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HTTP&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HTTP with Microsoft Entra ID&lt;/code&gt; connectors, and enable tenant-level Copilot Studio restrictions on who can publish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/microsoft-copilot-studio/admin-data-loss-prevention&quot;&gt;Data policies for Copilot Studio&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/tenant-settings&quot;&gt;Tenant settings reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;28-turn-on-monitoring-before-you-need-it&quot;&gt;2.8 Turn on monitoring before you need it&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Telemetry collected after an incident is worth less than telemetry collected before one. Get visibility on the default environment first, because that is where ungoverned activity tends to land.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Enable &lt;strong&gt;tenant-level analytics&lt;/strong&gt; in the Power Platform admin center to capture telemetry. Use the admin center &lt;strong&gt;Inventory&lt;/strong&gt;, &lt;strong&gt;Usage&lt;/strong&gt;, &lt;strong&gt;Monitor&lt;/strong&gt;, and &lt;strong&gt;Actions&lt;/strong&gt; experiences to list apps, flows, and agents by owner — these have replaced the CoE Starter Kit inventory flows (see section 8.6). Review the Managed Environments &lt;strong&gt;weekly digest&lt;/strong&gt; for inactive and top-used assets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/tenant-level-analytics&quot;&gt;Tenant-level analytics&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;29-a-starting-dlp-stance&quot;&gt;2.9 A starting DLP stance&lt;/h3&gt;

&lt;p&gt;The example below is not a policy you should ship verbatim, but it is a defensible starting point for a default environment that has no other governance in place:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Business group:    Microsoft 365 connectors (Outlook, SharePoint, Teams, OneDrive), Dataverse, Approvals
Non-business:      (empty)
Blocked:           HTTP, HTTP with Microsoft Entra ID, custom connectors,
                   Chat without Microsoft Entra ID authentication in Copilot Studio,
                   SMTP, FTP, social media connectors
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/create-dlp-policy&quot;&gt;Create a data policy&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/control-environment-creation&quot;&gt;Control environment creation&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;3-managed-environments&quot;&gt;3. Managed Environments&lt;/h2&gt;

&lt;p&gt;Managed Environments is a premium governance layer that augments a standard environment with administrative controls. Enabling it does not change the environment’s region, type, or Dataverse schema; it activates a set of tenant-visible features that admins can enforce. Most of the controls that follow in this document depend on Managed Environments being on.&lt;/p&gt;

&lt;h3 id=&quot;31-limit-sharing&quot;&gt;3.1 Limit sharing&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Uncontrolled sharing is one of the highest-impact governance gaps. A single misconfigured share can expose an app or agent to the entire tenant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Cap the number of users an app or agent can be shared with, block sharing through security groups, and block editor sharing. Configure under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Edit Managed Environments &amp;gt; Limit sharing&lt;/code&gt;. Rules apply on the next share action; existing assignments remain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-sharing-limits&quot;&gt;Limit sharing&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;32-receive-a-weekly-digest&quot;&gt;3.2 Receive a weekly digest&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Admins do not have time to log into the admin center every day. A scheduled summary keeps inactive and top-used assets in front of them without manual polling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Power Platform and Dynamics 365 admins automatically receive an email summary covering active users, top apps, and inactive apps and flows. Add additional recipients via PowerShell:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$t = Get-TenantSettings
$t.powerPlatform.governance |
  Add-Member -NotePropertyName additionalAdminDigestEmailRecipients `
             -NotePropertyValue &apos;coe@contoso.com;ops@contoso.com&apos;
Set-TenantSettings -RequestBody $t
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-usage-insights&quot;&gt;Usage insights (weekly digest)&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;33-enforce-solution-checker&quot;&gt;3.3 Enforce solution checker&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Static analysis catches problems while they are cheap to fix. Without enforcement, solution checker becomes optional and stops being run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Run static analysis on solution import; warn or block. Configure under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Edit Managed Environments &amp;gt; Solution checker&lt;/code&gt; (mechanics in part 2, section 12).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-solution-checker&quot;&gt;Solution checker enforcement&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;34-show-maker-welcome-content&quot;&gt;3.4 Show maker welcome content&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Makers who never see your governance guidance cannot follow it. The first experience inside the maker portals is the cheapest channel for organizational rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Configure a banner that appears for new makers in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;make.powerapps.com&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;copilotstudio.microsoft.com&lt;/code&gt;. Use it to point makers at internal documentation, the right environments, and approval processes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-overview&quot;&gt;Managed Environments overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;35-host-power-platform-pipelines&quot;&gt;3.5 Host Power Platform Pipelines&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Power Platform Pipelines are the native, low-code path for promotion across environments. They require Managed Environments to run, and as of 2024 Microsoft has positioned them as the &lt;strong&gt;strategic replacement for the ALM Accelerator for Power Platform&lt;/strong&gt;, which is formally deprecated and slated for removal in a future release. New ALM rollouts should start here rather than on the accelerator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Designate a Managed Environment as the pipelines host (covered in part 2, section 11). Source and target environments are registered in the host. If your tenant currently runs on the ALM Accelerator canvas app + Azure DevOps templates, treat this as the trigger to plan a migration to Pipelines — the accelerator continues to function for now, but no new investment is going into it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/pipelines&quot;&gt;Power Platform Pipelines&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/guidance/alm-accelerator/overview&quot;&gt;ALM Accelerator for Power Platform (Deprecated)&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;36-restrict-dataverse-access-by-ip&quot;&gt;3.6 Restrict Dataverse access by IP&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Network-level controls reduce the attack surface even when identity controls are intact. They also satisfy auditors who expect defense in depth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; &lt;strong&gt;IP firewall&lt;/strong&gt; restricts Dataverse access to declared IP ranges. &lt;strong&gt;IP cookie binding&lt;/strong&gt; adds session-level enforcement so that a stolen token cannot be replayed from a different network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/ip-firewall&quot;&gt;IP firewall&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;37-customer-lockbox-and-customer-managed-key&quot;&gt;3.7 Customer Lockbox and Customer-Managed Key&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Regulated tenants often need explicit approval before Microsoft engineers can access tenant data, and they need encryption keys under their own control.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Customer Lockbox requires customer approval for Microsoft support access to environment data. Customer-Managed Key brings tenant-controlled keys into Dataverse encryption. Both require premium tenant licensing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-overview&quot;&gt;Managed Environments overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;38-extend-backup-retention&quot;&gt;3.8 Extend backup retention&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; The seven-day default backup window is short for production workloads. An incident discovered on day eight has no restore point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Managed Environments support extended retention windows beyond the seven-day default. Configure retention per environment or, for groups, via the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Back-up retention&lt;/code&gt; rule.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/backup-restore-environments&quot;&gt;Manual backups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;39-dlp-for-desktop-flows&quot;&gt;3.9 DLP for desktop flows&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Desktop (RPA) flows can interact with anything on the host machine, which makes connector-level DLP particularly important for them. The control is gated behind Managed Environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Apply DLP policies to desktop flows the same way you apply them to cloud flows; enforcement happens at design and run time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/wp-data-loss-prevention&quot;&gt;Data policies overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;310-use-the-catalog-for-internal-distribution&quot;&gt;3.10 Use the Catalog for internal distribution&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Without a catalog, reusable components are shared informally — by email, by chat, by file share — and traceability collapses. A catalog gives makers an approved internal store.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Publish components (templates, connectors, plug-ins) to the Catalog so makers can install them with provenance and version metadata.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-overview&quot;&gt;Managed Environments overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;311-plan-for-the-licensing-implications&quot;&gt;3.11 Plan for the licensing implications&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Managed Environments changes how runtime licensing works for users, and that change is the most common surprise during rollout.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Every user who activates an app, flow, or agent in a Managed Environment must hold a premium Power Platform license (Power Apps per user/per app, Power Automate Premium, or Dynamics 365). Confirm license posture before flipping the switch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/pricing-billing-skus&quot;&gt;Power Platform licensing overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;312-enabling&quot;&gt;3.12 Enabling&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; The toggle is per environment, so enablement is a deliberate act, not a tenant flag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; In the Power Platform admin center, choose the environment, then &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Edit Managed Environments&lt;/code&gt;. From the CLI:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pac admin set-governance-config --environment-id &amp;lt;GUID&amp;gt; --protection-level Standard
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-enable&quot;&gt;Enable Managed Environments&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;313-when-to-enable&quot;&gt;3.13 When to enable&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Managed Environments costs licensing and increases admin overhead. Enabling it everywhere is wasteful; enabling it nowhere defeats the purpose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use Managed Environments for any environment with production workloads, external sharing, or sensitive data. Apply it to personal developer environments created by default environment routing so sharing limits and solution checker apply uniformly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-overview&quot;&gt;Managed Environments overview&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;4-environment-groups-and-rules&quot;&gt;4. Environment Groups and Rules&lt;/h2&gt;

&lt;p&gt;Environment groups organize Managed Environments into collections so admins can apply policies in bulk. Each environment belongs to at most one group; groups cannot be nested or overlap; non-managed environments cannot be added.&lt;/p&gt;

&lt;h3 id=&quot;41-group-environments-by-policy-intent&quot;&gt;4.1 Group environments by policy intent&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Without grouping, every environment is a one-off configuration. As the platform scales, that becomes unmaintainable. Groups let policy intent travel with environments instead of with people.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Build groups around policy needs rather than reporting structure: a regulated production group, a pilot group for previews, a routed personal-productivity group, an admin/CoE group. A typical layout:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Personal Productivity        -&amp;gt; routed per-maker developer envs; sharing disabled
Pilot                        -&amp;gt; experimental AI features on; release channel = Monthly
Production EU                -&amp;gt; AI off for regulated data; release channel = Auto
Production US                -&amp;gt; same policies as EU, separate region
CoE / Admin                  -&amp;gt; governance tooling; locked down
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environment-groups&quot;&gt;Environment groups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;42-apply-rules-at-the-group-level&quot;&gt;4.2 Apply rules at the group level&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; When a rule is published at the group level, the corresponding setting becomes read-only inside each member environment. This makes policy enforceable rather than advisory; per-environment overrides are not supported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use the admin center to publish any of the rules currently available (generally available unless noted):&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Sharing agents with Editor permissions&lt;/li&gt;
  &lt;li&gt;Sharing agents with Viewer permissions&lt;/li&gt;
  &lt;li&gt;Sharing controls for canvas apps&lt;/li&gt;
  &lt;li&gt;Sharing controls for solution-aware cloud flows&lt;/li&gt;
  &lt;li&gt;AI-powered Copilot features&lt;/li&gt;
  &lt;li&gt;Generative AI settings&lt;/li&gt;
  &lt;li&gt;External models&lt;/li&gt;
  &lt;li&gt;AI prompts&lt;/li&gt;
  &lt;li&gt;Accessing transcripts from conversations in Copilot Studio agents&lt;/li&gt;
  &lt;li&gt;Sharing data between Copilot Studio and Viva Insights&lt;/li&gt;
  &lt;li&gt;Maker welcome content&lt;/li&gt;
  &lt;li&gt;Release channel&lt;/li&gt;
  &lt;li&gt;Back-up retention&lt;/li&gt;
  &lt;li&gt;Solution checker enforcement&lt;/li&gt;
  &lt;li&gt;Unmanaged customizations&lt;/li&gt;
  &lt;li&gt;Usage insights&lt;/li&gt;
  &lt;li&gt;Power Apps component framework for canvas apps&lt;/li&gt;
  &lt;li&gt;Content security policy&lt;/li&gt;
  &lt;li&gt;Power Apps code apps&lt;/li&gt;
  &lt;li&gt;Preview and experimental AI models&lt;/li&gt;
  &lt;li&gt;Default deployment pipeline (preview)&lt;/li&gt;
  &lt;li&gt;Advanced connector policy (preview)&lt;/li&gt;
  &lt;li&gt;AI-generated descriptions (preview)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environment-groups-rules&quot;&gt;Rules for environment groups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;43-manage-group-membership-from-the-cli&quot;&gt;4.3 Manage group membership from the CLI&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Group membership changes are routine — onboarding new environments, retiring old ones — and should be scriptable. Rule definitions still live in the admin center; the CLI handles membership.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pac admin&lt;/code&gt; group commands:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pac admin list-groups
pac admin add-group --environment &amp;lt;env-id&amp;gt; --environment-group &amp;lt;group-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/developer/cli/reference/admin&quot;&gt;pac admin reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;44-plan-for-group-removal&quot;&gt;4.4 Plan for group removal&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Removing an environment from a group is a half-revert: rule values stay where they were, but the environment becomes editable again locally. Without a manual reconciliation step, the environment can drift in ways that are hard to detect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; When you remove an environment from a group, treat the action as the start of a configuration review. Reconcile every formerly group-managed setting against your current standard before declaring the migration done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/environment-groups&quot;&gt;Environment groups&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;45-pair-groups-with-default-environment-routing&quot;&gt;4.5 Pair groups with default environment routing&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Routed personal developer environments multiply quickly. Without grouping, you end up with hundreds of environments each configured independently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Auto-route new makers into personal environments, then assign those environments to a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Personal Productivity&lt;/code&gt; group with sharing disabled and solution checker enforced. Policies follow membership automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/default-environment-routing&quot;&gt;Default environment routing&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;5-data-loss-prevention-policies&quot;&gt;5. Data Loss Prevention Policies&lt;/h2&gt;

&lt;p&gt;Data Loss Prevention (DLP) policies in Power Platform control which connectors can be combined inside apps, flows, and agents. Policies apply to Power Apps, Power Automate cloud flows, desktop flows (in Managed Environments), and Copilot Studio agents.&lt;/p&gt;

&lt;h3 id=&quot;51-sort-connectors-into-three-groups&quot;&gt;5.1 Sort connectors into three groups&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Data leaks happen when organizational data moves alongside non-organizational connectors in the same resource. The three-group model is how Power Platform prevents that combination at design time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Place each connector into one of three groups:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Business&lt;/strong&gt; — connectors that can exchange organizational data with each other.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Non-business&lt;/strong&gt; — connectors that can exchange non-organizational data with each other.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Blocked&lt;/strong&gt; — connectors that cannot be used at all.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data cannot flow between Business and Non-business within the same resource.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/wp-data-loss-prevention&quot;&gt;Data policies overview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;52-set-the-default-group-for-new-connectors&quot;&gt;5.2 Set the default group for new connectors&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Microsoft adds connectors continuously. If new connectors land in a permissive group by default, your DLP posture decays without anyone editing policy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Set the &lt;strong&gt;Default group&lt;/strong&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Blocked&lt;/code&gt;. New connectors stay blocked until an admin explicitly classifies them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/create-dlp-policy&quot;&gt;Create a data policy&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;53-choose-the-right-policy-scope&quot;&gt;5.3 Choose the right policy scope&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; A tenant-wide policy is the right baseline for high-risk connectors, but environment-specific policies let you allow connectors where they are needed without opening them everywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Target a policy at all environments (with optional exclusions), at specific environments, or only at the default environment. Policies aggregate: a connector blocked by &lt;em&gt;any&lt;/em&gt; applicable policy is blocked for that environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/create-dlp-policy&quot;&gt;Create a data policy&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;54-filter-by-endpoint&quot;&gt;5.4 Filter by endpoint&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; A blanket block on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HTTP&lt;/code&gt; is often too restrictive. Endpoint filtering keeps the connector available for the URLs you actually need while denying everything else.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Allow or block specific URLs on HTTP-capable connectors, SQL Server, Azure Blob, and others. This is a premium-tier capability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/connector-endpoint-filtering&quot;&gt;Endpoint filtering&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;55-restrict-individual-connector-actions&quot;&gt;5.5 Restrict individual connector actions&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Many connectors expose both safe (read) and dangerous (arbitrary execute) actions. Action control lets you keep the safe ones while blocking the dangerous ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Allow or block individual actions on a connector — for example, block &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Execute a SQL query&lt;/code&gt; on SQL Server while allowing table reads. Premium tier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/connector-action-control&quot;&gt;Connector action control&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;56-allow-list-custom-connector-patterns&quot;&gt;5.6 Allow-list custom connector patterns&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Custom connectors are an open door if left ungoverned. Pattern-based allow-listing lets you approve a class of internal endpoints without approving every custom connector individually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Allow-list custom connectors by URL pattern. Pair with a tenant-wide block on unmatched custom connectors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/connector-endpoint-filtering&quot;&gt;Connector endpoint filtering&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;57-a-high-risk-tenant-baseline&quot;&gt;5.7 A high-risk tenant baseline&lt;/h3&gt;

&lt;p&gt;The example below is a defensible starting point for a tenant where regulated data lives next to general productivity:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Business:      Microsoft 365 connectors (Outlook, Teams, SharePoint, OneDrive),
               Dataverse, Approvals, Planner
Non-business:  Bing Search, Translator, MSN Weather
Blocked:       HTTP, HTTP with Microsoft Entra ID (unless endpoint-filtered),
               custom connectors in default env, Twitter/X, Facebook, SMTP, FTP,
               Chat without Microsoft Entra ID authentication in Copilot Studio
Default group: Blocked
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/create-dlp-policy&quot;&gt;Create a data policy&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;58-manage-dlp-from-powershell&quot;&gt;5.8 Manage DLP from PowerShell&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; UI configuration does not survive disaster recovery, audit reproduction, or environment cloning. Scripted policy management does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use the DLP cmdlets to retrieve, create, and modify policies:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Get-DlpPolicy
New-DlpPolicy -DisplayName &quot;Tenant baseline&quot;
# manage connector groups via Set-DlpPolicyDefaultConnectorGroup, Add-ConnectorToBusinessDataGroup, etc.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/powerapps-powershell#data-loss-prevention-dlp-policy-commands&quot;&gt;DLP PowerShell cmdlets&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;59-understand-enforcement-timing&quot;&gt;5.9 Understand enforcement timing&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Knowing when a policy takes effect is critical during incident response — and during planned changes that you do not want to break in production at noon.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Policy changes take effect within minutes for new resources and on the next save or publish for existing ones. Copilot Studio enforces DLP in real time; makers see a validation error immediately when a blocked connector is referenced.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/wp-data-loss-prevention&quot;&gt;Data policies overview&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;6-tenant-isolation-and-cross-tenant-controls&quot;&gt;6. Tenant Isolation and Cross-Tenant Controls&lt;/h2&gt;

&lt;p&gt;Tenant isolation restricts which external Microsoft Entra ID tenants can be used as the identity source for connections inside your Power Platform tenant. It is a separate control from DLP and from Microsoft Entra B2B. DLP governs &lt;em&gt;which connectors&lt;/em&gt; can be used; tenant isolation governs &lt;em&gt;which tenants users can authenticate to&lt;/em&gt; when creating a connection.&lt;/p&gt;

&lt;h3 id=&quot;61-distinguish-inbound-from-outbound&quot;&gt;6.1 Distinguish inbound from outbound&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Tenant isolation is directional. Mixing the two leads to either over-blocking (legitimate B2B work breaks) or under-blocking (data exfiltration paths remain).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Configure each direction explicitly:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Inbound&lt;/strong&gt; — another tenant’s users creating a connection that points into your tenant.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Outbound&lt;/strong&gt; — your tenant’s users creating a connection that points into another tenant.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/cross-tenant-restrictions&quot;&gt;Tenant isolation&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;62-verify-your-default--it-depends-on-tenant-age&quot;&gt;6.2 Verify your default — it depends on tenant age&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; The default behavior changed in 2026, and assumptions from older guidance no longer apply universally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Tenants created &lt;strong&gt;before 30 March 2026&lt;/strong&gt; have both directions allowed by default; tenant isolation must be enabled explicitly. Tenants created &lt;strong&gt;on or after 30 March 2026&lt;/strong&gt; ship with tenant isolation enabled and both directions defaulting to deny — only allow-listed tenant IDs can be used. Verify the current state in your tenant rather than assuming a default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/cross-tenant-restrictions#enable-tenant-isolation&quot;&gt;Restrict cross-tenant inbound/outbound&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;63-configure-tenant-isolation-deliberately&quot;&gt;6.3 Configure tenant isolation deliberately&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; The control is tenant-wide; there is no per-environment override. A misconfiguration affects the entire tenant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; In the Power Platform admin center, under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Security &amp;gt; Tenant isolation&lt;/code&gt;, set:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Tenant isolation: On
Default:          Block
Exceptions:       contoso-partner.onmicrosoft.com  (Inbound, Outbound)
                  fabrikam.onmicrosoft.com          (Outbound only)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/cross-tenant-restrictions&quot;&gt;Tenant isolation&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;64-know-what-tenant-isolation-does-not-cover&quot;&gt;6.4 Know what tenant isolation does &lt;em&gt;not&lt;/em&gt; cover&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Tenant isolation is sometimes mistaken for a complete cross-tenant boundary. It is not. Pairing it with the right Entra controls is the only way to close the gap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Tenant isolation applies to connectors that authenticate with Microsoft Entra ID (SharePoint, OneDrive, Dataverse, Outlook, Microsoft 365, Azure, etc.). It does not apply to:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Connectors that use API keys or generic OAuth.&lt;/li&gt;
  &lt;li&gt;Service principal and managed identity authentication, which follow Microsoft Entra cross-tenant access policies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pair tenant isolation with Microsoft Entra cross-tenant access settings for a complete boundary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/cross-tenant-restrictions&quot;&gt;Tenant isolation&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;65-layer-conditional-access&quot;&gt;6.5 Layer Conditional Access&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Tenant isolation controls &lt;em&gt;where&lt;/em&gt; identities can come from; Conditional Access controls &lt;em&gt;under what conditions&lt;/em&gt; identity is accepted. Both layers are needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Apply Conditional Access policies to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Power Platform API&lt;/code&gt; application to restrict sign-in by user, device, location, and risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/conditional-access&quot;&gt;Conditional Access for Power Platform&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;66-layer-the-ip-firewall&quot;&gt;6.6 Layer the IP firewall&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Network-level controls reduce the attack surface even when identity controls are intact. They also satisfy auditors who expect defense in depth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; The IP firewall (Managed Environments) restricts Dataverse access to declared IP ranges. Configure per environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/ip-firewall&quot;&gt;IP firewall&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;67-enable-continuous-access-evaluation&quot;&gt;6.7 Enable continuous access evaluation&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Static sign-in evaluation cannot react to changes in identity posture mid-session. CAE narrows the window between an account becoming risky and that account losing access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Continuous access evaluation (CAE) on Dataverse revokes sessions when identity posture changes — for example, when a user is disabled or moves outside an allowed network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/conditional-access&quot;&gt;Conditional Access for Power Platform&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;68-monitor-configuration-changes-and-runtime-denials&quot;&gt;6.8 Monitor configuration changes and runtime denials&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Tenant isolation is most useful when its events are visible. Two surfaces matter: configuration changes (someone modifying the policy) and runtime denials (someone hitting the policy).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Tenant isolation events flow to the Power Platform audit log and the Microsoft Purview unified audit log. Configuration changes appear under the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;TenantIsolationPolicyUpdate&lt;/code&gt; activity; runtime denials surface as connection-creation failures rather than under a single unified filter — review both when investigating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/audit-logs&quot;&gt;Audit logs&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;7-security-roles-and-identity&quot;&gt;7. Security Roles and Identity&lt;/h2&gt;

&lt;p&gt;Power Platform authorization is layered. Microsoft Entra ID provides tenant-level identity and global roles; Dataverse provides row- and column-level security inside each environment; connectors use per-user or service-principal credentials.&lt;/p&gt;

&lt;h3 id=&quot;71-use-the-right-tenant-role&quot;&gt;7.1 Use the right tenant role&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Tenant-scoped governance work does not need Global Administrator. Over-privileged accounts increase blast radius without buying capability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Pick from the Microsoft Entra ID roles that govern Power Platform:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Power Platform Administrator&lt;/strong&gt; — full control of environments, DLP, tenant settings, licenses (within Power Platform scope). Sufficient for almost all governance work.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dynamics 365 Administrator&lt;/strong&gt; — equivalent scope for Dynamics 365 and Dataverse-backed environments.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Global Administrator&lt;/strong&gt; — superset; not recommended for day-to-day platform work.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Fabric Administrator&lt;/strong&gt; — required for Power BI workspace and capacity governance that overlaps Power Platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Assign least-privileged roles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/use-service-admin-role-manage-tenant&quot;&gt;Microsoft Entra roles for Power Platform&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;72-map-environment-roles-to-job-function&quot;&gt;7.2 Map environment roles to job function&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Environment roles control everything inside an environment, including who can hand out further roles. A misassignment here is hard to roll back without auditing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Inside each environment, the standard roles are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;System Administrator&lt;/strong&gt; — root of the environment; can assign any role.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;System Customizer&lt;/strong&gt; — schema and solution changes without user management.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Environment Maker&lt;/strong&gt; — create apps, flows, agents, and custom connectors.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Basic User&lt;/strong&gt; — runtime access to assigned records.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Delegated Admin&lt;/strong&gt; — scoped admin, granted via Microsoft Entra ID groups.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/database-security&quot;&gt;Dataverse security roles&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;73-build-custom-roles-from-a-known-baseline&quot;&gt;7.3 Build custom roles from a known baseline&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Privileges in Dataverse are granular; granting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;*&lt;/code&gt; privileges in a custom role is the fastest way to recreate the problems custom roles were supposed to solve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Always start from a copy of an out-of-box role and remove or add the privileges you need at table, action, and column level. Avoid wildcard privileges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/database-security&quot;&gt;Dataverse security roles&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;74-prefer-teams-over-individual-sharing&quot;&gt;7.4 Prefer teams over individual sharing&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Individual record sharing is auditable in theory and unmaintainable in practice. Teams turn membership into access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Use &lt;strong&gt;Owner teams&lt;/strong&gt; or &lt;strong&gt;Access teams&lt;/strong&gt; for direct ownership and sharing. For large memberships, use &lt;strong&gt;Microsoft Entra group teams&lt;/strong&gt; so group membership drives row access automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/manage-group-teams&quot;&gt;Microsoft Entra group teams&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;75-use-service-principals-for-non-interactive-work&quot;&gt;7.5 Use service principals for non-interactive work&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Pipelines, integrations, and admin automation should not depend on human accounts. Service principals carry their own lifecycle and credentials, which is what audit and compliance expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Register the app in Microsoft Entra ID, then assign an application user:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;pac admin create-service-principal `
  --environment &amp;lt;env-id&amp;gt; `
  --name &quot;Pipelines SPN&quot; `
  --role &quot;System Administrator&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Rotate secrets and prefer federated credentials or managed identities where supported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/manage-application-users&quot;&gt;Application users&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;76-apply-conditional-access-and-mfa&quot;&gt;7.6 Apply Conditional Access and MFA&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Identity is the perimeter. Conditional Access and MFA are how that perimeter actually behaves under load — risky logins, anomalous locations, compromised credentials.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Apply Conditional Access to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Power Platform API&lt;/code&gt; app and to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Microsoft Dataverse&lt;/code&gt;. Enforce MFA for administrators and for makers who connect to sensitive data sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/conditional-access&quot;&gt;Conditional Access&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;8-monitoring-analytics-and-tenant-inventory&quot;&gt;8. Monitoring, Analytics, and Tenant Inventory&lt;/h2&gt;

&lt;p&gt;Governance without telemetry degrades quickly. Power Platform exposes several monitoring surfaces; the &lt;strong&gt;Inventory&lt;/strong&gt;, &lt;strong&gt;Usage&lt;/strong&gt;, &lt;strong&gt;Monitor&lt;/strong&gt;, and &lt;strong&gt;Actions&lt;/strong&gt; experiences in the Power Platform admin center wrap them into a tenant-wide inventory and alerting layer that Microsoft maintains as a first-party feature. The community &lt;strong&gt;CoE Starter Kit&lt;/strong&gt; filled this role for years but is no longer actively maintained — section 8.6 covers what that transition means in practice.&lt;/p&gt;

&lt;h3 id=&quot;81-use-admin-center-analytics-for-per-environment-visibility&quot;&gt;8.1 Use admin center analytics for per-environment visibility&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Most operational questions (“is anyone using this app?”, “are flow runs failing?”) have answers in the admin center. Reaching for the CoE Starter Kit before checking the built-in analytics wastes time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Per-environment charts cover Power Apps usage, Power Automate runs, Dataverse API calls, and Copilot Studio sessions. Tenant-level analytics must be enabled in tenant settings before charts populate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/tenant-level-analytics&quot;&gt;Tenant-level analytics&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;82-push-the-weekly-digest-to-a-wider-audience&quot;&gt;8.2 Push the weekly digest to a wider audience&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; The digest is a high-signal, low-noise summary. Only Power Platform and Dynamics 365 admins receive it by default, which is usually too narrow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Add CoE leads, security reviewers, and operations partners using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;additionalAdminDigestEmailRecipients&lt;/code&gt; (mechanics in section 3.2).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/managed-environment-usage-insights&quot;&gt;Usage insights (weekly digest)&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;83-stream-audit-events-to-microsoft-purview&quot;&gt;8.3 Stream audit events to Microsoft Purview&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Platform-level actions — DLP changes, environment creations, sharing events — must be reviewable months after they happen. Purview is the long-term store.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Power Platform activities flow natively into the Microsoft Purview unified audit log. Search them in the Purview portal, with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Search-UnifiedAuditLog&lt;/code&gt; Exchange Online PowerShell cmdlet, or via the Microsoft 365 Audit API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/manage-dataverse-auditing&quot;&gt;Audit logs and Purview&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/purview/audit-search&quot;&gt;Search the audit log&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;84-turn-on-dataverse-auditing-per-table&quot;&gt;8.4 Turn on Dataverse auditing per table&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Per-table read and change auditing is the only way to answer record-level forensic questions (“who saw this row?”, “what changed and when?”). Without it, the trail stops at the API layer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Enable auditing on tables that hold sensitive data. Retention follows the environment’s audit retention setting; review it before assuming you have history.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/manage-dataverse-auditing&quot;&gt;Audit logs and Purview&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;85-export-to-application-insights&quot;&gt;8.5 Export to Application Insights&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Built-in analytics is summary-level. Application Insights gives you raw traces for performance and error analysis — the same signal an Azure team would expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; In an environment’s settings under &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Product &amp;gt; Application Insights (preview)&lt;/code&gt;, add the connection string:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;InstrumentationKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;
IngestionEndpoint=https://westeurope-1.in.applicationinsights.azure.com/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Power Apps emit &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pageView&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;traceEvent&lt;/code&gt;, and error events; model-driven apps add form performance metrics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/app-insights-app-making&quot;&gt;Application Insights for Power Platform&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;86-the-coe-starter-kit-and-alm-accelerator--what-changed&quot;&gt;8.6 The CoE Starter Kit and ALM Accelerator — what changed&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why.&lt;/strong&gt; Until recently, the &lt;strong&gt;CoE Starter Kit&lt;/strong&gt; and the &lt;strong&gt;ALM Accelerator for Power Platform&lt;/strong&gt; were the two community-driven kits most enterprise governance setups leaned on — one for inventory and oversight, the other for solution promotion and source control. Native, in-product experiences now supersede both, and following the old guidance without qualification leads new tenants into a maintenance dead end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Two formal status updates to be aware of:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CoE Starter Kit — no longer actively maintained (Microsoft, May 2026).&lt;/strong&gt; The Microsoft Learn page now opens with a clear notice: &lt;em&gt;“The Power Platform CoE Starter Kit is no longer actively maintained. Its core capabilities are part of the Power Platform admin center. Issues are no longer reviewed or addressed.”&lt;/em&gt; The kit remains available for existing and new deployments, but it will not receive new features, and GitHub issues are not triaged. Microsoft directs admins to the native admin center experiences instead:&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;Inventory&lt;/strong&gt; — view and govern all apps, flows, and agents across the tenant.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Usage&lt;/strong&gt; — track adoption and identify top resources and their owners.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Monitor&lt;/strong&gt; — operational health of heavily used resources.&lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;Actions&lt;/strong&gt; — surface risks, enforce best practices, and act on governance insights.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;Beyond the UI, the same data is reachable through the &lt;strong&gt;Power Platform CLI&lt;/strong&gt;, the &lt;strong&gt;Power Platform API&lt;/strong&gt;, the &lt;strong&gt;Power Platform inventory API&lt;/strong&gt;, and the &lt;strong&gt;Power Platform for Admins V2&lt;/strong&gt; connector — which is what to build automation against going forward.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;ALM Accelerator for Power Platform — formally deprecated (Microsoft Learn page last updated 2024-04-24).&lt;/strong&gt; Microsoft’s overview page is now titled &lt;em&gt;“ALM Accelerator for Power Platform (Deprecated)”&lt;/em&gt; and carries this notice: &lt;em&gt;“The ALM Accelerator is deprecated and will be removed in a future release. Use Pipelines in Power Platform to bring ALM automation capabilities to Power Platform and Dynamics 365 services. Pipelines can be used with source code integration or extended to integrate with other providers.”&lt;/em&gt; The accelerator was a canvas-app-plus-Azure-Pipelines reference implementation; the strategic replacement is the in-product &lt;strong&gt;Power Platform Pipelines&lt;/strong&gt; experience (introduced in section 3.5 and detailed in part 2). The accelerator continues to function for now, but no new investment is being made in it, and it is on track to be removed.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Practical recommendation.&lt;/strong&gt; If you already run either kit, keep operating it — neither is being switched off tomorrow — but stop building new dependencies on top of it. For inventory, attestation, and orphaned-asset detection, build against the admin center experiences and the inventory API. For ALM, route new solutions through Power Platform Pipelines and plan a migration off the ALM Accelerator to avoid being caught out when a removal date is announced. Tenants starting from scratch in 2026 should skip both kits and build directly on the in-product surfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/power-platform/guidance/coe/starter-kit&quot;&gt;CoE Starter Kit transition to Power Platform admin center&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/guidance/alm-accelerator/overview&quot;&gt;ALM Accelerator for Power Platform (Deprecated)&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/alm/pipelines&quot;&gt;Power Platform Pipelines&lt;/a&gt;, &lt;a href=&quot;https://learn.microsoft.com/power-platform/admin/programmability-authentication-v2&quot;&gt;Power Platform inventory API&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;87-forward-to-microsoft-sentinel&quot;&gt;8.7 Forward to Microsoft Sentinel&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt; SOCs want one queue. Forwarding Power Platform signals to Sentinel places platform incidents alongside other security telemetry, rather than in a separate, unmonitored location.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How.&lt;/strong&gt; Forward the Power Platform activity log and Purview audit events to Sentinel via the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Microsoft Power Platform administrative logs&lt;/code&gt; data connector. Pre-built analytic rules cover suspicious DLP changes, mass app sharing, and unauthenticated agent publishing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn more.&lt;/strong&gt; &lt;a href=&quot;https://learn.microsoft.com/azure/sentinel/data-connectors/microsoft-power-platform&quot;&gt;Sentinel connector&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;outlook-what-part-2-covers&quot;&gt;Outlook: what part 2 covers&lt;/h2&gt;

&lt;p&gt;Part 1 has established the platform-level perimeter — the environments themselves, the policies that bind them, the identities that reach them, and the telemetry that watches them. None of those controls answers the question of what gets &lt;em&gt;built&lt;/em&gt; inside that perimeter, or how that work moves from a maker’s hands into production. That is the territory of part 2.&lt;/p&gt;

&lt;p&gt;Next week’s article picks up where this one ends and walks through six topics in the same Why → How → Learn more pattern:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Governing Microsoft Copilot Studio.&lt;/strong&gt; Tenant- and environment-level controls for AI agents, including who can publish, what AI features are allowed where, how knowledge sources are scoped, and how transcripts are retained.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Agent authentication and connector governance.&lt;/strong&gt; The three authentication modes, the Entra Agent ID model that replaces stored client secrets, the connectors that should be blocked in regulated tenants, and the action-level controls that turn dangerous connectors into safe-but-useful ones.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Application Lifecycle Management and pipelines.&lt;/strong&gt; Solutions as the unit of deployment, environment variables and connection references, Power Platform Pipelines as the native promotion path (and the strategic replacement for the now-deprecated ALM Accelerator for Power Platform), and when to fall back to Azure DevOps or GitHub.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Solution checker and quality gates.&lt;/strong&gt; Static analysis for apps, flows, and agents; how to enforce it at solution import; how to read SARIF output; and how agent evaluations complement structural checks with behavioral ones.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Licensing and capacity governance.&lt;/strong&gt; Power Apps and Power Automate license models, Dataverse capacity allocation, the Copilot Credits consumption model and its gotchas, and how to keep license assignment in sync with employment.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Change management and release rings.&lt;/strong&gt; The two release channels that actually exist for Power Platform (Auto and Monthly — there is no Semi-Annual), how to gate previews per environment group, in-tenant change categories, administration mode, manual backups, and rollback realities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you treat part 1 as the platform on which everything stands, part 2 is everything that runs on that platform. The two are designed to be read together: the controls in part 1 matter only because they shape the work covered in part 2, and the controls in part 2 stick only because the foundations in part 1 hold them up.&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;conclusion-part-1&quot;&gt;Conclusion (Part 1)&lt;/h2&gt;

&lt;p&gt;Platform-level governance is the foundation of everything else. It is the cumulative result of many small, well-placed controls working together: an environment topology that matches how the organization actually builds, a default environment treated as a perimeter rather than a playground, Managed Environments and environment groups that make policy enforceable at scale, DLP and tenant isolation that bound where data can move, identity and Conditional Access that decide who is allowed to touch the platform at all, and monitoring that turns activity into evidence.&lt;/p&gt;

&lt;p&gt;The controls described in this article already exist on the platform. None of them requires custom engineering, third-party tooling, or preview access to be useful. What they require is decision-making: which environments belong in which group, which connectors are business versus non-business, which tenants are trusted for cross-tenant connections, and who has the right to administer what. Those decisions &lt;em&gt;are&lt;/em&gt; the platform half of governance.&lt;/p&gt;

&lt;p&gt;Start small and iterate. A minimum viable foundation is: restrict default environment creation, attach a tenant-wide baseline DLP policy, enable default environment routing with a Managed Environments group, turn on tenant-level analytics, lean on the Power Platform admin center’s &lt;strong&gt;Inventory&lt;/strong&gt;, &lt;strong&gt;Usage&lt;/strong&gt;, &lt;strong&gt;Monitor&lt;/strong&gt;, and &lt;strong&gt;Actions&lt;/strong&gt; experiences (the CoE Starter Kit is no longer actively maintained — see section 8.6), and verify your tenant isolation defaults. Everything in part 1 is a refinement on that minimum viable foundation; everything in part 2 will be a refinement on top of part 1.&lt;/p&gt;

&lt;p&gt;Read on next week for the second half — agents, ALM, licensing, and change management — and a closing recap that ties both articles together.&lt;/p&gt;
</description>
                <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/powerplatform-governance-part-1</link>
                <guid isPermaLink="true">https://holgerimbery.blog/powerplatform-governance-part-1</guid>
                
                <category>agent365</category>
                
                <category>agents</category>
                
                <category>compliance</category>
                
                <category>copilotstudio</category>
                
                <category>dataverse</category>
                
                <category>governance</category>
                
                <category>powerplatform</category>
                
                <category>security</category>
                
                
            </item>
        
            <item>
                <title>Microsoft Agent 365: The Control Plane for AI Agents Is Now Generally Available</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary Lede&lt;/strong&gt;&lt;br /&gt;
On 1 May 2026, Microsoft moved &lt;strong&gt;Agent 365&lt;/strong&gt; from preview into &lt;strong&gt;general availability&lt;/strong&gt;, positioning it as the control plane that organizations need in order to &lt;strong&gt;observe, govern, and secure&lt;/strong&gt; the rapidly growing population of AI agents working across their tenants. The service is licensed at &lt;strong&gt;fifteen US dollars per user per month&lt;/strong&gt; as a standalone add-on, or as a component of the new &lt;strong&gt;Microsoft 365 E7&lt;/strong&gt; suite, and it integrates directly with the security and compliance products that most enterprises already operate, including &lt;strong&gt;Microsoft Entra&lt;/strong&gt;, &lt;strong&gt;Microsoft Purview&lt;/strong&gt;, and &lt;strong&gt;Microsoft Defender&lt;/strong&gt;. Rather than introducing yet another place to build agents, Agent 365 sits above existing platforms and consolidates operational disciplines that have, until now, been distributed across many disconnected tools and dashboards.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Why read this:&lt;/strong&gt; If your organization has begun deploying AI agents — whether built in Copilot Studio, embedded in third-party SaaS, developed in Microsoft Foundry, or installed by users on their own devices — you are facing a governance question that did not exist eighteen months ago. This article explains what Agent 365 actually is, what it changes in the operating model of an organization that has already invested in Microsoft 365 Copilot, and how to take the first practical steps after acquiring a license. It is intended to bring the moving parts into a single, coherent narrative you can use when you brief stakeholders, plan a pilot, or write your internal adoption proposal.&lt;/p&gt;

&lt;h2 id=&quot;introduction-why-a-control-plane-for-agents-is-now-a-necessity&quot;&gt;Introduction: Why a Control Plane for Agents Is Now a Necessity&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AI agents are no longer a category of pilot project owned by a single innovation team.&lt;/strong&gt; They are appearing inside Word, Excel, PowerPoint, Outlook, Teams, partner SaaS portals, custom-built applications, and, increasingly, on the local workstations of individual employees who have installed AI assistants on their own initiative. According to figures Microsoft cites from IDC, the worldwide population of AI agents is expected to reach approximately &lt;strong&gt;1.3 billion by 2028&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Even at a small fraction of that figure, the implications for an enterprise tenant are significant. The questions IT leaders are being asked have outpaced the tools available to answer them: &lt;em&gt;Which agents are running in our tenant today? Who owns each one? What data does each one touch, and on whose authority? Is it behaving as expected? If it has been compromised, when, by whom, and how would we know?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Microsoft now refers to this phenomenon openly as &lt;strong&gt;agent sprawl&lt;/strong&gt;, and a newer category — the so-called &lt;strong&gt;shadow agent&lt;/strong&gt;, meaning a local AI assistant installed on an endpoint without IT approval — has begun to appear on enterprise risk registers because it represents an identity-less, policy-less, telemetry-less actor with access to the same documents and chats as its human user. A control plane is the established architectural answer to this class of problem, and &lt;strong&gt;Agent 365 is, very deliberately, that control plane&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;what-microsoft-agent-365-actually-is&quot;&gt;What Microsoft Agent 365 Actually Is&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Agent 365 is a tenant-level service that gives administrators a single, authoritative view of every AI agent operating in the organization, together with the policy, identity, and security mechanisms required to manage them at scale.&lt;/strong&gt; Microsoft summarizes its purpose using three verbs that recur throughout the official documentation: &lt;strong&gt;observe, govern, and secure&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;To &lt;strong&gt;observe&lt;/strong&gt; means that administrators have real-time visibility into the agents in their environment, what those agents are doing, and how they are performing.&lt;/li&gt;
  &lt;li&gt;To &lt;strong&gt;govern&lt;/strong&gt; means that the lifecycle of each agent — from registration, through approval and assignment, to retirement — is controlled through consistent policies rather than ad-hoc decisions.&lt;/li&gt;
  &lt;li&gt;To &lt;strong&gt;secure&lt;/strong&gt; means that the same enterprise-grade identity, data protection, and threat detection that already apply to users are extended, faithfully, to agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The service is built around five capabilities that Microsoft consistently identifies as the pillars of the offering:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Pillar&lt;/th&gt;
      &lt;th&gt;Role in the control plane&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Registry&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;A unified inventory of every agent in the organization — including those issued an Entra Agent ID, those published in the Microsoft Teams or Agent Store, and shadow agents discovered on endpoints&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Access Control&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Unique &lt;strong&gt;Entra Agent ID&lt;/strong&gt; for every agent, with policy templates and adaptive, risk-based access decisions enforced by Microsoft Entra&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Visualization&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Telemetry, dashboards, role-based reports for IT, security, and business audiences, plus an &lt;strong&gt;Agent Map&lt;/strong&gt; of relationships between agents, users, and resources&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Interoperability&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Governs agents built with Microsoft tools, with open-source frameworks, and with ecosystem partner platforms; agents can use the same Microsoft 365 context that users do&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Integration with &lt;strong&gt;Microsoft Defender&lt;/strong&gt;, &lt;strong&gt;Microsoft Entra&lt;/strong&gt;, and &lt;strong&gt;Microsoft Purview&lt;/strong&gt; for threat detection, identity protection, data loss prevention, and compliance&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;It is also worth being precise about what Agent 365 is &lt;em&gt;not&lt;/em&gt;. &lt;strong&gt;It is not a new platform for building agents.&lt;/strong&gt; Copilot Studio, Microsoft Foundry, and external frameworks remain the places where agents are designed, configured, and developed. Agent 365 is the layer above those platforms — the layer that ensures whatever you build, or whatever a partner ships into your tenant, becomes a managed, identified, observed, and governable entity within your organization.&lt;/p&gt;

&lt;h2 id=&quot;the-five-pillars-in-greater-detail&quot;&gt;The Five Pillars in Greater Detail&lt;/h2&gt;

&lt;h3 id=&quot;registry&quot;&gt;Registry&lt;/h3&gt;

&lt;p&gt;The Registry is, in many respects, the foundational capability, because every other discipline depends on having an authoritative inventory. Through the Registry, administrators see a unified list of agents that includes those issued an Entra Agent ID, those published in the Microsoft Teams Store or the Agent Store, and — as discovery functionality continues to roll out — shadow agents detected on managed Windows endpoints by Microsoft Defender and Microsoft Intune. From the Registry, administrators can install agents for selected audiences, block or unblock them across the organization, assign or reassign owners, publish requested agents to the store, reject submissions, or delete agents and their associated files.&lt;/p&gt;

&lt;h3 id=&quot;access-control-through-entra-agent-id&quot;&gt;Access Control through Entra Agent ID&lt;/h3&gt;

&lt;p&gt;Each agent is given a unique identity, the &lt;strong&gt;Entra Agent ID&lt;/strong&gt;, which enables agents to be governed in the same identity-centric manner as human users. Administrators can apply &lt;strong&gt;policy templates&lt;/strong&gt; that encode standard guardrails on day one, and Microsoft Entra enforces adaptive, risk-based access decisions that respond to real-time context, blocking agents that show signs of compromise from reaching organizational resources. The principle of least privilege, long established for human accounts and service principals, is now available in operation for agents.&lt;/p&gt;

&lt;h3 id=&quot;visualization&quot;&gt;Visualization&lt;/h3&gt;

&lt;p&gt;The visualization layer goes beyond conventional dashboards. In addition to Telemetry, alerts, and role-based reports tailored separately to IT, security, and business audiences, Agent 365 provides an &lt;strong&gt;Agent Map&lt;/strong&gt; that displays the relationships between agents, the users on whose behalf they act, and the resources they connect to. This is particularly valuable for spotting unintended data flows or excessive privilege. Microsoft also references &lt;strong&gt;built-in performance measurement&lt;/strong&gt; to help decision-makers assess return on investment. However, the granularity of those metrics will, in practice, depend on the specific agents and host applications involved.&lt;/p&gt;

&lt;h3 id=&quot;interoperability&quot;&gt;Interoperability&lt;/h3&gt;

&lt;p&gt;The interoperability story is significant because it acknowledges that agents in a real enterprise are not all built on the same platform. Agent 365 governs agents created with Microsoft tools, with open-source frameworks, and with &lt;strong&gt;ecosystem partner platforms&lt;/strong&gt;, with pre-integrated partner agents available to deploy directly from the Microsoft 365 admin center at general availability. Agents can access the same Microsoft 365 context that users do — Teams, calendars, mailboxes, SharePoint — and Microsoft has highlighted unified SDKs and consistent &lt;strong&gt;Model Context Protocol (MCP) interfaces&lt;/strong&gt; for developers building agentic tools across Outlook, Teams, and SharePoint.&lt;/p&gt;

&lt;h3 id=&quot;security&quot;&gt;Security&lt;/h3&gt;

&lt;p&gt;The security pillar is delivered through tight integration with the existing Microsoft security stack rather than through a parallel set of agent-specific tools.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Purview&lt;/strong&gt; brings information protection, data loss prevention, sensitivity labels, eDiscovery, Insider Risk Management, and the data security posture management capability for AI (often referred to as DSPM for AI) into scope for agents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Defender XDR&lt;/strong&gt; contributes agent inventory, real-time runtime protection, threat hunting, and security posture management.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Entra&lt;/strong&gt; contributes adaptive access enforcement and, as announced at RSAC 2026, network-level prompt-injection protection and explicit shadow-AI detection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cumulative effect is that agents become first-class citizens of your existing security operations rather than exceptions that need to be handled separately.&lt;/p&gt;

&lt;h2 id=&quot;what-changes-operationally-with-agent-365&quot;&gt;What Changes Operationally with Agent 365&lt;/h2&gt;

&lt;p&gt;For organizations that have been running Microsoft 365 Copilot for some time, the introduction of Agent 365 changes several aspects of day-to-day operations in concrete ways:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Area&lt;/th&gt;
      &lt;th&gt;Before Agent 365&lt;/th&gt;
      &lt;th&gt;With Agent 365&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Identity&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Agents represented by shared service accounts or app registrations&lt;/td&gt;
      &lt;td&gt;Every agent receives a unique &lt;strong&gt;Entra Agent ID&lt;/strong&gt; and is governed individually&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Inventory&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Scattered across Teams Store, Copilot Studio, partner portals&lt;/td&gt;
      &lt;td&gt;Single &lt;strong&gt;Agent Registry&lt;/strong&gt; view in the Microsoft 365 admin center&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Access control&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Per-agent manual permission grants&lt;/td&gt;
      &lt;td&gt;Policy-template-driven, adaptive, risk-based enforcement through Microsoft Entra&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Observability&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Vendor-specific dashboards&lt;/td&gt;
      &lt;td&gt;Unified telemetry, role-based reports, and an &lt;strong&gt;Agent Map&lt;/strong&gt; of relationships&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Security and compliance&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Reaching into agent behaviour required significant effort&lt;/td&gt;
      &lt;td&gt;Native coverage through the same &lt;strong&gt;Defender&lt;/strong&gt;, &lt;strong&gt;Entra&lt;/strong&gt;, and &lt;strong&gt;Purview&lt;/strong&gt; controls used today&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The new shadow-AI dimension is also worth highlighting. Until now, an unsanctioned local AI assistant on an employee’s laptop has been more or less invisible to IT. With Agent 365, Defender, and Intune, surface those agents in the Registry so administrators can quarantine them, block them from accessing organizational resources, or, where appropriate, formally onboard them under policy. This is one of the more visibly novel capabilities of the GA release.&lt;/p&gt;

&lt;h2 id=&quot;licensing-and-availability&quot;&gt;Licensing and Availability&lt;/h2&gt;

&lt;p&gt;Microsoft Agent 365 is licensed on a &lt;strong&gt;per-user basis&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Standalone price:&lt;/strong&gt; fifteen US dollars per user per month.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bundled option:&lt;/strong&gt; included in the new &lt;strong&gt;Microsoft 365 E7&lt;/strong&gt; suite, which combines Microsoft 365 E5, Microsoft 365 Copilot, the Microsoft Entra Suite, and Agent 365 into a single offering aimed at enterprises that want to standardize on a fully integrated identity, productivity, and agent-governance platform.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Availability segment:&lt;/strong&gt; Commercial cloud at general availability. Microsoft’s documentation also notes that &lt;strong&gt;Microsoft 365 for Government Community Cloud High and Government Community Cloud Moderate&lt;/strong&gt; environments support agent publishing scenarios.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are no strict product prerequisites to enable Agent 365. Still, Microsoft recommends that customers hold &lt;strong&gt;Microsoft Entra P1, Entra P2, or the Entra Suite&lt;/strong&gt;, alongside &lt;strong&gt;Microsoft Purview Data Loss Prevention&lt;/strong&gt;, to make full use of the governance and security benefits. A Microsoft 365 Copilot license remains necessary to use Copilot-based agents. Pricing details should always be validated with your account team, since regional adjustments, channel offers, and bundle economics can materially change the total cost of ownership.&lt;/p&gt;

&lt;h2 id=&quot;taking-your-first-steps-after-acquiring-a-license&quot;&gt;Taking Your First Steps After Acquiring a License&lt;/h2&gt;

&lt;p&gt;One of the most pragmatic aspects of Agent 365 is that &lt;strong&gt;there is no infrastructure to deploy&lt;/strong&gt;. The service is activated via licensing and configured in the Microsoft 365 admin center, so the initial steps are administrative rather than technical. The following sequence reflects the recommended path from the Microsoft Learn documentation, organized as most teams will execute it in practice.&lt;/p&gt;

&lt;h3 id=&quot;1-confirm-roles-and-licenses&quot;&gt;1. Confirm Roles and Licenses&lt;/h3&gt;

&lt;p&gt;Begin by ensuring that the right people hold the right roles. Please assign the &lt;strong&gt;Global Administrator&lt;/strong&gt; role and any other agent-administration roles required for your organization, in line with your least-privilege practices. At the same time, confirm that the audiences for which you intend to enable agents have appropriate licenses in place — Microsoft 365 Copilot in particular, but also any Entra and Purview SKUs that you plan to rely on for governance and protection.&lt;/p&gt;

&lt;h3 id=&quot;2-open-the-agents-area-in-the-microsoft-365-admin-center&quot;&gt;2. Open the Agents Area in the Microsoft 365 Admin Center&lt;/h3&gt;

&lt;p&gt;Sign in to the &lt;strong&gt;Microsoft 365 admin center&lt;/strong&gt;, expand &lt;strong&gt;… Show all&lt;/strong&gt; in the left navigation, select &lt;strong&gt;Agents&lt;/strong&gt;, and open &lt;strong&gt;All agents&lt;/strong&gt;. This view, with &lt;strong&gt;Registry&lt;/strong&gt; selected, is the canonical inventory of every agent known in your tenant. It is worth spending time here before making any operational decisions; many organizations are surprised by what already exists in their environment once it is presented in a single list.&lt;/p&gt;

&lt;h3 id=&quot;3-establish-a-baseline-policy&quot;&gt;3. Establish a Baseline Policy&lt;/h3&gt;

&lt;p&gt;Before approving anything broadly, define and apply an &lt;strong&gt;Agent Policy Template&lt;/strong&gt; that captures your organization’s standards. The template determines, among other things, which connectors and data sources agents may use, what sensitivity-label boundaries apply, and which Conditional Access conditions Entra should enforce. Treat this template as a living governance artifact, deliberately version it, and review it with your security and data-protection stakeholders before it becomes the default for new approvals.&lt;/p&gt;

&lt;h3 id=&quot;4-activate-or-install-your-first-agent&quot;&gt;4. Activate or Install Your First Agent&lt;/h3&gt;

&lt;p&gt;To install an agent for users:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Select the agent from the Registry list.&lt;/li&gt;
  &lt;li&gt;Choose &lt;strong&gt;Install&lt;/strong&gt; in the agent details pane.&lt;/li&gt;
  &lt;li&gt;Decide whether the deployment scope should be the entire organization or specific users and groups, and select &lt;strong&gt;Next&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Review the requested permissions, and select &lt;strong&gt;Grant admin consent&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Accept the requested permissions, and select &lt;strong&gt;Next&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Select &lt;strong&gt;Finish deployment&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent will subsequently appear in the relevant host product — Copilot, Teams, Outlook, or another Microsoft 365 surface — for the chosen audience.&lt;/p&gt;

&lt;h3 id=&quot;5-process-activation-and-approval-requests&quot;&gt;5. Process Activation and Approval Requests&lt;/h3&gt;

&lt;p&gt;End users can request agents from the Microsoft Teams Store or the Agent Store, and those requests surface to administrators for review. Each request can be approved and activated, or rejected with a rationale. From a governance perspective, formally approving or rejecting requests is at least as important as installing approved agents, because it creates the decision trail that auditors and risk reviewers will look for in 12 months.&lt;/p&gt;

&lt;h3 id=&quot;6-turn-on-observability-and-security&quot;&gt;6. Turn On Observability and Security&lt;/h3&gt;

&lt;p&gt;The full value of Agent 365 only emerges when its companion services are correctly configured:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In &lt;strong&gt;Microsoft Purview&lt;/strong&gt;, enable the data security posture management capability for AI, configure DLP policies that include agent identities, and bring agent interactions into your retention and eDiscovery scope.&lt;/li&gt;
  &lt;li&gt;In &lt;strong&gt;Microsoft Defender XDR&lt;/strong&gt;, review the agent inventory, switch on real-time runtime protection for agents, and integrate agent telemetry into your existing threat-hunting workflows.&lt;/li&gt;
  &lt;li&gt;In &lt;strong&gt;Microsoft Entra&lt;/strong&gt;, define the adaptive access policies that should apply to agent identities, and decide explicitly whether and how external parties may interact with your agents — by default, agents behave as internal identities and external access is constrained by administrative policy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;7-use-the-agent-map-to-validate-reality-against-intent&quot;&gt;7. Use the Agent Map to Validate Reality Against Intent&lt;/h3&gt;

&lt;p&gt;Once a small number of agents are running under the new policies, open the &lt;strong&gt;Agent Map&lt;/strong&gt; to inspect the relationships between agents, users, and data sources. This is the single most effective way to detect unintended privilege, unexpected agent-to-agent connections, or data flows that violate your sensitivity-label model. The Map is intended to make excessive privilege visually obvious, and it should become a regular part of your operational review cadence.&lt;/p&gt;

&lt;h3 id=&quot;8-maintain-lifecycle-hygiene&quot;&gt;8. Maintain Lifecycle Hygiene&lt;/h3&gt;

&lt;p&gt;Agent 365 supports a comprehensive set of lifecycle actions through the Microsoft 365 admin center, including &lt;strong&gt;install, uninstall, block, unblock, assign a new owner, publish to the store, reject a submission, and delete&lt;/strong&gt;. Schedule a recurring review — quarterly is a reasonable starting point — to identify orphaned, unused, or stale agents and retire them deliberately.&lt;/p&gt;

&lt;h2 id=&quot;practical-guidance-for-a-successful-rollout&quot;&gt;Practical Guidance for a Successful Rollout&lt;/h2&gt;

&lt;p&gt;A few principles consistently distinguish successful rollouts from those that struggle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Begin with discovery rather than deployment.&lt;/strong&gt; The first weeks should be spent observing what already exists in your tenant before approving anything new, because the inventory you uncover will materially shape your governance design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Please assign an Agent Owner to each agent&lt;/strong&gt;. Agents without accountable human owners tend, over time, to drift outside policy. Make ownership explicit at registration and revisit it quarterly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Treat the initial Agent 365 program as a security and compliance project at least as much as a productivity project.&lt;/strong&gt; The most defensible early wins are reducing shadow-AI exposure and producing a credible audit trail. Productivity outcomes follow naturally once stakeholders trust the guardrails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Be honest about the operational overhead.&lt;/strong&gt; A control plane only delivers value if someone is operating it. Plan for a small but explicit team responsible for policy templates, request triage, agent reviews, and lifecycle hygiene, and make sure that the team has the authority to say no when an agent does not meet your standards.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Evaluate the Microsoft 365 E7 bundle carefully&lt;/strong&gt; if you are already an E5 customer. The bundle economics can become attractive once Microsoft 365 Copilot, the Entra Suite, and Agent 365 are all in scope. Still, the decision should be evaluated through a deliberate commercial analysis rather than a reflex.&lt;/p&gt;

&lt;h2 id=&quot;caveats-and-what-to-watch&quot;&gt;Caveats and What to Watch&lt;/h2&gt;

&lt;p&gt;Several aspects of the service deserve a measured note:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Shadow-agent detection&lt;/strong&gt; is described in Microsoft’s announcement materials as a capability that will continue to expand over time, which suggests that initial coverage will improve as the service matures.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Performance and ROI metrics&lt;/strong&gt; are real. Still, their granularity in any given environment will depend on the specific agents and host applications you operate, so it is wise to validate them against your own reporting needs early.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;End-to-end value depends on companion services.&lt;/strong&gt; Because Agent 365 spans several Microsoft products, the value you obtain will depend on how thoroughly Entra, Purview, and Defender are configured in your tenant — partial deployments will yield partial value.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;conclusion-a-single-coherent-place-to-govern-agents&quot;&gt;Conclusion: A Single, Coherent Place to Govern Agents&lt;/h2&gt;

&lt;p&gt;The general availability of Microsoft Agent 365 is a significant milestone, less because it introduces dramatic new capabilities than because it &lt;strong&gt;consolidates a set of operational disciplines that enterprises have urgently needed&lt;/strong&gt;. Organizations have been building, buying, and deploying AI agents for some time. The absence of a unified control plane has become increasingly difficult to defend against in front of security committees, auditors, and regulators. Agent 365 closes that gap by extending the same identity, governance, and security model that already underpins your users to the agents that increasingly act alongside them.&lt;/p&gt;

&lt;p&gt;For most Microsoft 365 customers, the practical implication is straightforward. The infrastructure question is settled, the licensing path is clear, the integration with the existing Entra, Purview, and Defender stack is real, and the first steps are administrative rather than technical. What remains is the work that always determines the success of a governance program: &lt;strong&gt;defining sensible policy, assigning accountable owners, observing what is happening in your tenant, and acting on what you learn&lt;/strong&gt;. Agent 365 will not do that work for you, but it now provides — for the first time — a single, coherent place in which to do it.&lt;/p&gt;

&lt;p&gt;If you are considering when to begin, the answer is almost certainly now. &lt;em&gt;The agents are already there. The control plane is finally here.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;official-sources&quot;&gt;Official Sources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Microsoft Learn — &lt;em&gt;Microsoft Agent 365 overview&lt;/em&gt; (&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-agent-365/overview&quot;&gt;https://learn.microsoft.com/en-us/microsoft-agent-365/overview&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;em&gt;Get started with Microsoft Agent 365&lt;/em&gt; (&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-agent-365/get-started&quot;&gt;https://learn.microsoft.com/en-us/microsoft-agent-365/get-started&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Microsoft Learn — &lt;em&gt;Governance and Lifecycle actions for agents available in Microsoft 365 admin center&lt;/em&gt; (&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-365/admin/manage/agent-actions&quot;&gt;https://learn.microsoft.com/en-us/microsoft-365/admin/manage/agent-actions&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Microsoft 365 Blog — &lt;em&gt;Microsoft Agent 365: The control plane for AI agents&lt;/em&gt; (Charles Lamanna, Executive Vice President, Business Applications &amp;amp; Agents, November 2025) (&lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-365/blog/2025/11/18/microsoft-agent-365-the-control-plane-for-ai-agents/&quot;&gt;https://www.microsoft.com/en-us/microsoft-365/blog/2025/11/18/microsoft-agent-365-the-control-plane-for-ai-agents/&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Microsoft — &lt;em&gt;Microsoft Agent 365: The Control Plane for Agents&lt;/em&gt; (product page, &lt;a href=&quot;https://www.microsoft.com/en-us/microsoft-agent-365&quot;&gt;https://www.microsoft.com/en-us/microsoft-agent-365&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;Microsoft Copilot Acceleration Team — &lt;em&gt;Microsoft Agent 365 Resources&lt;/em&gt; (&lt;a href=&quot;https://microsoft.github.io/agent-resources/agent365/&quot;&gt;https://microsoft.github.io/agent-resources/agent365/&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/agent-365-ga</link>
                <guid isPermaLink="true">https://holgerimbery.blog/agent-365-ga</guid>
                
                <category>agent365</category>
                
                <category>copilot</category>
                
                <category>entra</category>
                
                <category>purview</category>
                
                <category>defender</category>
                
                <category>agents</category>
                
                
            </item>
        
            <item>
                <title>What Is Next: E7, Agent 365, and the Researcher</title>
                <description>&lt;h2 id=&quot;what-is-next-e7-agent-365-and-the-researcher&quot;&gt;What Is Next: E7, Agent 365, and the Researcher&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Post 14 of 14 — Series Close&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Cowork is one feature inside a larger shift. Microsoft 365 E7 — the new Frontier Suite tier — bundles Cowork-class capabilities with an enterprise control plane for AI agents. This post sketches the immediate horizon, sticking to what is publicly documented today.&lt;/p&gt;

&lt;h2 id=&quot;the-near-term-horizon&quot;&gt;The Near-Term Horizon&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Microsoft 365 E7 — the Frontier Suite.&lt;/strong&gt; Generally available 1 May 2026 at &lt;strong&gt;$99 per user per month&lt;/strong&gt;. E7 brings together:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft 365 E5&lt;/strong&gt; — productivity, security, identity, and compliance foundation.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft Entra Suite&lt;/strong&gt; — adaptive identity and network access controls.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Microsoft 365 Copilot&lt;/strong&gt; — including Cowork as a Frontier preview.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Agent 365&lt;/strong&gt; — the control plane for AI agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;E7 is positioned as a unified enterprise AI platform rather than a collection of separate products. Pricing represents a 65% increase over E5 — the value case rests on Cowork-class capabilities and Agent 365 governance, not on individual app features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent 365.&lt;/strong&gt; Agent 365 extends Microsoft’s existing user-management infrastructure to AI agents — central management, identity, security, and compliance for agents at scale. It generally available 1 May 2026 alongside E7. For organizations planning to use multiple agents (built in Copilot Studio, custom agents, third-party agents, and Cowork itself), Agent 365 is the management layer that keeps governance consistent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Researcher with Critique.&lt;/strong&gt; The Researcher agent’s Critique capability — one model draft and a second model from a different provider’s review — produces measurable quality improvements. Microsoft reports a &lt;strong&gt;DRACO benchmark score of 57.4&lt;/strong&gt; for Researcher with Critique, &lt;strong&gt;a 13.8% improvement over single-model approaches&lt;/strong&gt;. The Model Council feature exposes some of this multi-model orchestration to administrators and advanced users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-model orchestration as a pattern.&lt;/strong&gt; Cowork’s combination of Anthropic Claude and OpenAI models, with routing managed by Microsoft, is the prototype for how Microsoft expects agent platforms to evolve: the best model per task, governed within the tenant, invisible to most users by default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to plan for in the next phases:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;General availability of Cowork&lt;/strong&gt; — no firm public date yet. Treat preview content as pilot input, not production scope.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Agent 365 adoption&lt;/strong&gt; — model your agent inventory now, even if you have only Cowork plus a few Copilot Studio agents.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Custom skill libraries&lt;/strong&gt; — start a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SKILL.md&lt;/code&gt; library for your team in OneDrive (post 5). When organizational skill sharing arrives, you will have curated content ready.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Workforce model&lt;/strong&gt; — train people on prompt design, approvals, and oversight. These are the durable agentic-AI skills.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The honest framing.&lt;/strong&gt; Cowork is not finished. The skill set will grow, the regional availability will expand, Agent 365 will mature, and audit-log coverage will deepen. Teams that win are running structured pilots now, not waiting for GA.&lt;/p&gt;

&lt;h2 id=&quot;series-recap&quot;&gt;Series Recap&lt;/h2&gt;

&lt;p&gt;Across 14 posts: enabled Cowork, navigated Anthropic governance, toured 13 built-in skills, built custom skills with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SKILL.md&lt;/code&gt;, worked through every skill family, set up approvals and the Tasks view, framed three-zone governance, and faced the limits honestly. That is the working set for a credible Cowork rollout today.&lt;/p&gt;

&lt;h2 id=&quot;takeaway&quot;&gt;Takeaway&lt;/h2&gt;

&lt;p&gt;Start small. Build one custom skill. Run one scheduled briefing for two weeks. Pilot one document workflow with one team. Compound from there. The Frontier preview rewards organizations that show up with real use cases, not slide decks.&lt;/p&gt;

&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-365/copilot/cowork/cowork-faq&quot;&gt;Cowork common questions (Frontier)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://microsoftpartners.microsoft.com/abs/Blog/?title=Introducing%20Microsoft%20365%20E7:%20The%20Frontier%20Suite&quot;&gt;Introducing Microsoft 365 E7: The Frontier Suite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Cowork deep-dive (attached source)&lt;/li&gt;
&lt;/ul&gt;
</description>
                <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/cowork-day14</link>
                <guid isPermaLink="true">https://holgerimbery.blog/cowork-day14</guid>
                
                <category>agent365</category>
                
                <category>agents</category>
                
                <category>cowork</category>
                
                <category>microsoft365copilot</category>
                
                
            </item>
        
            <item>
                <title>Copilot Studio Billing – A Short Answer to a Frequent Question</title>
                <description>&lt;blockquote class=&quot;q-left&quot;&gt;
  &lt;p&gt;&lt;strong&gt;Summary Lede&lt;/strong&gt;&lt;br /&gt;
Organizations implementing Microsoft Copilot Studio often ask about the machine structure and how to monitor and analyze resource use across their deployed agents. This article addresses these common questions by examining the foundational principles of Copilot Studio’s billing methodology. Specifically, the platform employs a usage-based billing model that operates through Copilot Credits, a standardized measurement unit that quantifies billable computational resources. Microsoft Copilot Studio gives you comprehensive visibility into consumption and costs through integrated Analytics. You get real-time visibility into billing metrics, consumption attribution, and capacity planning, without needing external tools or manual reconciliation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;usage-based-billing-with-copilot-credits&quot;&gt;Usage-based billing with Copilot Credits&lt;/h2&gt;
&lt;p&gt;Microsoft Copilot Studio employs a consumption-based billing model centered on Copilot Credits, a standardized unit of measurement that quantifies the billable computational resources your agent uses. We add up each agent’s operational costs by summing all Copilot Credits used across your organizational tenant, providing a transparent, predictable billing framework. The volume of Copilot Credits your agent consumes is determined by multiple contributing factors, including the frequency and intensity of user interactions, the specific AI capabilities invoked during those interactions (such as natural language responses, backend action execution, or business process flows), and the overall complexity of the scenarios the agent must handle. This approach lets your costs scale with your actual usage and feature use across your organization.&lt;/p&gt;

&lt;h2 id=&quot;where-to-see-billing-and-consumption&quot;&gt;Where to see billing and consumption&lt;/h2&gt;
&lt;p&gt;Copilot Studio provides a dedicated Analytics page at the agent level that shows billing‑relevant data for a selected time period. This includes:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/holgerimbery/holgerimbery.blog/main/holgerimbery/images/2026/04/upgit_20260401_1775038928.png&quot; alt=&quot;upgit_20260401_1775038928.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/holgerimbery/holgerimbery.blog/main/holgerimbery/images/2026/04/upgit_20260401_1775040164.png&quot; alt=&quot;upgit_20260401_1775040164.png&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;total-billed-copilot-credits-for-the-agent&quot;&gt;Total billed Copilot Credits for the agent&lt;/h3&gt;
&lt;p&gt;The Analytics dashboard provides comprehensive visibility into your agent’s billing metrics through several key components:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Billing trend visualization&lt;/strong&gt;: A temporal representation of Copilot Credit consumption plotted over your selected time period, enabling stakeholders to identify consumption patterns, peak usage intervals, and seasonal fluctuations in agent utilization.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Activity-based consumption breakdown&lt;/strong&gt;: A detailed attribution analysis that segments credit consumption by interaction type and feature category. This granular view helps identify which capabilities—such as natural language processing, action executions, or business process integrations—are the primary drivers of your organization’s computational costs.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Credit allocation and remaining capacity&lt;/strong&gt;: A dashboard element that displays your monthly credit allocation alongside actual consumption to date, providing clear visibility into remaining available credits within the current billing cycle and helping prevent unexpected cost overruns.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This analytical approach helps makers and administrators go beyond simple cost visibility to understand the factors and user behaviors that drive consumption patterns in their agents.&lt;/p&gt;

&lt;h3 id=&quot;nearrealtime-visibility&quot;&gt;Near‑real‑time visibility&lt;/h3&gt;
&lt;p&gt;Please note that consumption data in the Analytics experience isn’t reflected immediately. Because data collection and aggregation are distributed across Microsoft’s infrastructure, there is a deliberate processing interval between when an interaction occurs in your agent and when the corresponding credit consumption metrics appear in the Analytics dashboard. Specifically, recent user activity and associated Copilot Credit charges typically require several hours to propagate through the telemetry pipeline and surface in the analytics interface. This temporal lag between actual consumption and reported metrics is a critical consideration when conducting performance monitoring, particularly in scenarios involving new agent deployments, recent architectural modifications, or optimization initiatives. Organizations implementing consumption tracking during these periods should account for this delay when interpreting analytics data and making operational decisions based on observed billing trends.&lt;/p&gt;

&lt;h2 id=&quot;why-this-matters&quot;&gt;Why this matters&lt;/h2&gt;
&lt;p&gt;The relationship between billing metrics and agent design decisions is a core principle in building and running Microsoft Copilot Studio deployments. Organizations that recognize and leverage this connection are better positioned to make informed architectural decisions that balance functional requirements with cost efficiency. The Analytics experience provided within Copilot Studio serves a dual purpose that extends well beyond simple billing transparency. As a primary governance tool, it enables organizations to establish consumption baselines, define and enforce cost budgets, and implement optimization strategies at both the agent and organizational levels. This comprehensive analytical framework becomes increasingly critical as agents transition from the experimentation and proof-of-concept phases to production environments, where operational costs accumulate rapidly, and optimization opportunities become more constrained. By establishing clear visibility into consumption patterns during early development stages, teams can identify inefficient architectural patterns, optimize interaction flows, and refine AI capabilities—all before deploying agents at scale. Furthermore, the transparency provided by the Analytics dashboard facilitates organizational governance by empowering stakeholders to establish accountability for resource utilization, track consumption trends against budgetary targets, and make data-driven decisions regarding agent expansion, feature prioritization, and technology investments.&lt;/p&gt;

&lt;h2 id=&quot;links-and-resources&quot;&gt;Links and resources&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/microsoft-copilot-studio/requirements-messages-management?source=recommendations&quot;&gt;billing rates&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Microsoft Copilot Studio’s billing model, centered on usage-based Copilot Credits, provides a transparent and scalable framework for managing the costs associated with AI agent deployment. By leveraging the built-in Analytics experience, organizations can gain comprehensive insights into their agents’ consumption patterns, enabling informed decision-making around agent design, optimization, and cost management. As organizations continue to adopt and scale their use of AI agents, understanding the nuances of billing and consumption visibility will be essential for maximizing the value of their investments in Microsoft Copilot Studio while maintaining control over operational costs.&lt;/p&gt;
</description>
                <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
                <link>https://holgerimbery.blog/billing</link>
                <guid isPermaLink="true">https://holgerimbery.blog/billing</guid>
                
                <category>copilotstudio</category>
                
                <category>agents</category>
                
                <category>billing</category>
                
                <category>costmanagement</category>
                
                
            </item>
        
    </channel>
</rss>