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.
