This post covers one of those back-to-basics things about SharePoint Information Architecture everyone could benefit from knowing about. This post has been sitting in my Drafts folder for over 2 years. That’s right… 2 years.
I hesitated to post it at the time because I thought it was too basic, but then just last week, I was wondering why my term values weren’t updating after I changed a term in the term store… I had forgotten what I had written about in this post! I decided to resurrect the post, run thru the process again and include the Modern library experience to make sure the information in the post is up-to-date. I can only assume there are 1 or 2 of you out there who, like me, could benefit from a quick reminder of how this works. 🙂
I’m talking about what happens behind the scenes in SharePoint Online when you change a term’s value within a term set from the tenant-level term store that you’ve used on a bunch of sites across your tenant.
I encourage the use of the tenant-level term store to provide consistency across a tenant for corporate-wide terms.
Ensure all Term Group Administrators and Contributors (often from the business) understand the behavior I describe in this post so they don’t think they’ve done something wrong.
For a detailed explanation of when to use a Managed Metadata column associated to a Term set, refer to my previous post Choice, Lookup or Managed Metadata?
If you’ve ever had to update managed terms in the tenant-level term store, you’ll notice term values are not updated immediately in site collections using the term. This is because there’s a hidden list called TaxonomyHiddenList on each site collection in SharePoint that caches the terms used in that site collection. Content on the site references this local list to display the values associated with the underlying term IDs. As any cache requires, it periodically needs to be updated to reflect the latest content.
The hidden list can be found on any site collection at this URL:
In SharePoint on-prem there is an hourly (by default) Taxonomy Update Scheduler timer job that updates term changes on each site collection. Since you control an on-prem environment, you can run the job more frequently if needed. However, you have no control over when this job runs in SharePoint Online, so I was curious to see if a similar timeframe (up to 1 hour) would apply there as well.
To demonstrate, I’ll use a list of Region terms defined in a tenant-level term set called Regions. There are 4 regions defined as follows:
I’ve also added a list of customers in a SharePoint site and have assigned each to a number of regions using a multi-value Managed Metadata column as follows:
When I do this, it will populate the TaxonomyHiddenList with all the values I’ve used (NOT all the values in the Term set). This hidden list links back to the tenant term store thru a set of IDs as you can see in the image. The managed metadata column will reference this list thru an ID and will show the term value that’s in this list.
Let’s split the South region into Southeast and Southwest. This is a simple change in the Term Store – I edit the original South term to be Southeast and add a new term to be Southwest.
If I immediately edit an existing item that was previously associated with South, it should say Southeast. If you’re in the Classic experience, it does. If you’re in the Modern experience, it doesn’t – likely caused by different ways the 2 experiences retrieve the term values:
From the modern edit form, if I select the Region tag to edit the term South , it does show the updated term value as expected:
However, if I look at the All Items view of the Customers list in either the Classic or Modern experience, it still shows the old value of South:
This is because the TaxonomyHiddenList on the site is being used in the view and it hasn’t been updated yet.
I waited approximately 1 hour in my tenant and the values in the TaxonomyHiddenList were indeed updated so the new values would show in the view as well. This may be a factor of the number of site collections in the tenant – the one I’m testing with has less than 20. I’d be curious to know if a tenant with hundreds or thousands of site collections would have to wait longer – I suspect so.
Note: I tried searching for a PowerShell cmdlet to sync the lists in SharePoint Online, but was unable to find one. If you know of one, please let me know and I’ll update this post.
This is useful to know if you’re making changes to terms in SharePoint Online’s term store particularly if you’re in a large tenant with thousands of site collections and is another example of something you have no control over in an Online environment.
The takeaway? Plan ahead for term changes!
Thanks for reading.