ServiceNow Data Dictionary

The Data Dictionary is ServiceNow's master reference for every table and field in the system. It defines what each field is, what type of data it stores, and how it behaves. Think of it as the blueprint that tells ServiceNow exactly how to build and display every piece of information on the platform.

What the Data Dictionary Does

When an administrator creates a new field on a table, ServiceNow stores that field's definition in the Data Dictionary. The dictionary answers three questions for every field:

  • What is this field called? (Name and label)
  • What type of data does it hold? (String, Integer, Reference, Date, etc.)
  • How should it behave? (Mandatory, read-only, maximum length, default value)

Where the Data Dictionary Lives

Administrators access the Data Dictionary at System Definition > Dictionary in the navigation menu. Alternatively, right-clicking any field label on a form and selecting "Show Dictionary" jumps directly to that field's dictionary entry.

Reading a Dictionary Entry

Each row in the Data Dictionary represents one field in one table. The most important columns in each entry are:

Data Dictionary Entry for: Incident.Priority Field
──────────────────────────────────────────────────────────
Table:          incident
Column name:    priority
Type:           Integer
Max length:     40
Default value:  3
Mandatory:      false
Read-only:      false
Display label:  Priority
──────────────────────────────────────────────────────────

Column Name vs. Display Label

Every field has an internal column name (used in scripts and URLs) and a display label (shown to users on the form). The column name for the "Short Description" field is short_description. Scripts always reference the column name, not the display label.

Field Types Defined in the Dictionary

The Data Dictionary supports dozens of field types. The most frequently encountered ones are:

String (char)

Stores text up to 255 characters by default. Administrators increase the maximum length in the dictionary entry for fields that need longer text.

Integer

Stores whole numbers. The Priority field stores 1, 2, 3, or 4 as integers. Scripts compare integers numerically, making sorting and conditions precise.

Reference

Links this field to a specific table. The "Assigned To" field has type Reference, pointing to the sys_user table. When a user clicks the field, ServiceNow searches the sys_user table for matching names.

Glide Exact Date Time

Stores a full date and time value down to the second. The "Opened At," "Resolved At," and "Closed At" fields use this type. ServiceNow uses these values to calculate SLA times and generate timeline reports.

Boolean

Stores true or false. Displays as a checkbox on forms. The "Active" field on a user record is boolean — checked means active, unchecked means disabled.

Choice

The field value comes from a fixed list of options. The dictionary entry for a choice field links to the sys_choice table, which holds all available options for that field.

Choice Lists and the sys_choice Table

When a field is type Choice, its dropdown options live in a separate system table called sys_choice. Administrators add, rename, or remove choices by navigating to System Definition > Choice Lists. Every choice has a label (what users see) and a value (what the database stores).

sys_choice entries for Incident.State field:
───────────────────────────────────────
Label          │ Value
───────────────────────────────────────
New            │ 1
In Progress    │ 2
On Hold        │ 3
Resolved       │ 6
Closed         │ 7
───────────────────────────────────────

Scripts check the stored value (number), not the display label (word). A script that checks state == 6 is checking for "Resolved" — not the word "Resolved" itself. This distinction matters when writing business rules or flow conditions.

Default Values

The dictionary entry for each field can specify a default value. When a new record is created, fields with defaults populate automatically. For example, a new incident might default to State = New (1) and Priority = 3 - Moderate. Users can change these, but defaults speed up data entry and enforce consistency.

Calculated Fields

Some fields have a calculated value. Instead of storing a value that users type in, the field runs a script and displays the result. For example, a "Days Open" field might calculate the number of days between the opened date and today's date. Calculated fields are read-only because the system generates the value automatically.

Why the Data Dictionary Matters for Developers

Every script in ServiceNow uses field column names from the Data Dictionary. When a developer writes a GlideRecord script to query incidents, they reference field names exactly as defined in the dictionary — current.short_description, current.priority, current.assigned_to. Mistyping a column name causes the script to fail silently or produce wrong results. Checking the Data Dictionary first prevents these errors.

Leave a Comment

Your email address will not be published. Required fields are marked *