Changing Managed Metadata values in SharePoint Online

Reading Time: 5 minutes

[Updated February 2024] This post covers one of those back-to-basics things about SharePoint Information Architecture everyone could benefit from knowing about. Shortly after reposting this, I changed a term in the tenant term store and it was updated almost immediately in my SharePoint site. It might be that my change aligned with the 1-hour delay process in my favour. I’ll leave this post in tact in case you experience a delay.

Recently, I was wondering why my term values weren’t updating in SharePoint after I changed a term label in the term store… and then I remembered the reason for the delay so I wrote this post. 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. Terms can be used in many features in SharePoint to improve search, workflows, sorting and filtering. Examples of modern capabilities that leverage them are the SharePoint Premium unstructured document processing model, taxonomy tagger, and Viva Topics! In short, the more you know about them, the better!

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 another post of mine: 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:

/sites/SiteCollectionName/Lists/TaxonomyHiddenList

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:TermsBeforeChange

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:

Customer List

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.

TermsAfterChange

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:

Classic Edit form after change
Classic Edit form

 

Modern Edit form after change
Modern Edit form

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:

Select term it shows current

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:

Classic View after changeModern View after change

This is because the TaxonomyHiddenList on the site is being used in the view and it hasn’t been updated yet.

Wait…

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.

-JCK

27 comments

  1. Hi Joanne,

    Is there any updates regarding “How to update the taxonomy Hidden List or how to force rerun the Taxonomy Update scheduler job to Sync updates to Taxonomy Hidden list”

    Regards,
    Mohammad Amer

    1. Hi Mohammad,
      I assume you’re referring to SPO? To my knowledge, that process remains the same. I don’t see that changing.
      -JCK

  2. Hi Joanne,

    Is there any workaround to update the hidden list or changes to be reflected on libraries where terms has been tagged as metadata in SPO.
    I have huge numbers of pages and document with the scenario.

    Regards,
    Sunita

    1. Hi Sunita, I’m not aware of one. You could check if there’s some PowerShell to do it, but I doubt there is in SPO.
      -Joanne

  3. Hi, has there been any feedback from large tenants? Does it take an hour to update on large tenants too? If so, it may be just a SOP conversation with content owners setting the right expectations.

    1. Hi Arik, I haven’t worked on really large tenants to answer that question first-hand. If I get a chance, I’ll reach out to my network to ask if it takes longer in a large tenant.
      -JCK

      1. Thanks! We’re bidding on a couple of large-tenant projects, and Term Store behaviour will be key, we’ll continue to snoop around. Appreciate your help.

  4. Hi Joanne,

    Have you ever heard of terms in Term Store getting depreciated if we do not access it after some time? One of my users says they heard of this after attending a Microsoft seminar. Basically, if we do not update/modify the terms in Term Store after a long time, the terms will auto-deprecate themselves. To our knowledge, it does not work that way.

    But let me know if you’ve heard of this! We’d like to plan ahead for our users.

    1. Hello, you can’t update it in SPO. It’s done in a backend process and you don’t have any control over it as far as i know.
      -Joanne

  5. Hi Joanne, I search of a nasty bug (saving required managed metadata fields) in Modern SharePoint I stumbled upon this article. Thank you for the write up. Somehow Modern SharePoint does not save values and your article might be onto why. We do have a large taxonomy and a large number of documents (50k or so), so might also have to do with Modern choking in the UI…Oh and I’m not alone on this: https://techcommunity.microsoft.com/t5/sharepoint/error-when-saving-properties-even-if-filled-out/m-p/393670
    – regards Carry

    1. Hi carry2web, I don’t have insight into any throttling that may be going on for your situation however that is a likely culprit.
      -JCK

  6. Thank you for this exhaustive analysis Joanne. Always a pleasure to read your content 🙂

  7. I know this is an older post, but I have just started using term store for Records Management. I had a term set loaded, and working but had an updated csv file. So I renamed the term set [filename]OLD and loaded the new terms, and switched the site column to look at the new set. Weird thing is that on the old set, a user could bring up the term list, hover over with a mouse, and the descriptions of each term would pop up allowing them to choose based on description. The new set seems to have lost the ability to have the descriptions pop up. Any ideas as to why this would happen? Do I have to completely delete the old set to have the full functionality of the new set work? Lol I am baffled…

  8. Just to get this right: if you change a term, items that used the old version of the term will NOT have that value changed automatically, right? You would still have to edit the item to choose the new or another value. Correct? If not I foresee all kinds of trouble!

    1. Hi Rob,
      No. The values will be automatically updated to reflect the new term value, you just have to wait for the back-end process to do that. No editing of items needs to happen.
      I will update the post if that wasn’t clear, I thought it was.
      -Joanne

      1. Ouch. I was having this example in mind: older metadata reflecting (standardized, perhaps even the ISO list was imported) country names e.g. mention former Yugoslavia as a country with a number of documents. A newer version splits this into Serbia, Croatia, Montenegro, etc. The document describes content about modern Croatia, but the first term is Serbia. So now the scope changes from Croatia to Serbia, which may be highly undesirable… it would have been acceptable if the content owner edits the metadata on the relevant documents and changes Yugoslavia into Croatia.

      2. Hi Rob, in the scenario you describe, I wouldn’t expect the exact right changed terms to be applied. If you’re using the same term set, then you might want to change the replacement term for Yugoslavia to be whichever one is the “best fit” or “least risky” if that is possible. After that, you would certainly have to edit the items to ensure the metadata value reflected the new changed value you want to use.

        You could potentially use some of the current automation capabilities to help with that such as a SharePoint Premium document processing model that could extract it out of the doc or taxonomy tagging that would look for the word “Croatia” and then tag it with “Croatia” instead.

        I would suggest in the scenario you describe, that this type of a change should likely be part of a bigger effort to ensure the data was updated to the correct changed values after-the-fact due to the impact. Devils in the details on that one, but I think you get the idea.
        -Joanne

      3. Well, actually, I just did a test myself, here are the preliminary results:
        – Created a managed term column called Country to an existign content type and added some documents with the country Yugoslavia
        – Deprecated (yes) the term Yugoslavia in the Country term set and added the post-war created countries Croatia, Serbia, Bosnia Herzegovia etc.
        – No changes to the document metadata… But I will wait. There WAS an immediate change in the terms to be chosen however, Yugoslavia was gone as expected and the new terms were there. Changed one document’s country value to Croatia
        – Deleted Yugoslavia as a term altogether… no change to the document metadata. I WILL wait for a few days BUT I do NOT expect the values to change actually…
        – If they do still change I will be very upset 🙂

      4. I just changed the value of the term in the term store. I didn’t deprecate nor delete anything so we’re testing different things.

        This is too hard to capture in these comments. Why don’t you write a blog post? 😊

      5. I see what you mean – you are right you changed the original value and for that I would also expect the value in the metadata to change… then again I would recommend as best practice to deprecate that term instead and add new values.

      6. Good point on the deprecation and that is probably what I would do in your Yugoslavia example; however, I think it depends on the change. If it’s a typo, change it (just did one of those last week), if it’s that you just want to use a different word for the term but it has the same meaning and you want the new word to show in SharePoint UI (so just adding a term synonym isn’t enough) then I would change it.
        I think you should take each case on its own and do what’s right with the minimal impact, sometimes that would be deprecating the term. Your experience may differ.

        Fyi… my example for the post may have been poorly chosen in retrospect.

        -Joanne

  9. Hi Joanne,

    I have a question about Term Stores in SharePoint Online. I have a term group with many term sets below it with terms and subterms. However, i would like to add some extra structure.

    example:

    location:
    1. Belgium
    1.1. Brussels
    1.1.1 Brussels North
    2. US
    3. China

    if i would like to introduce a extra level:
    Europe
    Asia
    North-America

    will it impact the terms (I display the term label, not the entire path and my column is multivalue) that i already use?
    I think not because it’s using the term ID?

    I also noticed that we cannot move a term set within the same term group… So i would need to create the Continents first and then copy the old term sets?

    Is my statement correct? I don’t want to impact the locations where the terms are already used since it’s on multiple sites etc…

    thanks for your guidance!

    regards,
    Eline

    1. Hi E.D., I’m afraid I don’t know the impact for sure without testing. Why don’t you set up test Term Groups to validate. That would be the only way I would do it to make sure I don’t break anything in the front-end.

      -Joanne

Leave a Reply to Joanne KleinCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.