We’ve all heard about Copilot for Microsoft 365 by now, right? It is a powerful tool that helps you manage your work, projects, and tasks in a smart and efficient way. But did you know that you can also extend Copilot for Microsoft 365 and create your own plugins (extensions) that can solve specific problems or add more functionality to Copilot for Microsoft 365?
In this blog post, I will share what specific problem I wanted to resolve with Copilot and my experience of developing Copilot plugins and give you some tips on how to get started. We will cover the following topics:
It all started a few years ago, when I first joined CDW. We have a lot of consultants across different teams and with different skill sets, that our customers need. When a new opportunity comes in, pre sales are engaged and one of the first things that often happens is someone will ask a basic question like “Do we have anyone in this team who can help with an M365 engagement specifically with Power Platform skills?”.
We have a system where technical consultants will list their skills and proficiency in those skills, with the system being updated frequently via an app (Skills app) that interacts with the underlying database holding the consultant data.
Along comes Copilot for Microsoft 365 and it looks like the perfect place to ask those questions. The only problem is, those basic questions such as “Do we have any consultants with Power Platform skills?” results in responses that seem OK at first glance with snippets of information from various documents, chats etc., but differ for each user based on their access levels and it can’t return the correct consultant data even though the data exists in our tenant.
What we needed to do is help Copilot understand the consultant data so it can produce better results, and this is where extending Copilot comes in. In our case, we had consultant data in another database which Copilot doesn’t index so we needed to expose that data to Copilot, and I chose to extend Copilot using a plugin. In your case it could be data from an e-commerce database for example.
We first start with trying to understand approaches to building a plugin. One of the great things about Copilot plugins development is that you can choose between different approaches: low code or pro code. Low code means that you can use a graphical interface or a drag-and-drop tool to create your Copilot plugin without writing much code (sometimes even without any code) using Copilot Studio. Pro code means that you can use a code editor or an IDE to write your Copilot plugins.
Both approaches have their advantages and disadvantages, and you should choose the one that suits your needs and preferences. Here are some factors that you should consider when choosing between low code or pro code:
While extending Copilot, you will most likely come across terms such as REST API and OAuth 2.0 so be prepared to investigate those technologies to get the most out of your plugin or extension.
Ultimately, the choice between low code or pro code is up to you and your goals. You can also mix and match the two approaches, depending on the features and components of your Copilot plugin.
The process of building a Copilot plugin may vary depending on the approach, skills, tools, and features that you use, but here are some general steps that you can follow:
For my Copilot plugin I chose to go via the pro code approach as I wanted to do more than expose consultant data to Copilot, I also wanted that data to be interactable. Imagine Copilot returning the correct consultants and then within Copilot itself, being able to check the consultant’s availability (which exists in yet another third-party system that isn’t indexed by Copilot) and then finally book a meeting with the consultant.
Bonus tip: Now that we have exposed valuable data to Copilot, imagine being able to interrogate that data e.g., how many consultants do we have with these skills, build a table with consultants ordered by skill proficiency levels, write a Statement of Works (SoW) document for a SharePoint project and add up to 3 relevant expert consultants to the approvers section etc.
One of the ways to make your Copilot plugins more valuable and useful is to do more than just provide information to your users. You can also enable your users to take actions or make decisions with your Copilot plugins, such as creating, updating, or completing tasks, projects, or other items. This can make your Copilot plugins more interactive and engaging and save your users time and effort.
Here are some tips on how to do more than just provide information with your Copilot plugin:
In this blog post we talked about how Copilot is great but often needs help when you want to resolve more specific questions. This is where extending Copilot comes in and we talked about how to develop and design a Copilot plugin to make Copilot more relevant for your business.
Some key takeaways are:
- A Copilot plugin should be aligned with the goals and needs of the target users and provide relevant and useful services or solutions for them.
- We talked about different approaches to extending Copilot for Microsoft 365.
- We talked about providing your users with more than just valuable information, but also providing them with a way to interact with that data.
CDW can help build Copilot plugins by providing consultation, analysis, development and integration. For more information please click here.