Scoped Applications in ServiceNow: Why They Matter and How to Work with Them

Scoped applications isolate your customisations inside a private namespace, preventing conflicts with other apps and with ServiceNow base system upgrades. If you are building anything intended to be packaged or distributed — or just want clean, upgrade-safe code — scoped apps are the right approach.

What is a scoped application?

A scoped application is a container for related customisations — tables, Business Rules, Script Includes, UI components — grouped under a unique namespace identifier (e.g., x_mycompany_myapp). Everything inside the scope is isolated from the global namespace and from other scopes.

The alternative is the global scope, where all traditional customisations live. Global scope customisations can conflict with each other and with base system records during upgrades.

The namespace

Every scoped app has a unique namespace prefix. Custom tables, Script Includes, and other artifacts in the scope are automatically prefixed: a table named request in scope x_nowspec_myapp becomes x_nowspec_myapp_request. This prevents naming collisions with base system tables and other apps.

Application Access settings

Every table inside a scoped app has Application Access settings that control whether other scopes can interact with it:

  • Accessible from — All application scopes, This application scope only, or Global
  • Can create — Allow other scopes to insert records
  • Can read — Allow other scopes to query records
  • Can write — Allow other scopes to update records
  • Can delete — Allow other scopes to delete records

By default, scoped tables are not accessible from other scopes. This is the most common source of confusion when integrating scoped apps — a Business Rule in global scope cannot read a scoped table unless you explicitly allow it.

Scripting across scopes

Script Includes in a scoped app are only callable from within that scope by default. To make a Script Include callable from global or other scopes, set Accessible from to All application scopes on the Script Include record.

// In global scope — this FAILS if the Script Include is scope-restricted
var myUtil = new x_nowspec_myapp.MyUtil();

// Works only if MyUtil has "Accessible from: All application scopes"

Creating a scoped application

  1. Navigate to System Applications > Studio
  2. Click Create Application
  3. Enter a name — ServiceNow generates the namespace prefix automatically
  4. Choose scope type: Application (full scoped app) or Global (not scoped)

All subsequent development in Studio happens inside the scope automatically.

Update Sets and scoped apps

Scoped app changes are captured in Update Sets just like global changes. However, scoped apps also support Application Files — a cleaner packaging mechanism that captures all app artifacts together. For distributable apps, use Application Files rather than Update Sets.

When to use a scoped app

  • Any new custom application you are building from scratch
  • Any customisation intended to be packaged and deployed to multiple instances
  • When you want clear ownership boundaries between different development teams

For simple one-off Business Rules or field modifications on base system tables, global scope is still acceptable — scoping adds overhead that is not always warranted for small changes.

Want the complete reference?

This article is part of the NowSpectrum knowledge library. Browse all products for cheat sheets, interview prep, and deep-dive reference guides.

Browse All Products →