Throughout many years in SharePoint university, we are told time and time again about this awesome feature called user profiles and how it can be enhanced to provide rich, personalized experiences for employees in our clients’ organizations. But, is it worth the trouble? Let me tell you a little story about adding custom user profile properties to your tenant.
In the interest of those who skipped class, I’m going to define a few concepts before moving onto the story.
What is a user profile in SharePoint?
In SharePoint, a user profile is a collection of properties that uniquely describe a single user. As a SharePoint Online admin, you can create new properties to track information generally not available out-of-the-box.
For example, certain organizations are spread out across multiple geographical regions. This could impact the way internal communicators broadcast different types of communications. A news piece is one type of communication that regional differences may affect. Most geographically-dispersed organizations understand users in the different regions generally have a preference for consuming content specific to their region, rather than stumbling upon bunches of content from different places.
The backstory to personalizing a SharePoint user experience
Let’s pretend you are SharePoint specialist for a Canadian organization distributed across four regions: Western Canada, Central Canada, Atlantic Canada and Northern Canada.
The head of communications gets in touch with you and says:
“Hey, I noticed you have some spare time this week so I was wondering if you could implement some kind of tool in our intranet for publishing news content that can be targeted to a particular region. Also, while you are there, could we add a refiner to our people search so we can filter users based on region?”
You roll-up your sleeves and tell him/her:
“Absolutely, I can make that work for you!”
Yet you think and think and come up with the conclusion that you need to create a custom user profile property to store this kind of information for each user. With this data in place you would be able target news content to a particular region and add a new refiner to your people search, you think.
Bumps along the way to creating a personalized experience
User profiles have definitely helped organizations become more social and enhanced the overall user experience through things like profile pages, people searching, expertise search and more. But, we are living in a different world now and the tools organizations have access to are evolving pretty fast. Let’s try to understand what has changed.
Not all active directory attributes make it to SharePoint Online
You set-up DirSync on your client's infrastructure to bring your information from Active Directory up to the cloud and the first thing you notice is you are missing a bunch of properties. Why?
DirSync synchronizes your Active Directory (AD) information up into Azure Active Directory (AAD). After that, there is a replication that goes from AAD into the SharePoint/Office 365 service; this only brings a subset of the overall AD properties into SharePoint and it can't be customized!
You will need to build a custom solution to fill-in this gap. Dust off the best PowerShell book in your collection and create a job that will update user profile properties based on Azure Active Directory (or an external line of business application, whatever the case may be).
Full crawls on user profiles are in danger of extinction
Next, you jump into your SharePoint admin center and create a custom user profile property to track region information and you figure something is not right. So you try a few things:
- You use an out-of-the-box refinable string and map it to your custom crawled property. You wait, wait... and wait some more; no results
- You create a custom managed property and map it to your custom crawled property. You wait, wait... and wait some more; no results
- Out of desperation, you edit an existing managed property to remove the existing mapping and add a new one to your custom crawled property. You wait, wait... and wait some more; no results!
Yes, you have now reached the point where you need to get in touch with Microsoft support and here is, if you are lucky, what you are going to find out:
- First of all, there are no full-crawls (that run on user profiles) scheduled in SharePoint Online. Ironically, whenever you create custom user profile properties, a full crawl is required.
- You probably need to open a ticket with Microsoft support every time you add a new property so they can manually force a full crawl on your tenant. This could take a couple of escalations so be patient and be nice to the people you talk to through-out this process.
Now here is where it gets interesting, before you call and speak with Microsoft about a full crawl, you will need to do the following:
- Create a custom managed property and map it to your custom crawled property
- Select a RefinableString of your liking and map it to your custom crawled property
- Ensure your crawled property mappings are set to both managed properties: the one you created in step one and the RefinableString you chose in step two
With this in place, you can now proceed to open a ticket with Microsoft and kindly ask them to manually execute a full crawl in your environment so your custom user profile properties are indexed properly, which will finally give you the ability to search and refine by such properties.
What we have learned
All-in-all it seems like an okay process for some but believe me, this can be quite painful during development when you have tight timelines. It can be very time consuming and frustrating moving through the different phases to get regional profiles and personalization working.
Is it worth the trouble? Whenever planning on personalizing experiences in SharePoint, take some extra time to think this through and put some questions back on your stakeholders’ plate to really understand the requirements. In the cloud world, things are evolving so fast you never know when you could come across a toolset that can deliver the value you are looking for with a lower effort than the alternatives.
The bottom line is that personalized experiences have great potential to benefit users in a lot of organizations, but executing this SharePoint feature can come with a cost that your stakeholders need to consider before moving forward.