Skip to Content
  1. Home
  2. /
  3. Blog
  4. /
  5. ServiceNow Update Sets: The Complete Guide to Migration Mastery
Monday, April 27, 2026

ServiceNow Update Sets: The Complete Guide to Migration Mastery

ServiceNow Update Sets: The Complete Guide to Migration Mastery

Update Sets are the de facto mechanism for moving customizations between ServiceNow instances. They're how you promote from dev to test to production, share work with teammates, and recover when something goes wrong. Yet they're also one of the most misunderstood features in the platform — responsible for countless broken references, missing dependencies, and deployment failures that could have been avoided.

This guide covers everything from basic captures to advanced remote migration patterns. Whether you're moving your first customization to production or managing a complex multi-instance migration, these patterns will save you hours of troubleshooting.

How ServiceNow Update Sets Work

An Update Set is essentially a named container that tracks changes made to your instance. ServiceNow automatically records any customization — whether made through the UI or script — as a change artifact within the active Update Set. When you capture an Update Set, you're exporting a batch of these change artifacts as an XML document that can be applied to another instance.

The critical thing to understand: Update Sets are not a snapshot of the target state — they're a log of changes made. When you apply an Update Set, ServiceNow replays those changes on the target instance. This distinction matters enormously for conflict resolution.

What Gets Captured vs. What Doesn't

Captured automatically:

  • UI actions, business rules, client scripts, script includes
  • ACLs, dictionary overrides, table extensions
  • Form layouts, list layouts, UI policies
  • Homepages, dashboards, workspaces
  • Flow Designer flows and subflows (in newer versions)
  • Service Portal pages and widgets
  • Many catalog items, categories, and their variables

Not captured automatically:

  • Data in tables (only schema changes are captured, not records)
  • Users, groups, roles, and assignments (use data exporters)
  • Scheduled jobs (if created via UI, they're captured; some system jobs are not)
  • LDAP configurations, integrations, and credentials
  • System properties that aren't part of the application's scope

Best Practices for Update Set Management

One Feature Per Update Set

This is the golden rule. Each update set should represent exactly one deployable unit — a feature, a bug fix, or a refactoring. This makes rollback trivial and code review straightforward. When your update set has 47 changes for 3 different features, you've created a problem that no amount of documentation will fully solve.

Name Your Update Sets Like Commits

Use a naming convention that communicates intent:

  • PROJ-1234_Feature_Description_2026-04-27
  • HOTFIX_Security_Patch_2026-04-20
  • TECHDEBT_Schema_Refactor_2026-04-15

Always Test on a Clean Instance First

Before applying any update set to production, apply it to a fresh sub-production instance. This catches dependency issues, missing references, and unexpected side effects. The sub-production instance should be refreshed from production to ensure it accurately represents the target state.

Review Your Update Set Before Capturing

ServiceNow provides a "Preview" function that shows you exactly what will be captured. Always review this before generating your XML. Look for:

  • Unintended changes from automated processes
  • Test or debug records that should be excluded
  • Changes from other developers that accidentally got captured

Handle Dependencies Before Migrating

List all dependencies your changes rely on:

  • Reference fields pointing to records that don't exist on target
  • Script Includes called by your code
  • Business rules executing in a specific order
  • Access controls depending on specific roles or groups

Create separate "Dependency Update Sets" for shared components that multiple features depend on, and deploy those first.

Conflict Resolution Strategies

When applying an Update Set, conflicts happen when the target instance already has modifications to the same records. ServiceNow's conflict resolution UI gives you three choices:

Preserve the target's version and skip the incoming change. Use this when the target's change is either intentional or unknown. Never blindly choose "Update Set Wins" without understanding what you're overwriting.

Update Set Wins

Overwrite the target with the incoming change. Use this when the Update Set's version is definitively the correct one and the target's change was a mistake or is outdated. Document this decision — future developers will thank you.

Merge

Manually combine both versions. This requires understanding both changes and is error-prone. When you see a merge conflict, ask yourself whether the two changes can actually coexist or whether one needs to be backed out first.

Remote Update Sets: Multi-Instance Migrations

Remote Update Sets solve the problem of moving changes between instances that aren't directly connected — the standard scenario for cloud-to-cloud, cloud-to-on-prem, or cross-tenant migrations.

The Remote Update Set Workflow

  1. Capture on source instance: In System Update Sets → Remote Update Sets, create a new remote set and capture your changes
  2. Generate XML: Download the captured update set as an XML file
  3. Transfer: Move the file to the target environment (email, file share, secure upload)
  4. Upload on target instance: System Update Sets → Remote Update Sets → Upload XML
  5. Review and Commit: Like a local update set, preview conflicts and resolve before committing

Remote Set Limitations

  • Large update sets may time out during generation or application
  • Binary data (images, attachments) is handled inconsistently
  • Some scoped application content requires the matching app scope on target
  • Remote update sets from Paris and later versions may not be compatible with older instances

Application Scope and Upgrade Considerations

Since the Quebec release, ServiceNow enforces strict scope boundaries. When building within an application scope:

  • All captured content must belong to the same scope
  • Cross-scope references require explicit configuration
  • Global scripts (global scope) require special handling

Before migrating scoped applications, verify that:

  1. The target instance has the same application scope installed
  2. The dependent applications and plugins are present
  3. The target version supports the features you're migrating

Automated Update Set Operations

For teams managing frequent migrations, ServiceNow's REST APIs enable automation:

List Update Sets:

GET /api/now/table/sys_update_set?sysparm_query=state=complete

Retrieve Update Set XML:

GET /api/now/table/sys_update_xml?sysparm_query=update_set=<sys_id>

Apply Update Set (Remote):

POST /api/now/umdaction/apply?target=<instance_url>&username=<user>&password=<pass>

Automation is particularly valuable for CI/CD pipelines where you want to apply update sets in a controlled sequence after automated validation steps pass.

Common Pitfalls and How to Avoid Them

The "Everything in Default" Trap

Never develop in the Default Update Set. Create a personal one from day one. The Default Update Set is a shared resource — others applying their sets can accidentally include your work.

Forgetting About Reference Data

Your catalog items reference choice lists, groups, and users. These must exist on the target. Create a separate "Reference Data" update set and deploy it first.

Circular Dependencies

Feature A depends on Feature B, Feature B depends on Feature A. Map your dependencies before migration to establish the correct deployment order.

Skipping the Preview

Always preview. Always. No matter how small the change. The preview catches more problems than any other single practice.

Not Documenting Customizations

Every non-obvious customization needs a comment in the code or a description in the update set. Future you won't remember why you added that weird GlideAggregate condition, and neither will your teammates.

Summary

Update Sets are powerful but unforgiving. The key principles:

  • One feature, one update set — never bundle unrelated changes
  • Preview before capture, preview before commit — catch problems early
  • Resolve conflicts thoughtfully — understand what you're overwriting
  • Handle dependencies — map and deploy in the right order
  • Document everything — future maintenance depends on it
  • Test on clean instances — production is not your testing environment

Master these patterns and your migrations will be boring, predictable, and reliable — which is exactly what you want when you're deploying to production at 2 AM.

Was this article helpful?