Extend Microsoft 365 Copilot with plugins and Microsoft Graph connectors

Completed

On its own, Microsoft 365 Copilot is a powerful productivity tool for keeping users in the flow of their work across Microsoft 365 applications. It provides users with general skills such as understanding, summarizing, predicting, recalling, translating, and generating content. It draws from a baseline of your organizational knowledge by indexing content in the Microsoft Graph, such as the emails, chats and documents that users have permission to access.

However, business workflows don't typically run exclusively on Microsoft 365 applications and data formats. With Copilot extensibility, you can augment Microsoft 365 Copilot with custom skills and organizational knowledge specific to your enterprise and users to enable truly spectacular AI scenarios. You can extend Copilot's skills by transforming your app into a plugin that increases user productivity across daily tasks and workflows. You can enrich the organizational knowledge accessible to Copilot by ingesting your enterprise data and content with Microsoft Graph connectors.

Diagram showing how you can extend Copilot knowledge through plugins and Microsoft Graph connectors.

Copilot extensibility helps your collaborative workspace to be more productive by bringing key information, common tools, and trusted processes to where people increasingly gather, learn, and work. Create something brand new for Copilot or integrate an existing app. Here are some practical examples of what you can develop for your organization:

  • Issue tracking for engineering team. Assume your engineering team relies on a project management software. You can build a custom tool that enables users to monitor open tickets. For instance, a user can request information on all issues assigned to them, and Microsoft 365 Copilot can seamlessly retrieve and present this data from your plugin.

    Diagram showing how you can extend Copilot to retrieve engineering tickets assigned to you from a project management system.

  • Product inventory for E-commerce. If your business operates in the realm of commerce, you can build an internal inventory tool by connecting it to your product database. For example, a user can ask Copilot to verify the availability of specific items, streamlining your internal processes.

  • Enterprise knowledge sharing. Consider a multinational corporation with a wealth of knowledge and insights stored in various formats - documents, emails, chat transcripts, spread across multiple systems. Microsoft Graph connectors can facilitate the consolidation of this data, making it searchable from a single, unified interface. By doing so, connectors ensure that your organization's collective wisdom is readily accessible.

While Microsoft 365 Copilot is already able to use the apps and data within the Microsoft 365 ecosystem, many users still depend on various external tools and services for work management and collaboration. They need a way to integrate their Microsoft 365 environment with the enterprise applications and other on-premises and SaaS cloud software and services that they use, including:

  • Enterprise resource planning (ERP) applications
  • Customer resource management (CRM) applications
  • Intranet applications
  • Wikis
  • Blogs
  • Social networking sites

There are two ways of extending Microsoft 365 Copilot: by augmenting Copilot with skills through plugins and grounding it with organizational data through Graph connectors.

Additional viewing. Watch the following short video for an overview on how to extend Copilot's reach by using plugins and Microsoft Graph connectors.

Plugins

Plugins are tools that augment the capabilities of AI systems, enabling them to interact with APIs from other software and services to retrieve real-time information, incorporate company and other business data, and perform new types of computations. Developers can integrate their apps and services into Microsoft 365 Copilot with plugins to reach hundreds of millions of people where they work every day. Plugins expand your users' skills by interacting with a web service using natural language in Microsoft Copilot. With plugins, you can:

  • Access real-time information such as finding the latest news coverage on a product launch.
  • Retrieve relational data such as reporting on service tickets assigned to a given team member.
  • Perform actions across apps such as creating a new task in your organization's work tracking system.

There are three types of plugins for Microsoft 365 Copilot: ChatGPT plugins, Teams message extensions, and Microsoft Power Platform connectors—enabling developers to use existing software and tooling investments and skills.

  • ChatGPT Plugins. These plugins are custom extensions that enhance the capabilities of Copilot within chat interfaces. They allow you to integrate additional functionality directly into the chat experience. For example, imagine a ChatGPT plugin that assists developers by suggesting relevant code snippets based on their descriptions of programming problems. Use cases for this plugin type include:
    • Automated Responses. You can create plugins that provide automated answers to common queries or perform specific tasks based on user input.
    • Custom Commands. Extend Copilot’s command repertoire by adding new commands that trigger specific actions.
    • Content Generation. Develop plugins that generate code snippets, documentation, or other content on demand.
  • Teams Message Extensions. These plugins allow you to enrich conversations in Microsoft Teams by integrating external services and data. They appear as interactive cards within the chat interface. For example, a Teams message extension that retrieves customer information from a CRM system and displays it in a card format during a chat with a sales representative. Use cases for this plugin type include:
    • Data Lookup. Users can query external databases, APIs, or knowledge bases directly from Teams.
    • Task Automation. Create extensions that perform actions like creating tasks, fetching data, or updating records.
    • Collaboration. Share content such as documents, images, or links seamlessly.
  • Microsoft Power Platform Connectors. These plugins facilitate data exchange and automation. They do so by enabling integration between Copilot and various external services, applications, and data sources. Use cases for this plugin type include:
    • Data Flow. Connect to databases, cloud services, or APIs to pull in real-time data.
    • Workflow Automation. Trigger actions in other systems based on Copilot interactions.
    • Unified Search. Search across multiple repositories (files, emails, etc.) using connectors.

Additional reading. For more information on plugins, see what makes a good plugin for Copilot and how to ensure Copilot chooses your plugin to use when its skills are needed. For developers, see Empowering every developer with plugins for Microsoft 365 Copilot | Microsoft 365 Blog.

Manage plugins for Copilot in the Microsoft 365 admin center

Administrators can manage plugins for Copilot as apps through the Integrated apps page in the Microsoft 365 admin center. From this page, they can:

  • View the list of available, deployed, or blocked apps for their organization.
  • Enable/disable Copilot extensibility for the whole organization through Microsoft 365 admin center settings.
  • Make available an app with plugins for Copilot to specific users or groups.
  • Deploy or remove apps with plugins for Copilot for the whole organization or specific users or groups.
  • Block or unblock apps with plugins for Copilot for the whole organization.

Admins can view all apps that have Copilot support from the list of available, deployed, or blocked apps on the Integrated apps page by using the filter option of Microsoft 365 Copilot support and setting it to Yes. They can also check if a specific app has Copilot support by selecting it from apps list and checking if the app properties contain a tag stating Microsoft 365 Copilot plugin is disabled or Microsoft 365 Copilot plugin is enabled.

Enable or disable plugin extensibility

Admins can enable or disable Copilot plugin extensibility at the tenant level by using a new setting in the tenant default options in the Integrated Apps section of the Microsoft 365 admin center. This setting allows admins to control who can access Copilot plugins in their organization. The setting has three options:

  • All Users. This option is default value for this setting. It means that all users in the organization can access Copilot plugins, subject to the existing app policies and user assignments.
  • No Users. This option means that no users in the organization can access Copilot plugins, and the 3P plugins are disabled in the Copilot plugin flyout. This option also hides the apps that have Copilot plugins from the Available apps and Deployed apps lists in the Microsoft 365 admin center.
  • Specific Users. This option allows you to select specific users or groups in your organization to have access to Copilot plugins. So while all or specific users in your organization might have permissions to install and use apps from the Available apps and Deployed apps lists, only the users or groups you select in this setting can use Copilot plugins within these apps.

Deploy or remove plugins for Copilot

Administrators can deploy or remove plugins for Copilot across the whole organization or for specific users or groups. They can do so by using the same gestures and controls that work for any other app in the Microsoft 365 admin center. Admins can select an app that has a plugin for Copilot from the Available apps or Deployed apps list and select the Deploy or Remove button. Admins can also choose to deploy or remove the app for everyone or specific users or groups. Deploying or removing an app affects its availability and functionality in Copilot and other host products, such as Outlook, Teams, or Microsoft 365.

Manage how users can install plugins for Copilot

Administrators can assign or unassign plugins for Copilot to specific users or groups by using the same gestures and controls that work for any other app in the Microsoft 365 admin center. Admins can select an app that has a plugin for Copilot from the Available apps or Deployed apps list and select the Assign or Unassign button. Admins can also choose to assign or unassign the app to everyone or specific users or groups. Assigning or unassigning an app affects its availability and functionality in Copilot and other host products, such as Outlook, Teams, or Microsoft 365.

Block or unblock plugins for Copilot

Admins can block or unblock plugins for Copilot for the whole organization or specific users or groups by using the same gestures and controls that work for any other app in the Microsoft 365 admin center. Admins can select an app that has a plugin for Copilot from the Available apps or Deployed apps list and select the block or unblock button. Admins can also choose to block or unblock the app for everyone or specific users or groups. Blocking or unblocking an app affects its availability and functionality in Copilot and other host products, such as Outlook, Teams, or Microsoft 365.

Microsoft Graph connectors

Microsoft Graph connectors offer an intuitive way to bring data from external services into Microsoft Graph and the semantic search index. Doing so enables external data to power Microsoft 365 intelligent experiences such as Microsoft Search. With Microsoft Graph connectors, the data you bring in from your organization can be discoverable in the following experiences with Microsoft 365 Copilot. The connectors currently available from Microsoft and its partners enable organizations to connect to popular Microsoft and non-Microsoft services. Examples of existing connectors include Azure services, Box, ServiceNow, Salesforce, Google services, and Media Wiki.

Microsoft 365 Copilot with Microsoft Graph connectors allows users to easily find, summarize, and learn important details about all content relevant to a user's natural language prompts. To ensure that Microsoft 365 Copilot uses your content effectively, administrators should:

  • Add a urlToItemResolver when you create your connection. A urlToItemResolver enables the platform to detect when users share URLs from your external content with each other. Microsoft 365 Copilot has a higher likelihood of displaying content shared with that user. As such, you should add a urlToItemResolver in activitySettings when you create your connection.
  • Apply semantic labels. Semantic labels help Microsoft 365 Copilot interpret the semantic meaning of your schema. Apply as many semantic labels to your schema as applicable.
  • Add user activities on your items. For a list of supported user activity types, see external activity. The system assigns greater importance to items that have more activities.

Additional reading. For more information, see How to make your Graph connector work better with Copilot.

Microsoft Graph connectors by Microsoft

You can connect to the following data sources by using connectors created by Microsoft:

The Microsoft Graph connectors gallery contains a brief description of each of these connectors. If you're ready to connect one of these data sources to your tenant, be sure to read the Setup overview and any other articles in the Setup connectors by Microsoft section that apply to your data source.

Microsoft Graph connectors by our partners

The Microsoft Graph connectors gallery also includes a brief description of each of the connectors created by Microsoft's partners, and a link to each partner's website. To learn more, contact each partner directly.

Build your own Microsoft Graph connector

The existing connectors help connect to many popular services. However, some services that organizations integrate with aren't available in the connectors gallery. You can use the Microsoft Graph connectors API to build custom connectors to bring your external data into Microsoft 365 experiences within your organization. To build custom connectors, you use the Microsoft Graph connectors REST API.

Diagram showing how you can use the Microsoft Graph connectors A P I to build a custom connector.

You can use the Microsoft Graph connectors API to:

  • Create and manage external data connections. The externalConnection resource (external connection API) is a logical container for your external data that you can manage as a single unit. To learn more, see Create, update, and delete connections in Microsoft Graph.

  • Define and register the schema of the external data types. The connection schema (schema API) determines how various Microsoft 365 experiences use your content. The schema is a flat list of all the properties that you plan to add to the connection along with their attributes, labels, and aliases. You must register the schema before ingesting items into Microsoft Graph. To learn more, see Register and update schema for the Microsoft Graph connection.

  • Ingest external data items into Microsoft Graph. Microsoft Graph connectors offer an intuitive way to bring external data into Microsoft Graph. The externalItem resource in Microsoft Graph represents items added by your application to the Microsoft Search service. After you create a connection, you can add your content. You must represent each item from your data source as an externalItem in Microsoft Graph with a unique item ID. You use this ID to create, update, or delete the item from Microsoft Graph. You can use the primary key from your data source as the item ID or derive it from one or more fields. To learn more, see Create, update, and delete items added by your application via Microsoft Graph connectors.

  • Sync external groups. The system can grant or deny access to items in the external service through an access control list (ACL) to different types of non-Microsoft Entra groups. For example, Salesforce items might have permission sets and profiles, while ServiceNow items might have local groups. When you ingest these items into Microsoft Graph, you need to honor these ACLs. You can use the external group API to set permissions on external items ingested into Microsoft Graph. An externalGroup represents a non-Microsoft Entra group or group-like construct (such as business units, teams, and so on) and determines permissions on the content in your external data source. To learn more, see Use external groups to manage permissions to Microsoft Graph connectors data sources.

    Note

    Azure Active Directory (Azure AD) is now Microsoft Entra ID. Learn more.

To get started building a custom Microsoft Graph connector, see the following articles: