The Highlighted Content web part is modern SharePoint’s answer to the classic Content Search and Content Query Web Parts. New features will be coming to this web part based on what we learned at Ignite 2017, but there are some great solutions you can build today.
Highlighted Content — a great tool for helpful solutions
Highlighted Content is available only on modern SharePoint pages. The basic configuration available with the web part allows you to roll up content in an individual site, a document library on a site, or across an entire tenant based primarily on the type of content: News, Documents, Pages, Video, Images, etc.
It also allows you to filter content based on simple properties, such as words in the tile, content or items recently added, or more complex terms like managed properties such as the Filename or Modified date. I’ve seen some folks complaining about things that you can’t yet do, but I prefer to focus on what you can do right now with this great web part. Here are a few solutions that I’ve been finding quite useful using this web part.
Summary of news articles by “Type”
There is no really easy way yet to add metadata to modern pages. Yes, that’s inconvenient, but that doesn’t mean it’s impossible to build helpful solutions that use metadata. As an example, we have several scenarios on one of my projects where site owners want to create a page that “features” different types of news articles, for example, People Spotlight (articles that feature a story about a person on the team) or Tech Talks (articles that feature a tip or advice about a product or service). Here are a few ways we have implemented this outcome:
- Naming Conventions. Create a naming convention for News articles. Both the Title and Filename for pages are metadata and can be used creatively in solutions. In our case, we use a Title naming convention as metadata. For example, we use People Spotlight as the first two words in the title of each article spotlighting a person on the team. We create the articles just like any other news article, but to ensure that the People Spotlight articles don’t get lost in the shuffle of news, we create a page called Spotlight on People where we roll up People Spotlight articles.
This simple approach requires very little training other than to teach news authors to start articles for the topic with a consistent naming convention. We may add some text at the top of the summary page to provide some context, and then we add a Highlighted Content web part with the following filters:
- Source: This site collection
- Page Type: News
- Filter: Title contains People Spotlight.
- View: Cards (usually I pick 8 or 16)
- Mapping Custom Metadata. If you don’t want to use a naming convention, you can manually add custom metadata to the Site Pages library and use that metadata in Highlighted Content. This approach is more flexible, but it is a bit harder to implement.
First, because there is no direct way right now to add custom metadata to pages, content authors have to first create the page and then go to Site Pages to add the custom metadata (by using Quick Edit).
Second, to leverage custom metadata in Highlighted Content, you have to map the custom property to an available RefinableString in the search schema – and then wait for your index to run to make it possible to use the metadata in Highlighted Content.
This multi-step set up process can be accomplished only by Site Collection administrators, but once it is set up, the custom metadata can be used in the filter. I often use this approach when I create Governance and Training delivery sites, and you can learn exactly how to set this up in this slide deck.
Rollup of documents by type
Highlighted Content can also be used to roll up documents based on an existing property (for example, a common term in the Title) or by custom properties, as in the example for News. If you use the same property in multiple site collections, you can map the property in the search schema at the tenant level to create some interesting solutions to dynamically connect content across site collections. It will take some planning, but it will allow you to accomplish many of the “roll up” scenarios from classic sites on modern Communication or Team Sites — even in the new “flat” world.
Limitations of Highlighted Content
No ability to customize what is displayed — yet: The enhancement that I am most looking forward to when it comes to Highlighted Content is being able to control which attributes are displayed in the display cards. When the web part first came out, we were able to customize the cards for a hot minute – and then that capability was removed. I’d really love to be able to choose whether I display the Title of the asset with or without the name of the person who last updated it and the date it was last updated.
No ability to write a complex filter: Today, each of the filters you add to Highlighted Content is an OR operator. This is OK some of the time, but not in all cases. I’d like to be able to add an AND as well as an OR as well as a combination of filters to provide more flexible combinations to showcase content.
Doesn’t work when Office 365 Groups are used to provide security access to a site: Let’s say you have a private Communication Site called Sales & Marketing where you are publishing content for just the Sales team and the Marketing teams. Each team has their own Office 365 Group – one for Sales and one for Marketing. Membership in the Groups are maintained by the leaders of the two teams. You can use Highlighted Contents on each of the team sites, and everything will work. You will have a problem with this web part on the Sales & Marketing site if permissions to access the site is managed by adding the Sales Team and the Marketing Team Groups to any of the permission groups on the Sales & Marketing site.
In this scenario, Highlighted Content will not return any content for group members. In simplest terms, users must have access to a site using Highlighted Content by being members of an Active Directory group such as the Everyone or Everyone except external users group OR they need to be an individually named user on the site to leverage search-based web parts like Highlighted Content. This is a feature of Office 365 that we ran across on one of my projects after reporting it as a bug and spending hours and hours testing with a fantastic Microsoft support technician, Josh Schonert. This feature has not yet resulted in any show-stopper issues for us, but it created some baffling testing situations until we figured out what was going on.
Here’s another way this might manifest as a problem for you — and how we discovered the issue. We were using Highlighted Content to roll up news articles on a Communication Site. As I was configuring the site, I added our core intranet team to the site using the Office 365 Group for our team so that I could get a colleague to test the site for me. Highlighted Content worked great for me — but no one on my team could see the same results I saw during testing.
When I added the people as individual users in the Visitors group and then waited for the search index to run, those individuals saw results in Highlighted Content. But no one in the Group saw results — no matter how long we waited for content to be indexed. When we “launched” the site to the entire organization by adding Everyone except external users to the Site Visitors group, all of the Highlighted Content web parts worked for everyone.
If you want to understand why this happens — so you can plan your sites and testing accordingly, here's what Josh was able to figure out for us. The description is a bit technica,l but the important outcome is that this is something users of this web part should know about:
- Highlighted Content Web Part and UseRemoteAPI. Highlighted Content uses the search data provider in sp-component-utilities. The search data provider posts the search request to _api/search, which ends up being posted to the root site. If the web part resides on a site other than the root site collection and the user did not have the UseRemoteAPI permission on the root site, this used to not work. However, a little over a year ago an escalation was brought to the product team that addressed this and now the web part will run the query based on the site it is on instead of the root site.
The other piece is that the UseRemoteAPI permission has to be applied to all items within the index so once the permission is applied to the site, it will be applied during the crawls on the site and will update the permission of the user. (Don’t ask me to explain this — I’m quoting directly from Josh and this entire paragraph is pretty much Greek to me! But it might mean something to you!)
- Office 365 Groups and Permissions. More recently, there has been some discussion regarding Office 365 Groups (Dynamic Groups) being added to SharePoint Groups (or directly) for applying permissions on those sites. Office 365 Groups are limited in their search function to process queries. In order for Dynamic Groups to be able to use the search function, a switch called EnableDynamicGroups must be enabled. SharePoint Sites (not created through Office 365 Groups) do not have this enabled by default, which means queries made by the search components do not work when permissions are applied by using Office 365 Groups.
Microsoft received requests asking for a change here but the messaging from the product team has been as follows:
“We don't have any plans for extending the use of EnableDynamicGroups. The reason we did not simply enable this everywhere is the performance implication. To get decent performance, a warm-up of the group memberships in federated directory is necessary, but doing this warm-up when users log in (or their token is refreshed) turned out to run AAD into the ground. Using EnableDynamicGroups by itself doesn't have this effect, but if there's no warm-up and an AAD round trip or two is needed to fetch the modern group memberships, the query will have a latency penalty that's typically in the order of hundreds of milliseconds.”
Here’s the bottom line: Make sure you are using Highlighted Content only on sites where users get access directly on the site (for example, on a modern Team Site) or on a Communication Site that is open to the entire organization.