ServiceNow Update Set XML Viewer

Live

Drop in an exported update set and review every change: deletes, schema and ACL changes, risky scripts, and a checklist for the ticket.

Drop an update set XML here

In ServiceNow, open a retrieved or local update set and use Export to XML. Single-record XML exports work too. The file is read in your browser and never uploaded.

Getting the XML

  1. Open System Update Sets › Local Update Sets (or Retrieved Update Sets).
  2. Open the update set and choose Export to XML under Related Links.
  3. Drop the downloaded file above. It's parsed in this tab and never uploaded.

Reviewing for someone else? Use Copy review checklist to paste a Markdown checklist straight into the change ticket or pull request.

What gets flagged

Deletes
Records the update set will delete when it is committed.
Schema changes
New or changed tables and fields (sys_dictionary, sys_db_object).
Security changes
ACLs and roles (sys_security_acl, sys_user_role).
current.update() in a business rule
A classic cause of recursion and double updates.
gs.log()
Unavailable in scoped apps; prefer gs.info() or gs.debug().
Hard-coded sys_ids
Break when data differs between instances; prefer properties.
Duplicates across sets
The same record captured in several update sets in one file.
Default update set
Changes in Default usually aren’t meant to be migrated.

Flags are heuristics to guide a review, not a substitute for testing on a sub-production instance.

How to review a ServiceNow update set before you commit it

A short routine catches most bad deployments. The viewer flags deletes, schema and security changes, risky scripts, hard-coded sys_ids and the Default update set for you; previewing and dependency checks happen on the target instance.

  1. Preview it and clear every problem. Missing references and collisions show up as preview problems on the target instance. Resolve or explain each one before you commit.
  2. Look for deletes. A DELETE action removes the record on the target when the update set is committed, and deletes are easy to miss in a long list.
  3. Treat schema and security changes with care. New tables and fields, ACLs and roles change behaviour for everyone. Check that each one belongs to the story you are moving.
  4. Read every script. Business rules, client scripts, script includes and UI actions are where most production surprises come from: recursion from current.update(), gs.log() in scoped apps, leftover debug code.
  5. Search for hard-coded sys_ids and URLs. They point at records that may not exist on the next instance. System properties are the safer home for them.
  6. Check scope and the Default update set. Changes should sit in the right application scope, and nothing should be captured in Default.
  7. Check what is not in the set. Groups, users and other data are not captured by update sets. If a change depends on them, they must exist on the target or travel another way.

What is inside an update set XML file?

An export is an <unload> document. It holds one sys_remote_update_set record per update set and one sys_update_xml record per captured change. Each change has an action (INSERT_OR_UPDATE or DELETE), a type, a target_name, and a payload: the full record, escaped inside a <record_update table="…"> element. That escaping is why the raw file is so hard to read.

<?xml version="1.0" encoding="UTF-8"?>
<unload unload_date="2026-10-14 09:30:00">
  <sys_remote_update_set action="INSERT_OR_UPDATE">
    <name>STRY0012345 - Auto-assign P1 incidents</name>
    <application display_value="Global">global</application>
    <state>loaded</state>
  </sys_remote_update_set>
  <sys_update_xml action="INSERT_OR_UPDATE">
    <action>INSERT_OR_UPDATE</action>
    <name>sys_script_3f2a9c1e1b2f3010a1b2c3d4e5f60718</name>
    <type>Business Rule</type>
    <target_name>Auto-assign P1 incidents</target_name>
    <payload>&lt;record_update table="sys_script"&gt; … &lt;/record_update&gt;</payload>
  </sys_update_xml>
</unload>

Common record types in an update set

The table name at the start of each sys_update_xml name tells you what kind of change it is.

TableWhat it is
sys_scriptBusiness rule
sys_script_clientClient script
sys_script_includeScript include
sys_ui_policyUI policy
sys_ui_actionUI action
sys_security_aclAccess control (ACL)
sys_db_objectTable
sys_dictionaryField definition (dictionary entry)
sys_ui_sectionForm layout
sys_ui_listList layout
sc_cat_itemCatalog item
item_option_newCatalog variable
sys_hub_flowFlow Designer flow
sys_propertiesSystem property
sysevent_email_actionEmail notification

Frequently asked questions

How do I export an update set to XML in ServiceNow?

Open System Update Sets › Local Update Sets (or Retrieved Update Sets) and open the update set. Once it is marked Complete, choose Export to XML under Related Links. The browser downloads a single .xml file you can drop into the viewer above.

Can I view an update set XML without importing it into an instance?

Yes. Drop the file into the viewer above and it lists every change with its type, table and action, and shows each record payload, without loading anything into an instance. It is a quick way to check what someone sent you before it goes near your sub-production instances.

Is my update set uploaded anywhere?

No. The file is read with JavaScript in this browser tab. There is no server side and nothing is stored, so it is safe to use with client or production update sets.

What does a DELETE action mean in an update set?

It means the record was deleted on the source instance, and committing the update set will delete it on the target as well. Deletes are easy to overlook in the standard list, so the viewer shows them first.

Why should changes not be captured in the Default update set?

The Default update set is meant for changes that stay on the instance. It should not be marked Complete or moved between instances, so anything captured there usually means someone forgot to select their own update set. The viewer flags those changes.

Does the viewer handle scoped applications and several update sets in one file?

Yes. It reads global and scoped changes, notes when a file spans several application scopes, and flags records that were captured in more than one update set in the same file.

What does the review checklist contain?

A Markdown summary of the update set with every flagged item as a checkbox, ready to paste into a change request, story or pull request. You can also export the full list of changes as CSV.