What This Table Is

The sc_category table stores Service Catalog categories that organize catalog items into logical groupings. Categories create the navigation structure users see when browsing the Service Catalog, allowing items to be grouped by department, service type, or business function. Each category can contain catalog items (sc_cat_item) and other categories, forming a hierarchical tree structure.

This table is owned by the Service Catalog module and supports the entire catalog browsing experience. When users navigate through Service Portal or Platform UI catalogs, they're traversing the category hierarchy defined in this table. Categories control visibility, access permissions, and the logical organization that makes large catalogs manageable for end users.

The sc_category table extends the base sys_metadata table, inheriting standard metadata fields. It doesn't extend task and no tables extend it directly. The parent/child relationship is self-referential through the parent reference field, allowing unlimited nesting depth.

Most enterprises maintain 50-200 active categories across their catalog hierarchy. Record volume stays relatively low, but category tree traversal queries can become expensive when calculating deep hierarchies or checking user entitlements across multiple levels. Large implementations often see performance impacts when categories have complex read ACLs or when calculating available items across deep category trees.

When You'll Script Against This Table

You'll script against sc_category primarily in Business Rules that maintain category hierarchies, Script Includes that build catalog navigation structures, and Scheduled Jobs that sync categories with external systems. Service Portal widgets frequently query this table to render category trees and navigation menus. Integration scripts often need to validate category assignments or create new categories based on organizational changes.

Access to category records is controlled by standard table ACLs plus the catalog's role-based visibility. Users need catalog role for basic read access, while catalog_admin or catalog_manager roles are required for modifications. Category-level entitlements can further restrict which users see specific categories and their contents.

Common scripting patterns:

  • Building hierarchical category trees for portal navigation and catalog browsing interfaces
  • Validating category assignments when catalog items are created or moved between categories
  • Calculating category visibility based on user entitlements and organizational membership
  • Synchronizing category structures with external CMDBs or organizational directory systems
  • Generating category usage reports and analytics for catalog optimization
  • Maintaining category order and preventing circular parent-child relationships
  • Bulk category operations like activating/deactivating entire category subtrees

Table Gotchas

⚠️

The active field behaves hierarchically—inactive parent categories hide their entire subtrees from end users, even if child categories are marked active. Always check parent category status when troubleshooting missing categories.

  • The order field only controls sibling category ordering within the same parent level, not global ordering across the hierarchy
⚠️

Deleting a category with child categories or assigned catalog items will orphan those records. ServiceNow doesn't cascade delete or prevent deletion of categories with dependencies.

  • The parent reference field allows circular references—you can accidentally make a category its own grandparent, breaking category tree traversal
  • Category entitlements (available_for field) don't inherit down the hierarchy—child categories need their own entitlement rules
⚠️

Deep category hierarchies (6+ levels) can cause performance issues in Service Portal when rendering navigation trees. The category tree widget makes recursive queries that don't scale well with depth.

  • The image field stores attachment sys_ids, not file paths—broken image references fail silently in most catalog interfaces
Free Newsletter

Enjoying this? Get one deep-dive per week.

Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.

No spam · Unsubscribe anytime

The sc_cat_item table is the primary related table, as catalog items belong to categories through the category reference field. The sc_cat_item_category many-to-many table handles items that appear in multiple categories. Category entitlements connect to sys_user_group and sys_user tables for visibility control.

The sc_catalog table defines the top-level catalogs that contain category hierarchies. Categories also relate to the sys_attachment table for category images and icons. When building catalog analytics, you'll frequently join categories with sc_req_item to analyze usage patterns and popular categories by request volume.