DxSherpa - D

Best Practices for Designing Service Catalog in ServiceNow

Best Practices for Designing Service Catalog in ServiceNow

The ServiceNow platform boasts a robust Service Catalog tool for IT Service Management which offers user-friendly features like approval and status notifications, multi-catalog support for different Business areas, and a Centralized User Request Portal. Connecting User to IT services through Service Catalog allows them to find information, submit request tickets etc.

Service Catalog is a user-friendly tool; it should be useful to both IT and non IT staff. So here are some best practices one should follow for designing the Service Catalog:

Best Practices for Designing Service Catalog in ServiceNow

  1. Define and assign roles

    • Service owner- The Service owner owns a specific service. The Service owner coordinates with Catalog Manager and editor to add services to the catalog. They have responsibility for ensuring the service provision functions smoothly and fulfill user’s expectations.
    • Service Catalog Manager- Determines what is going on into the Catalog. The manager also ensures that the operational services on the Service Catalog are recorded, updated and available for the view to appropriate end users.
    • Catalog Editor- Manages the creation, modification, publication and deletion of Catalog Items.
    • Service Fulfiller- Fulfills user requests on day-to-day basis.
    • End User- User who request the product or service items.
  2. Identify and define Items to offer

    The best practice to define what items to offer is to start by identifying those that are-

    • Existing and well-defined.
    • Most frequently requested.
    • High priority.

    Once the service has been identified, define the fulfillment process and its tasks, clearly.

  3. Define main properties of the items

    • Naming and description
      • Think about the end user experience first while naming the Catalog Items.
      • Descriptions aren’t optional. Use terminology that users know.
    • Images.
    • Pricing.
    • Tags.
    • Workflows
      • Avoid combining workflows for multiple items (unless it’s a generic item): sooner or later one will need to break out different paths for different items which becomes a mess if it’s all the same workflow.
      • Be cautious whilst using the “Join” utility/activity: this allows the workflow to wait for multiple/simultaneous activities to be completed before continuing. If there are “conditional” tasks that aren’t completed (using IF condition activities) then the workflow Join will keep the workflow in a “stuck” state.
  4. Add Variables

    Variable Sets- It refers to a defined set of variables that are relevant to more than one item and shared between them.

    There are 3 main best practices for creating variables-

    • Keep questions understandable.
    • Keep the interface user-friendly.
    • Ask only necessary questions.
    • Standard variable names (e.g. same name as the question with all lowercase and underscores, no special characters except underscores).
    • Order your Variables by factors of “10”, (10,20,30…), this allows you to put new variables “in-between” in the future without needing to re-order all of the variables.
    • Avoid “List Collector” (Slush bucket) variables except when absolutely necessary (complex use cases), as these are also not supported by the g_form API and are therefore very hard to programmatically customize.
  5. Define Service Catalog Security

    Apply user criteria to an item to define which users can access to it. User criteria allow to group a specific set of users on multiple parameters such as groups, department, company, role or location.

  6. Organize the items

    Service Catalog enables to organize items into multiple categories and sub- categories to provide access and use by all users. The best practice is to create these categories in a user-friendly way while avoiding complex category trees.

  7. Reports and Dashboards

    ServiceNow provides a robust engine to generate charts, graphs, maps, list and various reports. Reports can be displayed on a dashboard, published to a URL and scheduled to be run and distributed at regular interval. One can create their own report. This metric allows to make these items easier for end user to access.

    One can combine multiple reports into a Dashboard. This enables to get a quick view of critical metrics that measure the performance and usage of Service Catalog.

  8. Test the Service Catalog

    This process is highly valuable for receiving useful feedbacks on modifications.

    One way to do this is to identify 5-10 items or Request types that are critical to the success of the Service Catalog. Conduct sessions for potential users to test the Service Catalog and provide critical feedback.

  9. Rollout the Application to your team

    Use the Champion Enablement materials to plan and roll out Service Catalog.

Technical Best Practices

Catalog UI Policies

  • Prefer these over Catalog Client Scripts when it comes to showing/hiding or making variables mandatory as they are more efficient unless one is writing scripts in them.
  • Within Catalog UI Policy Scripts or Client Scripts use the “.setDisplay(‘variable’, false)” rather than “.setVisible(‘variable’, false); this will allow to reclaim the space that otherwise would be a blank gap in the form.
  • Avoid adding the same variable to multiple UI Policies as much as possible (especially if the conditions could both be true at the same time).

Catalog Client Scripts (CCS)

  • Validation: Make sure to validate the fields as ServiceNow provides minimal validation of values.
  • Auto-Populate: If one can automatically populate variables based on information already known about the user, then do it; it makes everyone’s life easier and keep the users coming back.
  • Use Callbacks: When using AJAX or GlideRecord lookups within CCSs, make sure to use callbacks otherwise the page will “hang” (only exception is onSubmit CCSs as these should wait for a result).

Order Guides

  • Use as a Last Resort; they are difficult to work with and cause a lot of confusion. They are merely a way to “bundle” separate items and only group by the “Request” which the user doesn’t understand/know about.
  • If one need to go this route, then consider the End User and Fulfiller experience. They will be seeing/approving/fulfilling each item which means that one may have 5 separate workflows running that are sputtering out 5 separate emails, approvals and tasks.


  • Use Macros (yes that is a variable type) when necessary in order to get decent HTML loaded (for disclaimers, notes, etc.) in the item.
  • Keep the Macros generic. At times, this results in loading data from a lookup table. By setting it up like this, Macro need not to be touched to pull from the table. It can be re-used for diverse items.

Generic Catalog Items

  • Don’t be afraid to use them (especially at the beginning of the catalog rollout). These can be routed to the Service Desk for further triage and appears to the users as if there are many more items in the Catalog. (Create one, copy it and change the name and descriptions). This can help the overall perception of the Catalog and ServiceNow as a whole.