CDW Blog

Extend Copilot and Unlock its True Value

Written by Syaif Uddin | 9 August, 2024

From brainstorming to building copilot plugins

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:

  • The problem to solve and why Copilot for Microsoft 365
  • How to choose between low code or pro code approaches to extending Copilot
  • How to build your first Copilot plugin
  • How to do more than just provide information with your Copilot plugin

A problem worth solving

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.

Pro Code or Low Code

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:

  • The complexity and functionality of your Copilot plugin: If you want to create a simple or basic Copilot plugin that only requires a few inputs and outputs, you may prefer the low code approach, as it can save you time and effort. However, if you want to create a complex or advanced Copilot plugin that requires custom logic, calculations, or integrations, you may prefer the pro code approach, as it can give you more flexibility and control.
  • Your skill level and experience: If you are new to Copilot plugin development or coding in general, you may prefer the low code approach, as it can help you learn the basics and the best practices of Copilot plugin development. However, if you are an experienced developer or coder, you may prefer the pro code approach, as it can challenge you and allow you to use your skills and creativity.
  • Your budget and resources: If you have a limited budget or resources, you may prefer the low code approach, as it can reduce the cost and time of Copilot plugin development. However, if you have a sufficient budget or resources, you may prefer the pro code approach, as it can increase the quality and value of your Copilot plugin.

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.

Building your first 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:

  • Consider the user interface and user experience of your Copilot plugin. How will your Copilot plugin look and feel? How will your users interact with it? What are the inputs and outputs of your Copilot plugin?
  • Develop the logic and functionality of your Copilot plugin. How will your Copilot plugin work and behave? What are the features and data that you need to access from the Copilot 365 platform? What are the integrations or calculations that you need to perform with your Copilot plugin? You can use tools like Visual Studio Code or Postman to write and test your code and test the REST API endpoints for your Copilot plugin to consume.
  • Test and deploy your Copilot plugin. How will you publish and distribute your Copilot plugin? How will you ensure the quality and security of your Copilot plugin? You can use tools like GitHub or Azure to host and deploy your Copilot plugin.

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.

Take action with Copilot

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:

  • Identify the actions or decisions that your users need or want to take with your Copilot plugin. What are the tasks or activities that your users need or want to do with the information that you provide with your Copilot plugin? What are the options or choices that your users need or want to make with the information that you provide with your Copilot plugin?
  • Design the user interface and user experience of your Copilot plugin to support the actions or decisions of your users. How will you display and organise the information that you provide with your Copilot plugin? How will you enable and guide your users to take the actions or make the decisions that they need or want with your Copilot plugin?
  • Develop the logic and functionality of your Copilot plugin to execute the actions or decisions of your users. How will you process and validate the inputs and outputs of your users? How will you communicate and update the Copilot 365 platform or other services or systems with the actions or decisions of your users? You can use tools like webhooks, APIs, or databases to create dynamic and responsive features for your Copilot plugin.

To close

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.