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
- Navigate to System Applications > Studio
- Click Create Application
- Enter a name — ServiceNow generates the namespace prefix automatically
- 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.