Domain assignment

By default, domain separation adds a domain field to the Task [task] and Configuration Item [cmdb_ci] tables and their extensions.

You can also extend domain separation to any new tables you create by adding a sys_domain field to the table's dictionary definition. By default, the system only domain separates platform and baseline application tables where appropriate.

Warning: ServiceNow does not recommend domain separating platform tables (any table with the sys_ prefix such as the Dictionary Entry [sys_dictionary] and Dictionary Entry Override [sys_dictionary_override] tables) because it can produce unexpected results.
The value of the sys_domain field contains the domain assigned to the record by any of the following:
  • Company to which the user belongs
  • Business rule when creating record
  • Module used when creating record
  • Form template used when creating record
  • Domain of the parent record
  • Domain assigned to User record
  • Domain of the user who creates it

Domain separation restrictions:

The system prevents the following tables from being domain separated:

  • Access Control [sys_security_acl]
  • Script Include [sys_script_include]
  • System Property [sys_properties]
  • Security Black/Whitelist Entities [sys_security_restricted_list]
  • Dictionary Entry [sys_dictionary]
  • Dictionary Entry Override [sys_dictionary_override]

User-based assignment

Administrators can quickly assign users to a domain by assigning them to a company. After users are assigned to a domain, records automatically inherit the user's domain.

Administrators can automatically assign users to domains:

  • Based on a company record
  • Based on a default domain

For example, assigning Bow Ruggeri to the ACME company automatically assigns him to the ACME domain. Assigning Don Goodliffe to the Initech company automatically assigns him to the Initech domain. Any records they create are automatically added to the appropriate domain.

Figure 1. Adding a user to a domain by setting the company

Business-rule-based assignment

Administrators can use a business rule to automatically set a domain value when creating a record. The business rule must set a value in the sys_domain field. Administrators must ensure there is a sys_domain column available for the record's table.

Module-based assignment

Administrators can use the sysparm_domain URL parameter to automatically assign new records to a particular domain from a module. Administrators must create a module with an Argument value of: sysparm_domain=sys_ID of domain.

Template-based assignment

Administrators can use a form template to automatically assign new records to a particular domain. Administrators must add the sys_domain field to the form and select a domain value. For example, setting the sys_domain field to TOP/ACME domain automatically assigns all records from this template to the TOP/ACME domain.

Table-class-based assignment

By default, related records inherit the domain of the parent record. For example:

  • A change task record inherits the domain of the parent change request record.
  • A problem record inherits the domain of the parent incident record.

Record-based assignment

If no other domain conditions apply, a record automatically inherits the domain of the user who creates it.