10 min read

Creating a tagging system

Create a scalable organization system for tables

Tables are fantastic for storing quantities of entries. But what happens when your user is looking for one specific row? How will they find it? What if you plan to make filtered views of a table for specific audiences? How will you filter the data? A well designed tagging system is key to creating a repository that your team will enjoy using. Tagging allows you to categorize and organize rows based on their content or purpose, creating a structured system that makes it easier for users to navigate. When browsing your content, users can filter or search for specific tags, helping them discover related to their specific needs or interests. Tags also facilitate easy filtering for views. Tags save time, save effort and increase the value of your content.
What you'll learn:
  • What to consider when designing a tagging system.
  • Options for tag schema.
  • Tips for tagging at scale.

1. Consider your audience.

Before adding anything to your table, its important to understand how your user is using the doc, and what search or tagging system will be helpful.
  • Why are they searching for something?
  • What are the intuitive ways a user might start to filter a list in their mind? By topic? Type of entry? By department?
  • Is there an existing cataloging system at your company that you can use or build from?

2. Define your tag types.

List out the type of tags you will include. You may have one or many. Examples include:
  • Content topic
  • Type of entry (help article vs project overview vs launch announcement)
  • Department
  • Intended audience

3. Create a select list column for each tag type.

We recommend giving each tag type its own column to allow for easier use of the filter bar and row grouping. You could put all the tags together in the same column and allow for multi select, but this can create problems at scale.

4. Make a tag table for each tag type.

Rather than keeping your tags as select list options, we recommend converting each of your select lists to tables (learn now here), then storing your tag helper tables on a hidden config page. This method allows you to use page locking to limit who can edit the tags and makes adding/modifying/analyzing your tags much easier.
Another advantage of storing your tags in a table is that you can add context or a definition to each tag. Just add the descriptions in a column in the tag table. These context columns will be available upon hover, allowing you to give a user more information about what a tag means or how it is used.

5. Decide on allowing multiple tags per type.

By default, select lists limit users to a single selection per row. However, select lists have the option of allowing multiple selections per field. This can be helpful for when content could fall under a few different tags, and you want your user to be able to find it when searching for either one. Allowing multiple selections has one major drawback: multiple selections throw a wrench in table grouping. Groups are created based on exact matches in fields, and rows can only appear in a single group. Why is this important? Let’s use an example to best illustrate: Lets say an entry for a vacation policy is has two tags in its tag column, “operations” and “HR policies”. If you split your list into groups, it will not be paired with other “operations” entries, or other “HR policies” entries. Instead, it will be paired with entries that have “operations” AND “HR policies”.
Multiple tags in the same column work fine with the filter bar or if you create filtered views for specific tags. Filters can use the “contains” operator and include any entry that has a tag, regardless of the other tags also assigned.

6. Align on tag maintenance.

Select lists have the option to allow users to add new tags if they cannot find what they are looking for. While this is great for quickly tagging new content, it can lead to your team creating a very large selection of tags that becomes difficult to use. Consider turning off the option for “Allow quick adding of new items”, forcing your team to either use an existing tag or request a new one be added to the tag table by someone who is authorized to make the update.

Was this helpful?