You need to bring your own business data into Copilot to get answers grounded in your company’s specific documents, databases, or internal tools. Copilot connectors allow you to link external data sources so the AI can read and reference that content during conversations. This article explains what Copilot connectors are, what prerequisites you need, and provides step-by-step instructions to add a custom data source. By the end, you will be able to configure a connector that makes your proprietary data available to Copilot in Microsoft 365.
Key Takeaways: Adding a Custom Data Source with Copilot Connectors
- Microsoft 365 admin center > Copilot > Connectors: Central location to manage all data source connections for Copilot.
- Custom connector setup requires a valid OAuth 2.0 endpoint and a publicly accessible API: Without these, the connection test will fail.
- Graph Connector certification: Only certified connectors appear in the Copilot connector gallery for tenant-wide use.
What Are Copilot Connectors and Why Do You Need a Custom Data Source
Copilot connectors are the bridges between Microsoft 365 Copilot and external data repositories. When you add a connector, Copilot can index content from that source and use it to generate grounded, context-aware responses. Without a connector, Copilot only accesses data already inside Microsoft 365 such as SharePoint, OneDrive, and Exchange. A custom data source is required when your business information lives in a third-party system like a CRM, a custom database, or a legacy file server. The connector fetches that data, transforms it into a searchable index, and makes it available through the Microsoft Graph.
The process involves two main components: the connector itself, which is registered in the Microsoft 365 admin center, and the external API that the connector talks to. You must have administrative privileges in Microsoft 365 and write access to the external system. The connector can be either a pre-built Graph Connector from the Microsoft partner ecosystem or a custom connector you build using the Graph Connector API. This article covers the custom connector path because pre-built connectors require no manual configuration beyond installation.
Prerequisites for Adding a Custom Connector
Before you begin, confirm the following requirements are met:
- You have a Microsoft 365 global admin or Search admin role assigned.
- The external data source exposes a RESTful API with OAuth 2.0 authentication.
- The API returns data in JSON format that can be mapped to the Microsoft Graph schema.
- Your Microsoft 365 tenant is licensed for Copilot for Microsoft 365.
- You have the API endpoint URL, client ID, client secret, and scopes ready.
Steps to Add a Custom Data Source Using the Microsoft 365 Admin Center
Follow these steps to register and configure a custom connector. The entire process takes about 15 minutes if you have the API details prepared.
- Sign in to the Microsoft 365 admin center
Open a browser and go tohttps://admin.microsoft.com. Sign in with an account that has the Global Admin or Search Admin role. - Navigate to the Copilot connectors page
In the left navigation pane, select Copilot then Connectors. This page lists all existing connectors and the option to add a new one. - Click Add a connector
On the Connectors page, click the Add a connector button. A side panel opens with two tabs: Gallery and Custom. - Select the Custom tab
Click the Custom tab. Here you can either upload a connector definition file or enter the details manually. For a custom data source, choose Create a new custom connector. - Enter the connector name and description
Type a friendly name such as Salesforce CRM Data and a short description. This name appears in the Copilot interface when users reference the data source. - Configure the authentication method
Select OAuth 2.0 from the Authentication type dropdown. Paste the following values from your external API:
– Authorization URL
– Token URL
– Client ID
– Client Secret
– Scopes (space-separated list) - Define the data schema
Click Add schema. You must map the fields from your API response to the Microsoft Graph connector schema. At minimum, provide atitle,url, anddescriptionfor each item. Use the Test connection button to verify that the connector can fetch a sample record. - Set the refresh schedule
Choose how often Copilot should re-index data from this source. Options are every 15 minutes, hourly, daily, or weekly. For frequently updated data, select Every 15 minutes. - Review and finish
Click Next to review your settings. Then click Create. The connector appears in the list with a status of Provisioning. After a few minutes, the status changes to Active.
Common Issues When Adding a Custom Connector
Connection test fails with a 401 Unauthorized error
This error means the OAuth 2.0 credentials are incorrect or the scopes are mismatched. Double-check the client ID, client secret, and scopes. Ensure the token endpoint returns an access token that has permission to read the data source. If your API uses a custom scope, verify it is included in the scopes field.
Connector shows Provisioning but never becomes Active
The most common cause is a timeout during the initial indexing. The connector tries to fetch the first batch of data from your API. If the API takes longer than 30 seconds to respond, the provisioning fails. Reduce the page size in your API response or increase the server timeout setting. After fixing, delete the connector and create it again.
Users cannot see the custom data in Copilot responses
After the connector is active, it can take up to 24 hours for the indexed data to appear in Copilot results. Additionally, verify that the connector is enabled for the correct user groups. Go to Copilot > Connectors, select your connector, and check the Permissions tab. Assign the connector to the security groups that should have access.
Copilot Connector Types: Pre-built vs Custom
| Item | Pre-built Graph Connector | Custom Connector |
|---|---|---|
| Setup effort | Minimal — install from the gallery with one click | Requires API configuration and schema mapping |
| Data source flexibility | Limited to supported partner apps like ServiceNow or Jira | Any RESTful API that returns JSON |
| Authentication | Handled by the connector provider | You configure OAuth 2.0 manually |
| Refresh schedule control | Fixed by the provider | You choose the interval |
| Certification required | Already certified by Microsoft | You must pass Graph Connector certification for tenant-wide use |
After you add a custom data source, test it by asking Copilot a question that requires data from that source. For example, if you connected a product database, ask What is the current inventory of SKU 12345? If Copilot returns a relevant answer, the connector is working. If not, check the connector logs in the admin center under Copilot > Connectors > Activity log. Use the log to identify failed fetch attempts or schema mismatches.