SharePoint profiles are a convenient and easy way to collect and manage data about your staff. The SharePoint profile comes with some basic default fields (previous companies, skills, etc), but you can also add custom properties in your SharePoint admin settings! For my custom properties, I have “Want to Learn” (to help people with skills connect with the people who want to learn them – uses the same term set as skills), Personality Type (we use StrengthsFinder, but you could do Myers-Briggs or whatever), Certifications, Education Level, Major, and School.
To get the custom properties moved up to the front page of the profile, click the little “up” carrot next to them in the property management page until they’re just below the other front-page properties. Getting them up there is horribly tedious (the page refreshes between each step up) but worth it if you want people to actually use your properties).
The properties themselves isn’t the cool part – it’s what you can do with them. You can map them to refinable strings in your search settings and push them to your user profile list, meaning you can use values as search filters and access the data via OData feed in Power BI.
That means you can filter your staff by skills, certifications, personality types, etc, as well as create visualizations on the data. Now, you can do this with other products, but it is really convenient that it’s basically free and integrated with your intranet. It’s also staff-driven – they maintain their own data.
Here’s what it looks like when you have the properties mapped in your search and used as refiners (see right-hand side), names blurred for privacy:
Now, onto the “how”:
Create the Profile Properties
This is done in the SharePoint administration area of O365 (or central admin in SP2013) under “Manage User Properties.”
As you’re creating your properties, you have a few things to consider.
- I highly recommend using closed managed metadata term sets that have been pre-populated, especially for schools, skills, or any other field that typically has values you want to count or filter by. If you leave it open, you’ll get synonyms, misspellings, etc (I tried this for a while, it went badly). What I do is close it, but add a note to the description asking people to email the administrator distribution group if they would like a value added to the selections.
- Are you going to want to connect to the data with Power BI or Power Query? If yes, select the “replicable” checkbox. “Replicable” tells SharePoint to replicate the info in the property into the user list, which exists at https://sitecollectionurl/_catalogs/users/. Property data may take a really long time to replicate. Last time I did this it was at least two weeks. I believe if you have SharePoint server you can kick off a job that will make it much faster.
- Do you want people to be able to enter multiple values in the field? If yes, you need to set it to multivalue during creation (you can’t change this later, ask me how I know).
Note that in my experience, setting a character limit doesn’t actually work on the managed metadata-linked properties… it seems to set to 3600 characters no matter what you set it to. Whatever.
As you create the property, make sure you check the box that allows users to edit it and the one that makes it display in the profile properties and Edit Details page. I leave the search settings on default, it does need to be indexed.
When you’re done and save your changes, you may notice that your new property displays under “Custom Properties” in the profile, at the very end, by default. This means your property is kinda hidden, and your average user probably won’t be able to find it. Luckily, you can move it up front and center on the main profile page by clicking the up-carrot button. Unluckily, you have to click it many, many times, and it refreshes between each step… it takes forever and is very tedious. I don’t know of a better way to do this.
The property name you created with this will be used in the auto-created crawled property that SharePoint uses for search. I usually fill out the properties in my own profile under the assumption that it won’t get crawled if there is no data in the field, but I don’t know for sure that that’s true. At this point, you have usable profile properties. Additional steps are required for the search customization.
Now, on to part two and three – mapping the properties to refinable strings (for use as search refiners) and/or searchable managed properties and connecting to the data feed using Power BI. See this post as well for a CSV download of 1500 schools in a term set for import into the term store.