Retro: Drawing a Target on Your Users with SharePoint

[I’m reposting a handful of articles which are no longer available on the Internet as blog posts so that they’re not lost forever.]

Originally published on 6/10/2008

One of the challenges with most portals, including Intranets is maintaining relevancy of the information that the user sees and interacts with. You’ll hear a ton about search relevancy but relatively little is said about what is displayed on the home page. Some organizations approach the home pages as simple landing pages, a place for links to other places. Others try to serve up relevant content but all too often there are substantial portions of a corporate intranet home page that just aren’t relevant. If you’re in Indianapolis, how important is the company picnic taking place in New York?

In our information overload culture we’ve gotten adept at blocking out advertising and other non-content items on a page and still ad blocking software is in widespread use. We can filter information ourselves but the more we can filter information for users the better they like it. The more focused we can make our content the better the user experience. Luckily SharePoint has several ways that we can deliver customized content to users and groups.

One Size Fits All

Perhaps in some things one size does fit all. Golf balls are regulation size so in that sense one size does fit all. However, in most things we want to be unique, expressive, and interesting. If you don’t believe me walk into mall and notice the wide array of mobile phone covers that are available. There’s enough face plates that you can have any color that you want. That’s not all. Your mobile phone should be unique like you so there’s holographic screen protectors, and other kinds of “bling bling” to make it unique.

While I can’t advocate putting “bling bling” on the home page of your portal, one cannot ignore that individuals are just that – individual. They need different information at different times and for different reasons. Part of developing a portal is focusing on development of a solution that adapts to the major groups of users and tries to meet their specific needs.

Help Your SharePoint User

In SharePoint there are three basic ways of accomplishing this as discussed in the following sections.

In-Part Personalization

Perhaps the easiest way to manage personalization is to have the web parts that you include on your page manage the personalization themselves. Whether it’s a web part for the weather that asks for your ZIP code and remembers it from visit-to-visit or a web part that remembers your search preferences, web parts in SharePoint can have personalized information that allows users to personalize their unique preferences – if the web parts support it.

Although the easiest to manage In-part Personalization does have the disadvantage that the web part itself must be coded to support the personalization – it’s not something that you can add in later. The out of box personalization support in SharePoint means that support for personalization in the web parts that you develop is transparent. Literally, there’s only one attribute that changes to make a property of a web part work for user level personalization.

In part personalization is great for web parts that you create – however, it simply doesn’t work for some third party solutions and some of the out of box web parts. It also can negatively impact performance if there are a large number of users customizing a larger number of web parts on a page. As a final note, this is truly personal personalization, meaning that it must be done on a user-by-user basis and it must be done by the user. That means most users won’t take advantage of the functionality unless the web part makes this process very easy.

Peacock of Parts

A somewhat more challenging approach, but one that offers the ability to layer on personalization no matter who wrote the web part or when they wrote it, is the targeting engine in SharePoint. Targeting in SharePoint is best known through the MOSS audiences implementation. Audiences are compiled groups of users to which web parts and information can be targeted to. The implementation of audiences is on top of a public interface called IRuntimeFilter2. Without going into too much detail, it allows you to add additional editing controls in the editor zone and supports the events necessary to make sure that these extra editing controls receive their data back when the properties are saved. They can then be validated.

Once targeting is enabled (through having a value in the correct property) the IRuntimeFilter interface (which is a part of the IRuntimeFilter2 interface) is called to determine whether the web part should be displayed on the page.

The net effect of the personalization framework is that SharePoint can show or hide web parts to individual users or groups of users. This means that you can have a web part that is only displayed to operations team members (even if the rest of the organization has access to the data). Similarly you can surface or hide information based on the time of day, or any other criteria that can be tested.

This is a great strategy when you have a way that you want to be able to filter all of the web parts in the system. So showing different things based on location, time of day, or other criteria will work great. If you need to change what information is displayed in the web part – such as the weather for Carmel, IN vs. Daytona Beach, FL – this isn’t the strategy for you. Although you can show or hide a ton of web parts – one for each city. It’s really not practical.

Pages for People

Another, lower tech solution, which requires neither web part support for personalization nor the SharePoint targeting infrastructure is to have each user have their own page. With MOSS My Sites are available which do essentially this. Each user can have their own personal portal starting page. However, the challenge with this is that changes are hard to implement across the system. If each user has their own page just adding a new web part to the portal means adding one web part for each of your users – if you have 10,000 users you’ve just turned a simple change into 10,000 operations.

Still, the greatest flexibility is offered by having each user have their own page so that they have the flexibility to configure the page exactly as they would like – without concern for impacting other users.

Drawing the Target

In reality there may not be one answer to how you want to personalize your web part pages. In order to produce consistently relevant content to users you may need a variety of strategies. You might create different portal sites for each of the different departments so that users have the option to see content relevant to their department, implement My Sites for a personal view, and customize the home page so that the current weather conditions and predictions for the user’s current location are shown. There isn’t a single right answer to getting the right content to users at the right time.

Having a set of tools that allow you to filter and direct the information that users see is essential to driving relevance and therefore driving engagement in your portal. Go target your users.