{"id":24647,"date":"2025-09-01T07:08:23","date_gmt":"2025-09-01T14:08:23","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=24647"},"modified":"2025-09-01T07:08:23","modified_gmt":"2025-09-01T14:08:23","slug":"enriching-microsoft-365-profiles-with-microsoft-365-copilot-connectors-for-people-data-public-preview","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/enriching-microsoft-365-profiles-with-microsoft-365-copilot-connectors-for-people-data-public-preview\/","title":{"rendered":"Enriching Microsoft 365 profiles with Microsoft 365 Copilot connectors for people data (public preview)"},"content":{"rendered":"<p>In today\u2019s workplace,\u202f<strong>employee data lives across multiple systems \u2013 HR databases, talent platforms, directories \u2013 making it hard to get a complete view of a person<\/strong>.\u202f Microsoft 365 Copilot connectors for people data (now in public preview) tackle this challenge by bringing external people data into Microsoft 365. A Microsoft 365 Copilot connector (formerly known as Graph connector) for people data is\u202fessentially a\u202fMicrosoft Copilot connector,\u202fthat\u202f<strong>enriches user profiles with information from outside sources<\/strong>. Once connected, this data lights up across Microsoft 365:\u202fprofile cards, people search, and even Copilot chats become richer with unified, up-to-date info about each person. The bottom line for developers and organizations is\u202fa single, consistent \u201csource of truth\u201d for people information\u202fwithin Microsoft 365 \u2013 without having to manually reconcile multiple systems.<\/p>\n<p>Why get excited about this? Whether custom-built or prebuilt, people connectors\u202f<strong>unlock a 360\u00b0 view of each person right within the tools you use every day<\/strong>.\u202fThink about opening a Teams chat or Outlook and instantly seeing a colleague\u2019s org details, skills, and past projects \u2013 without searching multiple systems. Or asking Copilot\u202f\u201c<em>Who on our team has experience with Azure deployments?<\/em>\u201d\u202fand getting a spot-on answer because those skills were indexed from your external HR database. People connectors turn previously siloed information into actionable knowledge in the flow of work.\u202fIt\u2019s\u202fa stride toward breaking down data silos and empowering both humans and AI to collaborate more effectively using a shared, enriched profile of every individual.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/09\/image2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-24648\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/09\/image2.png\" alt=\"Screenshot of Microsoft 365 Copilot responding with information about a user\" width=\"1039\" height=\"693\" srcset=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/09\/image2.png 1039w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/09\/image2-300x200.png 300w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/09\/image2-1024x683.png 1024w, https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2025\/09\/image2-768x512.png 768w\" sizes=\"(max-width: 1039px) 100vw, 1039px\" \/><\/a><\/p>\n<p>People connectors can be used to ingest rich and enterprise contextual data about the employees, to enrich the existing dataset or extend with custom properties. The illustration above shows Microsoft 365 Copilot chat finding certificates held by a person, ingested via a custom connector from an external data source.<\/p>\n<h2>How people connectors work (developer overview)<\/h2>\n<p>From a developer\u2019s perspective,\u202fbuilding a people connector is\u202flike\u202f<a href=\"https:\/\/learn.microsoft.com\/microsoft-365-copilot\/extensibility\/build-your-first-connector\">building any Copilot connector<\/a>, with a couple of extra steps to tie into the Microsoft 365 profile. You use the Microsoft Graph External Connections API to ingest data, then register it as a profile data source.\u202fHere\u2019s\u202fan overview of the process to set up a custom people connector:<\/p>\n<ol>\n<li><strong>Create a Copilot connector<\/strong> \u202f\u2013 First, use the Graph API to create a <a href=\"https:\/\/learn.microsoft.com\/graph\/api\/externalconnectors-external-post-connections?view=graph-rest-beta&amp;tabs=http\">new\u202f<em>external connection<\/em><\/a>. This defines your connector in Microsoft 365 and gives you a unique connection ID. For example, you might create a connection called\u202f&#8221;<em>ContosoHR<\/em>&#8220;\u202fthat will\u202frepresent\u202fyour HR system\u2019s people data.\u202fYou\u2019ll\u202falso grant the\u202fappropriate Graph\u202fpermissions (as documented in the <a href=\"https:\/\/aka.ms\/peopleconnectors\/sample\">code sample<\/a>) to your app or script that will manage the connector.<\/li>\n<li><strong>Define the schema<\/strong> \u2013 Next, create <a href=\"https:\/\/learn.microsoft.com\/graph\/api\/externalconnectors-externalconnection-patch-schema?view=graph-rest-beta&amp;tabs=http\">the schema<\/a> for your people data items.\u202fPeople connectors require a <a href=\"https:\/\/aka.ms\/peopleconnectors\/build\">specific schema<\/a>, which includes standard profile fields such as\u202faddresses,\u202femails,\u202fpositions,\u202fskills, etc.\u202fOne field is mandatory: \u201caccounts\u201d.\u202fThis field links the external item to a Microsoft Entra ID (Azure AD) user by storing that user\u2019s principal name and object ID. In practice,\u202fyou\u2019ll\u202fformat the\u202faccounts\u202fproperty as a small JSON blob\u202fcontaining\u202fthe user\u2019s UPN (e.g.\u202f&#8221;<em>adelev@contoso.com<\/em>&#8220;) and their Entra ID object GUID. This is crucial \u2013 if an ingested item\u2019s\u202faccounts\u202finfo\u202fdoesn\u2019t\u202fmatch a real user in your tenant, Microsoft Graph will ignore that item. You can also include other supported profile properties (like\u202f<em>skills<\/em>\u202for\u202f<em>projects<\/em>) in your schema to enrich the user, as well as custom properties to fit your connection needs.<\/li>\n<li><strong>Ingest people data as items<\/strong>\u202f\u2013 With the schema in place,\u202fyou push your external people records into Microsoft Graph\u202fas items in the connection.\u202fThis is done via the <a href=\"https:\/\/learn.microsoft.com\/graph\/api\/resources\/externalconnectors-externalitem?view=graph-rest-beta\">external item APIs<\/a>. Each person from your external system becomes an\u202f<em>externalItem<\/em>\u202fin the connection, with properties filled out according to your schema. For example, you might ingest an item for Adele Vance with properties like\u202fpositions\u202f(job title and department),<em>\u202fskills\u202f<\/em>(from your talent system), etc., plus the required\u202faccounts\u202fproperty tying Adele to her Entra ID account.\u202fIt\u2019s\u202fimportant to also\u202fset an \u201callow everyone\u201d access control list (ACL) on each item\u202fso that the data is visible to your whole organization\u2019s users \u2013 profile data brought in via people connectors is\u202forganizational info\u202fby nature.\u202fThe people connector <a href=\"https:\/\/aka.ms\/peopleconnectors\/sample\">sample on GitHub<\/a>\u202fdemonstrates\u202fthis ingestion process using the Graph SDK to create items.<\/li>\n<li><strong>Register the connection as a profile source<\/strong>\u202f\u2013 After ingestion, the\u202ffinal step\u202fis to\u202ftell Microsoft 365 to use this connection\u2019s data in user profiles. Using the Graph\u202fProfile API, you register your connection as a new\u202f<a href=\"https:\/\/learn.microsoft.com\/graph\/api\/peopleadminsettings-post-profilesources?view=graph-rest-beta\"><em>profileSource<\/em><\/a>\u202ffor people. This involves providing the connection\u2019s ID and a display name or URL (often pointing to the external system for reference). You then update the tenant\u2019s <a href=\"https:\/\/aka.ms\/peopleconnectors\/precedence\">profile source precedence<\/a> configuration to include this new source \u2013 effectively\u202fprioritizing how profile data is merged. For instance, you might add your connector as the top source so that its data overrides conflicting fields from Entra ID. Once this is done, Microsoft 365 will merge the external data into each user\u2019s profile. In the example of Adele, her profile card would now show\u202fadditional\u202finfo from the HR system (with an attribution\u202findicating\u202fit came from, say, \u201cContoso HR Connector\u201d).\u202fWithin about 24-48 hours, the connected data becomes visible in profile cards and people search results, and available to Copilot for answering questions about people.<\/li>\n<\/ol>\n<p>That\u2019s\u202fit \u2013\u202fyou\u2019ve\u202fnow extended Microsoft 365 with your own people data! The heavy lifting (security, indexing, integration into apps) is handled by Microsoft Graph and Copilot once the connector is in place.\u202f<strong>Do note that this is a preview<\/strong>; we expect to fine tune the schema or behaviors before general release, so\u202fit\u2019s\u202fwise to keep an eye on the documentation for any updates.<\/p>\n<h2>First-party connectors and broader potential<\/h2>\n<p>What if you\u202fdon\u2019t\u202fhave the time or resources to build a custom connector? \u202f<strong>Microsoft has you covered with prebuilt people connectors<\/strong>\u202ffor popular HR systems.\u202fConnectors for platforms such as <a href=\"https:\/\/aka.ms\/peopleconnectors\/bamboohr\">BambooHR<\/a> are already available in preview, developed by Microsoft. An admin can configure these out-of-the-box connectors through the Microsoft 365 admin center \u2013 no coding required \u2013 to start pulling in employee profiles from those systems.\u202fFor example, the BambooHR connector can import your organization\u2019s employee info directly into Microsoft 365 profiles, with default mappings provided. This means even non-developers can quickly enrich Microsoft 365 with critical people data by flipping a few switches.<\/p>\n<h2>Getting started<\/h2>\n<p>If\u202fyou\u2019re\u202fready to experiment with people connectors, here are some next steps:<\/p>\n<ul>\n<li><strong>Read the documentation<\/strong>:\u202fStart with the official guide,\u202f<a href=\"https:\/\/learn.microsoft.com\/en-us\/microsoft-365-copilot\/extensibility\/build-connectors-with-people-data\">https:\/\/learn.microsoft.com\/en-us\/microsoft-365-copilot\/extensibility\/build-connectors-with-people-data<\/a>, which covers schema requirements and profile source setup in detail.\u202fIt\u2019s\u202fthe source of truth for the latest requirements (and will be updated as the preview evolves).<\/li>\n<li><strong>Explore the sample project<\/strong>:\u202fCheck out the\u202f<a href=\"https:\/\/github.com\/microsoftgraph\/msgraph-people-connector-sample-dotnet\">people connector sample on GitHub<\/a>. This .NET Core sample app walks through creating a connection, defining the schema, and ingesting sample people data using Graph APIs.\u202fIt\u2019s\u202fa great way\u202fto see a connector in action and jump-start your own implementation.<\/li>\n<li><strong>Try a prebuilt connector<\/strong>:\u202fIf your organization uses <a href=\"https:\/\/aka.ms\/peopleconnectors\/bamboohr\">BambooHR<\/a>, you can try the preview connectors for those systems. The setup involves an admin configuring the connector in the Microsoft 365 admin center and authorizing access to the HR system. Once done, Microsoft 365 will automatically start\u202fsyncing\u202fprofiles.<\/li>\n<li><strong>Give feedback<\/strong>:\u202fAs this feature is in public preview, Microsoft is actively listening to customer feedback. If you\u202fencounter\u202fissues or have suggestions,\u202fdon\u2019t\u202fhesitate to reach out to your Microsoft representative. Your input will help shape people connectors as they head toward general availability.<\/li>\n<\/ul>\n<p><strong>In summary, people connectors\u202fopen\u202fa new frontier for integrating people-centric data into Microsoft 365<\/strong>.\u202fFor developers,\u202fit\u2019s\u202fan opportunity to enrich the graph with your organization\u2019s unique employee information. For end-users and decision-makers, it means more informed interactions and smarter AI\u202fassistance.\u202fWe\u2019re\u202fexcited to see how you use people connectors to make your organization\u2019s human capital more connected and accessible, powering the next generation of people experiences in Microsoft 365. Happy connecting!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Enrich Microsoft 365 profiles with Microsoft 365 Copilot connectors for people data<\/p>\n","protected":false},"author":69080,"featured_media":24649,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[251],"class_list":["post-24647","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365-developer","tag-microsoft-365-copilot"],"acf":[],"blog_post_summary":"<p>Enrich Microsoft 365 profiles with Microsoft 365 Copilot connectors for people data<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/24647","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\/69080"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=24647"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/24647\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/24649"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=24647"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=24647"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=24647"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}