ServiceNow Data Migration and Import Sets: Guides and Services
What Data Migration and Import Sets Cover
Data Migration is the process of moving data from a legacy system into ServiceNow. Import Sets is the tool that makes this possible: it provides a staging area where data lands first, transformation rules that clean and reshape it, and validation checks before data writes to the live CMDB or incident tables.
The module handles the common challenges: field mapping (legacy field X maps to ServiceNow field Y), data type conversion (text to number, date formats), duplicate detection, and rollback if something goes wrong. It reduces the manual work of migration and improves data quality significantly.
Guides in This Section Grouped by Purpose
Planning a Migration: Audit your legacy system data, identify what to migrate, define success criteria, and plan the cutover. Learn sequencing: which systems migrate first? Plan dependencies between systems.
Technical Setup: Configure import sets, source data formats (CSV, API, database), and transformation rules. Learn to write field maps that handle messy real-world data. Test transformations before running them against production data.
Data Quality: Validation strategies, duplicate handling, and reconciliation. Know what “clean” looks like before you import. Document acceptance criteria: what do we accept, what do we reject or fix?
Execution and Rollback: Run the migration in stages, test thoroughly, and plan for rollback if critical data is wrong. Learn how to verify that migrated data is correct and complete. Keep the legacy system available for reference during the transition period.
How Oblytech Supports Data Migration
We audit your legacy data to understand its shape and quality. We design the transformation rules that will turn messy legacy data into clean ServiceNow records. We run test migrations first, validate the results, and iterate until data quality meets your standards.
We handle the technical setup: creating import set tables, writing transformation scripts, and configuring data load rules. We also manage reconciliation: after the migration runs, we verify that data counts match expectations and spot any obvious errors or anomalies.
We plan the cutover carefully: staging migrations, fallback procedures, and communication to stakeholders. We do not migrate data without a rollback plan in place. Your team needs to be able to recover if something goes wrong.
Common Data Quality Issues
Legacy systems often have incomplete data: optional fields are frequently blank. ServiceNow might require those fields. We work with you to decide: do you populate defaults, ask users to fill in data after migration, or mark records as incomplete until humans can review them?
Duplicate records are another common problem. The legacy system might have customer records with different spellings of the same name. Import Sets lets you set merge rules and flag potential duplicates for manual review. This prevents duplicate customer records in ServiceNow.
Data format mismatches are common too. A date field might be “MM/DD/YYYY” in the legacy system but “YYYY-MM-DD” in ServiceNow. Transformation rules handle this. Document all transformations so they can be audited later.
Typical Migration Phases
Phase 1: Data extraction and validation. Phase 2: Field mapping and transformation. Phase 3: Test migrations and validation. Phase 4: Cutover planning and communication. Phase 5: Live migration and reconciliation. Phase 6: Post-migration support and issue resolution. Each phase is critical.
Post-Migration Data Governance
After migration completes, establish data stewardship. Assign owners for different record types. Create review cycles to catch and fix data issues early. Without ongoing governance, migrated data will degrade over time as changes are not reflected in the system.
Lessons Learned from Migrations
Every migration teaches lessons. Did data quality issues cause problems? Were there transformation logic errors? Did teams need more training? Document what worked and what did not. Use these lessons in future migrations to improve speed and quality.
Deciding which legacy data earns its own import path
A migration program rarely fails because the import tool was the wrong choice. It fails because every legacy table gets treated the same way, pushed through one transform pattern, and then discovered at cutover to depend on reference data that arrived late. The first decision at program level is therefore not how to build a transform map. It is which source datasets deserve a dedicated import path, which can share a template, and which should not be migrated at all. Making that split on paper before any staging table exists removes much of the rework that appears later.
Sort the datasets into three groups before anyone opens the platform. Reference data such as locations, departments, categories and lookup values is small, changes slowly, and is needed by almost everything else, so it loads first and gets the strictest checks. Operational records such as open requests, assets and tasks are large and depend on that reference data, so they need dependency ordering and volume testing. Historical material is often the biggest group and the least valuable per row, so the first question about it is whether it belongs in the platform at all.
| Dataset group | Typical examples | Import approach | What often goes wrong |
|---|---|---|---|
| Reference data | Locations, departments, categories, lookup values | One import set per table, loaded first and reconciled by count before anything depends on it | Near-duplicate lookup values that split reporting for years |
| Operational records | Open requests, assets, tasks, configuration items | Staged load with a stable coalesce key, run in dependency order | Child records arrive before the parents they reference |
| Historical records | Closed work from earlier periods, old attachments | Filtered extract, its own pilot, and a written decision on what is kept | Volume that slows lists and reports before any user needs the history |
| Derived values | Priority, scores, roll-up counts | Recalculate after load rather than importing the stored result | Imported values that disagree with the rules the platform applies |
A sequence for several datasets in one program
Once the groups are agreed, the program needs an order that every dataset owner can see. The sequence below works when several datasets load into the same instance and share the same people, and it keeps each stage small enough that a failure can be isolated.
- Freeze the list of source datasets and name one owner for each. A dataset without an owner stays out of scope until someone accepts responsibility for its content.
- Load the reference data into its own staging and production tables, then reconcile row counts and spot-check values before any dependent load starts.
- Run the operational datasets in dependency order, reviewing the row outcome of each load before starting the next one. Do not batch them into a single overnight run.
- Recalculate derived fields, then run relationship checks across the tables that now reference each other.
- Put historical loads behind their own decision gate so that a delay in archive material never holds up the operational cutover.
The reason for keeping the stages separate is diagnostic. When a count is wrong after a combined load, the team has to work out which of several sources caused it. When the same count is wrong after a single-dataset stage, the cause is usually that stage’s mapping or its source extract. For the reconciliation work inside each stage, the approach is set out in the post on migration reconciliation controls, which pairs well with the sequence above.
How to tell the program is outgrowing its plan
Many programs show the same warning signs a few weeks before they stall. The number of open mapping questions keeps rising instead of falling. Owners start asking for a dataset to be included just in case, which means the scope list is no longer controlled. Reconciliation runs are scheduled but nobody reads the results. A transform script is copied from one dataset to another and edited in place, so two tables that should behave the same begin to diverge. Each of these is a process problem, and changing the tool does not address any of them.
A useful check is to ask, for each open item, whether the answer changes what gets loaded. If it does, it belongs on the decision log with an owner. If it only changes how a field is displayed, it can wait until after the first successful reconciliation.
Questions program leads raise after the first load
Should one import set serve several tables, or should each table have its own?
Give each target table its own import set and transform map. A shared import set looks efficient at design time, but it mixes row results from different tables in one place, so a failure in one dataset hides inside the totals of another. Separate import sets make the outcome for each dataset readable on its own.
What should happen to a dataset the business still cannot describe?
Leave it out of the first wave and record that decision in writing. Migrating data whose meaning nobody can explain creates records that users will distrust and that nobody can correct later. A short discovery session with the dataset owner often settles the question, and the dataset can follow in a second wave with its own reconciliation.
Who should decide whether historical data is loaded?
The business owner of the process that produces the data should decide, with the platform owner advising on volume and on the effect on list and report performance. The platform owner can show what a large history load does to response times, but only the business owner knows whether anyone will use that history after go-live. The roles behind that decision are laid out in the roles and RACI guide.
Can the same program template be reused for the next wave?
The sequence and the reconciliation steps can be reused. The mapping and transform logic usually cannot, because each legacy source carries its own quirks. Keep the program template as a checklist and treat each wave’s mapping as a new artifact, reviewed by the same owners.
Next step
If your program has more datasets than it has owners, start by agreeing the grouping and the stage order above.
Related guides: ServiceNow Data Migration, Reconciliation and Cutover.
In this section
- What Is ServiceNow Data Migration and Import Sets? A Plain-Language Guide
- ServiceNow Data Migration and Import Sets Implementation Roadmap
- ServiceNow Data Migration and Import Sets Best Practices
- Common ServiceNow Data Migration and Import Sets Mistakes and How to Avoid Them
- ServiceNow Data Migration and Import Sets KPIs and Metrics That Matter
- ServiceNow Data Migration and Import Sets: Roles, Responsibilities and RACI
- ServiceNow Data Migration and Import Sets Integration Patterns
- Moving to ServiceNow Data Migration and Import Sets: Migration Considerations
- ServiceNow Data Migration and Import Sets: Licensing and Cost Factors to Plan For
- ServiceNow Data Migration and Import Sets Testing and Acceptance Checklist
- ServiceNow Data Migration and Import Sets Governance Model
- ServiceNow Data Migration and Import Sets Requirements Workshop Questions
- ServiceNow Data Migration and Import Sets Use Cases for Enterprise Teams
- ServiceNow Data Migration and Import Sets: Security and Access Design
- ServiceNow Data Migration and Import Sets Adoption and Training Plan
- ServiceNow Data Migration and Import Sets Automation Opportunities
- Troubleshooting ServiceNow Data Migration and Import Sets: A Practical Guide
Frequently asked questions
How long does a typical data migration take?
It depends on data volume, complexity, and quality. A migration of 100,000 simple records might take weeks from audit to rollout. A migration of 1,000,000 complex records with relationships might take months. Planning and validation take as long as the technical import.
What happens to data we can't migrate because it doesn't fit ServiceNow?
That data is usually archived in the legacy system and kept read-only. You keep the legacy system running for reference but do not send new incidents or records there. Over time, as knowledge transfers to ServiceNow, the legacy system fades away.
Can we migrate incrementally, or do we have to do it all at once?
Incremental migration is safer. You can migrate departments one at a time, starting with the smallest. This lets you test your process, refine it, and catch issues before migrating the whole company. It also spreads the pain across multiple cutover windows.
Related Oblytech services
Where this topic turns into delivery work, these are the Oblytech services that cover it.
Planning, running or fixing a ServiceNow programme? Tell us where you are and we will suggest a sensible next step.
Contact us