ServiceNow Update Sets: The Complete Developer Guide

Everything you need to know about Update Sets — what gets captured, what doesn't, merge strategies, conflict resolution, and the deployment patterns that avoid production incidents.

Update Sets are the primary mechanism for moving configuration changes between ServiceNow instances. They are simple in concept but full of edge cases that cause production incidents for developers who don't know the details.

What Gets Captured in an Update Set

Update Sets capture configuration records — not data. The key distinction:

Captured (configuration):

  • Business Rules, Client Scripts, Script Includes
  • Flow Designer flows, actions, subflows
  • UI Policies, UI Actions
  • Form layouts and views
  • ACLs and roles
  • Catalog items and variables
  • Scheduled jobs
  • Application menus and modules

NOT captured (data):

  • Incident, Problem, Change records
  • User records and group memberships
  • Assignment rules
  • Notification records (can be captured but need to be in scope)
  • System properties (need manual transfer or separate Update Set)

Update Set Workflow

Development Instance
    → Create Update Set
    → Make changes (all changes captured automatically)
    → Complete Update Set
    → Export to XML

Test Instance
    → Import XML
    → Preview Update Set (check for issues)
    → Commit Update Set
    → Test

Production Instance
    → Import XML
    → Preview Update Set
    → Commit Update Set

The Preview Step — Never Skip It

Previewing an Update Set before committing checks for:

  • Conflicts — same record modified in both instances
  • Missing records — the Update Set references records that don't exist in the target
  • Circular references — Update Sets that depend on each other

Skipping preview and committing directly is the single most common cause of Update Set-related production incidents.

Handling Conflicts

When a conflict is detected, you have three options:

  1. Accept Remote — use the version from the Update Set (overwrites target)
  2. Accept Local — keep the target version (ignores the Update Set change)
  3. Merge — manually review and combine both versions

For script conflicts, always choose Merge and carefully review both versions. Automatically accepting remote can silently overwrite production fixes that were applied directly.

Merging Multiple Update Sets

When multiple developers are working simultaneously, you will need to merge Update Sets before promoting to production. The merge process combines all changes into a single Update Set.

// Best practice: always merge in development order
// Dev Update Set A + Dev Update Set B → Merged Update Set
// Then promote the merged set through test → production

Merge in the order changes were made. Merging out of order can cause later changes to be overwritten by earlier ones.

Common Problems and Fixes

Update Set shows "No Records" after import

The XML file is corrupted or the import failed silently. Re-export from the source instance and reimport.

Changes don't appear after commit

The Update Set committed but the changes are on a different application scope. Check that the target instance has the same application scope active.

Scheduled job runs immediately after commit

Scheduled jobs in Update Sets retain their run time from the source instance. Review all scheduled job next run times after committing.

Best Practices

  • One Update Set per feature or bug fix — not one giant set for everything
  • Name Update Sets descriptively: INC-1234 Fix assignment logic for P1 incidents
  • Never modify production directly — even emergency fixes should go through an Update Set
  • Keep a record of all Update Sets and their contents in your change management process
  • Test the rollback procedure — know how to revert an Update Set before you need to in an emergency

Update Set troubleshooting — common problems and fixes

Update Set is missing changes: The most common cause is that the changes were made while a different Update Set was current, or while no Update Set was set to current. Check the System Update Set records — each customer update record shows which Update Set it belongs to. Search for the specific record you changed and verify it is in the expected Update Set.

Preview shows errors: Errors during preview mean the Update Set cannot be committed as-is. Common error types: "Record already exists" (a record with the same sys_id exists on the target with different content — resolve the conflict), "Missing dependency" (the Update Set references a record that does not exist on the target — the dependency needs to be in a separate Update Set committed first), and "Syntax error in script" (a script in the Update Set has a syntax error — fix it on the source and re-export).

Committed Update Set with wrong changes: Committed Update Sets cannot be rolled back automatically. If a committed Update Set caused problems, you need to manually revert the specific configuration changes it made — either by hand or by committing a new Update Set that reverses the changes. This is why testing on sub-production before production is non-negotiable: committing directly to production without testing is the highest-risk Update Set practice.

Related: Update Sets guide · Cloning instances · Scoped applications

What Goes Into an Update Set (and What Does Not)

Update Sets capture configuration changes — metadata — not data. A Business Rule, a Form Layout, a UI Policy, a Script Include: all captured. A record in the Incident table, a Knowledge article, a user account: not captured. This distinction is fundamental and the source of most Update Set confusion. When developers make code changes and then ask "why didn't my test data come through?", the answer is always that Update Sets are not a data migration tool. The flip side is equally important: changes made to configuration records via scripts (using new GlideRecord('sys_script').insert()) are also not captured automatically — only changes made through the UI with an active Update Set are tracked. The cloning guide covers how to move data separately from configuration.

Update Set Merging and Conflicts

When multiple developers work in parallel and produce separate Update Sets that both modify the same record, merging creates conflicts. ServiceNow's Update Set Merger tool can combine Update Sets but requires manual conflict resolution when the same field of the same record was modified in both sets. The conflict resolution UI shows the two versions side by side and requires a developer to choose which version wins. There is no automatic three-way merge — unlike Git, ServiceNow cannot compute a merge of two diverging change histories against a common base. Teams that experience frequent merge conflicts usually benefit from adopting a branching strategy for Update Sets: one Update Set per feature or bug fix, merged into a release Update Set before promotion rather than having all developers write to a shared Update Set simultaneously.

Previewing Before Committing

The Preview step before committing an Update Set is not optional — it is where problems are caught before they become incidents. Preview loads the Update Set's changes into a staging area and checks for missing dependencies (records referenced in the Update Set that do not exist in the target instance), version conflicts (the same record was changed in the target since the last clone), and skipped records (changes that will be ignored). A Preview with zero problems is a good sign but not a guarantee — some issues only surface during commit. A Preview with dependency warnings is a definite stop: importing with unresolved dependencies creates broken configuration that is difficult to diagnose and clean up. Always resolve dependency warnings before proceeding. The debugging guide covers how to trace errors that emerge after an Update Set commit.

Batch Update Sets for Release Management

For teams managing regular release cycles, the Batch Update Sets feature allows grouping multiple Update Sets into a single deployable unit. A release batch might contain 15 individual feature and bug-fix Update Sets, committed in a specific order to handle dependencies between them. The batch is treated as a unit for preview and promotion purposes — you preview and commit the batch rather than each individual set, which significantly reduces the operational overhead of release promotion. Batch Update Sets integrate with the DevOps toolchain for teams using ServiceNow's native CI/CD pipeline capabilities.

Global vs Scoped Update Sets

Update Sets in the global scope capture changes to global artifacts. Changes to artifacts in a scoped application are tracked differently — they are associated with the application version rather than the active Update Set. This means a global developer working on an Update Set and a scoped app developer working in Studio are using fundamentally different promotion mechanisms, and mixing them in a single release requires coordination to ensure both the Update Set and the app version are deployed together in the correct order. For organisations with both global customisations and scoped apps, documenting the deployment sequence explicitly in release notes prevents ordering errors that cause broken dependencies in production.

Update Set Naming and Documentation

An Update Set named "Development Changes - October" is functionally useless for the administrator promoting it to production six weeks later. Name Update Sets with the feature or defect reference: "INC-1234 Fix SLA calculation for P1 incidents" or "FEAT-567 Add escalation workflow to HR cases". Include a description field entry that summarises what the Update Set does, why it was needed, and any deployment notes (run this script after committing, restart required, etc.). Good Update Set hygiene seems like overhead when you are the one creating and promoting the set, but when a production incident traces back to a specific Update Set, a well-named and documented set cuts investigation time from hours to minutes. Apply the same standard to batch Update Sets used for releases — the release batch should document its constituent sets and their combined deployment impact.

Update Set Governance for Teams

As teams grow, Update Set governance becomes a coordination challenge. Without agreed conventions, developers create Update Sets with overlapping scope, forget to complete sets before cloning, or promote sets in the wrong order and create dependency failures in test. A lightweight governance model that scales: each developer owns one active Update Set at a time named with their initials and the current feature or bug reference; sets are marked Complete only when the work is ready for promotion; a shared release batch collects completed sets for each sprint; the release manager previews and commits the batch to test after a code review. The cloning process includes an Update Set audit step before cloning to verify no incomplete sets from the current sprint would be lost. This model adds minimal overhead but eliminates the most common Update Set failures in team environments.

Want the complete reference?

This article is part of the NowSpectrum knowledge library. Browse all products for cheat sheets, interview prep, and deep-dive reference guides.

Browse All Products →
← Back to all posts