{"id":14775,"date":"2023-08-03T08:27:51","date_gmt":"2023-08-03T15:27:51","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=14775"},"modified":"2023-10-11T09:52:51","modified_gmt":"2023-10-11T16:52:51","slug":"bring-your-data-into-microsoft-365-with-microsoft-graph-connectors","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/bring-your-data-into-microsoft-365-with-microsoft-graph-connectors\/","title":{"rendered":"Bring your data into Microsoft 365 with Microsoft Graph connectors"},"content":{"rendered":"<p>There\u2019s no question \u2013 productivity is heightened when users find the right answers, people, and content to complete their tasks in the app they\u2019re already working in. Bringing third-party data into Microsoft Graph via Microsoft Graph connectors is an essential part of this experience for users in Microsoft 365 apps \u2013 helping users get relevant results from all your data in the context of the app they search from.<\/p>\n<h2>What is a Microsoft Graph connector?<\/h2>\n<p>Microsoft Graph connectors are the connection between your company data in external data sources and Microsoft Graph, enabling a way to surface external content in various Microsoft 365 experiences.<\/p>\n<p>When you <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/connecting-external-content-manage-items#key-components\">index Microsoft Graph connector items<\/a>, you can specify <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/externalconnectors-externalgroup?view=graph-rest-1.0\">external groups<\/a> with associated permissions to the content in your external data source. Define the access control list (ACL) for each item to specify whether the given roles are granted or denied access to view items in the Microsoft experiences. The ACL is an array of access control entries, each representing an Azure Entra user or group (<a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/active-directory\/fundamentals\/new-name\">formerly Azure Active Directory<\/a>). A third access control entry type Everyone represents all the users in the tenant.<\/p>\n<h2>How do I build a custom Microsoft Graph connector?<\/h2>\n<p>Existing Microsoft Graph connectors may help you connect to many popular services (review the <a href=\"https:\/\/www.microsoft.com\/microsoft-search\/connectors\">connectors gallery<\/a>). You can also apply your own customizations to determine the types of items that are indexed and the capabilities associated with your connector.<\/p>\n<p>You can use the <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/connecting-external-content-connectors-api-overview\">Microsoft Graph connectors API<\/a> to build custom connectors to bring your external data into Microsoft 365 experiences within your organization. To get started, see the following:<\/p>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/connecting-external-content-build-quickstart\">Build your first custom Microsoft Graph connector using APIs<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/custom-connector-sdk-sample-overview\">Build your first custom Microsoft Graph connector using the SDK<\/a><\/li>\n<\/ul>\n<h2>What\u2019s new with Microsoft Graph connectors?<\/h2>\n<h3>Simplified admin experience in the Teams admin center<\/h3>\n<h3><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image.png\"><img decoding=\"async\" class=\"alignnone wp-image-14894 size-full\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image.png\" alt=\"Screenshot example of Simplified Admin Experience in the Teams admin center.\" width=\"1391\" height=\"922\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image.png 1391w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-300x199.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-1024x679.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-768x509.png 768w\" sizes=\"(max-width: 1391px) 100vw, 1391px\" \/><\/a><\/h3>\n<p>To simplify the administrative process, you can now build a Microsoft Graph connector and deploy it in the Teams admin center.<\/p>\n<p>Both Teams admins and Global admins can enable or disable your Microsoft Graph connector in the Teams admin center. Here are the steps to enable the one-click admin experience in Teams:<\/p>\n<ol>\n<li>Update the Teams app manifest<\/li>\n<li>Update Azure Entra (formerly Azure Active Directory) permissions<\/li>\n<li>Handle Microsoft Graph webhook notifications<\/li>\n<li>Create or delete Microsoft Graph connections<\/li>\n<li>Validate the experience by enabling the Microsoft Graph connector in the Teams admin center<\/li>\n<\/ol>\n<h3>Activities endpoint and Activity settings, now generally available<\/h3>\n<p>The <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/externalconnectors-externalitem-addactivities\">activities endpoint<\/a> is now generally available on Microsoft Graph. This endpoint allows you to send recent activities that users performed on items that you ingest into Microsoft Graph. Review a list of supported activity types <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/externalconnectors-externalactivity?view=graph-rest-1.0\">here<\/a>.<\/p>\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/externalconnectors-activitysettings?view=graph-rest-1.0\">Activity settings<\/a> (part of connection settings) which contains <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/externalconnectors-urltoitemresolverbase?view=graph-rest-1.0\">urlToItemResolvers<\/a> is also now generally available. A urlToItemResolver enables the platform to detect when users share URLs from your external content with each other.<\/p>\n<h3>Integration with the Microsoft 365 app<\/h3>\n<h3><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-1.png\"><img decoding=\"async\" class=\"alignnone wp-image-14893 size-full\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-1.png\" alt=\"Screenshot of an example of the Fabrikam Purchase agreement from the Adobe Sign Graph connector appearing under \u2018Quick Access\u2019 within Microsoft 365.\" width=\"1352\" height=\"807\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-1.png 1352w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-1-300x179.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-1-1024x611.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2023\/08\/MicrosoftTeams-image-1-768x458.png 768w\" sizes=\"(max-width: 1352px) 100vw, 1352px\" \/><\/a><\/h3>\n<p>The Microsoft 365 app is home to all your favorite productivity apps and provides a secure, integrated, experience built on Microsoft Graph. With the addition of content from Microsoft Graph connectors, users can now discover third- party content across the Microsoft 365 ecosystem with the Microsoft 365 app.<\/p>\n<p>Users can discover this content by navigating to <a href=\"https:\/\/microsoft365.com\">https:\/\/microsoft365.com<\/a> to see content appear at any time under \u2018Quick Access\u2019 or the \u2018My Content\u2019 section, or as you type in the search box.<\/p>\n<h3>Microsoft 365 Copilot extensibility<\/h3>\n<p>We <a href=\"https:\/\/www.microsoft.com\/en-us\/microsoft-365\/blog\/2023\/05\/23\/empowering-every-developer-with-plugins-for-microsoft-365-copilot\/\">announced<\/a> during Build 2023 that developers could extend Microsoft 365 Copilot by bringing data from third-party data sources into Microsoft Graph, contextualizing relevant and actionable information with the <a href=\"https:\/\/www.microsoft.com\/en-us\/microsoft-365\/blog\/2023\/05\/09\/introducing-the-microsoft-365-copilot-early-access-program-and-new-capabilities-in-copilot\/\">Semantic Index for Copilot<\/a>.<\/p>\n<p>We are excited for this opportunity we have together with developers and partners to shape the future of work with AI.<\/p>\n<h2>Next steps<\/h2>\n<p>There\u2019s no need to wait for Microsoft 365 Copilot to get started with building your custom Microsoft Graph connector to bring your company data into Microsoft 365.<\/p>\n<p>Follow these best practices to make sure that the Microsoft 365 web application and Microsoft 365 Copilot will use content from your connector effectively:<\/p>\n<ul>\n<li>Add a <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/externalconnectors-urltoitemresolverbase?view=graph-rest-1.0\">urlToItemResolver<\/a> in <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/externalconnectors-activitysettings?view=graph-rest-1.0\">activitySettings<\/a> when you <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/externalconnectors-external-post-connections?view=graph-rest-1.0&amp;tabs=http\">create your connection.<\/a> A urlToItemResolver enables the platform to detect when users share URLs from your external content with each other.<\/li>\n<li>Apply <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/connecting-external-content-manage-schema#semantic-labels\">semantic labels.<\/a> Semantic labels will help Microsoft 365 Copilot interpret the semantic meaning of your schema. Apply as many of them to your schema as applicable.<\/li>\n<li>Add <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/externalconnectors-externalitem-addactivities\">user activities<\/a> on your items. For a list of supported activity types, see <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/externalconnectors-&lt;yoastmark class=\">externalactivity.<\/a> Items that have more activities are boosted in importance.<\/li>\n<\/ul>\n<h3>Resources<\/h3>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/connecting-external-content-connectors-overview\">Build a\u00a0Microsoft \u00ad\u00adGraph connector<\/a><\/li>\n<li>Check out the <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/custom-connector-sdk-sample-overview\">Microsoft Graph connector SDK<\/a><\/li>\n<li>Learn how to enable the various <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/connecting-external-content-experiences\">Graph connectors experiences<\/a><\/li>\n<li>Call the <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/externalconnectors-externalitem-addactivities\">Activities endpoint<\/a> and add <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/api\/resources\/externalconnectors-activitysettings?view=graph-rest-1.0\">Activity settings<\/a><\/li>\n<li>Deploy your Graph connector in the Teams admin center with the <a href=\"https:\/\/learn.microsoft.com\/en-us\/graph\/connecting-external-content-deploy-teams\">simplified admin experience<\/a><\/li>\n<li>Sign up for the\u00a0Microsoft 365 Copilot <a href=\"https:\/\/aka.ms\/plugins-dev-waitlist\">developer early access program<\/a><\/li>\n<\/ul>\n<p>Also, review this <a href=\"https:\/\/aka.ms\/Microsoft354AppBlog\">blog post<\/a> for IT administrators about these new Microsoft Graph connectors features.<\/p>\n<p>If you have questions, please post them in our <a href=\"https:\/\/stackoverflow.com\/questions\/tagged\/microsoft-graph-connectors\">Stack Overflow community<\/a>. Visit the\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/microsoft-365\">Microsoft 365 Dev Center<\/a> for more resources.\u00a0\u00a0Follow us on Twitter (<a href=\"https:\/\/twitter.com\/Microsoft365Dev\" target=\"_blank\" rel=\"noopener\">@Microsoft365Dev<\/a>)\u00a0to stay up to date on news and announcements.<\/p>\n<p>Happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft Graph connectors help users get relevant results from all their data in the context of the app they search from.<\/p>\n","protected":false},"author":125068,"featured_media":14891,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[157],"class_list":["post-14775","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-graph","tag-microsoft-graph-connectors"],"acf":[],"blog_post_summary":"<p>Microsoft Graph connectors help users get relevant results from all their data in the context of the app they search from.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/14775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/125068"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=14775"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/14775\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/14891"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=14775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=14775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=14775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}