What This Table Is
The sys_import_set table serves as the control record for data import operations. When you import data through scheduled imports, web services, or file uploads, ServiceNow creates one record here to track that import session. The actual imported data lands in dynamically created tables named with the pattern u_import_set_[sys_id] where the sys_id comes from this table.
This table belongs to the Integration module and supports the entire import-transform-load process. It doesn't extend any other table and serves as the parent for tracking import set rows through the sys_import_set_row table. Each import set row references back to its parent import set, creating the hierarchy needed to track individual record processing within larger data loads.
Import sets follow a strict lifecycle: Loading while data arrives, Loaded when complete, then Processing during transformation, and finally Processed when transform maps have run. Understanding this state progression is essential because you can't transform data from a set that's still in Loading state.
In large enterprises, this table grows rapidly—major integrations can create thousands of import sets daily. The platform automatically cleans up old import sets based on retention policies, but the constant creation and deletion means frequent table maintenance. Performance degrades when querying across date ranges without proper indexing on sys_created_on or state.
When You'll Script Against This Table
You'll primarily script against sys_import_set in Scheduled Jobs for automated import processing, Transform Scripts to modify data during processing, and Business Rules that fire on import set state changes. Import Set Business Rules commonly trigger on after insert and after update to send notifications when imports complete or fail.
Access requires the import_set_loader role for basic operations, while import_admin provides full control over import sets and transform maps. REST API access follows standard table ACLs but requires explicit permission for automated external systems posting data.
Common scripting patterns:
- Query for failed imports to trigger retry logic or administrator alerts
- Monitor import set state changes to orchestrate downstream processing
- Archive completed import sets by copying data to long-term storage tables
- Generate import statistics and success metrics for integration dashboards
- Clean up orphaned import set tables when their control records are deleted
- Programmatically trigger transform map execution on completed import sets
- Validate import set data before processing by checking row counts and field patterns
Table Gotchas
The table_name field contains the actual import set table name but without the u_ prefix. When querying the dynamically created table, you must prepend u_ to the stored value.
Import sets in 'Loading' state cannot be transformed even if they contain data. Always check state equals 'loaded' before triggering transform maps programmatically.
- The
run_timefield stores duration in milliseconds but displays in human-readable format. Scripts must parse the raw integer value for calculations. - Deleting an import set record doesn't automatically drop its associated table. This creates orphaned tables that consume database space until manually cleaned.
- The
row_countfield updates asynchronously during loading. Don't rely on it for real-time monitoring—query the actual import set table instead.
Large import sets (>10,000 rows) can cause transform timeouts. The platform may need batch processing or background scheduling for transforms on oversized imports.
- Business Rules on this table fire during system import operations. Poorly written rules can cascade and impact all data loading performance across the instance.
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 sys_import_set_row table tracks individual record processing within each import set. Every row in the dynamically created import table gets a corresponding entry in sys_import_set_row that references back via the import_set field. This relationship enables tracking transform success and failure at the individual record level.
Transform maps (sys_transform_map) and data sources (sys_data_source) connect to import sets through the source configuration. The sys_transform_history table logs each transform execution, linking import sets to their processing results. Import set audit logs in sys_audit capture state changes and provide compliance trails for data loading operations.
Scheduled imports create relationships with sys_trigger records that store execution schedules and next run times. When troubleshooting import failures, you often need to cross-reference between import sets, their data sources, transform maps, and the target tables where processed data ultimately lands.