What It Is

Workspaces are ServiceNow's replacement for the classic UI interface, providing role-specific, contextual environments within the Next Experience framework. They solve the fundamental problem of information fragmentation by consolidating all tools, records, and actions a user needs into a single, configurable interface tailored to their specific job function. Unlike the classic UI's rigid list-and-form paradigm, Workspaces present data through flexible layouts using cards, timelines, activity streams, and embedded components that adapt to the user's workflow rather than forcing users to navigate between disconnected screens.

Architecturally, Workspaces live within the Next Experience Workspace application (com.snc.workspace) and operate as a presentation layer above ServiceNow's core data model. They're built using the Configurable Workspace framework, which provides declarative configuration tools rather than requiring custom development. The workspace configuration itself is stored in the sys_aw_workspace table, with individual page layouts defined in sys_aw_page and component configurations stored across multiple supporting tables in the workspace application scope.

The relationship to ServiceNow's execution environment is fundamentally different from classic UI components. Workspaces don't execute server-side business logic directly—instead, they consume data through REST APIs and display it using client-side rendering. This means traditional approaches like Client Scripts and UI Policies don't apply; instead, you configure behavior through workspace-specific tools like Field Styles, Declarative Actions, and workspace-aware Flow Designer actions. The workspace framework handles the API calls, data binding, and UI updates automatically based on your declarative configuration.

You cannot function without Workspaces in any modern ServiceNow implementation where agents need to work efficiently with high-volume, context-sensitive data. Customer Service agents handling cases need to see customer history, related incidents, knowledge articles, and communication channels simultaneously—something impossible with classic UI's single-record focus. IT Operations teams require real-time dashboards, alert correlation, and quick access to remediation tools integrated into their incident workflow. HR case workers need employee context, policy references, and approval workflows visible while processing requests. The business necessity is clear: without Workspaces, users spend 60-70% of their time navigating between screens instead of solving problems.

Platform administrators own workspace configuration and deployment, while developers handle custom component development when out-of-box components don't meet requirements. The admin-developer relationship here is different from classic UI development—admins can accomplish 80% of customization through declarative tools without developer intervention. Developers primarily contribute when you need custom widgets, complex data transformations, or integrations with external systems that require scripting. Platform owners set workspace strategy, define user experience standards, and manage the rollout timeline since workspace adoption represents a fundamental change in how users interact with the platform.

Recent ServiceNow releases have dramatically expanded workspace capabilities and simplified configuration. Vancouver introduced Workspace Experience, which provides better mobile responsiveness and improved component library. Washington added Advanced Work Assignment integration, allowing workspaces to intelligently route work based on agent skills and capacity. Xanadu brought significant performance improvements and new declarative actions that reduce the need for custom scripting. The configuration UI itself has been streamlined—what required multiple trips between Studio and platform configuration now happens within unified workspace configuration tools.

Where to Find and Configure It

Primary workspace configuration happens through Workspace Experience > Admin > Workspace Configuration, where you manage workspace definitions, page layouts, and component arrangements. This interface provides drag-and-drop configuration for most workspace elements without requiring code.

Advanced configuration and custom component development occurs in App Engine Studio under Experience > Workspaces, which provides the full development environment for custom widgets and complex workspace configurations. For global application workspaces, you can also access configuration through classic Studio > Workspace if needed.

View workspace configurations in action through Workspace Experience > All > [Your Workspace Name] to see the end-user experience. Monitor workspace performance and usage through System Diagnostics > Workspace Analytics. Direct table access is available at System Definition > Tables > [sys_aw_workspace] for workspace definitions and sys_aw_page for individual page configurations, though direct table editing is rarely necessary with modern configuration tools.

⚠️

Scoped application workspaces can only access tables and components within their scope unless explicitly granted cross-scope access. Global workspace configurations have full platform access but require elevated privileges to modify.

How It Works Step by Step

Workspaces operate through a client-server architecture where the workspace framework loads configuration metadata on the client side and dynamically requests data through REST APIs as users interact with components. When a user accesses a workspace, the system first evaluates their roles and workspace assignments to determine which workspace configuration to load, then renders the initial page layout based on the workspace definition stored in sys_aw_workspace. The client-side workspace engine then initializes each configured component, establishing data bindings and event handlers according to the component's configuration.

Data flow within workspaces follows a reactive pattern where components subscribe to data changes and automatically update when underlying records change. This differs fundamentally from classic UI's request-response model—instead of full page refreshes, individual components refresh independently based on their data dependencies. The workspace framework maintains client-side caches for frequently accessed data and implements sophisticated change detection to minimize server requests while keeping the interface responsive.

Component communication happens through workspace context and declarative actions rather than traditional scripting. When a user selects a record in one component, the workspace context updates automatically, triggering dependent components to refresh with related data. This context-driven approach eliminates the need for complex event handling code and ensures consistent behavior across all workspace components.

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 Execution Order

  1. User requests workspace access - system evaluates user roles against workspace role assignments in sys_aw_workspace_role_assignment
  2. Workspace configuration loads from sys_aw_workspace including default page, navigation structure, and global settings
  3. Initial page layout loads from sys_aw_page with component definitions and positioning
  4. Workspace context initializes with default values or URL parameters
  5. Each component loads its configuration from component-specific tables and establishes data bindings
  6. Components execute initial data queries through REST APIs to populate with current data
  7. User interactions trigger context updates, which cascade to dependent components automatically
WorkspaceClientScript.js
// Workspace context manipulation in custom component
(function(workspaceContext) {
    'use strict';
    
    // Listen for context changes
    workspaceContext.subscribe('record.changed', function(newRecord) {
        // Component automatically refreshes when record context changes
        if (newRecord && newRecord.sys_id) {
            loadRelatedData(newRecord.sys_id);
        }
    });
    
    // Update workspace context programmatically
    function setWorkspaceRecord(tableName, sysId) {
        workspaceContext.setRecord({
            table: tableName,
            sys_id: sysId
        });
    }
})(workspaceContext);

Real-World Scenarios

Building Customer Service Agent Workspace with Case Context

Customer service agents need to see customer history, related cases, knowledge articles, and communication logs while working on active cases. The requirement is to consolidate all customer context into a single interface that updates automatically as agents navigate between cases.

Navigate to Workspace Experience > Admin > Workspace Configuration and create a new workspace named "Customer Service Agent". Set the primary table to sn_customerservice_case and assign the sn_customerservice_agent role. Create the main page with a three-column layout: case form (left), customer context panel (center), and knowledge/communication panel (right). Add a Record Form component configured for sn_customerservice_case in the left column. In the center column, add a Related Records List component filtered to show cases where contact=current_record.contact. Add a Timeline component in the right column to display case activities and communications.

Watch for performance issues when multiple related record components load simultaneously—implement lazy loading for components below the fold. Set up Field Styles to highlight priority cases and overdue items. Configure Declarative Actions for common case operations like "Escalate to Manager" to appear in the workspace action bar rather than buried in form buttons.

Creating IT Operations Dashboard with Real-time Incident Monitoring

IT Operations teams require a unified view of active incidents, system health metrics, and quick access to remediation procedures. The workspace must provide real-time updates and allow operators to manage multiple incidents without losing context.

Create a new workspace in Workspace Configuration named "IT Operations Center" with incident as the primary table. Design a dashboard-style layout with Performance Analytics widgets showing incident volume trends and SLA compliance in the header. Add a Record List component filtered for state IN (1,2,6) AND priority IN (1,2) to display critical active incidents. Configure auto-refresh every 30 seconds for the incident list. Add a Form component that loads when operators select incidents from the list. Include a Related Records component showing Configuration Items affected by the selected incident.

Configure notifications to appear in the workspace when new P1 incidents are created using Connect Chat or workspace-aware Flow Designer actions. Set up conditional Field Styles to color-code incidents by priority and age. Be careful with auto-refresh frequency—too aggressive refresh rates can cause performance problems and interrupt user input on forms.

Implementing HR Case Worker Workspace with Employee Context

HR case workers handle employee requests requiring access to personnel records, policy documents, approval workflows, and case history. The workspace must provide secure access to sensitive employee data while maintaining audit trails.

Build the workspace using sn_hr_core_case as the primary table and assign to the sn_hr_core.case_manager role. Create a split-screen layout with the case form occupying the left two-thirds and employee context panel on the right. Configure ACLs to ensure the Employee Profile component only displays data the case worker is authorized to see based on current_record.opened_for. Add a Knowledge component filtered to HR policies relevant to the case category. Include an Approval component that shows pending approvals and allows case workers to track approval progress without leaving the workspace.

Implement Field Styles to highlight cases approaching SLA deadlines and flag sensitive cases requiring manager review. Configure Declarative Actions for common HR processes like "Request Manager Approval" and "Schedule Employee Meeting" that trigger Flow Designer workflows. Pay special attention to data privacy settings—ensure employee data components respect field-level ACLs and don't cache sensitive information longer than necessary.

The Classic Mistake

⚠️

Building workspace layouts without proper page route configuration, causing navigation failures and broken deep-linking.

The most devastating workspace mistake is configuring page components and navigation items without properly setting up the Page route field in the sys_ux_page record. Admins frequently create beautiful workspace layouts, configure all the components correctly, and set up navigation menu items that point to the workspace page. Everything appears to work during initial testing, but users immediately encounter navigation failures when they try to bookmark pages, use browser back buttons, or access deep links to specific records within the workspace.

The issue manifests as 404 errors when users navigate directly to workspace URLs, or the workspace loads but displays the wrong content entirely. ServiceNow's routing engine cannot match the URL pattern to the page configuration, so it either fails to load the page or falls back to unexpected default behavior. This happens because the Page route field must contain the exact URL pattern that the workspace will handle, including parameter placeholders for dynamic content. Without this configuration, the workspace exists in the system but has no addressable URL structure, making it essentially unreachable through standard navigation patterns.

Correct Page Route Configuration
// In the sys_ux_page record for your workspace:
// Page route field should contain URL patterns like:

// For basic workspace access:
/workspace/agent

// For record-specific workspace pages:
/workspace/agent/{table}/{sys_id}
/workspace/agent/incident/{sys_id}

// For parameterized workspace views:
/workspace/operations/{view}/{filter}
/workspace/hr/cases/{state}/{assigned_to}

// Navigation item configuration in sys_ux_navigation:
// URL field must match the page route pattern:
/workspace/agent/incident/new
/workspace/operations/dashboard/critical
💡

Always configure the Page route field before testing navigation—treat it as the workspace's address in the URL space, not an optional setting.

When to Use This vs Alternatives

Workspaces are the correct choice when you need a unified, contextual interface that brings together multiple data sources and actions for specific user roles or business processes. The key differentiator is the need for persistent context and cross-functional workflow support that spans multiple ServiceNow applications or modules.

Choose Workspaces When You Need Contextual Integration

Use workspaces when agents or operators need to work with related records across multiple tables while maintaining context—like viewing an incident alongside its configuration item, related changes, and knowledge articles. Standard list views and forms fall short here because they isolate individual records, while portals lack the deep ServiceNow integration and security model. Workspaces excel at role-based data aggregation and contextual actions that span multiple ServiceNow modules.

Use Service Portal When You Need External Access

Choose Service Portal over workspaces when your users are external to ServiceNow (customers, vendors, casual users) or when you need public-facing interfaces. Workspaces require ServiceNow licenses and assume users understand ServiceNow concepts, while portals provide controlled, simplified experiences for non-technical users. Portal pages also offer better customization for branding and marketing requirements that workspaces cannot accommodate.

Combine Workspaces with Performance Analytics for Operational Intelligence

Implement both workspaces and Performance Analytics dashboards when you need operational workspaces that include real-time metrics and trending data. Workspaces handle the transactional work and record management, while PA widgets embedded in workspace layouts provide the analytical context for decision-making. This combination is essential for IT Operations and CSM scenarios where agents need both case management capabilities and performance visibility.

Platform Interactions & Side Effects

  • Workspace configurations create entries in sys_ux_page, sys_ux_page_component, and sys_ux_lib_component_config tables, which are excluded from clone operations by default and require careful update set management.
  • ACL evaluation occurs on every workspace component load, with failed ACL checks causing silent component failures rather than obvious access denied errors—components simply don't appear in the workspace layout.
  • Workspace page loads trigger Client Script execution for embedded forms, but onChange and onLoad events behave differently because forms are loaded in workspace context rather than standalone frame context.
  • Business Rules fire normally for workspace form submissions, but the current.operation() method may return unexpected values due to workspace-specific update mechanisms.
  • Workspace navigation creates entries in the browser history that include encoded state parameters, causing URL lengths to exceed 2000 characters and potentially breaking bookmark functionality in some browsers.
  • Performance Analytics widgets in workspaces bypass normal widget caching and execute queries on every workspace load, potentially impacting database performance for complex dashboards.
  • Workspace accessibility compliance requires that all component configurations include proper aria-label and role attributes, or automated accessibility scanning tools will flag the workspace as non-compliant.
  • Notification preferences set in sys_user_preference for email digests and alerts apply to workspace-generated notifications, but workspace-specific notification settings override user preferences for in-app notifications.
  • Workspace component loading writes debug entries to syslog_app_scope when components fail to render, but these entries are only visible when glide.ui.workspace.debug is set to true.
  • Session state for workspace layouts is stored in sys_user_session and persists across login sessions, causing workspace customizations to appear for users even after their preferences are reset or their profiles are modified.

Debugging and Troubleshooting

The most common workspace failures manifest as blank pages, missing components, or navigation loops where users click workspace links but land on unexpected pages. Administrators typically see these issues reported as "the workspace won't load" or "some sections are missing," while users experience either completely empty workspace layouts or partial content that loads inconsistently. The underlying cause is usually component configuration errors, ACL failures, or page route conflicts that prevent proper workspace assembly.

For debugging workspace issues, start with System Logs > All and filter by Source: Workspace to find component loading failures. Enable workspace debugging by setting glide.ui.workspace.debug=true and glide.ui.workspace.component.debug=true to generate detailed component loading logs. Browser developer tools show network failures for component API calls, typically returning 403 errors for ACL violations or 404 errors for missing component definitions. Look for JavaScript console errors containing "workspace component failed to load" or "route resolution failed" messages that pinpoint specific configuration problems.

Navigation issues typically generate "Page not found" errors or redirect loops that you can trace through the sys_ux_navigation configuration and page route matching in the sys_ux_page records. The Transaction Log shows database queries for workspace component configuration loading, helping identify when components fail to load due to missing related records or malformed JSON in component configuration fields.

Diagnostic Checklist:

  • Verify the Page route field in sys_ux_page matches the actual URL pattern being accessed
  • Check component ACLs by impersonating the affected user and testing component access directly
  • Validate JSON syntax in all Configuration fields within sys_ux_lib_component_config records
  • Review navigation item URL fields for typos or missing parameters in sys_ux_navigation
  • Test workspace loading with an admin account to isolate ACL-related component failures
  • Clear user session data by deleting sys_user_session records to reset workspace state caching
  • Enable browser developer tools to monitor XHR requests for component loading failures and 40x response codes

Quick Reference

  • Workspace pages can contain maximum 50 components per layout, with additional components silently ignored during page assembly
  • Component configuration JSON fields in sys_ux_lib_component_config support maximum 8,000 characters before truncation occurs
  • Workspace URLs with more than 2,000 characters fail to bookmark correctly in Internet Explorer and some mobile browsers
  • Page route patterns support maximum 10 URL parameters using {param} syntax before routing resolution fails
  • Component loading timeout is hardcoded to 30 seconds and cannot be modified through system properties
  • Workspace session state persists for 24 hours after last activity, regardless of the standard session timeout settings
  • Navigation items in sys_ux_navigation with Order values above 1000 are excluded from workspace navigation rendering
  • Embedded forms within workspace components automatically inherit the workspace's responsive breakpoints, overriding individual form view configurations
  • Performance Analytics widgets in workspaces execute queries synchronously during page load, blocking workspace rendering until all widgets complete or timeout at 45 seconds
  • Clone operations exclude workspace configurations by default—sys_ux_* tables must be manually included in clone data preservers to maintain workspace functionality across instances