Xanadu is one of the most developer-focused releases ServiceNow has shipped in recent memory. Rather than walking through every release note, this article covers the changes that actually affect how you write code and build on the platform every day.
1. GlideQuery is Now Production-Recommended
GlideQuery has been available since San Diego but was considered experimental for production use. With Xanadu, ServiceNow officially recommends GlideQuery for new development. The API is stable, well-documented, and significantly cleaner than equivalent GlideRecord patterns.
The key difference: GlideQuery returns actual JavaScript values rather than GlideElement objects, which eliminates the constant need for getValue() and getDisplayValue() calls.
// Old pattern
var gr = new GlideRecord('incident');
gr.addEncodedQuery('active=true^priority=1');
gr.query();
while (gr.next()) {
var num = gr.getValue('number');
var caller = gr.getValue('caller_id');
}
// Xanadu recommended pattern
new GlideQuery('incident')
.where('active', true)
.where('priority', 1)
.select('number', 'caller_id')
.forEach(function(incident) {
// incident.number and incident.caller_id are plain strings
});
2. Flow Designer — Enhanced Error Handling
Xanadu adds proper try/catch equivalent handling in Flow Designer through the new Error Handler step type. Previously, handling errors in flows required workarounds — setting conditions on subsequent steps or using subflows with status checks. Now you can define explicit error paths directly in the flow canvas.
The practical impact: flows that call external REST APIs can now gracefully handle timeouts and 5xx responses without the flow failing silently or requiring a separate monitoring job.
3. Now Assist — Script Generation in Studio
Now Assist in Studio can now generate GlideRecord scripts, Business Rule skeletons, and REST API call patterns from natural language descriptions. The generated code is not production-ready without review, but it eliminates the boilerplate scaffolding that slows down initial development.
Key point: treat the generated code as a starting point, not a finished solution. The AI does not know your instance's custom fields, naming conventions, or business rules. Always review before committing to an Update Set.
4. Automated Test Framework — Parallel Test Execution
ATF now supports running test suites in parallel across multiple browser instances. For instances with large test suites, this can reduce test execution time by 60-70%. The configuration is in ATF Settings — enable parallel execution and set the maximum concurrent browser count based on your instance's capacity.
5. CMDB — Identification Engine Improvements
The Identification and Reconciliation Engine received significant updates in Xanadu. The most impactful change: duplicate detection now runs automatically during Discovery without a separate scheduled job. CIs with matching serial numbers or MAC addresses are flagged in real time rather than waiting for a nightly dedup run.
If you have existing dedup scheduled jobs, review whether they're still necessary — running both can cause conflicts.
6. IntegrationHub — New REST Step Enhancements
The REST step in IntegrationHub now supports:
- OAuth 2.0 token refresh without custom scripts
- Request retry logic with configurable backoff
- Response streaming for large payloads
- Certificate pinning for mTLS connections
The retry logic change is the most valuable for production integrations. Previously, handling transient network errors required wrapping REST calls in custom scripts with manual retry loops.
What to Update First
If you're upgrading to Xanadu, prioritise these checks before go-live:
- Review any scripts that use deprecated GlideRecord patterns flagged in the upgrade scanner
- Test all IntegrationHub REST steps — the OAuth handling changes can break existing connections
- Verify Flow Designer error handling on any flows calling external APIs
- Check ATF test results — parallel execution sometimes surfaces timing issues that sequential runs miss