Forms & Lists

Add a Field to an Existing Table

Custom fields let you capture the data your business actually needs instead of forcing everything into ServiceNow's out-of-box schema. This guide walks you through adding a field to an existing table and configuring it properly.

Why you need custom fields

Out-of-box tables rarely match your organization's exact data requirements. You need to track budget codes on incidents, store equipment serial numbers on requests, or add approval flags to change records. Without custom fields, teams either stuff data into inappropriate existing fields (breaking reporting) or maintain parallel spreadsheets (defeating the purpose of having a system of record). Platform admins and developers end up building custom fields to bridge this gap between what ServiceNow provides and what the business actually needs.

How table schema changes work

ServiceNow stores all field definitions in the Dictionary [sys_dictionary] table. When you add a field through the Tables interface, you're creating a dictionary record that tells ServiceNow what data type to expect, how to validate it, and where to display it. The field gets a u_ prefix automatically — this marks it as customer-created and protects it during ServiceNow upgrades. You configure the basics (name, type, label) first, then layer on business logic through attributes like mandatory rules, default values, and reference qualifiers.

Making fields production-ready

A basic field captures data — a production field enforces data quality. Once your field works, add validation through field-level dictionary attributes, reference qualifiers to filter dropdown options, and choice lists for standardized values. Consider access controls if the field contains sensitive data, and add it to relevant list views and reports so people can actually use the data you're collecting.

Before you start

  • admin role or personalize_dictionary and personalize_form roles
Sourdough
Chrome Extension

Sourdough: ServiceNow Monitoring and Analytics

A Chrome extension for ServiceNow Admins and Developers with essential tools, analytics, graphs and monitoring features.

Instance HealthGraphs & ChartsAPI HealthDeveloper ToolsQuick SearchInstance Switcher
Add to Chrome

Free to install. Pro $5/month after a 14-day no-card trial.
Pro requires the ServiceNow admin role. Upgrade inside the extension.

Overview
Tasks
CMDB
API
Metrics
Monitor
Internals
Instance:sourdoughdev·Version:Yokohama
Instance StateONLINE
System StatusFully Operational
Session Timeout90 minutes
Logged-In Sessions2 (20 active)
Build Nameyokohama-12-18-2024_p1
IP Address10.159.128.43
Instance HealthHealth Score: 90%
🔥 5dSourdough (Chrome Plugin)Dark Mode

Step by step

1

Navigate to the Tables module

Go to System Definition > Tables. This shows all tables in your instance — base system tables, custom tables, and extended tables. Use the search box to find your target table quickly rather than scrolling through hundreds of entries.

TIP

Pin this module to your favorites if you're doing schema work regularly.

2

Open your target table record

Click on the table name (not the checkbox) to open the table record. You'll see the table's metadata including its name, extends relationship, and access controls. The real work happens in the related lists at the bottom.

3

Access the Columns tab

Scroll down to the Columns related list and click the tab to view existing fields. This shows all fields on the table, including inherited fields from parent tables. You'll see system fields (no prefix), customized system fields, and any existing custom fields (u_ prefix).

4

Create the new field

Click New to create a field. Fill in Column label (the display name users see) and Column name (the database field name). ServiceNow automatically adds u_ to your column name — don't type it yourself. Select the Type based on your data: String for text, Integer for whole numbers, Boolean for true/false, Reference for lookups to other tables, or Glide Date Time for timestamps.

5

Configure field constraints

Set Max length for string fields (255 is a safe default unless you need more). Check Mandatory if the field is required for valid records — but be careful, this applies to all existing records too. Set Default value if you want new records to start with a specific value.

6

Set reference field specifics

If you chose Reference type, select the Reference table in the Reference specification section. This creates a dropdown that lets users select records from the target table. Leave Reference qual blank initially unless you need to filter the available choices.

TIP

Reference fields perform better when the target table has good indexing on display fields.

7

Save and add to forms

Click Submit to create the field. ServiceNow adds it to the table schema immediately, but it won't appear on forms until you add it. Right-click any form header, select Configure > Form Layout, and drag your new field from the available fields list to where you want it displayed.

Best practices

  • Choose your field name carefully — the u_ prefix gets added automatically and you cannot rename fields after creation without losing data.

  • Start with a longer Max length than you think you need for string fields — expanding it later is safe, but shrinking it can truncate existing data.

  • Don't set Mandatory on fields being added to tables with existing records unless you also provide a Default value — otherwise existing records become invalid.

  • Use Reference fields instead of string fields for any data that exists in another ServiceNow table — this prevents typos and enables proper reporting relationships.

  • Test your field on a few records before adding it to all relevant forms and views — changing field types after people start using them is painful.

Test Your Knowledge

Quick 3-question quiz — see how your ServiceNow skills stack up.

Question 1 of 3Performance

A list view on a table with millions of records is slow. Best fix?

Select an answer to continue