Thursday, July 09, 2026

ServiceNow: Stop or restrict the record from saving when Reference icon is clicked

ServiceNow - Stop Phantom Save


In ServiceNow, clicking the reference icon on a field — for example, the Configuration Item field on an Asset record — opens the referenced record. If you then navigate back to the Asset record, an auto-save is sometimes triggered even though no field was manually edited on either screen. This creates confusion: a user who only meant to look at a related record ends up quietly modifying the one they came from.

Why this actually happens

The reference icon click isn't the direct cause — the view switch is. Whenever ServiceNow changes the form view (the sysparm_view URL parameter), a submit of the current form is triggered as part of that navigation, regardless of whether any field was touched. That submit is what shows up as an unexpected "save," and it's also what updates the Updated / Updated By fields even though nothing looks different on the form.

Because that submit is already underway by the time it happens, you can't stop it with current.autoSysFields(false) in a business rule — that call needs to run before the update is initiated, not during it, so it's too late by the time the reference-icon navigation kicks off its submit.

Step 1: Find out what's actually triggering the update

If a client script is silently marking the record as modified — for example, an onLoad script that sets a field like u_view every time the form loads — that's usually the real culprit, not the reference icon itself. Moving that logic from a client script into a business rule avoids marking the form dirty in the first place.

To identify the current view name server-side (if you need that value for existing logic), a before update business rule can use:

var transaction = GlideTransaction.get();
var viewName = transaction.getRequestParameter("sysparm_view");

Once you've moved the logic and deactivated the client script, test again. If the auto-save no longer triggers, that was the cause. If it still happens, some other field is changing behind the scenes — which is common enough that it's worth a dedicated way to catch it.

Step 2: Find out which field is changing, if it isn't obvious

Add this to a before update business rule to log exactly which fields are considered "changed" at the point of the update:

var actionName = action.getActionName();
gs.addInfoMessage('Action performed: ' + actionName);
if (actionName == 'sysverb_check_save') {
    var gru = GlideScriptRecordUtil.get(current);
    var changedFields = gru.getChangedFields();
    gs.addInfoMessage('Fields changed: ' + changedFields.toString());
}

GlideScriptRecordUtil has been a standard global script include for a long time now, so the older fallback pattern of checking typeof GlideScriptRecordUtil != 'undefined' and dropping to Packages.com.glide.script.GlideRecordUtil.get(current) isn't necessary on current instances — that direct Java Packages.* access is an unsupported, global-scope-only technique, and it won't run at all in a scoped application. Stick with GlideScriptRecordUtil.get(current) directly.

A common real-world cause this surfaces: a currency field (like Cost on Asset) that's blank by default but gets initialized to $0.00 the moment the form loads, which counts as a modification. Fixing the field's default value — both going forward at the dictionary level and retroactively on existing blank records — usually resolves it.

Step 3: If the field logic truly can't be moved

If you can't relocate the responsible logic to a business rule, you can't cleanly prevent the save. As a fallback, you can at least warn the user that a change is about to be saved by checking g_form.modified in an onSubmit script when action.getActionName() == 'sysverb_check_save', and returning false with an explanatory message if appropriate. Be aware this cancels the entire action — the user won't be able to navigate to the referenced record either, since the same click is what triggers both the submit and the navigation.

Step 4: System property options — and why they're broader than they sound

Two properties get mentioned often for this scenario. Both are instance-wide, so treat them as a last resort rather than a first move:

  • glide.ui.reference.readonly.clickthrough controls whether the preview/reference icon appears on read-only reference fields specifically — by default, a read-only reference field hides the icon; this property can turn it back on globally. It does not control whether the icon appears on ordinary editable reference fields, so it isn't a general-purpose "hide the reference icon everywhere" switch. If your goal is to suppress or enable click-through on a specific field rather than instance-wide, the readonly_clickthrough dictionary attribute on that field is the better-scoped alternative — same effect, without touching every other read-only reference field in the instance.

  • glide.ui.clickthrough.popup changes reference-icon clicks to open the referenced record in a popup/new window instead of navigating in place. This does sidestep the view-switch-triggers-submit behavior described above, but note the popup view doesn't display related lists the way normal navigation does — worth testing before rolling it out broadly.

One more thing worth checking: which UI you're actually on

This entire behavior is tied to classic UI (UI16) form navigation and its view-switching mechanics. If your users are working in Agent Workspace or another Next Experience/UI Builder-based workspace, reference field previews typically open in a side panel rather than triggering a full view navigation — so this specific failure mode may simply not apply there. If you're troubleshooting this on a workspace and still seeing unexpected saves, the cause is more likely something else entirely, and it's worth confirming which UI the affected users are actually in before spending time on the fixes above.

Wednesday, July 08, 2026

ServiceNow Certification exam/test centers in India

ServiceNow Certification exam/test centers in India


ServiceNow University certification exams used to run through Kryterion, delivered via the Webassessor platform. That partnership has ended — as of November 18, 2025, all ServiceNow certification exams are registered, scheduled, and delivered through Pearson VUE instead.

Here's what actually changed, and what it means for how (and where) you take your exam.

Registering and scheduling

You don't need to create a separate Pearson VUE account. Exams are accessed directly through your ServiceNow University (SNU) account — SSO connects you to Pearson VUE automatically. All registration, scheduling, and rescheduling now happens there; Webassessor no longer accepts new registrations, and any vouchers that existed on the old platform can no longer be claimed or redeemed there.

Your existing certification records and exam history were carried over automatically during the transition, so there's nothing you need to do to preserve that history.

The exam itself hasn't changed

The content, question format, and difficulty of the exams are the same — what changed is the delivery platform, not the test. Your company entitlements, discounts, and eligibility are unaffected by the switch.

A couple of practical details carried over as-is:

  • Once registered, you have 90 days to complete the exam before the registration expires.
  • If your registration expires unused, it isn't refunded — so schedule with that window in mind.

One thing worth flagging if you're used to the old system: the voucher model has effectively gone away with this transition. Under the current process, exams are generally paid for directly at registration (typically listed around $300 plus applicable tax for self-pay candidates), unless it's included as part of instructor-led training or provided through a company's ServiceNow partner entitlement. If cost or eligibility is unclear for your situation, your training administrator or ServiceNow partner contact is the right person to confirm specifics, since arrangements vary by organization.

Where you can actually take the exam

This is the part that's changed the most, and it's the part most guides (including the old version of this one) get stale fastest. You now have two options through Pearson VUE:

Online, from home or office (OnVUE): OnVUE is Pearson VUE's secure online proctoring solution, letting you sit the exam remotely instead of traveling to a center. You'll need a system check beforehand, a private distraction-free space, and to consent to monitoring by a live proctor and AI-assisted tools during the exam. For most candidates, this has become the default choice simply because it removes the need to travel to a center at all.

In person, at a Pearson VUE test center: If you'd rather test at a physical location, Pearson VUE maintains its own network of authorized centers — separate from the old Kryterion-affiliated centers (listed below). Because that network changes over time and varies by city, the reliable way to find a current center near you is Pearson VUE's own test center locator, searchable by exam program and location, rather than a fixed list in a blog post that can quietly go out of date.

Where to go for more detail

Old Kryterion-affiliated centers in India

A note on this list: these were the Kryterion/Webassessor-affiliated test centers used before ServiceNow moved to Pearson VUE in November 2025. They're kept here for reference — some candidates still find it useful to reconnect with a center they tested at before, or to ask about old records. These are not current Pearson VUE-authorized centers, and addresses or affiliations may have changed since this list was last verified. For an active, current test center, use Pearson VUE's own test center locator instead.

Andhra Pradesh

  • Gyanvriksh Interactive Private Limited
    3rd Floor, QZ Plaza, Kothaguda, Opp Haveli,, Hyderabad
  • NSE.IT Limited_Hyderabad
    403, 4th Floor, Moguls Court, 5-9-60, Basheerbagh, Hyderabad
  • NSE.IT Limited_Vijayawada
    9-62-81/C, 1st Floor, Ganapathi Rao Road, Vijayawada
  • NSE.IT Limited_Visakhapatnam
    Door No 404, 47/10/26, Visakhapatnam

Assam

  • NSE.IT Limited_Guwahati
    Parnil Palace, 2nd Flr R.G. Baruah Rd, Guwahati

Bihar

  • NSE.IT Limited_Patna
    UFO Mall, 5th Floor, Anishabad Crossing, Patna

Chandigarh

  • NSE.IT Limited_Chandigarh
    2nd Floor, SCO 366, Sec 32 D, Chandigarh

Delhi

  • NSE.IT Limited_Delhi
    2E/22, 3rd Floor, Jhandewalan Extension, Delhi
  • Koenig Solutions_New Delhi
    Basement KLJ Complex-I, Plot No 70, New Delhi
  • Sites Learning India Pvt Ltd
    WZ-O-98, First Floor, New Mahavir Nagar, Outer Ring Road 26, New Delhi

Goa

  • Koenig Solutions_Goa
    3rd Floor, B/T1, Campal Trade Centre, Panaji

Gujarat

  • NSE.IT Limited_Ahmedabad
    302, Sutaria Complex, 3rd Floor, Ellisbridge, Ahmedabad
  • NSE.IT Limited_Rajkot
    Rajkot LC Office No 412 Alap - B, 4th Floor, Rajkot
  • Shree Education Services
    FF Shree Complex, Vadodara

Haryana

  • eEdusolutions
    SCO 324-25 2nd floor, Sector 38-D, Chandigarh, U. T.

Himachal Pradesh

  • Koenig Solutions_Shimla
    7, Prospect Lodge, Behind YMCA, Lower Jakhu, Shimla

Jharkhand

  • NSE.IT Limited_Ranchi
    Jha Niwaas, 1st floor Diversion Road, Ranchi

Karnataka

  • Anmol Technologies PVT LTD
    No. 7, 3rd Floor, Parvath Acrade, Service Road, Bangalore
  • CloudThat Technologies India Pvt. Ltd
    668/B-17th C Main, Kormangala 6th Block, Bangalore
  • DTecH IT Education
    No. 1, 1st Cross, 1st Main, Bangalore
  • Global Knowledge Network India _ Bangalore
    Royal Barter, 1st Floor, No.78/1, Residency Rd., Bangalore
  • Kalvi Institute_Bangalore
    BP Plaza 91/6, TC Palya Main Road, Bangalore
  • Koenig Solutions_Bangalore
    #47, 3rd Floor, 4th Block, 100 ft Road, Bangalore
  • NSE.IT Limited_Bangalore
    Azeem Gold, 13, 2nd Floor, Mosque Road, Bangalore
  • New Horizons India_Bangalore
    N-101, North Block, Manipal Centre, Bangalore
  • Parkus Technologies Pvt Ltd_India
    12 Dental College Main Road, Munekollal, Bangalore
  • iDomain Technologies
    #65, 1st Floor, 2nd A Cross, KHB Colony, Koramangala, Bangalore

Kerala

  • NSE.IT Limited_Cochin
    39/4609, A-1 Sreekandath Road, Ravipuram, Cochin
  • NSE.IT Limited_Thiruvananthapuram
    TC 15/320, Ground Floor, Trivandrum

Madhya Pradesh

  • NSE.IT Limited_Bhopal
    2nd Flr, Plot #61, E-6 Arera Colony, Bhopal
  • Space Computer and Training Academy
    E-46 Balwant Nagar, Gwalior
  • NSE.IT Limited_Indore
    Office No: 303, 3rd Flr, The Mark, 20/A,, Indore

Maharashtra

  • SEED Infotech Ltd_Andheri Mumbai
    A Wing, 402, 4th Floor,Vertex Vikas, Opp. Station Road, Andheri (East) Mumbai
  • SEED Infotech Ltd_Aundh
    Vasundhara Space, 2nd Floor, S.no 167/168, New D.P. Road, Aundh, Pune
  • Loyal Bytes Global IT Services, Andheri Mumbai
    B202, Mathuria Apts, Next to Vishal Hall, 49 Sir M. V. Road, Andheri East, Mumbai
  • NSE.IT Limited_Mumbai
    Trade Globe, Ground Floor, Mumbai
  • SEED Infotech Ltd_Navi Mumbai
    Vashi Plaza, C-Wing, Room No. 459, Navi Mumbai
  • Certview Technologies Pvt Ltd
    Office No 132, Wing ‘B’,1st Floor, Pune
  • Knowledge Mine_Pune
    No 208, Suratwala Mark Plazzo, Near HP Petrol Pump, Pune
  • NSE.IT Limited_Pune
    4th Floor, C-Block, Vega Centre, Shankar Sheth Road, Pune
  • SEED Infotech Ltd_Pune
    Panchsheel, 42/16, Erandwane, Income Tax Office Lane, Pune

Orissa

  • NSE.IT Limited_Bhubaneshwar
    Banaprasad, Plot No.1210, 1st Floor, Bomikhal,, Bhubaneshwar

Rajasthan

  • NSE.IT Limited_Jaipur
    109-110, 1st Floor Tambi Tower, Sansar Chand Road, Jaipur

Tamil Nadu

  • Blue Lotus Technologies Private Limited
    Plot 194, 195 First Main Road, Nehru Nagar, Kottivakkam, Chennai
  • Global Knowledge Network India _Chennai
    Unit No 508, 5th Floor Raheja Towers, Chennai
  • Kalvi Institute_Chennai
    #33/34, Anjugam Nagar, 2nd Street, Jafferkhanpe, Chennai
  • Mazenet Solution P Ltd_Nungambakkam
    Gee Gee Emerald, No:312, 2nd Floor, 2AB,, Chennai
  • Mazenet Solution P Ltd_T Nagar
    Roop Emerald, Level-2, New No.45, Chennai
  • NSE.IT Limited_Chennai
    Ground Floor, 96-104 Nungambakkam High Road, Chennai
  • Kalvi Institute_Coimbatore
    #1527 Avinashi Road, Vratharaja Mills, Coimbatore
  • Mazenet Solution P Ltd_Gandhipuram
    12E, 1st Floor, Padmalaya Towers, Coimbatore
  • NSE.IT Limited_Coimbatore
    No. 65 & 66, Arpee Center, 320 N., NSR Road, Coimbatore
  • Kalvi Institute_Dindugal
    No 91 1st Floor, Sona Towers, Dindugal
  • Kalvi Institute_Erode
    155, 1st & 3rd Floor, DV Complex, Neheru Street, Erode
  • Kalvi Institute_Madurai
    No. 134, First Main Road, K.K. Nagar, Madurai
  • Mazenet Solution P Ltd_Salem
    Santosh Towers, 2nd Floor, Brindavan Road, Salem
  • Kalvi Instutue_Theni
    No 116 Edamal Street, Theni
  • Kalvi Institute_Trichy
    #171A, 10th Cross Street, Pon Nagar,, Trichy
  • NSE.IT Limited_Trichy
    No 6/1, 2nd Flr, Thangam Towers, Karur Bye Pass Rd, Trichy

Uttar Pradesh

  • IPCC_Hazratganj
    Ground Floor, Skylark Building, Hazratganj, Lucknow
  • NSE.IT Limited_Lucknow
    Office no. 401, 4th Floor, Block A, Lucknow

Uttaranchal

  • Koenig Solutions_Dehradun
    Plot No. 22, IT Park, Shastradhara Road, Dehradun

West Bengal

  • Indexpo Corporation
    Binary House, 2 Circus Market Place, Kolkata
  • NSE.IT Limited_Kolkata
    54/1/A, Hazra Road, Nav-Jeevan Apartments, Kolkata

This article reflects the Webassessor-to-Pearson VUE transition completed in November 2025. Pricing, entitlements, and platform details can vary by region and organization — check your ServiceNow University account or training administrator for anything specific to your certification path.

Tuesday, July 07, 2026

ServiceNow auditing (history) feature for a table and troubleshoot related issues

ServiceNow auditing history feature


ServiceNow's auditing feature lets you track who changed what, and when, on any table in your instance. It's the foundation for the record History you see on forms, and it's what compliance, security, and troubleshooting work all lean on. This article walks through how to enable it, what it actually captures, and how to troubleshoot it when it doesn't seem to be working — updated for current ServiceNow releases.

Enabling auditing for a table

  1. Navigate to System Definition > Dictionary.
  2. Filter for the table you want to audit (for example, alm_asset).
  3. Open the dictionary entry for the table itself — the one with an empty Column name and a Type of Collection (not one of the individual field entries).
  4. Check the Audit checkbox.
  5. Click Update.

Once this is enabled, ServiceNow tracks inserts, updates, and deletions on that table and stores the changes in tables such as sys_audit, sys_audit_delete, and sys_history_set.

A few things worth knowing that weren't as relevant a few years ago:

  • Many out-of-the-box tables are already audited by default. Task-based tables (Incident, Problem, Change Request, and anything extending Task) generally ship with auditing turned on. Before assuming you need to enable it, check the Dictionary entry first — it may already be set.
  • Field-level (inclusion list) auditing. By default, enabling the Audit checkbox on a table audits every field except system fields (an "exclusion list" or blacklist approach — any field can be individually excluded with the no_audit dictionary attribute). If you only want to track a handful of fields on a large or high-traffic table, you can instead set audit_type=whitelist as a table attribute and then mark only the specific fields you care about as audited. This avoids bloating sys_audit with noise from fields nobody needs history on.
  • Audit Management Console. Newer releases (Zurich and later) include an Audit Management Console (search "Audit Management Console" in the navigator) that gives you a single UI to see which tables are audited, toggle auditing on/off, manage which fields are included, and configure audit retention/purge policies (for example, automatically purging audit records after a set period, from one month up to seven years). This is generally a faster way to manage auditing at scale than editing individual Dictionary records.

Enabling auditing for system tables

By default, ServiceNow does not audit deletions from tables with a sys_ prefix, since many of these are high-volume internal tables. To track deletions from a system table, add the table name to the glide.ui.audit_deleted_tables system property.

Be cautious about turning on full auditing for busy system tables (for example, Workflow Context [wf_context]) — the volume of changes can create a large number of audit records and impact performance. In general, only audit system tables when you have a specific, deliberate need to track them (for example, sys_user, excluding frequently-changing fields like "Last login").

What gets recorded

When a field on an audited table changes, ServiceNow records:

  • The unique record identifier (sys_id) of the record that changed
  • The field that changed
  • The new field value
  • The old field value
  • How many times that record/field combination has been updated
  • The date and time of the change
  • The user who made the change
  • The reason for the change, if one was provided
  • The record's internal checkpoint ID, if it has multiple versions

Some changes are intentionally excluded from auditing, even on an audited table:

  • Changes to fields with the sys_ prefix (system fields), with the exception of sys_class_name and sys_domain_id
  • Updates made by the inactivity monitor (otherwise a single stale incident could generate hundreds of noise entries)

Viewing audit history

  • List view: Right-click the form header and select History > List.
  • Calendar view: Right-click the form header and select History > Calendar.
  • Audit History related list: Right-click the form header, choose Configure > Related Lists, then move Audit History to the Selected column and save.

One important update for current instances: these right-click context menu options (History, Configure) are part of the classic UI (UI16). If you're working in Agent Workspace or another Now Experience (UI Builder-based) workspace, that right-click menu generally isn't available — workspace record pages don't currently support the classic History Calendar or the "Configure > Related Lists" flow. If your users live in a workspace, you'll typically need to add a History-related component/list to the workspace record page in UI Builder, or have them switch to classic UI to review full history.

Troubleshooting: when auditing doesn't seem to work

Sometimes auditing looks broken — either changes aren't showing up in History at all, or they appear inconsistently. Before troubleshooting further, get clear on scope: is this happening for one specific table, or across the whole instance? A single-table issue usually points to a script or configuration problem on that table; instance-wide issues are much rarer and usually point to a property or platform-level setting.

Start with the basics

  • Confirm the Audit checkbox is actually set on the table's collection dictionary entry (not just a field entry).
  • If it's a system table (sys_ prefix) and you're missing delete tracking, confirm it's listed in glide.ui.audit_deleted_tables.
  • Check whether the table uses whitelist auditing (audit_type=whitelist). If so, only fields explicitly marked as audited will show history — everything else is excluded by design, not by a bug.
  • Confirm the field in question doesn't have the no_audit attribute set on its dictionary entry.

Check for scripts suppressing auditing

The most common cause of "auditing isn't working" on a specific table is a Business Rule, Script Include, or UI Action calling:

current.autoSysFields(false);
current.setWorkflow(false);

What these do:

  • autoSysFields(false) disables updates to sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by, and sys_created_on. It's typically used to update a record without disturbing its "last modified" metadata — but it also means sys_mod_count won't increment, which can affect Activity formatters, History sets, and Metrics.
  • setWorkflow(false) disables the business rules that would normally fire for that GlideRecord operation — including the ones that write to sys_audit. If setWorkflow is set to false, that insert/update will not be audited.

To find where these are being called, search your Script Includes, Business Rules, and UI Actions related to the table for autoSysFields(false) and setWorkflow(false). You can disable candidates one at a time (or all at once) and retest to isolate the cause.

Use session debugging to trace it live

If scanning scripts doesn't turn up the cause, use the built-in session debugger:

  1. Navigate to System Diagnostics > Session Debug, and enable:
    • Debug Business Rule (or Debug Business Rule (Details) for a more detailed trace, including field values changed)
    • Debug SQL (Detailed), if you need to see the underlying database activity
  2. Update a record on the table in question (right-click the header and choose Save, if you want to stay on the same page).
  3. Review the trace output at the bottom of the form:
    • === means a business rule was skipped because its condition didn't evaluate to true
    • ==> means the business rule is being entered
    • <== means the business rule is exiting

This will usually show you exactly which business rule is running (or being skipped) around the point where auditing should occur.

If you find a legitimate need to force auditing

If autoSysFields(false) or setWorkflow(false) are being used deliberately elsewhere in the platform and you can't simply remove them, but you still need that table audited in all cases, you can add a Before Insert/Update business rule on the table, set its Order higher than any other business rule on that table (so it runs last), and include:

current.autoSysFields(true);
current.setWorkflow(true);

This is a blunt, brute-force fix — it overrides any other script's attempt to suppress system field updates or workflow on that record. Use it as a last resort, understand what it's overriding, and test thoroughly, since forcing setWorkflow(true) will also re-enable any other business rules that were deliberately being skipped. If the problem persists after this, it's worth engaging ServiceNow support, since at that point the cause may be a platform-level configuration rather than something in your scripts.


This article reflects general auditing behavior across current ServiceNow releases. Some specifics (menu names, available consoles, default retention limits) can vary slightly by release family — when in doubt, check your instance's in-product documentation via the (?) help icon, which is tied to your specific version.

Sunday, July 05, 2026

ServiceNow version names and how to check the version in ServiceNow instance

How to find your ServiceNow version

How to find your ServiceNow version

If you have admin access, checking your instance version takes just a few clicks:

  1. In the Navigator filter, type Stats.
  2. Under the Stats application section, click the Stats module link.
  3. This loads the stats.do diagnostics page, which shows your build details near the top — including the release name and patch level. For example, an instance on Washington DC with Patch 4 would show:

Build tag: glide-washingtondc-12-20-2023__patch4-hotfix1-06-10-2024

Washington DC with Patch 4

If you don't have admin access, you can get the same page directly: type stats.do into the Navigator filter and press Enter. It'll load the same diagnostics view without needing to go through the Stats application menu.

A couple of additional ways to get there, useful depending on your role:

  • System Diagnostics > Stats — the same page, reached via the application menu instead of the filter navigator.
  • Admin Center (where available) — type "Admin Center" into the Navigator and look for the "Get information about your instance" section, which surfaces the current version without needing the Stats page at all.

If you're an admin and want to restrict who can see this page, ServiceNow supports locking stats.do down to logged-in admins only via the glide.security.diag_txns_acl system property — worth knowing if this page is currently open more broadly than you'd like.

ServiceNow version history

From 2011 onwards, ServiceNow named its major releases after cities from around the world, in alphabetical order — starting with Aspen. Before that, releases were named by month and year, and for a stretch in between, some used Summer/Winter/Fall/Spring naming tied to the release year.

That alphabetical city-naming run reached its natural endpoint with Zurich (Q4 2025) — Z was the last letter available. Starting with the very next release, Australia (Q2 2026), ServiceNow switched to naming releases after countries instead, restarting the alphabet from A. Brazil is next in line for Q4 2026.

Starting from ServiceNow's very first version — released under the name GlideSoft — here's the complete release history:

ServiceNow Release Name Date of Release
GlideSoft 2004 Sunday, January 4, 2004
January 2006 Sunday, January 1, 2006
February 2006 Sunday, February 12, 2006
March 2006 Saturday, March 18, 2006
April 2006 Saturday, April 15, 2006
May 2006 Sunday, May 21, 2006
July 2006 Tuesday, July 4, 2006
August 2006 Monday, August 28, 2006
November 2006 Friday, November 17, 2006
March 2007 Friday, March 2, 2007
Summer 2007 Thursday, July 5, 2007
Fall 2007 Friday, November 23, 2007
Summer 2008 Friday, August 22, 2008
Winter 2009 Friday, January 9, 2009
Spring 2009 Friday, May 29, 2009
Fall 2009 Friday, September 25, 2009
Winter 2010 Friday, January 22, 2010
Spring 2010 Sunday, July 4, 2010
Fall 2010 Friday, October 1, 2010
Winter 2011 Friday, February 4, 2011
Summer 2011 Friday, July 1, 2011
Aspen Thursday, December 1, 2011
Berlin Monday, July 2, 2012
Calgary Thursday, February 28, 2013
Dublin Tuesday, October 22, 2013
Eureka Tuesday, May 6, 2014
Fuji Thursday, January 1, 2015
Geneva Tuesday, November 3, 2015
Helsinki Thursday, April 28, 2016
Istanbul Monday, November 28, 2016
Jakarta Thursday, June 15, 2017
Kingston Thursday, November 16, 2017
London Friday, July 27, 2018
Madrid Thursday, January 31, 2019
New York Friday, July 26, 2019
Orlando Monday, January 6, 2020
Paris Thursday, July 23, 2020
Quebec Thursday, January 7, 2021
Rome Thursday, July 22, 2021
San Diego Thursday, February 3, 2022
Tokyo Friday, July 15, 2022
Utah Wednesday, March 22, 2023
Vancouver Wednesday, September 20, 2023
Washington, DC Thursday, February 1, 2024
Xanadu September 10, 2024
Yokohama March 12, 2025
Zurich Q4 2025
Australia Q2 2026 (~May 2026)
Brazil Expected Q4 2026

Rows in italics are planned/expected releases and may shift; check ServiceNow's official release notes for confirmed dates.

ServiceNow System Properties

ServiceNow System Properties

Finding and editing a system property

To view or update any ServiceNow system property, type sys_properties.list into the Navigator filter and press Enter. This opens the full list of properties on your instance — search for the property name you need, open the record, and update its value directly.

A reference list of commonly used properties

The properties below cover branding, form behavior, history and auditing, activity formatting, email, localization, and general system configuration. A couple of notes before diving in:

  • Not every property here will exist or behave identically on every instance — some are older platform behaviors that have been stable for well over a decade, while a few (noted inline) carry historical context that's worth knowing even if the original reason for the property no longer fully applies.
  • Default values can shift between releases. Where this list states a default, treat it as a helpful starting point — the property record on your own instance is the source of truth.

Branding & Product Identity

glide.product.apple_icon
This property can be used to set the icon used for iPhone home page bookmarks. It can be overridden in the company record with a custom user image.
glide.product.description
This property can be used to set the window title at the rightmost portion of the page header and browser title.
glide.product.description.style
This property can be used to set the style for product description next to banner. (For e.g. padding-bottom: 0px; padding-top: 4px;)
glide.product.help_icon
This property can be used to set the icon for the 'Help' link in the welcome banner. Please note that it must be uploaded first before the property setting.
glide.product.help_url
This property acts as a global override for the URL the help icon points to. Leave it empty to use context-sensitive help, where clicking the help icon opens the relevant page in ServiceNow's product documentation for whatever you're currently viewing. If a page has no context-sensitive help defined, it falls back to a general documentation search. Note: the old ServiceNow Wiki referenced by older versions of this property's description no longer exists — current documentation lives at docs.servicenow.com.
glide.product.icon
This property can be set for the icon image to be displayed in bookmarks and browser address bar.
glide.product.image
This property can be set for banner image displayed at the top of the page. This property value can be overridden by banner text and banner image defined for the company that a user is assigned to.
glide.product.name
This property can be set for window title part appearing at the leftmost portion of the page header and browser title
glide.product.name.style
This property can be set CSS properties to display product name next to banner. Often, this style is set to “display: none” so that the product name is not displayed, but still used as part of the Window Title.

Forms & UI Behavior

glide.ui.advanced
This Boolean property, if set to “true”, enable the advanced UI and allows to show "Save", "Insert" and "Insert and Stay" buttons on forms.
glide.ui.app_menu_context
This Boolean property, if set to “true”, enable the right click to edit context menu on applications in the navigator.
glide.ui.attachment_drag_and_drop
This Boolean property, if set to “true”, allow attachment drag and drop in supported HTML5 browsers.
glide.ui.buttons_bottom
This Boolean property, if set to “true”, enables a feature wherein buttons like Submit, Update, etc. are shown at end of form.
glide.ui.buttons_top
This Boolean property, if set to “true”, enables a feature wherein buttons like Submit, Update, etc. are shown in form header.
glide.ui.choicelist.defaultwidth
This property can be customized to set the width (in terms of pixels) for all choice list on the instance. Default value for this property is set to 160 that means by default all choice lists use a width of 160 pixels.
glide.ui.choices.show_missing
This property enables the appearance of missing choice list entries. It is advisable to set this Boolean property to “true” to avoid any issue related to dynamically created choice list entries.
glide.ui.clickthrough.popup
This property, if set to “true”, turn on the feature of opening a new window when the related object icon is clicked on any form in a ServiceNow instance. An additional icon is shown beside the field for referenced object. To avoid the creation of new window, keep this property as “false”.
glide.ui.clickthrough.replace
This property, if set to “true”, allow replacing the current screen for a related object. It works along with glide.ui.clickthrough.popup property. If both property are “true”, two different icons are shown for referenced object. Icon for glide.ui.clickthrough.popup property (when clicked) opens new window for referenced details. Icon for glide.ui.clickthrough.replace property (when clicked) loads referenced object details on same screen. If glide.ui.clickthrough.replace property is “false”, it can’t replace referenced details on same screen as its icon is not displayed.
glide.ui.client.integer.check
This Boolean property, if set to “true”, enable client side validation of integer fields.
glide.ui.client.mandatory.check
This Boolean property, if set to “true”, turn on a feature wherein client validates mandatory field population.
glide.ui.client.numeric.check
This Boolean property, if set to “true”, enable client side validation of numeric fields.
glide.ui.dirty_form_support
This Boolean property, if set to “true”, show a popup to user while navigating away from a modified form. The pop up shows two options. One to proceed further without saving the modifications. Second option to cancel the navigation and stay on same form.
glide.ui.enforce.mandatory.on.update
This property, if set to “true”, validates mandatory field value and produce a 'mandatory' error during an update when a mandatory field begins with a null value.
glide.ui.filters
This Boolean property enable User Interface filters on ServiceNow instance.
glide.ui.focus_first_element
Setting this property to “false” disable the form focus on form load. If “true”, on form load, focus is on first writable element on the form.
glide.ui.forgetme
If this property set to “true”, it remove "Remember me" checkbox from login page.
glide.ui.form_multiple_splits
This property allow multiple splits within a single form section. If this property is set to true, three options "|- begin_split -|","|- split -|" and "|- end_split -|" appear in the Available column of the configure form slushbucket. Each of these split options creates a form group. Such form group contain two columns. It enables to create elements that span the form at the top of the form and also multiple two-column split element groups within the form.
glide.ui.per_page
This property can be used to set 'Items per page' drop-down options (comma separated, no spaces). (For e.g. 10,15,20,50,100)
glide.short.labels
This property can be used to specify the type of labels that are displayed for all reference fields on any form. This global property can be overridden for any field by setting the short_label=true or long_label=true attribute for the field in the Dictionary. Set this property to use short labels for all fields. For example, if a form contains the caller's email address, use the "Email" label rather than the full label of "Caller Email".
glide.xmlhttp.ac_wait_time
This property can be used to set the default wait time between keystrokes for a dynamic drop-down choice list (milliseconds). (For e.g. 250)
glide.xmlhttp.max_choices
This property can be set for maximum number of items to show for a dynamic drop-down choice list.

History, Audit & Activity Formatter

glide.escalation.notes
This property can be used to set the Boolean flag (True/False) in order to turn on/off the feature of logging the information/comment in task Work Notes field.
glide.escalation.sticky
This property can be used to set the Boolean flag (True/False) to turn on/off the feature of re-computation of escalations on every Save/Update action for any ticket.
glide.escalation.verbose
This property can be used to set the Boolean flag (True/False) to turn on/off the feature of logging verbose escalation messages.
glide.history.initial_updates_when_truncated
Maximum numerical limit value can be set in relation to historical updates availability for any record. These number of updates shows up from the point when record was actually created initially until some records are omitted, when the maximum field entry value exceed. (For e.g. the default value is set to 10).
glide.history.max_entries
Activity formatter will use the maximum number set for this property and display up to those number of field entries in record history. Please note that most recent field entries are shown at the starting entries list in Activity formatter. The maximum number can be set as 250. By the way, the default maximum value is 250 for this property.
glide.history.role
History access can be provided to specific users by setting list of roles (comma-separated) in this property. Users having those roles will be able to access the history.
glide.ui.audit_deleted_tables
This property can be set with list of system tables (beginning with "sys_", comma separated) for which the audit history tracks deletions. Please note that by default, system tables do not have the delete audited. So for any system table to audited for deletions need to be included in the comma separated string value for this property. Default value for this property is “sys_user,sys_user_group,sys_user_role,sys_user_has_role,sys_user_grmember,sys_group_has_role,sys_security_acl_role”
glide.ui.record.level.history
This property can be used to turn on/off the feature to maintain a history of records visited by each user.
glide.ui.activity.email.use_display
This Boolean property, if set to “true”, will turn on the ServiceNow feature to show user IDs instead of email addresses in Activity header for emails. Basically the instance searches for a user record based on matching email address in User table. If any matching user record is found, it displays user IDs in email header. If no matching user record is found, the email address is displayed. Default value is “false”.
glide.ui.activity.email_roles
This property allows to customize the list of roles that can view mail in the Activity formatter when including "Sent/Received Emails". The list of roles need to be specified in the format of comma-separated string values. Default value is “itil”.
glide.ui.activity.image.assigned_to
This property, if set with appropriate image filename path, enables to use "Assigned To" image in Activity formatter. For e.g. “images/icons/user.gifx”
glide.ui.activity.image.assignment_group
This property, if set with appropriate image filename path, enables to use Assignment group image in Activity formatter.
glide.ui.activity.image.comments
This property, if set with appropriate image filename path, enables to use Additional comments image used in Activity formatter.
glide.ui.activity.image.work_notes
This property, if set with appropriate image filename path, enables to use Work notes image used in Activity formatter.
glide.ui.activity.style.comments
This property allows to change the style of additional comments and provide customized background color in Activity formatter. For e.g. “background-color: WhiteSmoke”
glide.ui.activity.style.work_notes
This property allows to change the style of Work Notes in Activity formatter. Other fields can also be customized by creating new UI Properties.

Email Client

glide.ui.email_client.autocomplete.count
This property help to control the email client autocomplete search result behaviors. The integer value set decides the maximum number of autocomplete matches to return to the email client. If glide.ui.email_client.autocomplete.group property is turned on, in that case, email client autocomplete search result feature applies to users and groups both. However the count applies separately for users and groups.
glide.ui.email_client.autocomplete.group
This Boolean property, if set to “true”, allows to include groups in email client autocomplete results. The count set for glide.ui.email_client.autocomplete.count property applies separately for users and groups.
glide.ui.email_client.from
This property allows to override the email 'From:' address in the email client. Normally “From” field is not displayed in the email client and it uses default email property values of Outgoing email display name (glide.email.username) and User email (glide.email.user). This property, if set to “true”, activate the feature wherein an editable “From” field is displayed in the email client.
glide.ui.email_client.reply_to
This property allows to override the email 'Reply to:' address in the email client. This property , if set to “true”, activate the feature wherein 'Reply to:' address line is displayed in the email client.

Date, Time & Localization

glide.sys.date_format
This property can be used to set the date format used for date representation. (For e.g. yyyy-MM-dd) Note that MM is months, where mm indicates minutes. The format string consists of the following abbreviations: Field Full Form Short Form Year yyyy (4 digits) yy (2 digits), y (2 or 4 digits) Month MMM (name or abbr.) MM (2 digits), M (1 or 2 digits) Day of Month dd (2 digits) d (1 or 2 digits)
glide.sys.time_format
This property can be used to set the time format for time representation. (For e.g. HH:mm:ss). The format string consists of the following abbreviations: Field Full Form Short Form Hour (1-12) hh (2 digits) h (1 or 2 digits) Hour (0-23) HH (2 digits) H (1 or 2 digits) Minute mm (2 digits) m (1 or 2 digits) Second ss (2 digits) s (1 or 2 digits) AM/PM a
glide.sys.default.tz
This property can be used to set the System timezone, used as default for calendars and users. Mostly Olson/zoneinfo timezone values are accepted.

System, Security & Performance

glide.db.soft_join_cap
Smaller values cause the system to issue a larger number of less complex queries. Larger values reduce the number of queries at the cost of additional complexity per query. In the absence of known database issues stemming from large join counts, this property should remain unchanged. This property is used to limit database join complexity and size in a particular query. Though ServiceNow uses relational database model, however it is better to use fewer joins in order to prevent any database performance issue. By default, this parameter is set to 10 which should remain unchanged so that database queries work efficiently without any performance issue.
glide.dashboard.refresh_intervals
This property can be used to set dashboard refresh intervals in seconds (for e.g. 900,1800,3600). Accordingly refresh intervals will be available for dashboard for users.
glide.itil.assign.number.on.insert
This Boolean property can be set to turn on/off the feature to generate task number only upon insert action. This way it helps to prevent the generation of unused task numbers.
glide.sys.logout_prompt
This property can be set to prompt user for logout request confirmation.
glide.sys.servlet_path
This property can be used to set the prefix path that is used while accessing user’s ServiceNow instance.
glide.sys.sparse.update
This property can be set to allow physical update of the database only when fields have changed in value.
glide.sys.upgrade_script
This property can be set for upgrade script used in particular instance.
glide.ui.autoclose.time
This property can be used to set the number of days (integer) after which Resolved incidents are automatically closed. If set as Zero (0), it will disable this feature.
glide.ui.can_search
This property help to manage the use of Global Text Search feature in ServiceNow by allowing the access to specific roles. The list of roles is set as string in comma-separated format in this property. The default value for this property is “itil,text_search_admin,admin”
glide.use_tiny_urls
This Boolean property allow to turn on/off the feature to use tiny URLs when a redirect URL becomes too large. This ensures that URLs that are too large for Internet Explorer (greater than 2083) are not used. Instead, they are converted to a tiny URL as a workaround. Note: the original justification for this was Internet Explorer's URL length limits — IE has since been retired, but the property still applies if any client or integration you use has similar constraints.
glide.tiny_url_min_length
This property is set for minimum length of a redirect URL that is turned into a tiny URL. The default value is to 1024.