Not verified hands-on. This article was written from primary documentation rather than reproduced in an org, so it carries no tested-release badge. If you run it and something differs, say so in the comments and it gets tested and corrected.

Straight answer: data categories classify articles, and category visibility decides who can see what. An article is invisible to a user for one of four reasons: it is not published, its channel excludes them, its language is not one of theirs, or their category visibility does not include the categories on the article. The fourth is the one that takes a day to find.

Groups, categories and where the structure goes wrong

A category group is a dimension of classification. A category is a value in it, and categories nest into a hierarchy.

A sane structure has two or three groups, each answering a different question. Product, Region, Audience. Not one group called “Everything” with sixty siblings at the top level.

The number of groups you can create and activate is limited, which is one of the few platform limits that pushes you towards good design. Plan the structure on paper before building it, because reorganising categories after articles are classified means reclassifying the articles.

Assigning categories to articles

Categories are set on the article version, not on the article. A new version inherits them, and an author can change them, so a republished article can quietly change audience.

An article can have multiple categories from the same group. An article with no categories at all is a special case, covered below, and it is the trap.

Visibility, which is the actual mechanism

Category visibility is set per role, per permission set, or per profile, and the setting for each group is one of three things:

  • All Categories. The user sees articles in any category of that group.
  • None. The user sees nothing categorised in that group.
  • Custom. The user sees only the categories you pick, plus optionally their parents and children.

Custom is where the sharp edges live. When you select a category, you choose separately whether the user also gets everything above it and everything below it in the hierarchy. Selecting a parent does not automatically grant the children unless you say so, and a user granted a leaf category with no parents will not see the broader articles filed higher up.

The default, and the articles with no categories

There is an org-wide default data category visibility setting. It decides what users see when nothing more specific applies, and it defaults in a way that is more open than most people expect.

Here is the rule that catches everybody: an article with no data categories in a group is visible only to users whose visibility for that group is All Categories. It is not visible to a user with Custom visibility, even if they have been granted every category in the group individually.

So an author who forgets to classify an article makes it invisible to precisely the audience you carefully configured, while administrators with All Categories see it fine and conclude the setup works. Make the category field required on the layout, or validate it.

Debugging an invisible article

Work through this in order. Each step is cheaper than the next.

  1. Is there an Online version? Query it. A draft looks published to its author.
  2. Is the right channel ticked? Internal app, customer, partner, public. Communities fail here constantly.
  3. Is the language right for the user’s knowledge language settings?
  4. Does the article have categories at all in every active group?
  5. What is the user’s visibility for those groups, via role, profile and permission sets combined?
  6. Record type access. No access to the record type means no access to the article, and this is easy to miss because it is not a Knowledge-specific setting.

Categories are not sharing

A point worth being blunt about: data category visibility filters what appears in search and browse. It is a content classification mechanism, not a security model designed to withstand a determined user. Do not put information in a knowledge article that would be damaging if the wrong internal user read it, and rely on category visibility as the only control. Use a separate record type with restricted access, or keep it out of Knowledge.

Frequently asked

Can I filter a report by data category? Reporting on categories is limited compared with reporting on fields. If category is something you slice metrics by regularly, mirror it into a picklist field and keep the two in sync with a flow.

Can I deactivate a category group? Yes, and its classifications then stop filtering. Articles keep their values, so it is a fast way to un-break a misconfigured group while you fix the visibility behind it.

Why does an admin see everything? Administrators typically have All Categories visibility and the Modify All Data permission, so they are the worst possible test account. Test visibility with a real user, or with Login As.