📖 Guides
🚀 Deployment & Update Sets

🚀 ServiceNow — Deployment & Environment Management

ServiceNow Developer Guide · Digital Kimya


Moving configuration from your development sandbox to a live production instance

Diagramme interactif — Pipeline DEV → TEST → PROD

DEV
DEV instance
Personal Dev Instance
Update Set
TEST
TEST instance
Recette · UAT
Update Set
PROD
PROD instance
Environnement live
📦 Update Set
sys_update_set · transport de configs
✅ Ce qui EST capturé
·Business Rules, Client Scripts
·UI Policies, UI Actions
·Script Includes, Workflows
·Forms, Views, Notifications, ACL
·Choice Lists, Dictionary entries
❌ Ce qui N'est PAS capturé
·Data (records, incidents, users)
·Attachments
·Scheduled job history
·Import sets · Logs
·User preferences
🧠 Règle mentale : configurations oui, données non
📱
App Manager
Store · Scoped Apps
🔀
Merge / Conflicts
Preview · Accept remote
🔄
Instance Clone
Refresh TEST depuis PROD
👆 Cliquez sur App Manager, Merge ou Instance Clone pour voir la définition

--- is one of the most failure-prone steps in a ServiceNow project. The Update Set mechanism is powerful but unforgiving — a missed dependency, an unresolved conflict, or a forgotten table entry can bring a deployment to a halt. This guide covers every step of the DEV → TEST → PROD pipeline with the detail needed to deploy confidently.


The Three-Instance Model

DEV Instance          TEST Instance          PROD Instance
(Personal Dev)  ──►   (Recette / UAT)  ──►  (Live)
                 Update Set            Update Set
InstancePurposeWho uses it
DEV (PDI)Build and unit-test configurationsDevelopers
TESTIntegration testing, UAT, regressionQA, business users, UAT team
PRODLive environment — real users, real dataEveryone

The golden rule: no configuration changes are made directly in PROD. Everything goes DEV → TEST → PROD via Update Sets, with sign-off at each stage.


Update Set — The Transport Mechanism

An Update Set (sys_update_set) is a container that records every configuration change you make while it is set as "Current". Think of it as a transaction log for your customisations.

The Update Set Lifecycle

Update Set — DEV to PROD Pipeline

Click any step to expand · 7 steps

1
📦Create and activate the Update Set in DEV

Navigate to System Update Sets → Local Update Sets → New. Name it descriptively: "PROJ-123 — Auto-priority Business Rule v1.0". Set as Current. All changes you make from this point are automatically captured.

Update Set createdStatus: In ProgressSet as Current (active)
2
🔧Develop and test in DEV
3
📤Mark Complete and Export XML
4
🔍Import into TEST and Preview
5
⚠️Resolve conflicts
6
Commit to TEST — run UAT
7
🏭Repeat for PROD

What IS and IS NOT Captured

This is the most tested concept in the CSA exam and the most common production incident cause.

✅ What IS Captured in an Update Set

These are configuration objects — the structure and logic of the platform:

CategoryExamples
ScriptsBusiness Rules, Client Scripts, Script Includes, Scheduled Jobs
UIUI Policies, UI Actions, UI Macros, UI Pages, Form Layouts, Views
WorkflowFlow Designer flows, Classic Workflows, Approval definitions
SecurityACL rules, Roles
Data structureDictionary entries (new fields), Choice Lists, Table definitions
NotificationsEmail notifications, Templates
Service CatalogueCatalogue items, Variables, Workflows

❌ What is NOT Captured

These are data records — the content, not the structure:

WhatWhy not capturedHow to migrate if needed
Incident / Problem / Change recordsRuntime data, not configurationImport Set or clone
User records (sys_user)Data, not configurationImport Set from CSV/LDAP
AttachmentsBinary dataManual or scripted API transfer
Scheduled job execution historyLogsNot migrated — starts fresh
Import Set rowsTransient dataRe-run import on target
User preferencesPersonal settingsNot migrated
Application logssys_log entriesNot migrated

The mental model: configurations yes, data no.

⚠️ Classic trap: you create a test Incident in DEV to verify your Business Rule. That incident will NOT appear in TEST. Only the Business Rule itself travels via Update Set. You must recreate test data in each environment.


Preview — Conflict Detection in Detail

Before committing an Update Set, the Preview step is mandatory. It scans the target instance and flags three types of issues:

Preview Status Codes

StatusMeaningAction required
AcceptedNo conflict, ready to commitNone
⚠️ ConflictSame record exists with different contentResolve: accept remote or skip
ErrorMissing dependency (e.g., a field that doesn't exist on target)Fix dependency first

Conflict Resolution

Scenario: You modified Business Rule "Set Priority" in DEV. The same rule was also modified in TEST by another developer.

Preview shows: Conflict on sys_script — Set Priority

Options:

  • Accept Remote → Your DEV version will overwrite TEST's version after commit
  • Skip → TEST's version is preserved, your changes are ignored for this record

Best practice:

  1. Always communicate with the team before making overlapping changes
  2. Document which version was accepted and why
  3. If in doubt, merge the changes manually before creating the Update Set

Instance Clone

A clone is a complete copy of one instance's data and configuration into another. Typically used to refresh TEST with PROD data so UAT reflects real-world content.

PROD ──full copy──► TEST   (overwrites everything in TEST)

What Clone Copies

  • All records (incidents, users, configuration items, catalogue)
  • All configurations (scripts, workflows, ACLs)
  • All attachments
  • All scheduled job definitions (not their history)

⚠️ What Clone Destroys

Everything in the target instance is overwritten. This includes:

  • Any DEV/TEST-specific configurations not yet in PROD
  • Integration credentials configured for TEST endpoints
  • Any Update Sets that were in TEST but not promoted to PROD

Clone Excludes

To protect TEST-specific settings during a clone, configure Clone Excludes (System Clone → Exclude Tables):

What to excludeWhy
Integration credentials (REST endpoints)PROD creds should not overwrite TEST creds
Email configurationAvoid TEST sending real emails after clone
Active Update SetsPreserve in-progress DEV work in TEST
User passwords (in some configs)Security isolation

App Manager — Scoped Application Deployment

For scoped applications, ServiceNow provides the Application Manager as an alternative to Update Sets:

FeatureUpdate SetApp Manager
What it carriesAny configuration changesScoped App only
Transport mechanismXML fileApp Repository (internal) / ServiceNow Store
Version controlManual (file naming)Built-in versioning
Dependency managementManualAutomatic (manifest)
Best forAd-hoc changes, cross-table customisationsPackaged apps, plugins

Workflow for Scoped App deployment:

Studio → Publish → App Repo → Install on target instance

Merge — Combining Update Sets

When multiple Update Sets need to be deployed together, use Merge:

  1. Select the Update Sets to merge (they must be in Complete status)
  2. ServiceNow creates a new merged Update Set
  3. Conflicts within the merged set are flagged for resolution
  4. The merged set is deployed as a single unit

When to use merge:

  • Multiple developers worked in parallel on related features
  • A bug fix and a feature fix are ready at the same time
  • You need a single deployment artefact for a change window

CSA / CIS Exam Quick Reference

Question topicAnswer
What records travel in an Update Set?Configuration only — not data (incidents, users, attachments)
What happens if no ACL matches?Access denied (deny by default)
Direct role assignment on user is...Anti-pattern — use group-based roles
Preview before commit does what?Detects conflicts between Update Set and target instance
Instance Clone direction for refreshing TESTPROD → TEST (overwrites TEST)
Accept Remote in Preview means...Your Update Set version overwrites the existing version
Scoped app vs Global for new developmentAlways scoped app — isolation, upgrade safety, portability

Deployment Checklist

Before starting development:
☐ Update Set created with descriptive name and ticket reference
☐ Update Set set as "Current" in DEV
☐ DEV is on the same release as TEST and PROD

During development:
☐ All changes made in DEV only
☐ No direct modifications in TEST or PROD
☐ Tested with impersonation as non-admin users

Ready to promote to TEST:
☐ Update Set status set to "Complete"
☐ XML exported and saved in project documentation
☐ Change request raised and approved
☐ TEST maintenance window confirmed

In TEST:
☐ Update Set imported from XML
☐ Preview run — all conflicts resolved and documented
☐ Committed to TEST
☐ UAT completed with sign-off from business users

Ready for PROD:
☐ Same XML imported to PROD
☐ Preview run in PROD — conflicts resolved
☐ Production maintenance window scheduled
☐ Rollback plan documented (which records to manually revert if needed)
☐ Committed to PROD during maintenance window
☐ Post-deployment smoke test completed
☐ Change record closed

Part of the Digital Kimya (opens in a new tab) ServiceNow Guide Series — Identity & Access · Scripts & Logic · Tables & Data

Digital Kimya — MENA & Europe

Ready to implement what you've read?

Our ITSM practitioners deliver ITIL 4 & 5 projects across ServiceNow, Jira SM, SMAX and BMC Helix — from initial assessment to full ESM deployment.

🚀 ITIL Implementation🔧 ITSM Platform Setup📊 Assessment & Roadmap🏭 Industry-Specific Projects
🌍 MENA & Europe🎯 ITIL 4 & 5 Certified🏢 6 Industries covered Assessment in 2 weeks
contact@digitalkimya.net