In this post I will go through the steps of creating a custom user profile attribute that is searchable and shows on the user profile in Delve. It’s not very hard but involves quite a few steps to keep track of. This is written for SharePoint Online, but the basics apply to SharePoint 2013/2016/2019 as well.
Add a new User Profile Property
Go to SharePoint Admin > User Profiles > Manage Users Properties then click on New Property. Configure the basic settings such as names and type. (Remember that you can’t changes the type after it has been created)
To make the property show up on Delve profiles, ensure the following settings:
- Default Privacy Setting: Everyone
- Show in the Profile Properties section of the user’s profile page: Checked
- Show on the Edit Details page: Checked
- Indexed: Checked
Ensure the field is crawled
Now we need to wait until the property has been crawled by search. This will not happen unless we fill out the field on at least one user profiles. So start by editing a profile or two.
Then go to SharePoint Admin > Search > Manage Search Schema > Crawled Properties and wait until your new property shows up. Have patience as this may take a little while (anything from 15 minutes to four hours in my experience).
Map to a managed property
Go to SharePoint Admin > Search > Manage Search Schema > Manage Properties. Create a new Managed Properties with the following settings:
- Type: Text
- Searchable: Checked
- Queryable: Checked
- Retrievable: Checked
- Click Advanced Searchable Settings and select PeopleIdx in the popup window
- Click the blue button “Add a Mapping” and find the crawled property we just created
Now we wait again to let search crawl pick up the new managed property. This may take quite a while, and you never know when it happens in SharePoint Online. I typically leave it during the night and check in the morning…
If you have done everything correct, you will now have a custom user property that you can freely search for all over Office 365 to find people, and that you can view on peoples Delve profiles!
Notes & tips
- If you have business requirements to only allow a limited set of values to enter into the property, you can create a term set in the Term Store with allowed values. Then, when creating the new property, select string as type and tick the “Configure a Term Set to be user for this value” checkbox.
- The properties you create are visible in Delve under “Additional Information” at the bottom of user’s profile pages. If you allow users to edit the properties themselves, they can do so on the SharePoint Profile page. To find it, go to https://tenant-my.sharepoint.com/_layouts/15/editprofile.aspx
- Managed properties that you create yourself in SharePoint Online can not be sorted or refined in search results. If you need to do this, you can add another managed property, but instead of creating it yourself use one of the predefined RefinableString properties.
- To easily update properties in multiple user profiles, check out the Bulk User Profile Update Api for SharePoint Online.
- There is no way in SharePoint Online to control when search will crawl user properties. This script may help ensuring that your user profiles are re-indexed: https://github.com/wobba/SPO-Trigger-Reindex