--- title: Workspace API - ServiceNow Fluent description: The Workspace API defines configurable workspace experiences for organizing and sharing data visually.Create a workspace for managing business entities in a single focused working area that enables users to complete an entire job.Define a UX list menu configuration \[sys\_ux\_list\_menu\_config\] for the navigation structure and list views of a workspace.Define categories of related lists \[sys\_ux\_list\_category\] for a UX list menu configuration.Define list views of table data \[sys\_ux\_list\] with filtering and column configurations for a UX list menu configuration.Define the audience \[sys\_ux\_applicability\] that can view a list in the UX list menu configuration. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/application-development/servicenow-sdk/fluent-workspace-api.html release: australia product: ServiceNow SDK classification: servicenow-sdk topic_type: reference last_updated: "2026-03-12" reading_time_minutes: 7 keywords: [servicenow fluent, fluent api, servicenow fluent, fluent api, servicenow fluent, fluent api, servicenow fluent, fluent api, servicenow fluent, fluent api, servicenow fluent, fluent api] breadcrumb: [ServiceNow Fluent API reference, Reference, ServiceNow SDK, Building applications in source code, Building pro-code applications, Developing your application, Building applications] --- # 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](https://servicenow.github.io/sdk/category/api-reference) and [ServiceNow SDK examples repository](https://github.com/ServiceNow/sdk-examples) 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-dashboard-api.md). For general information about workspaces, see [Configurable Workspace UI](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-user-interface/workspace-landing-page.md). **Parent Topic:**[ServiceNow Fluent API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/servicenow-fluent-api-reference.md) **Related topics** [ServiceNow Fluent](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-fluent.md) ## Workspace object Create a workspace for managing business entities in a single focused working area that enables users to complete an entire job.
Name Type Description
$id String or Number Required. 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-constructs.md).Format: `Now.ID['String' or Number]`
title String Required. A name for the workspace that appears in navigation and headers.
path String Required. 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}.*`.
tables Array Required. A list of table names to manage in the workspace.
listConfig Reference Required. The variable identifier of a UxListMenuConfig object that defines the navigation structure of the workspace. For more information, see [UxListMenuConfig object](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-workspace-api.md).
landingPath String The URL path segment of the landing page. Workspace URLs follow the pattern `/now//` and use kebab case.Default: home
active Boolean Flag that indicates whether the workspace is accessible to users.Default: true
```javascript 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.
Name Type Description
$id String or Number Required. 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-constructs.md).Format: `Now.ID['String' or Number]`
name String Required. A name for the list configuration.
description String A description of the list configuration.
active Boolean Flag that indicates whether the list configuration is active.Default: true
categories Array A list of top-level groupings in the list configuration. For more information, see [categories array](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-workspace-api.md).
```javascript 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.
Name Type Description
$id String or Number Required. 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-constructs.md).Format: `Now.ID['String' or Number]`
title String Required. A title for the category to display in the navigation menu.
lists Array Required. A list of list views in the category. For more information, see [lists array](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-workspace-api.md).
order Number A number indicating the position of the category in the navigation menu. Categories with lower numbers appear first.
active Boolean Flag that indicates whether the category is visible in the navigation menu.Default: true
description String A description of the category.
```javascript 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.
Name Type Description
$id String or Number Required. 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-constructs.md).Format: `Now.ID['String' or Number]`
title String Required. A title for the list to display in the navigation menu.
table String Required. The name of a table to use for the list.
columns String A comma-separated list of column names to display in the list.
condition String An encoded query string to filter the records displayed in the list.
order Number A number indicating the position of the list within its category. Lists with lower numbers appear first.
active Boolean Flag that indicates whether the list is visible to users.Default: true
applicabilities Array A list of variable identifiers of Applicability objects that control which roles can view the list. For more information, see [Applicability object](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-workspace-api.md).
```javascript 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.
Name Type Description
$id String or Number Required. 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/fluent-constructs.md).Format: `Now.ID['String' or Number]`
name String Required. A name for the applicability rule.
description String A description of the audience.
active Boolean Flag that indicates whether the applicability rule is applied.Default: true
roles Array A 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/application-development/servicenow-sdk/role-api-now-ts.md).
roleNames String A comma-separated list of role names that a user must have to view the list. This property is an alternative to the roles property.
```javascript 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: ```javascript import { Role } from '@servicenow/sdk/core'; const managerRole = Role({ $id: Now.ID['manager_user_role'], name: 'x_snc_manager.user', containsRoles: ['canvas_user'] }) ```