With this post I’m starting a series of articles about extending the Dynamics 365 Finance and Operations agent in Copilot Studio. Yes… I’ve also finally fallen into the AI whirlwind 😅.
This introductory post covers the basics of Copilot Studio and its extensibility options. After this, we’ll see:
- Create client plugins in X++.
- Create AI tools (plugins) in X++.
- When to use a client plugin vs. AI tools.
- Troubleshooting Copilot Studio agents using Postman.
The list will grow as Microsoft ships new features. For example, once the Dynamics 365 ERP MCP server becomes extensible, I’ll add an article for that as well.
Table of Contents
What is Copilot Studio?
If you’ve been working with F&O or the Power Platform for some time you might remember Power Virtual Agents (PVA).
PVA was Microsoft’s low-code platform for building chatbots. They were part of the Power Platform and allowed you to create, test, and publish bots through a visual, no-code interface, connect to data and services via Power Automate, and deploy them to Microsoft Teams, websites, etc.
In 2023 Microsoft announced the release of Copilot Studio, and that PVA was becoming part of it. Yes, new features were added, but the foundation of Copilot Studio was Power Virtual Agents.
With all the AI advancements since then, Copilot Studio has evolved not just into a low‑code chatbot creation tool but into a complete suite that also extends existing copilots that Microsoft has released for their products, like the Copilot for Finance and Operations apps agent.
Before you start
If you want to follow the examples that I will show in the articles, you will need the following:
- Unified Developer Experience (UDE) development environment: creating client plugins and AI tools requires a UDE environment. I haven’t tested this on a cloud-hosted environment linked to Dataverse, and the documentation explicitly asks for a UDE environment. You also need to be at least on version 10.0.40.
- System administrator on the F&O environment: probably you could do with less, but if the UDE environment is yours, you’re most likely the administrator.
- System customizer on Dataverse: this is the least access role you need to be able to install the Copilot solutions on the Dataverse environment.
- Dataverse solutions: you need the following solutions in the UDE environment:
- Finance and Operations Virtual Entity: to enable Copilot Studio to talk to F&O.
- Copilot for finance and operations apps: to add the F&O agent to Copilot Studio.
- Copilot in Microsoft Dynamics 365 Finance: to add the finance-related agents.
- Copilot in Microsoft Dynamics 365 Supply Chain Management: to add the SCM-related agents.
- Visual Studio: you need Visual Studio to follow the code examples and to apply them to the UDE environment.
Licensing
I’ve left a separate section in the requirements for licenses because… you know, licensing. Copilot Studio has its own licensing guide, yay!
There’s no entitlement for Copilot Studio in the F&O licenses. First, you need to get one of the following:
- Set up pay-as-you-go for Copilot Studio.
- Copilot Studio message pack subscription: 25,000 monthly messages.
- Some Microsoft 365 Copilot plans have limited use rights, but only related to the M365 agent. Not our thing.
And to build and manage the agents, you need the Copilot Studio author role or Copilot Studio user license. Both are free!
A clarification about licenses: users interacting with the agent don’t need a Copilot Studio user license. Only the users customizing the agents in Copilot Studio need them.
Copilot Studio & F&O
Copilot Studio uses F&O Virtual Entities (a Dataverse representation of F&O data) and Dataverse actions to trigger X++ business logic in F&O. In the end, Copilot Studio acts as an orchestration layer:
- Start conversation: a user starts a chat with the Copilot sidecar chat in F&O.
- Intent resolution: Copilot Studio identifies the topic (or “action”) that meets the intent and selects the right tool to run.
- Access data or logic: Copilot Studio will trigger F&O business logic or retrieve data using Dataverse actions or virtual tables, respectively.
- Response: Copilot Studio finally mixes the output with AI and responds back to the sidecar chat.
Because the Copilot Studio chatbot is the single entry point, all happens in Power Platform: managed solutions move your tools, topics, and environment variables through dev -> test -> prod. Only the X++ assemblies travel with your F&O deployable package.
Architecture of the F&O Copilot
As I said, the Copilot for F&O is Dataverse-based. In this diagram I stole from Microsoft Learn, you can see all the components involved:
As shown in the diagram, the AI logic, data, and connectors are hosted in Dataverse. Copilot Studio orchestrates communication between the two, consuming F&O data via virtual entities and invoking business logic via Dataverse actions, then composing an AI-generated response.
The Finance and Operations Copilots
In Dynamics 365 F&O, we can find three Copilot “flavors”, depending on where the users access them.
- Sidecar: the side chat that you can open with the Copilot button on the top menu bar. It provides natural language chatting capabilities, like ChatGPT.
- Embedded: displayed on some forms, for example, the summaries on the customer or vendor forms.
- Outside: Copilot experiences outside the F&O application, for example, using F&O data within Microsoft 365 Copilot or an agent accessed through Microsoft Teams.
Then we have several copilots that are available out-of-the-box across all the different F&O apps (Platform), and then for every specific F&O app (Finance, SCM, …) there are specific business-related copilots.
Platform
These are available across all the different F&O apps:
- Generative help and guidance with Copilot
- Workflow history summary
- Enhanced user feedback for Copilot and related experiences
- Chat with finance and operations data
- Immersive Home (production-ready preview)
Finance
Supply Chain Management
- AI summaries with Copilot
- Analyze demand plans with Copilot
- Review and accept changes to confirmed purchase orders
- Workload insights with Copilot in the Warehouse Management mobile app
- Supplier Communications Agent overview (production-ready preview)
Project Operations
Commerce
- Customer insights by Copilot
- Store report insights by Copilot
- Enable Copilot statement posting summaries
- Streamline your merchandising process with Copilot-based insights
- Use Copilot in site builder to enrich product detail pages
Copilot Studio UI
Now let’s learn a bit about the elements of Copilot Studio. When you open Copilot Studio, you will find a somewhat familiar screen because its UI is built like other Power Platform components:
Here we have:
- Environment: the environment in which you’re creating or editing the agent. This should be the same as your UDE environment.
- Agents: here we can create, edit, or delete the agents.
- Flows: similar to Power Automate flows, but with agents.
- Tools: to create tools that extend and improve your agents. These can be reused across different agents.
Next I want to focus on the Agents tab. Here you’ll see all the agents available for your environment:
Here you can create a new one or modify the existing ones. And if you click on the F&O one, you’ll see several tabs and the agent description:
What is each tab for?
- Overview: a quick view of your agent.
- Knowledge: define what our agent knows and where it takes it from.
- Tools: actions that your agent can run.
- Agents: other Copilot agents that you can connect to yours.
- Topics: create conversation flows.
- Activity: shows an activity map of the currently running agent. Only works when generative AI orchestration is enabled.
- Analytics: shows usage statistics of your agent.
- Channels: decide where your agent is available.
Other than this, we have the Publish button that will push the changes to the live bot. And also the Settings button that shows additional setup for the bot.
We will see most of these elements in the future posts.
Extending Copilots in X++
And what about extending the agents using X++ code? That’s possible too, and right now we have two ways of doing this:
- Client plugins: Client plugins, or client actions, are Copilot plugins that invoke client code and are available for users in the context of client experiences for F&O apps. Developers can extend the Copilot chat capabilities by defining plugins that convert the functionality, operations, and business logic of the X++ code base into actions that users can invoke through natural language.
- AI tools: currently in prerelease and previously called AI plugins, these can be added to the in-app Copilot for F&O apps, other Microsoft copilots or agents, or custom agents and can use the business logic. They don’t require specific context in the F&O client compared to client plugins.
In short, client plugins are for UI-context actions, and AI tools are background operations available globally. We will learn more details about both options in upcoming posts!
MCP server for Dynamics 365 ERP
And we also have the Model Context Protocol (MCP) server, which adds more capabilities to interact with F&O data. Currently it adds 12 tools that you can check in the Microsoft Learn article.
As of August 2025, it’s not extensible, but Microsoft may allow custom MCP tools in the future.
For the MCP server to show up on your agent in Copilot Studio you need the F&O version to be at least 10.0.2263.17. The version of the Copilot in Microsoft Dynamics 365 Finance solution must be at least 1.0.3049.1. And the version of the Copilot in Microsoft Dynamics 365 Supply Chain Management solution must be at least 1.1.03046.2.
Conclusion
Copilot Studio is quickly becoming the centerpiece for bringing generative-AI experiences into Dynamics 365 Finance & Operations. In this first post we’ve:
- Seen how PVA turned into Copilot Studio—and where it plugs into the F&O stack.
- Learned about prerequisites.
- Met the ready-made copilots you already get in Finance, SCM, ProjOps, and Commerce.
- Clicked around the Copilot Studio UI: agents, tools, topics, channels, and everything else.
- Teased the two ways to add X++ magic in: client plug-ins and AI tools.
In the next article, we’ll roll up our sleeves and build a client plug-in in X++. Until then, make sure your UDE environment is ready, the required Dataverse solutions are installed, and your licenses are in place to follow along line-by-line!
See you in the next post!