How to Create and Extend Tables in ServiceNow?
Tables are the foundation of every application and process in ServiceNow. Whether you’re building a new app or customizing an existing one, you’ll often need to create your table or extend an existing one.
In this chapter, you’ll learn how to create a table in ServiceNow, how table extension works, and how to choose the right approach depending on your needs. It includes creating custom tables, importing set tables, and extending base tables, such as Task or User.
Once you’re comfortable with these options, you’ll be able to design data structures that are scalable, reusable, and aligned with ServiceNow’s architecture.
How to Create a New Table in ServiceNow?
To create a table in ServiceNow:
- Navigate to System Definition → Tables

- Click New

- Enter the following:
- Label: This becomes the display name (e.g., Employee Tracker)
- Name: Auto-generated system name (e.g., u_employee_tracker)
- Extends Table: Select if it should inherit from another table (optional)
- Application: Choose which app this table belongs to

- Click Submit
It creates a table with basic fields. You can now begin adding custom fields, setting permissions, and building forms.
Creating a new table generates a dedicated menu module, list layout, and form by default.
Understanding Table Creation Options
When you create a table in ServiceNow, you’ll be prompted to choose whether it should:
- Stand alone (not extend another table)
- Extend from a base table like task, cmdb_ci, or sys_user
This decision impacts:
- What fields are automatically included
- How the table interacts with existing workflows
- Which features (like SLAs or assignments) are inherited
Choosing the right base table—or none at all—is key to long-term maintainability.
How to Create a Custom Table in ServiceNow?
A custom table is any table you define that does not come out of the box with ServiceNow.
When naming your custom table:
- ServiceNow prefixes it with u_ (e.g., u_project_tasks)
- The label is what users see in the menu and list view
- You can add fields, reference other tables, or attach business rules
Use custom tables when:
- Your data doesn’t belong in existing tables
- You’re building a standalone application
- You need complete control over structure and relationships
After the table is created, manage it under System Definition → Tables, where you can modify fields, views, or scripts.
How to Create an Import Set Table in ServiceNow?
Import Set tables are temporary tables used to stage data from external sources before moving it into target tables.
To create one:
- Navigate to System Import Sets → Load Data

- Choose a file to upload

- On the import screen, select Create a new table or choose an existing one
- Name the Import Set table (it will be prefixed with u_)

The system creates a temporary table where records are loaded and transformed before being inserted into a production table, such as incident or cmdb_ci.
Use import set tables when working with data imports via Excel, CSV, or integrations.
How to Extend an Existing Table?
Table extension allows you to reuse existing fields, logic, and behavior from a parent table. When you extend a table, your new table inherits all non-custom fields and scripts from the parent.
To extend a table:
- While creating the table, fill the Extends Table field
- Select a parent table (like task or sys_user)
- Submit the form
After extension:
- Your table inherits all parent table fields
- Business rules or scripts on the parent may apply
- You can still add custom fields unique to the child table
Common examples:
- Extend the Task table to build case-management or approval apps
- Extend the User table for role-specific user profiles or audit tables
This is known as table extension in ServiceNow, and it’s a core part of platform architecture.
Extension Models in ServiceNow
ServiceNow supports extension models to organize how data flows across applications:
Extension Model | Example | Used When |
---|---|---|
Extend Task | incident, problem, change | You need assignment, SLA, and workflow functionality |
Extend User | Custom user profiles | You want to track additional user-related data |
Extend cmdb_ci | Specific CI types like servers, apps | You need new CI classes in the CMDB |
Standalone Table | Custom applications | You need full control and no inheritance |
Choosing the right model ensures that your app works with platform features like reporting, ACLs, and UI actions.
When to Extend vs. Create from Scratch
Extend a Table When | Create a New Table When |
---|---|
You need built-in functionality (e.g., task has workflows) | Your app doesn’t align with existing structures |
Your data shares common fields with existing modules | You want to design a fully custom data structure |
You want inherited fields like assigned_to or state | You don’t want unrelated inherited fields |
Understanding this decision early on saves hours of refactoring later.
Best Practices for Table Creation
- Use meaningful labels and stick to naming conventions
- Avoid extending tables unless inheritance is truly needed
- Don’t create multiple tables for the same type of data
- Document the purpose of each table in the description
- Use custom tables for standalone use cases, and extensions for built-in functionality
Following these practices keeps your system scalable, maintainable, and aligned with ServiceNow standards.
What’s Next?
Now that you know how to create and extend tables in ServiceNow, it’s time to explore what goes inside them. In the next chapter, we’ll dive into field types and dictionary entries—so you can confidently define, manage, and control the data your tables hold.
Next TopicJoin our newsletter: Get daily update on Salesforce career insights & news!
Join Now!
Need more support?
Get a head start with our FREE study notes!
Learn more and get all the answers you need at zero cost. Improve your skills using our detailed notes prepared by industry experts to help you excel.