Import Sets Architecture
Import Sets are ServiceNow's structured data ingestion pipeline. Learn the staging-then-transform architecture, why it exists, the Service Graph Connector as the CMDB-preferred path, and the Import Set API for programmatic ingestion.
cmdb_ci_server vs cmdb_ci_computer), and
field types and the dictionary (Part 1 Topic 2) to understand why Transform
Maps must coerce data types before writing. The staging table is temporary; the target table
is a real Part 1 table in the live CMDB.
Why Import Sets Exist
When external data arrives into ServiceNow — whether from a CSV file, a database, an API, or a discovery scanner — you almost never want to write it directly into your live tables. Why? Because external data is messy: column names don't match, values are formatted differently, duplicate records exist, and some fields need transformation before they make sense in ServiceNow.
Import Sets solve this by creating a two-stage pipeline: first, load raw data into a temporary staging table (the "Import Set table"), then run a Transform Map to clean, map, and push the data into the target live table. If something goes wrong, you fix the transformation logic and re-run — the raw data is still in the staging table, untouched.
The Import Set Pipeline — Step by Step
Understanding the full pipeline is essential — the exam tests each step independently.
Step 1 — Data Source
A Data Source record defines where data comes from and how to retrieve it. Types include: File (CSV/Excel/XML uploaded or retrieved via SFTP), JDBC (direct database query), REST (fetch JSON/XML from an API), LDAP, and more. The Data Source is configured in System Import Sets → Data Sources.
Step 2 — Import Set Table (Staging)
When a Data Source is loaded, ServiceNow creates a temporary staging table — the Import Set table. This table has one column for each column in the source data. All rows are stored here first, untransformed, in their raw form. The table is named with the pattern u_imp_[something] or a name you specify.
Each load run creates one sys_import_set header record (the "Import Set") and multiple sys_import_set_row records — one per row of source data. These are what you see in the Import Set list view.
Step 3 — Transform Map
A Transform Map defines how columns in the staging table map to fields in the target table, and what transformation logic to apply. It runs after the staging table is populated. We cover Transform Maps in depth in Topic 2.
Step 4 — Target Table
The final destination. For non-CMDB data, records are inserted or updated in the target table based on the Transform Map's coalesce and field map settings. For CMDB data, records go through the IRE (Identification and Reconciliation Engine) before landing in the cmdb_ci hierarchy.
Service Graph Connectors — The CMDB-Preferred Import Path
For CMDB data specifically, ServiceNow recommends using Service Graph Connectors rather than building custom Import Set pipelines. A Service Graph Connector is a certified, pre-built integration that loads CI data from a specific source system (AWS, Azure, Qualys, SCCM, etc.) into the CMDB via the IRE.
Why are they preferred? Three reasons:
- IRE integration — Service Graph Connectors feed data through the IRE automatically, ensuring proper duplicate detection, class identification, and reconciliation. A raw Import Set transform that inserts directly to
cmdb_cibypasses IRE entirely. - Payload format — Connectors use the CMDB API's structured payload format, which carries CI class information, identification attributes, and relationship data together — not just flat field values.
- Source attribution — The IRE needs to know which "data source" provided which CI data so it can apply Reconciliation Rules (which source wins when two sources disagree). Service Graph Connectors tag their data with a source identifier automatically.
cmdb_ci_server,
you bypass the IRE. That means no duplicate detection — you could create two CI records for the
same physical server that came from different sources. No reconciliation — if Discovery and your
CMDB import both have the same server with different OS versions, you don't know which wins.
No relationship management — CI relationships are not automatically maintained.
Service Graph Connectors solve all of this by routing through the IRE.
Service Graph Connector Architecture
Under the hood, a Service Graph Connector:
- Fetches data from the source system (via REST, file, JDBC, etc.)
- Loads it into an Import Set staging table
- Runs a Transform Map that produces a structured CMDB payload
- Submits the payload to the CMDB Identification and Reconciliation API
- The IRE processes the payload — identifies, reconciles, and writes to the appropriate CI table
Import Set API — Programmatic Import
The Import Set API (/api/now/import/{staging_table}) allows external systems to POST data directly into a ServiceNow staging table via REST, which then triggers the associated Transform Map automatically.
This is how external systems can push data into ServiceNow without needing to upload a file: the external system makes an HTTP POST request with the data as a JSON payload, ServiceNow receives it into the staging table, and the transform runs automatically.
| Method | How Data Arrives | Transform Trigger | Best For |
|---|---|---|---|
| File upload (manual) | User uploads CSV/Excel | Manual or scheduled | One-time or manual loads |
| Scheduled Data Source | SN pulls from file share or URL | Scheduled job | Recurring batch loads |
| Import Set API (POST) | External system pushes JSON | Automatic on receive | Real-time event-driven loads |
| Service Graph Connector | Connector fetches from source | Scheduled or triggered | CMDB CI data |
Import Set States
Each row in an Import Set staging table has a state field that tracks what happened during the transform. These states appear in the import set run results and are critical for diagnosing import problems.
| State | Meaning |
|---|---|
| Inserted | A new record was created in the target table |
| Updated | An existing record was found and updated (via coalesce) |
| Ignored | Row matched an existing record but no fields changed — no update needed |
| Error | The transform failed for this row — check error message for details |
| Skipped | Row was deliberately skipped by a transform script (onBefore returned IGNORE) |
MID Server Role in Imports
When ServiceNow needs to pull data from a source that is inside your corporate network (a database, a file share, an LDAP directory) and not publicly accessible from the internet, it uses a MID Server (Management Instrumentation and Discovery server).
The MID Server is a Java agent installed inside your network. It acts as a proxy: the ServiceNow instance tells the MID Server "go fetch data from this JDBC database using these credentials" and the MID Server does so from inside the network, then returns the data to the instance.
- MID Servers are used for: JDBC data sources, LDAP imports, file share access, Discovery
- They authenticate to internal systems using credentials stored in ServiceNow's Credential records
- MID Servers are configured in MID Server → Servers
- Data Sources that require a MID Server specify which MID Server (or cluster) to use
Common Exam Traps — Import Sets
- Import Sets use a two-stage pipeline: staging table first, then Transform Map to target table
- Import Set staging tables grow unboundedly — always configure cleanup/retention
- Service Graph Connectors are the preferred method for CMDB CI data — they route through IRE
- Direct Transform Map writes to cmdb_ci tables bypass the IRE — causes duplicates and reconciliation failures
- Import Set API (
POST /api/now/import/{table}) triggers transform automatically on receive - Import row states: Inserted / Updated / Ignored / Error / Skipped — Ignored means no change needed
- MID Server required for JDBC, LDAP, or file shares inside the corporate network
Practice Questions
4 questions · Select an answer to see the explanation immediately.
What is the correct two-stage pipeline for the Import Set process?
B is correct. Import Sets use a two-stage pipeline: data loads into a staging table first, then a Transform Map processes and moves it to the target table. This staging approach allows data inspection and transformation before it reaches production tables. A skips the staging stage. C describes IRE, not Import Sets. D describes configuration, not the runtime pipeline.