Build your own copilot! New Microsoft Copilot extensions

This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Community Hub.

Customize Copilot for Microsoft 365 with tailored experiences and external data integration through Copilot extensions. Enhance productivity by leveraging large language models and Microsoft Graph for personalized responses. With plugins and connectors, extend Copilot’s capabilities to streamline tasks and automate actions, all while maintaining context and boosting efficiency.




Abram Jackson, Principal Product Manager for Microsoft 365 shows how you can get started building Copilot extensions.



Enrich and focus Microsoft Copilot with Copilot extensions.



How to tailor the user experience with actions, knowledge, and your own copilots.



Automate tasks.



Seamless integration with external systems and tailored experiences. Check out Copilot extensions using connectors and plugins and Microsoft Graph connectors.



Integrate multiple Copilot extensions in one session.



Leverage insights for comprehensive, polished outputs. See how it works.



Watch our video here:




00:00 — Copilot extensions
01:08 — Types of Copilot extensions
01:59 — Microsoft Graph connectors
03:20 — Plugins
04:14 — Specialized copilot
04:54 — Multiple customized copilots working together
05:42 — How to build Copilot extensions
06:45 — Plug into data-external or inside of Microsoft 365
07:31 — IDE/Visual Studio Code
08:57 — Wrap up



Link References

To get started, check out



Unfamiliar with Microsoft Mechanics?

As Microsoft’s official video series for IT, you can watch and share valuable content and demos of current and upcoming tech from the people who build it at Microsoft.



Keep getting this insider knowledge, join us on social:

Video Transcript: 

-You can now customize Copilot for Microsoft 365 for your own unique needs, with tailored experiences that can work with external data, while adding unique skills to accelerate the things you do every day. This is now possible with Copilot extensions. And today I’ll demonstrate the experience with Copilot extensions and how to build them. 


-First, let me unpack how Copilot for Microsoft 365 works in relation to Copilot extensions. Copilot for Microsoft 365 comprises large language models, information in the Microsoft Graph to find or reference files and data in places like SharePoint, OneDrive, email, your calendar, and Teams, along with information found on the internet to personalize the Copilot experience inside the Microsoft 365 apps you use. 


-For example, when you submit a prompt in Word, Copilot determines what you are trying to do, finds additional information to ground your prompt, and then returns a fully formatted, highly personalized response to you. This is what sets Copilot for Microsoft 365 apart from free generative AI experiences. 


-Copilot extensions enrich and focus this already great baseline experience further. There are a few main types. The first lets you plug into information sources relevant to you that are sitting outside of Microsoft 365 in near real time, and you can interact with them, like confirming a task was completed. 


-This is made possible by available plugins. You can also use connectors to extend what the Microsoft Graph indexes to sites or services also outside of Microsoft 365. The next lets you build your own Copilot, focused on a specific task requiring a specific set of files or data to guide it. 


-You can also add additional instructions and workflow to scope what it generates and even automate specific actions. This specialized Copilot is then made available as a Copilot extension for others to use. Let me make this real by walking through how Copilot extensions customize your experience with Copilot for Microsoft 365. 


-In this example, I’m a support technician. And one of the things I regularly have to do is write a weekly report detailing the support cases that I’ve worked on. I’m in Copilot for Microsoft Teams, and I’ll first start with my baseline Copilot experience without extensions. I’ll write a prompt to find all the emails I sent today and group them by topic. 


-And that finds me all of the emails I was looking for and groups them like I asked. I now want to go beyond Microsoft 365 data and include information and knowledge base articles outside of it that are on our support site. I’ll show you the enriched experience with my Copilot extension first, and then explain what’s going on under the covers. 


-I’ll use a different session, and paste in, “Summarize all the emails I sent today, group them by high level topic. For each topic, find the support wiki article that is most related.” And KB articles will come from the connected site. Once the entire response is generated, I can see the matching KB articles for each topic. And if I look at the citations, these ones are the sources using my Graph connected site. 


-Here, my Copilot extension is using a Microsoft Graph connector to find information from the external sources that are connected to the Microsoft Graph. Next, I’ll use a different Copilot extension that can also perform actions with an external system on my behalf. My IT team has enabled a plugin called Doc Improvement. 


-In this prompt from yesterday, I’ll paste create a doc improvement task to improve that first KB article based on the related emails I sent. This doesn’t need all of the detail from the previous prompt because Copilot gets that information from the chat history in this session. And this extension actually writes back to another system and creates a task for a content writer to update one of our KB support articles. 


-After I confirm, I see a confirmation that it has created the doc improvement work item. So far I’ve shown how by using Copilot extensions, my experience as a technician was tailored with content specific to me, while enabling dynamic connections to external data and creating a ticket in my knowledge base system. Now let’s look at how I can go further by focusing in on a specific task with a specialized Copilot available as a Copilot extension. 


-This is our support content author Copilot, which my team has built to help us keep our knowledge base articles up to date. You can see that it has a few suggested prompts for skills or frequent tasks. I’ll paste in update the Wiki article about remote help to add a first step of making sure that the user has logged in. This will first find the correct KB article, get its contents, understand where to insert the text, and then ask me to confirm. 


-I can also suggest a modification, but let me type, go ahead, and let Copilot make the update. And one more thing I’ll show you is how you can have multiple custom Copilots work together in the same conversation. I’ll go back to the session I had with Copilot earlier. This time, I will at mention the support content author Copilot with a similar prompt. 


-This performs the same job, but keeps me in this same session. Now, I’ll at mention another custom Copilot that my team has written called Support Report Writer. Because it is being used in the same session, it has Microsoft Copilot’s analysis of my email, as well as information about the KB article I just updated. 


-Then after it’s finished, you’ll see that I now have a fully written draft report that I can copy into an email or a document, and make any additional changes. So, that’s how Copilot extensions work. To build them, you can choose a low-code approach with Microsoft Copilot Studio, or an IDE like Visual Studio. Let’s start with the low-code approach to build your own Copilot. You can get to Copilot Studio by going to 


-From the Copilots tab, I just need to add a Copilot. And I can either use a prompt to describe the Copilot I want to build, or I can skip right to the configuration, which I’ll do in this case. First, I need to give it a name, so I’ll type in “Support Report Writer.” For description, I’ve enabled clipboard history here, so I’ll paste in the text to describe my Copilot. Next, instructions, give your Copilot more context about its purpose and how to respond. You can get very specific with these instructions using natural language. 


-Here I’ve pasted in about 600 characters, but these can be up to 8,000 characters. Starter prompts like we saw before in our custom Copilot can also be added for frequent tasks and to help new users quickly get started. These are optional, and I’ll skip this step to save a little time. From there, I just need to hit create. 


-Once complete, I can make it available to the right users and groups by publishing it. Next, you can plug into other data, which can be external to, or inside of Microsoft 365. In the Copilot from Microsoft 365 page, you can see that I already have a few actions, including a few that point to a specific SharePoint locations for content. I’ll add an action. 


-Here, I can choose between a connector to link to the data I want, conversation to link to an existing solution, a prompt to link to a standard reusable prompt, and a flow containing workflow automation. I’ll choose a conversation in my case. Now, I’ll give it a name, “Support KB Docs Improvement.” I’ll leave the default solution, and you’ll see that the schema name updates itself automatically. 


-Then I’ll hit create. And if you prefer to use an IDE like Visual Studio Code, let me show you the experience with the Microsoft Teams toolkit installed. I’ll start with the plugin this time. You’ll see that I have three basic JSON files open in my tabs. Swagger that JSON to connect to my API using specified operations and responses to send back when it succeeds or fails. Supportplugin.JSON describes the actions to take for users and gives more information for the model to use. Below that, the functions are defined to perform tasks. 


-Then in runtimes, it points back to the swagger file and what functions are defined there. Finally, the manifest.JSON, which includes a bit more metadata including the ID, naming, developer, description, and branding details. Importantly, you’ll see that in the manifest, I’ve also defined declarative Copilots. In my case, the content Copilot I showed you earlier. So let’s jump into that JSON file to show you how to build a Copilot. 


-You’ll see that this file contains essentially the same elements that we saw in Copilot Studio. Things like the name, ID, and description. The instructions, again, to provide more context for your custom Copilot. We’ve also defined capabilities, which point to our Graph connector data. Actions for a plugin that points to our open API specification, and there are also conversation starters as suggested prompts with details about what those should do. 


-And with that, you can get started building Copilot extensions for more tailored experiences, capable of specialized tasks with the data you specify, even if it sits outside of Microsoft 365. These capabilities will be rolling out in the coming weeks. To learn more and get started, check out Keep watching Microsoft Mechanics for all the deep dives and latest updates for Copilot and more. Subscribe if you haven’t yet, and we’ll see you soon.

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.