Microsoft’s Effort to Develop a Broad People Platform
Build Out of a Complete Person Platform within Microsoft 365
After publishing the article about customizing the Microsoft 365 profile card through the Microsoft 365 admin center, I started to think about the work Microsoft is doing on the “people platform,” an effort to unify the different strands of people-related data that exist inside Microsoft 365, such as Entra ID, mailbox properties, skills defined for SharePoint Online users (now the people skills solution), people settings like name pronunciation and personal pronouns, and so on. Drawing together disparate sources of information to create a unified view of a person (tenant user, guest, or contact) seems like a good idea, especially if AI tools like Copilot use people information to enhance responses to user prompts.
Exploiting the Graph to Discover More About the People Platform
I’ve often argued that acquiring a knowledge of how the Microsoft Graph works and how to interact with Graph APIs is a good way to gain an insight into how Microsoft 365 works. In this case, the profile resource type is very revealing. A lot of the work in this area is still in beta and is therefore prone to change, but you can see where Microsoft is heading in the description of the Microsoft 365 person experience (described for a multi-geo tenant, but still valid):
“The Microsoft 365 Person encompasses the complete set of properties, attributes and associated people contacts that are representative of a user in the Microsoft 365 tenant.”
The sources used to build the complete picture of a person include:
- Basic administrative information about people stored in Entra ID, including information synchronized from on-premises Active Directory. This information includes the display name, employee identification number, employee type, physical location, and so on. It also includes the person’s photo.
- Data to build out the one-dimensional picture of a user as found in Entra ID by populating information about the person’s jobs (work positions or roles), skills, languages, education (including certifications), and so on. This information can be added programmatically through the Graph APIs or imported from an external system using a Copilot connector for people data.
Adding a Work Position
To demonstrate what kind of information the people platform uses to build out a complete picture about a user, I spent a little time playing with the Microsoft Graph PowerShell SDK cmdlets that add work position information to the people platform. A work position is a job or role undertaken by a person within a business. The role might be in the past or current, so a complete work history within an organization can be constructed from the work position data. Like the rest of the platform, these cmdlets are based on beta code, so some stuff doesn’t work. Nevertheless, the information defined for a work position is a good example of what Microsoft is doing.
This code adds a new work position, marking the role as current (isCurrent is true). The allowedAudiences property is set to organization, meaning that the information is available within the organization (it could also be set to “me,” meaning that it’s personal to the user). After building the properties to describe the role, running the New-MgBetaUserProfilePosition cmdlet adds the work position record to the people platform. This is equivalent to posting a request to the https://graph.microsoft.com/beta/users/{userId}/profile/positions endpoint.
$AddDate = ([datetime]::UtcNow.ToString("s")) + "Z" [string]$AddDate = '2025-09-04T22:18:03.8608268Z' [string]$endDate = '2039-09-04T22:18:03.8608268Z' $Parameters = @{} $RoleDetail = @{} $RoleDetail.Add("jobTitle", "Senior Technical Manager") $RoleDetail.Add("role", "Technology Consulting") $RoleDetail.Add("employeeId", "150847") $RoleDetail.Add("employeeType", "Permanent") $RoleDetail.Add("description", "Responsible for the management of a small team of technical consultants covering the NYC area") $RoleDetail.Add("level", "MGR-02") $RoleDetail.Add("startMonthYear",$AddDate) $RoleDetail.Add("endMonthYear", $EndDate) $Company = @{} $Company.Add("displayName", "Office 365 for IT Pros") $Company.Add("department", "Consulting") $Company.Add("officeLocation", "New York City") $Company.Add("costCenter", "100014") $Company.Add("division", "Professional Services") $Company.Add("webUrl", "https://office365itpros.com/") $Address = @{} $Address.add("type", "business") $Address.add("street", "170 Avenue of the Americas") $Address.add("city", "New York City, New York") $Address.add("countryOrRegion", "United States") $Address.add("postalCode", "10036") $Company.Add("address", $address) $RoleDetail.Add("company", $Company) $Parameters.Add("detail", $RoleDetail) $Parameters.Add("isCurrent", "true") $Parameters.Add("allowedAudiences","organization") $Parameters.Add("createdBy", "Tony Redmond") New-MgBetaUserProfilePosition -UserId $User.Id -BodyParameter $Parameters
After positions are added, the Get-MgBetaUserProfilePosition cmdlet can retrieve an array of all the work positions known for the user:
[array]$Positions = Get-MgBetaUserProfilePosition -UserId $User.Id
The information written by New-MgBetaUserProfilePosition is available in several composite properties, like Detail (Figure 1). It’s easy to see how this information might surface on a form of the current profile card.

You’ll always find a position registered for a user because the people platform synchronizes details from Entra ID to create a default position from information like a user’s job title held in the directory.
A Complex Undertaking
It’s obvious that building the people platform is a complex undertaking. Anything to do with personal information is sensitive. Personal privacy must be protected. I am sure that employee unions and worker councils will take a keen interest in how Microsoft 365 tenants decide to populate the Graph with people information and then, more importantly, how that data surfaces in places like the Microsoft 365 profile card.
It’s often said that we live in interesting times. Things might just get more interesting as the people platform develops. It’s certainly something that anyone involved in identities and user management should keep an eye on.
Insight like this doesn’t come easily. You’ve got to know the technology and understand how to look behind the scenes. Benefit from the knowledge and experience of the Office 365 for IT Pros team by subscribing to the best eBook covering Office 365 and the wider Microsoft 365 ecosystem.