What This Table Is
The item_option_new table defines variables for Service Catalog items. Each record represents one input field that appears on a catalog item's request form — text boxes, dropdowns, checkboxes, reference fields, and more complex variable types. When users order catalog items, they're filling out forms built from these variable definitions.
This table lives in the Service Catalog module and supports the end-to-end catalog ordering process. Variables collect user input during ordering, validate that input, and store the responses in sc_item_option_mtom records. The variable definitions here control form layout, validation rules, and how responses get processed by catalog workflows.
The table extends sys_metadata, making variables part of the application structure. Variables belong to specific catalog items through the cat_item reference field. Variable sets (item_option_new_set) can contain multiple variables for reuse across catalog items.
Large enterprises typically have hundreds to thousands of variable records. Most queries filter by cat_item or variable_set, which are indexed for performance. The order field controls display sequence on forms, and most queries include an ORDER BY clause on this field.
When You'll Script Against This Table
You'll script against item_option_new in Catalog Client Scripts (to show/hide variables dynamically), Business Rules on catalog items (to create or modify variables programmatically), and Script Includes that generate catalog forms. Catalog UI Policies also reference this table to control variable visibility and mandatory status based on other field values.
Access requires the catalog_admin role for write operations. Read access is typically available to catalog_manager and itil roles. Client scripts run in a limited scope and can only read variable definitions, not modify them.
Common scripting patterns:
- Query variables for a catalog item to build custom request forms or validation logic
- Copy variables from one catalog item to another during bulk catalog administration
- Dynamically modify reference qualifiers or choice lists based on user selections
- Generate variable documentation or audit reports for catalog governance
- Validate variable configurations during catalog item deployments or updates
- Create variable sets programmatically for consistent catalog item templates
- Update default values or attributes across multiple variables during catalog maintenance
Table Gotchas
The type field uses internal values like 'glide_list' and 'reference' that don't match the UI labels. Always check sys_choice records for the item_option_new.type field to get the mapping.
Variables can belong to either a catalog item (cat_item field) OR a variable set (variable_set field), but not both. Always check which field is populated when writing queries.
- The
attributesfield stores XML configuration that controls advanced variable behavior. Modifying this requires understanding the ServiceNow variable attribute schema. - Reference qualifiers in the
reference_qualfield can reference other variables using the syntaxjavascript:'variable_name=' + current.variables.variable_namefor dynamic filtering. - The
orderfield accepts decimal values (100, 200, 150) to allow insertion between existing variables without reordering everything.
Variables attached to inactive catalog items still appear in queries. Always join to sc_cat_item and check the active field if you need currently available variables only.
- Choice list variables store their options in the
question_choicetable, not as encoded values in the variable record itself.
Enjoying this? Get one deep-dive per week.
Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.
Related Tables
The sc_cat_item table defines the catalog items that variables belong to. Most variable queries join these tables to filter by catalog category, item status, or availability. The item_option_new_set table creates reusable variable collections — variables can belong to sets instead of directly to catalog items, allowing standardization across multiple catalog offerings.
The sc_item_option_mtom table stores user responses to variables during catalog ordering. Each record links a requested item (sc_req_item) to a variable definition and the user's input value. When building approval workflows or fulfillment automations, you'll often query both tables to get variable definitions and their corresponding user responses.
Choice-type variables connect to the question_choice table for their option lists, while reference variables point to standard ServiceNow tables through their reference field. Variable visibility and behavior rules are controlled by records in catalog_ui_policy that reference specific variable sys_ids.