Extend Microsoft Copilot with Plugins & Connectors
Back to Tutorials
Microsoft 365Intermediate5 Steps

Extend Microsoft Copilot with Plugins & Connectors

Microsoft LearnNovember 5, 202514 min watch14 min video

Learn how to extend Microsoft Copilot capabilities by building custom plugins, using Graph connectors, and integrating external data into the Copilot experience.

Extending Microsoft Copilot

Out of the box, Copilot works with Microsoft 365 data. But what about your custom line-of-business systems, external APIs, and third-party data? That's where Copilot extensibility comes in.

Extensibility Options

Method Best For Complexity
Graph Connectors Bringing external data into Microsoft 365 Low
Message Extensions Interactive cards in Teams + Copilot Medium
API Plugins Connecting to REST APIs Medium
Copilot Studio Low-code custom copilots Low

1. Microsoft Graph Connectors

Graph connectors ingest external data into the Microsoft 365 Graph, making it searchable by Copilot alongside your emails, files, and chats.

How It Works

External System (Jira, Salesforce, wiki, etc.)
    ↓ Graph Connector
Microsoft 365 Graph Index
    ↓
Copilot can search & reference this data

Built-In Connectors

Microsoft provides 100+ pre-built connectors for popular systems:

  • Jira, ServiceNow, Salesforce
  • Confluence, MediaWiki
  • Azure DevOps, Azure SQL

Custom Connectors

Build your own connector for proprietary systems:

// Create a connection
var connection = new ExternalConnection
{
    Id = "contosoproducts",
    Name = "Contoso Products",
    Description = "Product catalog from Contoso ERP"
};
await graphClient.External.Connections.PostAsync(connection);

// Define schema
var schema = new Schema
{
    BaseType = "microsoft.graph.externalItem",
    Properties = new List<Property>
    {
        new() { Name = "productName", Type = PropertyType.String, IsSearchable = true },
        new() { Name = "price", Type = PropertyType.Double },
        new() { Name = "category", Type = PropertyType.String, IsSearchable = true }
    }
};

2. Message Extension Plugins

Teams message extensions can be used as Copilot plugins. When a user asks Copilot something, it can invoke your message extension to search external data and return rich Adaptive Cards.

Building a Plugin with Teams Toolkit

// teamsapp.yml - Plugin definition
{
  "composeExtensions": [{
    "botId": "${{ BOT_ID }}",
    "commands": [{
      "id": "searchProducts",
      "description": "Search the product catalog",
      "parameters": [{
        "name": "query",
        "description": "Product name or category",
        "inputType": "text"
      }]
    }]
  }]
}

When a user asks Copilot: "Find the pricing for Widget Pro in our product catalog", Copilot will invoke your plugin's search command and display the results.

3. API Plugins (OpenAPI)

Connect Copilot to any REST API using an OpenAPI specification.

# openapi.yaml
openapi: 3.0.0
info:
  title: Contoso Inventory API
  version: 1.0.0
paths:
  /products:
    get:
      operationId: searchProducts
      summary: Search products in inventory
      parameters:
        - name: query
          in: query
          schema:
            type: string
      responses:
        200:
          description: List of products

Register this with Copilot, and it can call your API autonomously when users ask about inventory.

4. Testing Your Plugin

  1. Use Teams Toolkit in VS Code for local development
  2. Sideload your app in Teams
  3. Open Copilot in Teams and test with prompts that should trigger your plugin
  4. Check the Developer Portal for logs and debugging

Deployment & Governance

  • Submit to the Teams App Store for org-wide distribution
  • Admins control which plugins are available via the Microsoft 365 Admin Center
  • Data Loss Prevention (DLP) policies apply to plugin data

Resources

Video: Search for "Extend Microsoft 365 Copilot" on Microsoft 365 Developer YouTube

Microsoft CopilotPluginsGraph ConnectorsTeamsExtensibility

Share this tutorial

Chapters (5)

  1. 1

    Copilot Extensibility Overview

    Understanding the plugin and connector architecture

    00:00
  2. 2

    Graph Connectors

    Bring external data into the Microsoft 365 Graph

    02:00
  3. 3

    Building a Message Extension Plugin

    Create a Teams message extension that works with Copilot

    4:00
  4. 4

    API Plugins

    Connect Copilot to external REST APIs

    8:00
  5. 5

    Testing & Publishing

    Test plugins and publish to your organization

    10:00

About the Author

KH

Microsoft Learn

Microsoft MVP | AI Engineer

Software & AI Engineer specializing in Microsoft Azure, .NET, and cutting-edge AI technologies.

Need help with your project?

Let's discuss how I can help bring your ideas to life.

Get In Touch