My Infatuation with Managed Metadata and Term Sets

If you talked to anyone who has worked with in the last 2 years, they might tell you that I have an infatuation with managed metadata and term sets.  To be honest they are right and if I’m being completely honest, I may be borderline obsessive.  My fondness for classifications systems goes back to middle school.  I still remember the scientific classification system with Kingdom, Phylum, Genus, Species.  I’ve always been fond of Geographic classification scenarios like Continent, Country, State, City.  That sort of well-defined taxonomy just brings structure to an otherwise chaotic array of stuff. Let’s be honest about SharePoint, if you are not careful you can end up with a chaotic array of stuff there too.

Now with my confessions aside and agenda on the table I would like to begin to share some experiences.  We’ve done some cool things for our customers using managed metadata and term sets.  Using simple taxonomies and not so simple ones, we brought order to the chaos that SharePoint can sometimes feel like.

Scenario 1 – “The Automatic Tagger”

Using only out of the box configuration and no custom run-time code of any kind we delivered a powerful tagging solution.  Contributors uploading and tagging content benefited from a streamlined experience and consumers had a powerful search refinement experience.  If you aren’t familiar search refinement, think of the boxes you tick on Best Buy or Amazon.  You narrow down thousands of products to that one coveted 70 inch Samsung LED TV with just a few clicks of the mouse.

As part of the solution we created term sets, site columns, and content types.  We then configured automatic metadata tagging driven based on a well-defined site and document library structure.

There was a Client Project term set that mostly mirrored the site structure. For example, something like this:

  • Client A
    • Project 1
    • Project 2
  • Client B
    • Project 3
    • Project 4

Then there was a Document Type term set that defined ALL types of documents in the system. Below is an oversimplification but hopefully it conveys the idea.

  • Deliverable
    • Diagram
    • Requirements
  • Report
    • Weekly
      • Status
      • Budget
    • Monthly
      • Summary
      • Budget

Using the PnP provisioning framework we created PowerShell scripts so new sites could be created and have configuration applied consistently.  Did you catch that?  My apologies for stretching the truth above about no-code.  Honestly though, the part that does the work requires no code.  We only used PnP to automate the otherwise mundane configuration tasks.

Currently our client has almost 100 unique sites and growing.  They are organized in a nice little hierarchy that is easy to navigate.  When a user needs to upload documents they simply go to the right library and drag and drop them.  Automatically, they are tagged with a Client and if appropriate a Project.  The list of choices for Document Type is trimmed based on the specific document library to only those that are valid.  For example, only Report types would be available in the Reports document library.

I’m sure your first thought is “well if I’m already in Client A, Project 1 why the heck tag it with Client and Project anyway”?  The answer is that those tags enabled a very rich and useful search experience.  Starting with nothing more than a Google-esque experience where users simply interact with a search box.  When presented with a set of results they trim down the results based on Client, Project, Document type and go from hundreds or thousands of results to less than a dozen in 2-3 clicks.

Scenario 2 – “The Automatic Router”

The use of term sets and a well thought out taxonomy were a small part of this solution. However, they were a key building block that enabled a highly customized solution to empower thousands of service professionals to quickly contribute knowledge documents while never thinking about “where do they belong”.  In some respects, this solution is the reverse of the automatic tagger since this solution requires the contributor to know nothing about the end location and more about the tags applied which drive the routing.

As part of the solution we developed a custom document upload screen using angular, REST (Representation state transfer) and CSOM (Client Side Object Model).  If you are coding against the term store in JavaScript, then CSOM is the way to do it.  The upload screen was available in the user interface from any site collection as part of our custom branding.  When a user uploaded one or more documents they were presented with a dialog to choose a content type and then tag the document(s) with things like a category.

The Categories term set looked something like below albeit much more comprehensive.

  • Account Planning
    • Review
    • Estimate
  • Business Development
    • Sales
    • SOW
  • Research
    • Markets
    • Conferences
  • Deliverable
    • Asset
    • Plan

Once a document was uploaded and tagged the user was finished.  From here the system took over and routed the document to a centralized Knowledge Management site collection.  Finally, using the Content Organizer feature and rules documents were moved to one of any number of document libraries. If necessary folders were created for documents based on common properties that were configurable.

As I mentioned previously this is somewhat a reverse scenario of the automatic tagger. So why would I highlight such opposite scenarios?  It demonstrates to you dear reader that the solution is in the eye of the beholder.  What works for one customer may not work for another.  In the case of this customer, the ability to quickly upload from any location in SharePoint and not be caught up on navigating to the right location was critical with thousands of contributors.  In the automatic tagger, the number of contributors was significantly lower with those users being specifically trained on the process.

Scenario 3 – “The Automatic Navigator”

The backbone of the automatic navigator is a well thought out taxonomy used to classify items into a navigational hierarchy.  I’m sure if you have done any research on term sets you’ve seen that Microsoft allows them to be used as part of a managed navigation design.  This is not that, but it is in what it tries to solve.

Imagine you are a content editor managing hundreds or thousands of wiki pages, links or even documents.  Now imagine that you want to have a use experience where your end users can progressively drill into different levels to arrive at a collection of related links, pages or documents.  By using a term set and a SPA (single page app), Angular, REST and CSOM we created a page that was organized into an accordion style user experience.

End users visited the page and simply clicked on levels driven from the term set.  This expanded sections to reveal content, if there is any associated to the level, and additional child levels if they existed.  For end users, it created a simplified experience for arriving at content without being presented with an overwhelming list of wiki pages, links or documents. For the content editor, they could just tag content and have it show up automatically based on the level at which it was tagged.


Hopefully I didn’t drone on too long about all the neat ways you can leverage managed metadata and term sets as part of a solution.  In the end, the main thing I would like you to take away from this is that within SharePoint it’s always good to put some significant thought into your taxonomies and leverage term sets.  Out of the box they offer numerous benefits and with configuration or custom code you can get even more mileage out of them.

Bo GeorgeMy Infatuation with Managed Metadata and Term Sets


Join the conversation
  • Bismarck - April 5, 2017 reply

    Loved this post. I couldn’t agree more. Thanks for Sharing!

    Bo George - April 5, 2017

    Thanks Bismark! I appreciate the feedback. Glad to know others feel the same as me.

  • Jesse - September 25, 2017 reply

    I am beginning to have the same OCD when it comes to our SharePoint site. Thank you for letting me know I’m not alone!

Join the conversation

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