Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

Workspace API - ServiceNow Fluent

The Workspace API defines configurable workspace experiences for organizing and sharing data visually.

Note: For the latest ServiceNow Fluent API documentation and examples, see the ServiceNow Fluent API reference and ServiceNow SDK examples repository on GitHub.

The Workspace API creates application metadata in the following tables depending on the workspace definition: UX Application [sys_ux_page_registry], UX App Configuration [sys_ux_app_config], UX Application Category M2M [sys_ux_registry_m2m_category], UX Page Property [sys_ux_page_property], UX Screen Collection [sys_ux_screen_type], UX App Route [sys_ux_app_route], UX Screen [sys_ux_screen], and UX Macroponent Definition [sys_ux_macroponent].

Dashboards can be used as the home page of a workspace by referring to one or more workspaces from the visibilities array of the Dashboard object. To create a dashboard, see Dashboard API - ServiceNow Fluent.

For general information about workspaces, see Configurable Workspace UI.

Parent Topic:ServiceNow Fluent API reference

Related topics

ServiceNow Fluent

Workspace object

Create a workspace for managing business entities in a single focused working area that enables users to complete an entire job.

import { Workspace } from '@servicenow/sdk/core';

const itsmWorkspace = Workspace({
    $id: Now.ID['itsm_workspace'],
    title: 'IT Service Management',
    path: 'itsm',
    tables: ['incident', 'problem', 'change_request', 'user', 'sys_user_group'],
    listConfig: incidentListConfig
})

The UX List Menu Configuration referenced is defined using the UxListMenuConfig object.

UxListMenuConfig object

Define a UX list menu configuration [sys_ux_list_menu_config] for the navigation structure and list views of a workspace.

A UX list menu configuration organizes data into categories and lists, enabling users to access different views of business data with filtering, column selection, and role-based visibility. This structure appears in the workspace's navigation panel, providing organized access to different data views.

NameTypeDescription
$idString or NumberRequired. A unique ID for the metadata object. When you build the application, this ID is hashed into a unique sys\_id. For more information, see ServiceNow Fluent language constructs.Format: `Now.ID['String' or Number]`
titleStringRequired. A name for the workspace that appears in navigation and headers.
pathStringRequired. The URL path segment of the workspace. Workspace URLs follow the pattern `/now//` and use kebab case.Workspaces require access control lists \(ACLs\) to secure the workspace routes. The field property of an Acl object must match the value of this property with a wildcard pattern: `{workspace.path}.*`.
tablesArrayRequired. A list of table names to manage in the workspace.
listConfigReferenceRequired. The variable identifier of a UxListMenuConfig object that defines the navigation structure of the workspace. For more information, see UxListMenuConfig object.
landingPathStringThe URL path segment of the landing page. Workspace URLs follow the pattern `/now//` and use kebab case.Default: home
activeBooleanFlag that indicates whether the workspace is accessible to users.Default: true
NameTypeDescription
$idString or NumberRequired. A unique ID for the metadata object. When you build the application, this ID is hashed into a unique sys\_id. For more information, see ServiceNow Fluent language constructs.Format: `Now.ID['String' or Number]`
nameStringRequired. A name for the list configuration.
descriptionStringA description of the list configuration.
activeBooleanFlag that indicates whether the list configuration is active.Default: true
categoriesArrayA list of top-level groupings in the list configuration. For more information, see categories array.
import { UxListMenuConfig } from '@servicenow/sdk/core';

const incidentListConfig = UxListMenuConfig({
    $id: Now.ID['incident_list_config'],
    name: 'Incident List Configuration',
    description: 'Navigation for Incident Workspace',
    categories: [
        {
            $id: Now.ID['incidents_category'],
            title: 'Incidents',
            order: 10,
            lists: [
                {
                    $id: Now.ID['incidents_open'],
                    title: 'Open',
                    order: 10,
                    condition: 'active=true^EQ',
                    table: 'incident',
                    columns: 'number,short_description,priority,state',
                    applicabilities: [
                        {
                            $id: Now.ID['incidents_open_applicability'],
                            applicability: applicability
                        }
                    ]
                }
            ]
        }
    ]
})

categories array

Define categories of related lists [sys_ux_list_category] for a UX list menu configuration.

NameTypeDescription
$idString or NumberRequired. A unique ID for the metadata object. When you build the application, this ID is hashed into a unique sys\_id. For more information, see ServiceNow Fluent language constructs.Format: `Now.ID['String' or Number]`
titleStringRequired. A title for the category to display in the navigation menu.
listsArrayRequired. A list of list views in the category. For more information, see lists array.
orderNumberA number indicating the position of the category in the navigation menu. Categories with lower numbers appear first.
activeBooleanFlag that indicates whether the category is visible in the navigation menu.Default: true
descriptionStringA description of the category.
categories: [
    {
      $id: Now.ID["incidents_category"],
      title: "Incidents",
      order: 10,
      lists: [
        {
          $id: Now.ID["incidents_open"],
          title: "Open",
          order: 10,
          condition: "active=true^EQ",
          table: "incident",
          columns: "number,short_description,priority,state",
          applicabilities: [
            {
              $id: Now.ID["incidents_open_applicability"],
              applicability: applicability
            }
          ]
        },
        {
          $id: Now.ID["incidents_all"],
          title: "All",
          order: 20,
          condition: "",
          table: "incident",
          columns: "number,short_description,priority,state",
          applicabilities: [
            {
              $id: Now.ID["incidents_all_applicability"],
              applicability: applicability
            }
          ]
        }
]

lists array

Define list views of table data [sys_ux_list] with filtering and column configurations for a UX list menu configuration.

NameTypeDescription
$idString or NumberRequired. A unique ID for the metadata object. When you build the application, this ID is hashed into a unique sys\_id. For more information, see ServiceNow Fluent language constructs.Format: `Now.ID['String' or Number]`
titleStringRequired. A title for the list to display in the navigation menu.
tableStringRequired. The name of a table to use for the list.
columnsStringA comma-separated list of column names to display in the list.
conditionStringAn encoded query string to filter the records displayed in the list.
orderNumberA number indicating the position of the list within its category. Lists with lower numbers appear first.
activeBooleanFlag that indicates whether the list is visible to users.Default: true
applicabilitiesArrayA list of variable identifiers of Applicability objects that control which roles can view the list. For more information, see Applicability object.
lists: [
        {
          $id: Now.ID["assets_active"],
          title: "Active",
          order: 10,
          condition: "install_status=1",
          table: "alm_asset",
          columns: "asset_tag,display_name,model_category,assigned_to",
          applicabilities: [
            {
              $id: Now.ID["assets_active_applicability"],
              applicability: assetApplicability
            }
          ]
        },
        {
          $id: Now.ID["assets_all"],
          title: "All",
          order: 20,
          condition: "",
          table: "alm_asset",
          columns: "asset_tag,display_name,model_category,assigned_to",
          applicabilities: [
            {
              $id: Now.ID["assets_all_applicability"],
              applicability: assetApplicability
            }
          ]
  }
]

Applicability object

Define the audience [sys_ux_applicability] that can view a list in the UX list menu configuration.

NameTypeDescription
$idString or NumberRequired. A unique ID for the metadata object. When you build the application, this ID is hashed into a unique sys\_id. For more information, see ServiceNow Fluent language constructs.Format: `Now.ID['String' or Number]`
nameStringRequired. A name for the applicability rule.
descriptionStringA description of the audience.
activeBooleanFlag that indicates whether the applicability rule is applied.Default: true
rolesArrayA list of variable identifiers of Role objects or sys\_ids of roles that a user must have to view the list. For more information, see Role API - ServiceNow Fluent.
roleNamesStringA comma-separated list of role names that a user must have to view the list. This property is an alternative to the roles property.
import { Applicability } from '@servicenow/sdk/core';

const managerApplicability = Applicability({
    $id: Now.ID['manager_applicability'],
    name: 'Managers Only',
    roles: [managerRole]
})

The role referenced is defined using the Role object:

import { Role } from '@servicenow/sdk/core';

const managerRole = Role({
    $id: Now.ID['manager_user_role'],
    name: 'x_snc_manager.user',
    containsRoles: ['canvas_user']
})

sndocs is an independent community mirror and is not affiliated with or endorsed by ServiceNow.

ServiceNow, the ServiceNow logo, Now, and other ServiceNow marks are trademarks and/or registered trademarks of ServiceNow, Inc., in the United States and/or other countries. Other company and product names may be trademarks of the respective companies with which they are associated.

© 2026 ServiceNow, Inc. All rights reserved.

Documentation content is redistributed under the Apache License 2.0 from the ServiceNowDocs repository.