Service Catalog Fundamentals Explained
Introduction
The Service Catalog is one of ServiceNow's most visible and user-impacting features. It's the storefront through which employees request services—from new laptops to software access to onboarding workflows. A well-built catalog drives self-service adoption and reduces service desk call volume. A poorly built one frustrates users and increases ticket volume.
This guide covers every layer of the catalog, from the structural hierarchy down to individual variable types and workflow integration.
Catalog Structure Hierarchy
Service Catalog
└─ Category (e.g., "Hardware")
└─ Sub-Category (e.g., "Computers")
└─ Catalog Item (e.g., "Request a Laptop")
└─ Variables (form fields for the request)
Catalogs
You can have multiple catalogs for different audiences:
- IT Catalog: For IT service requests
- HR Catalog: For HR services (onboarding, benefits changes)
- Facilities Catalog: For office/building requests
Categories and Sub-Categories
Organize items logically from the user's perspective, not your internal team structure. Users look for "Get a new laptop," not "IT Hardware Provisioning Team."
Catalog Item Types
| Type | Use Case |
|---|---|
Item |
Single service request (most common) |
Order Guide |
Bundles multiple items with conditional logic |
Record Producer |
Creates records in any table (not just sc_request) |
Content Item |
Links to external content or knowledge articles |
Record Producer vs. Catalog Item
A Catalog Item always creates an sc_request → sc_req_item chain.
A Record Producer can create any record type directly (incident, change, HR case). Use Record Producers when you want self-service intake that goes directly into your process tables without a separate RITM record.
Variables: Building the Request Form
Variables are the form fields users fill in when submitting a catalog item.
Variable Types
| Type | Description | Example |
|---|---|---|
Single Line Text |
Short text input | Laptop serial number |
Multi Line Text |
Large text area | Business justification |
Select Box |
Dropdown list | Operating system |
Radio Buttons |
Single choice from options | Priority level |
Check Box |
Boolean yes/no | Extra monitor needed? |
Date |
Date picker | Required by date |
Reference |
Lookup to another table | Assigned user |
Lookup Select Box |
Reference with filtered list | Manager approval by |
UI Page |
Embed a custom UI page | Complex widgets |
Masked |
Hidden input (for passwords) | API key entry |
Attachment |
File upload | Supporting documentation |
Container |
Groups related variables | Section dividers |
Variable Ordering and Sections
Organize variables using Container type to create collapsible sections:
[Container: Basic Information]
- Name
- Department
- Manager
[Container: Equipment Details]
- Device type
- Operating system
- Memory requirement
[Container: Justification]
- Business reason (Multi Line Text)
- Required by date
Variable Sets: Reusable Field Groups
Variable Sets let you define a group of variables once and reuse them across multiple catalog items.
Example: "Standard Employee Information" variable set:
- Employee Name (reference to sys_user)
- Employee Department (reference to cmn_department)
- Employee Manager (reference to sys_user)
- Start Date (date)
- Cost Center (string)
Add this set to every catalog item that needs employee details—update once, applies everywhere.
Catalog Client Scripts and UI Policies
Just like form Client Scripts and UI Policies, catalogs have equivalent controls:
Catalog Client Script (onChange):
// Show monitor quantity field only if extra monitor is checked
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading) return;
if (newValue == 'true') {
g_form.setVisible('monitor_count', true);
g_form.setMandatory('monitor_count', true);
} else {
g_form.setVisible('monitor_count', false);
g_form.setMandatory('monitor_count', false);
g_form.setValue('monitor_count', '');
}
}
Catalog UI Policy: Same structure as regular UI Policy but scoped to catalog items.
Fulfillment Workflows
Every catalog item needs a fulfillment process. Options:
1. Flow Designer (Recommended)
Attach a Flow to your catalog item's Process Engine tab. The flow receives the RITM record and its variable values.
// In a Flow Designer Action:
// Access RITM variable values
var laptopModel = fd_data.trigger.current.variables.laptop_model;
var employeeName = fd_data.trigger.current.variables.employee_name;
2. Workflow (Legacy)
Legacy Workflow is still supported but not recommended for new development.
3. Approval-Only Items
For simple approvals, use the built-in approval engine without a custom workflow:
- Set approval settings on the catalog item
- Define approvers (manager, group, specific users)
- The RITM automatically routes to approvers
Delivery Time and SLAs
Set expectations with catalog item delivery times:
- Delivery Time: Displayed to users (e.g., "3-5 business days")
- SLA Definition: Attach an SLA to the catalog item for system tracking
Order Guides: Bundled Requests
An Order Guide bundles multiple catalog items with conditional display:
Scenario: New Employee Onboarding
Order Guide: New Employee Setup
├─ Always included: Badge Request, Email Account, VPN Access
├─ If Role = Developer: Add GitHub Access, Dev Laptop
├─ If Role = Sales: Add Salesforce License, Sales Phone
└─ User can customize quantities and options per item
Order Guides significantly reduce the number of separate requests for complex provisioning scenarios.
Pricing and Cost Tracking
ServiceNow supports catalog item pricing for cost transparency:
- Set a Price on catalog items (informational or charge-back)
- Connect to a recurring price for subscription services
- Reports can show total spending by department or cost center
Best Practices
- Write item names from the user's perspective, not IT jargon
- Keep forms short—use progressive disclosure to hide advanced options
- Always set a meaningful short description and full description
- Use icons and images to make the catalog visually engaging
- Test the full ordering experience as a non-admin user
- Set realistic delivery times and communicate them clearly
- Use Variable Sets for common field groups
- Configure User Criteria to show items only to appropriate audiences
- Monitor abandoned requests to identify confusing forms
- Retire items that are no longer offered rather than leaving them active
Conclusion
The Service Catalog is the face of your IT service delivery. Every design decision—from category naming to variable organization to fulfillment workflows—affects whether users trust and adopt it. Invest in a clean information architecture, test from the user's perspective, and iterate based on feedback. A great catalog reduces call volume, improves satisfaction scores, and makes IT visible as a service partner rather than a support queue.