<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Community Resources articles</title>
    <link>https://www.servicenow.com/community/community-resources/tkb-p/community-resources-kb</link>
    <description>Community Resources articles</description>
    <pubDate>Thu, 21 May 2026 16:38:01 GMT</pubDate>
    <dc:creator>community-resources-kb</dc:creator>
    <dc:date>2026-05-21T16:38:01Z</dc:date>
    <item>
      <title>How to Become a ServiceNow MVP by Sharing What You Know</title>
      <link>https://www.servicenow.com/community/community-resources/how-to-become-a-servicenow-mvp-by-sharing-what-you-know/ta-p/3544344</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Want to become a ServiceNow MVP? Start by sharing the problems you already solve. This article shows how your daily work, repeat questions, and public answers can build real community value and grow your expert status over time.&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 17 May 2026 07:29:52 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/how-to-become-a-servicenow-mvp-by-sharing-what-you-know/ta-p/3544344</guid>
      <dc:creator>Bill Martin</dc:creator>
      <dc:date>2026-05-17T07:29:52Z</dc:date>
    </item>
    <item>
      <title>How to resolve issue with Correlator id when using executeAsync() without Midserver</title>
      <link>https://www.servicenow.com/community/community-resources/how-to-resolve-issue-with-correlator-id-when-using-executeasync/ta-p/3521056</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Issue-&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A frequently encountered challenge when using &amp;nbsp;executeAsync() is how to process the response coming back from the 3rd party and correlate to the source. This is because the correlation identifier set on the outbound request is not propagated to the corresponding input record in the ECC Queue — consequently, it becomes unfeasible to identify the originating source record and process the response without an alternative correlation strategy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Sample Requirement -&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Whenever an incident is created, an outbound call (asynchronous) should be triggered to the 3rd party and description of the incident should be updated with the response from the 3rd party.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Solution -&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;1) Create BR on the incident table as below (on Insert)-&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2) Create another BR on ecc_queue table with the required conditions like&lt;/P&gt;
&lt;P&gt;Agent - RestClient&lt;/P&gt;
&lt;P&gt;Queue- Input&lt;/P&gt;
&lt;P&gt;State- Ready&lt;/P&gt;
&lt;P&gt;Source - &amp;lt;3rd party URL&amp;gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3) The actual issue is correlating the Input to the Output record as the Correlation value for Output is populated by using below code in the BR -&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;restMessage.setEccCorrelator(correlator); but in the input record, this Correlation value is empty.&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4) To resolve this, we can use the link between Input and output record i.e 'Response to' column in the ECC Queue BR -&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;var correlator = current.response_to.getRefRecord().getValue('agent_correlator');&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P&gt;- Adding the below BR scripts used for this integration just for the reference -&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;BR on Incident table -&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;(function executeRule(current, previous /*null when async*/) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var correlator = current.number;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;try {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;// ── Step 1: Build REST Message ──&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var restMessage = new sn_ws.RESTMessageV2();&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;restMessage.setHttpMethod('GET');&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;restMessage.setEccCorrelator(correlator);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;restMessage.setEndpoint(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'&lt;A href="https://api.ipify.org?format=json'" target="_blank" rel="nofollow noopener"&gt;https://api.ipify.org?format=json'&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;// ── Step 2: Execute the call ──&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var response = restMessage.executeAsync();&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;catch(ex) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.error(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[IPifyBR] Error: ' + ex,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'IPifyBR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;})(current, previous);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;BR on ECC Queue table -&amp;nbsp;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;
&lt;DIV&gt;(&lt;SPAN&gt;function executeRule(current, previous) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;try {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;// ── Step 1: Get raw XML payload ──&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var payloadXML = current.getValue('payload');&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;if (!payloadXML) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.error(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[ECC_BR] Payload is empty',&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'ECC_BR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;return;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;// ── Step 2: Parse XML ──&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var xmlDoc = new XMLDocument2();&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;xmlDoc.parseXML(payloadXML);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;// ── Step 3: Get status code ──&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;// From &amp;lt;parameter name="http_status_code"&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;// value="200"/&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var statusNode = xmlDoc.getNode(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'//parameters/parameter' +&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[@name="http_status_code"]'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var statusCode = statusNode&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;? statusNode.getAttribute('value')&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;: null;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.log(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[ECC_BR] Status Code: ' + statusCode,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'ECC_BR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;// ── Step 4: Get response body ──&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;// From &amp;lt;output&amp;gt;{"ip":"148.139.1.10"}&amp;lt;/output&amp;gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var outputNode = xmlDoc.getNode(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'//result/output'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var body = outputNode&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;? outputNode.getTextContent()&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;: null;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.log(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[ECC_BR] Body: ' + body,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'ECC_BR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;// ── Step 5: Process response ──&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;if (statusCode == '200' &amp;amp;&amp;amp; body) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;// Parse the JSON inside the output&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;// body = {"ip":"148.139.1.10"}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var parsed = JSON.parse(body);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var ip = parsed.ip;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.log(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[ECC_BR] IP Address: ' + ip,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'ECC_BR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;// ── Step 6: Update the incident ──&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;// Find the incident using correlator&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;// or whatever reference you stored&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;// var correlator = current.getValue(response_to.agent_correlator);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;var correlator = current.response_to.getRefRecord().getValue('agent_correlator');&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;var gr = new GlideRecord('incident');&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gr.addQuery(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'number',&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;correlator&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gr.setLimit(1);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gr.query();&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;if (gr.next()) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gr.setValue(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'description',&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'Public IP captured: ' + ip&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gr.update();&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.log(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[ECC_BR] Updated incident: ' +&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gr.getValue('number'),&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'ECC_BR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;} else {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.error(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[ECC_BR] No incident found ' +&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'for correlator: ' + correlator,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'ECC_BR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;} else {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.error(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[ECC_BR] Bad response — ' +&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'Status: ' + statusCode +&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;' | Body: ' + body,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'ECC_BR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;} catch(ex) {&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;gs.error(&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'[ECC_BR] Error: ' + ex,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;'ECC_BR'&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;BR /&gt;
&lt;DIV&gt;&lt;SPAN&gt;})(current, previous);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 07 Apr 2026 17:10:10 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/how-to-resolve-issue-with-correlator-id-when-using-executeasync/ta-p/3521056</guid>
      <dc:creator>raghu59</dc:creator>
      <dc:date>2026-04-07T17:10:10Z</dc:date>
    </item>
    <item>
      <title>From Setup to Scale: Activate, Deploy, and Trust Your Agentic AI</title>
      <link>https://www.servicenow.com/community/community-resources/from-setup-to-scale-activate-deploy-and-trust-your-agentic-ai/ta-p/3504521</link>
      <description>&lt;P&gt;Please take a look at the below series to see how to walk through your agentic AI deployment journey with ServiceNow.&amp;nbsp; If you are at an AI Summit or going to one shortly, you know how important getting started can be - take advantage of this series to get ahead.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Prerequisites:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Now Assist entitlement &lt;EM&gt;AND&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Zurich Patch 5 with Version 12.1.1 of Now Assist for IT Service Management &lt;EM&gt;OR&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;Yokohama Patch 11 with Version 11.3.2 of Now Assist for IT Service Management &lt;EM&gt;AND&lt;/EM&gt;&lt;/LI&gt;
&lt;LI&gt;AI Search enabled&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Three sessions for each region, one hour each with expert presentation, demonstration of hands-on configuration guidance, open discussion and Q&amp;amp;A - live and interactive.&amp;nbsp; Come and join us to get started on your journey!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Registration Link:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://info.servicenow.com/ServiceNowExchange-AgenticAI.html" target="_blank" rel="noopener"&gt;https://info.servicenow.com/ServiceNowExchange-AgenticAI.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 09 Mar 2026 21:42:03 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/from-setup-to-scale-activate-deploy-and-trust-your-agentic-ai/ta-p/3504521</guid>
      <dc:creator>Janet Achorn</dc:creator>
      <dc:date>2026-03-09T21:42:03Z</dc:date>
    </item>
    <item>
      <title>IT + Cloud + AI Fundamentals – The Foundation Every ServiceNow Professional Must Understand</title>
      <link>https://www.servicenow.com/community/community-resources/it-cloud-ai-fundamentals-the-foundation-every-servicenow/ta-p/3499475</link>
      <description>&lt;P&gt;Hello Community,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Before we start configuring tables, writing Business Rules, or building Flows in ServiceNow, there’s something more important — understanding the architecture behind it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In this session, I explained the core foundations every aspiring ServiceNow professional should know:&lt;/P&gt;&lt;P&gt;• Application Lifecycle (Planning → Development → Maintenance)&lt;BR /&gt;• Web Architecture (Client → Server → Database)&lt;BR /&gt;• Cloud Models (IaaS, PaaS, SaaS)&lt;BR /&gt;• Why ServiceNow is SaaS&lt;BR /&gt;• AI &amp;amp; Generative AI in ITSM&lt;BR /&gt;• Real examples of Predictive Intelligence and Now Assist&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Many learners jump directly into the platform. But when you understand how applications work behind the scenes, ServiceNow becomes much easier to grasp.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You stop seeing forms and buttons —&lt;BR /&gt;You start seeing tables, logic, and architecture.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This session is part of the &lt;STRONG&gt;Pro ServiceNow Developer Weekend Mentorship Program (Marathi)&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Session 1:&amp;nbsp;&lt;A title="IT + Cloud + AI Fundamentals | ServiceNow Career Roadmap (Beginner to Developer) | (Marathi)" href="https://youtu.be/fnbo2JoVLAs?si=AQVkWZwfWyjTI3Uv" rel="noopener" target="_blank"&gt;IT + Cloud + AI Fundamentals | ServiceNow Career Roadmap (Beginner to Developer) | (Marathi)&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you are beginning your ServiceNow journey or guiding freshers, this foundation session will help you build the right mindset.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Let’s build professionals — not just users.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#ServiceNow #ITSM #Cloud #AI #CareerGrowth #CSA #CAD&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 01 Mar 2026 19:45:48 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/it-cloud-ai-fundamentals-the-foundation-every-servicenow/ta-p/3499475</guid>
      <dc:creator>PrasadShelar</dc:creator>
      <dc:date>2026-03-01T19:45:48Z</dc:date>
    </item>
    <item>
      <title>Debugging OIDC Single Sign-On feature in ServiceNow</title>
      <link>https://www.servicenow.com/community/community-resources/debugging-oidc-single-sign-on-feature-in-servicenow/ta-p/3469429</link>
      <description>&lt;P&gt;Hello Folks! Happy New year!&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;Introduction&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;As OIDC is picking up the pace as compared to the other options like SAML, its crucial to add more details around this specifically when it comes to debugging the OIDC flow.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In this article I am going to explain the OIDC SSO login debugging and a few other details. In the first section I will explain the basics of OIDC and how ServiceNow acts as a service provider in this case. In the second section of the article I have explained the detailed debugging steps.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT size="5"&gt;OIDC Overview&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;OIDC (Open ID Connect) is the latest and modern identity protocol that is built on Oauth2.0. &lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;FONT size="4"&gt;&lt;SPAN&gt;&lt;STRONG&gt;Core Components&lt;/STRONG&gt;:&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;Here are the key components of standard OIDC flow -&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;Core Purpose: Authentication protocol that lets applications verify user identity without handling passwords&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;Key Components:&lt;/SPAN&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Identity Provider (IdP): The trusted service that knows the user (e.g., Google, Okta)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Relying Party (RP): The application that needs to verify user identity (ServiceNow here)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;End User: The person trying to log in&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Standard OIDC Flow:&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="1"&gt;&lt;SPAN&gt;How It Works:&lt;/SPAN&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;User clicks "Login with Okta" on your app&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;App redirects to Google (IdP)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;User authenticates with &lt;/SPAN&gt;&lt;SPAN&gt;Okta&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Okta&lt;/SPAN&gt;&lt;SPAN&gt; sends back:&lt;/SPAN&gt;
&lt;UL class="lia-list-style-type-disc"&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Authorization Code + other details.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="3"&gt;Relying party calls Okta API to get ID Token.&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="3"&gt;Relying Party establishes the session if ID Token is valid&lt;/LI&gt;
&lt;/OL&gt;
&lt;/UL&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;ServiceNow as Relying Party:&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;OIDC flow if ServiceNow acts as Service Provider (Relying party) -&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;OL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Initial Request&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;App redirects user to IdP with:&lt;/SPAN&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;client_id&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;redirect_uri&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;scope&lt;/SPAN&gt;&lt;SPAN&gt; (e.g., "openid profile email")&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;state&lt;/SPAN&gt;&lt;SPAN&gt; (for verification)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;response_type=code&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;User Authentication&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="3"&gt;&lt;SPAN&gt;User logs in at IdP&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="3"&gt;&lt;SPAN&gt;IdP asks user to consent to requested scopes&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Authorization Code Return&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;IdP redirects back to app's &lt;/SPAN&gt;&lt;SPAN&gt;redirect_uri&lt;/SPAN&gt;&lt;SPAN&gt; with:&lt;/SPAN&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;code&lt;/SPAN&gt;&lt;SPAN&gt; (short-lived, one-time-use)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;state&lt;/SPAN&gt;&lt;SPAN&gt; (same value for verification)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;Token Exchange (Backend-only)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;App server sends to IdP:&lt;/SPAN&gt;&amp;nbsp;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Endpoint: /token&lt;/SPAN&gt;&amp;nbsp;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;code&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;client_id&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;client_secret&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;redirect_uri&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;grant_type=authorization_code&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;IdP returns:&lt;/SPAN&gt;&lt;BR /&gt;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;ID Token (JWT with user info)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;Access Token (&lt;STRONG&gt;Mandatory&lt;/STRONG&gt;)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;Refresh Token (optional)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;LI style="font-weight: 400;" aria-level="2"&gt;&lt;SPAN&gt;UserInfo Endpoint Call (optional, only if user provisioning enabled in servicenow)&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;App server sends to IdP:&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;
&lt;UL&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;App uses Access Token to request additional user info&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;Endpoint: /userinfo&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;&lt;SPAN&gt;Headers Format: Authorization: Bearer &amp;lt;access_token&amp;gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI style="font-weight: 400;" aria-level="4"&gt;IdP returns:
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Returns: Additional user claims about user&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AmbujTripathi_0-1768740282854.png" style="width: 999px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/496344i5D5AC6CDE10293E6/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="AmbujTripathi_0-1768740282854.png" alt="AmbujTripathi_0-1768740282854.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;FONT size="5"&gt;&lt;SPAN&gt;&lt;STRONG&gt;Debugging Setup&lt;/STRONG&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;This section covers the step by step debugging of OIDC flow in servicenow. &lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Prerequisites&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;SPAN&gt;Below properties are required to make sure the OIDC is enabled in the instance&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI-CODE lang="markup"&gt;glide.authenticate.multisso.enabled
com.snc.platform.security.oauth.is.active&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;Glide Properties controlling the OIDC feature debugging in -&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;glide.authenticate.multisso.debug
&lt;/LI-CODE&gt;
&lt;P&gt;&lt;SPAN&gt;Once the debug property is enabled, the additional debug logs will start generating for the OIDC SSO flow.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;Just by enabling the above mentioned SSO debug property, we can get most of the details like the which SSO record getting selected for Authentication, redirection URL with scopes, the auth code getting sent from the IDP, the returned result of the back channel call and why exactly the flow failed if happening so.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Basic SSO Debug Logging&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;However, in case of failures, it may not present a clear picture since some of the transactions take place only in the back channel and no additional debug details are logged due to security reasons or due to heavy debug logs being generated by default.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;As we have seen the OIDC flow for Servicenow, the first step is getting the auth code from IdP. This&lt;/SPAN&gt;&lt;SPAN&gt; step is easy to debug, that is getting the auth code from the identity provider. As the action is performed between the IDP and browser client, auth code being received can be seen clearly in the browser URL. This step is complete once the IDP redirects the request to ServiceNow on the instance/&lt;/SPAN&gt;&lt;A href="http://navpage.do" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;navpage.do&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt; endpoint with Authcode and other parameters.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The next subsequent and important step is the back channel call in which ServiceNow hits the IDP token end point with the clientID, client Secret, AuthCode and other additional parameters.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;This is an outbound HTTP call to the IDP from ServiceNow which is a backchannel call (Server to server HTTP call) and to get the complete picture of what is happening behind the scene, two important debug steps to be taken -&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Enhanced OAuth Utility Logging&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;Add debug logs in the &lt;EM&gt;&lt;STRONG&gt;OauthUtil&lt;/STRONG&gt;&lt;/EM&gt; script include to enable the additional debug logging. This is a relatively very simple step but its almost as effective as the other step next to it. The only case it fails into is when the outbound http request itself didn’t complete and failed for some reasons.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In this step, the idea is to add two debug statements in the OauthUtil script include and it requires appropriate access to edit both SSO configurations and script includes to make changes into it. Link of the script include is (&lt;EM&gt;instance&lt;/EM&gt; to be replaced with actual servicenow instance)-&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="https://instance.service-now.com/sys_script_include.do?sys_id=3e3a3a11c333210016194ffe5bba8f70&amp;amp;sysparm_view=oauth_oidc_provider" target="_blank" rel="noopener"&gt;https://instance.service-now.com/sys_script_include.do?sys_id=3e3a3a11c333210016194ffe5bba8f70&amp;amp;sysparm_view=oauth_oidc_provider&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Code change to be done to get additional debug logs -&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;postprocessAccessToken: function(accessTokenResponse) {
       var contentType = accessTokenResponse.getContentType();
       if (contentType &amp;amp;&amp;amp; contentType.indexOf('application/json') != -1) {
           var tokenResponse = (new global.JSON()).decode(accessTokenResponse.getBody());
           gs.debug("DebugOIDC:Response: " + JSON.stringify(tokenResponse)); //DEBUG
           var paramMap = accessTokenResponse.getparameters();
           for (param in tokenResponse){
               paramMap.put(param, tokenResponse[param].toString());
               gs.debug("DebugOIDC:param: " + param + ", Response: " + tokenResponse[param].toString()); //DEBUG
           }
       }
   },&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Once this change is done, you need to set this script include into Oauth OIDC entity record:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Navigate to oauth_oidc_entity table, open the record corresponding to your OIDC IDP record (alternatively you can open the IDP record from the navigation, open the IDP record and navigate to the entity tab to get the same record). &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Once on the OIDC Entity record form view, open the Oauth API script selector field, search for OauthUtil script record which you modified above and select it. &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;This will ensure the changes we did are now effectively getting applied and it would print the required debug details. Now reproduce the issue again, then open the system logs and search with "&lt;/SPAN&gt;&lt;SPAN&gt;DebugOIDC"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;keyword to get the required debug logs like this:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AmbujTripathi_0-1768742315878.png" style="width: 999px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/496347iE75E9850C855FC45/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="AmbujTripathi_0-1768742315878.png" alt="AmbujTripathi_0-1768742315878.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Below mentioned information can be retrieved using this debug step -&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Access Token, ID Token and other output parameters&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Complete response output of the http outbound call made to the IDP.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Outbound HTTP Debug logging&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;As this back channel call falls under outbound http category, enabling the outbound http debug logs will give the complete details of the back channel call.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Outbound HTTP Properties List -&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="https://www.servicenow.com/docs/bundle/zurich-api-reference/page/integrate/outbound-web-services/reference/outbound-logging-properties.html" target="_blank" rel="noopener"&gt;https://www.servicenow.com/docs/bundle/zurich-api-reference/page/integrate/outbound-web-services/reference/outbound-logging-properties.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Steps of enabling the debug properties and getting the debug logs -&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;Properties to bet set for debugging OIDC SSO flow -&lt;/SPAN&gt;
&lt;UL&gt;
&lt;LI&gt;glide.outbound_http.content.max_limit =&amp;nbsp;&lt;STRONG&gt;2000&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;glide.outbound_http_log.override&amp;nbsp; =&amp;nbsp;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;glide.outbound_http.file.log.allow.all.fields =&amp;nbsp;&lt;STRONG&gt;true&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;glide.outbound_http.text.content_types =&amp;nbsp;&lt;STRONG&gt;application/x-www-form-urlencoded&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;glide.outbound_http_log.override.level =&amp;nbsp;&lt;STRONG&gt;all&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;Once the above properties are set accordingly, navigate to All-&amp;gt; System Logs -&amp;gt; Outbound HTTP Requests.&amp;nbsp;Log Table Name - sys_outbound_http_log&lt;/LI&gt;
&lt;LI&gt;Apply the filter in table list view on URL hostname column with URL hostname of the IDP. Alternatively filter can be applied on the URL path with "token" keyword. &lt;SPAN&gt;The exact endpoint looks similar to this - &lt;/SPAN&gt;&lt;SPAN&gt;&lt;A href="https://trial-account.okta.com/oauth2/default/v1/token" target="_blank" rel="noopener"&gt;https://trial-account.okta.com/oauth2/default/v1/token.&lt;/A&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Once the exact http request has been identified, we can get the complete details from this like response status, failure reason, request parameters being sent from ServiceNow, response parameters being received etc. [refer to attached screenshots below]&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AmbujTripathi_1-1768742908675.png" style="width: 999px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/496349i63A88A5C4E1F456F/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="AmbujTripathi_1-1768742908675.png" alt="AmbujTripathi_1-1768742908675.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Here is the sample request and response of a successful backchannel call:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Request -&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AmbujTripathi_3-1768743130963.png" style="width: 999px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/496351i1303216894A987E1/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="AmbujTripathi_3-1768743130963.png" alt="AmbujTripathi_3-1768743130963.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Response -&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AmbujTripathi_2-1768743094889.png" style="width: 999px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/496350i064B4C842855DFA8/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="AmbujTripathi_2-1768743094889.png" alt="AmbujTripathi_2-1768743094889.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;&lt;FONT size="5"&gt;Security Considerations &amp;amp;&amp;nbsp;Cleanup Procedures&amp;nbsp;(Must read) -&lt;/FONT&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN&gt;1: The second step is only required/helpful if&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;either the backchannel call fails, in which case you may not get the complete details.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;or you are not able to/don't want to make the changes into the script include mentioned above. However, you can revert the changes made into that script anytime to avoid any issues further.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;SPAN&gt;2: The debug properties/http outbound logs/other customisations done in any of the scripts must be switched off due to below reasons. &lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;SPAN&gt;It continues to print ID token/Access token and other sensitive details in the debug logs.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Debug log occupies additional disk space.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Happy debugging!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;</description>
      <pubDate>Sun, 18 Jan 2026 16:50:24 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/debugging-oidc-single-sign-on-feature-in-servicenow/ta-p/3469429</guid>
      <dc:creator>Ambuj Tripathi</dc:creator>
      <dc:date>2026-01-18T16:50:24Z</dc:date>
    </item>
    <item>
      <title>CSM - technical checks and test cases to prevent performance challenges</title>
      <link>https://www.servicenow.com/community/community-resources/csm-technical-checks-and-test-cases-to-prevent-performance/ta-p/3466915</link>
      <description>&lt;P&gt;Context:&lt;/P&gt;
&lt;P&gt;1. Customer is asking for technical checks and test cases for ServiceNow platform, before moving to production.&lt;/P&gt;
&lt;P&gt;2. This is more proactive test cases and code level checks before moving to Performance Load Test where customer is using Selenium for regression test and WPT for load running checks.&lt;/P&gt;
&lt;P&gt;3. There are few specific modules that previously has performance challenges, like:&lt;/P&gt;
&lt;P&gt;- Manager Landing Page&lt;/P&gt;
&lt;P&gt;- Case load&lt;/P&gt;
&lt;P&gt;- Shipment ID Search&lt;/P&gt;
&lt;P&gt;- Case search&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Questions: are there any test cases or checks that customer's technical team can do such that they are able to catch the performance issues on code level first before moving to performance load test?&lt;/P&gt;</description>
      <pubDate>Wed, 14 Jan 2026 11:17:42 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/csm-technical-checks-and-test-cases-to-prevent-performance/ta-p/3466915</guid>
      <dc:creator>Yonghui Zhong</dc:creator>
      <dc:date>2026-01-14T11:17:42Z</dc:date>
    </item>
    <item>
      <title>Scripting, Performance, and Queries, OH MY</title>
      <link>https://www.servicenow.com/community/community-resources/scripting-performance-and-queries-oh-my/ta-p/3455619</link>
      <description>&lt;P&gt;One of the things I've found over the years pretty frequently is the question from junior devs asking about how they can make their 'code' more performant.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There's stuff everywhere and I haven't seen one place that has these little tips and tricks so here we go!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;1. Use get().&lt;/H2&gt;
&lt;P&gt;Seriously use get() where you can. If you have the sys_id for an object and are just trying to return one record this is super easy peasy. You don't even HAVE TO HAVE A SYS_ID. You can use a unique value!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here are some examples for how to use it!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can return a specific record:&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;var gr = newGlideRecord('incident');
gr.get('ENTER-SYS-ID-HERE');&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can try to return a specific record and if it doesn't find it, do something:&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;var gr = newGlideRecord('incident');
if(gr.get('ENTER-SYS-ID-HERE')){
//do something because it found the record
} else {
//do something else because you didn't find the record
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can use a specific field that holds a unique value:&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;var incNumber = 'INC0012345';
var gr = newGlideRecord('incident');
gr.get('number', incNumber);&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;2. Use setLimit()&lt;/H2&gt;
&lt;P&gt;If you are scripting out a query and need to return 1, single record: use setLimit( 1 ). If you are trying to return 10 records, use setLimit(10). This means that you are not going to query the entire table for that result and that means that it'll return faster!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here are some examples for how to use it!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I want to return 1 record:&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;var incNumber = 'INC0012345';
var gr = newGlideRecord('incident');
gr.addQuery('number', incNumber);
gr.setLimit( 1 ); //spaces added for web formatting - remove the spaces between the 1 and the ( )
gr.query();&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I want to return any 10 records for a query:&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;var ci = 'OfficePC2';
var gr = newGlideRecord('incident');
gr.addQuery('cmdb_ci', ci);
gr.setLimit(10);
gr.query();&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;3. Short-circuit&lt;/H2&gt;
&lt;P&gt;Using the boolean || will allow you to 'short-circuit' your logic. This means that if you evaluate whether A or B = 1, if it evaluates A = 1, it'll skip B allowing for faster processing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For example, if you are doing this:&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;if (name.startsWith('a')){
   return true;
} else if (name.startsWith('b')) {
   return false;
} else if (name.startsWith('c')) {
   return true;
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can instead do this:&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;if(name.startsWith('a') || name.startsWith('c') ){
  return true;
} else {
  return false;
}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2&gt;Now, if you're talking about queries, here's what ServiceNow has to say:&lt;/H2&gt;
&lt;P class=""&gt;Common reasons for slow queries&lt;/P&gt;
&lt;DIV class=""&gt;
&lt;UL class=""&gt;
&lt;LI&gt;A query has too many OR conditions (for more information, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="" title="Use a &amp;quot;contains&amp;quot; query only in special cases, such as when users or groups need to see data from a domain that they don't have access to, but you don't want to move those users to a domain. Creating domain &amp;quot;contains&amp;quot; and user or group access for a domain should be an exception, only when absolutely needed." href="https://www.servicenow.com/docs/bundle/zurich-platform-security/page/administer/company-and-domain-separation/concept/bp-contains-domain-visibility.html" target="_blank" rel="noopener"&gt;Contains queries and domain access&lt;/A&gt;). In the domain hierarchy, place the user or a domain at a hierarchy level where contains or visibility is not needed.&lt;/LI&gt;
&lt;LI&gt;The query method is not the domain path query method (for more information, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="" title="You can create effective queries with domain paths." href="https://www.servicenow.com/docs/bundle/zurich-platform-security/page/administer/company-and-domain-separation/concept/bp-domain-query-method.html" target="_blank" rel="noopener"&gt;Domain paths query method&lt;/A&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt; If you are not using the domain path query method, contact&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;Customer Service and Support&lt;/SPAN&gt;.&lt;/LI&gt;
&lt;LI&gt;A query needs a database to be indexed so you can see what is in the database quickly. If you can identify the slow query, run the "explain plan" to see if there are options for indexing available. The "explain plan" is a function of SQL that shows the query and what is going on with it.&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="skeletor.jpg" style="width: 735px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/470543iB7B395BFEC327E29/image-size/large?v=v2&amp;amp;px=999" role="button" title="skeletor.jpg" alt="skeletor.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Dec 2025 20:08:35 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/scripting-performance-and-queries-oh-my/ta-p/3455619</guid>
      <dc:creator>TheManMythLgnd</dc:creator>
      <dc:date>2025-12-23T20:08:35Z</dc:date>
    </item>
    <item>
      <title>Understanding User and Group Administration in ServiceNow</title>
      <link>https://www.servicenow.com/community/community-resources/understanding-user-and-group-administration-in-servicenow/ta-p/3422083</link>
      <description>&lt;H3 data-start="274" data-end="295"&gt;&lt;span class="lia-unicode-emoji" title=":small_blue_diamond:"&gt;🔹&lt;/span&gt; Introduction&lt;/H3&gt;
&lt;P data-start="296" data-end="604"&gt;User and Group Administration is one of the most fundamental aspects of managing access and responsibilities in &lt;STRONG data-start="408" data-end="422"&gt;ServiceNow&lt;/STRONG&gt;. Every ServiceNow Administrator should have a strong understanding of how users, groups, and roles work together to control access and define responsibilities across the platform.&lt;/P&gt;
&lt;P data-start="296" data-end="604"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="606" data-end="637"&gt;In this article, we’ll cover:&lt;/P&gt;
&lt;UL data-start="638" data-end="812"&gt;
&lt;LI data-start="638" data-end="670"&gt;
&lt;P data-start="640" data-end="670"&gt;What is a User in ServiceNow&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="671" data-end="704"&gt;
&lt;P data-start="673" data-end="704"&gt;What is a Group in ServiceNow&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="705" data-end="739"&gt;
&lt;P data-start="707" data-end="739"&gt;How to create Users and Groups&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="740" data-end="763"&gt;
&lt;P data-start="742" data-end="763"&gt;How to assign Roles&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="764" data-end="812"&gt;
&lt;P data-start="766" data-end="812"&gt;Best practices for managing Users and Groups&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR data-start="814" data-end="817" /&gt;
&lt;H3 data-start="819" data-end="857"&gt;&lt;span class="lia-unicode-emoji" title=":bust_in_silhouette:"&gt;👤&lt;/span&gt; What is a User in ServiceNow?&lt;/H3&gt;
&lt;P data-start="858" data-end="985"&gt;A &lt;STRONG data-start="860" data-end="868"&gt;User&lt;/STRONG&gt; in ServiceNow represents an individual who has access to the instance. Each user record holds key details such as:&lt;/P&gt;
&lt;UL data-start="986" data-end="1059"&gt;
&lt;LI data-start="986" data-end="994"&gt;
&lt;P data-start="988" data-end="994"&gt;Name&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="995" data-end="1004"&gt;
&lt;P data-start="997" data-end="1004"&gt;Email&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1005" data-end="1019"&gt;
&lt;P data-start="1007" data-end="1019"&gt;Department&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1020" data-end="1029"&gt;
&lt;P data-start="1022" data-end="1029"&gt;Roles&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1030" data-end="1041"&gt;
&lt;P data-start="1032" data-end="1041"&gt;Manager&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1042" data-end="1059"&gt;
&lt;P data-start="1044" data-end="1059"&gt;Active status&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-start="1061" data-end="1175"&gt;Users can be internal employees, external partners, or customers — depending on how your instance is configured.&lt;/P&gt;
&lt;BLOCKQUOTE data-start="1177" data-end="1319"&gt;
&lt;P data-start="1179" data-end="1319"&gt;🧠 &lt;STRONG data-start="1182" data-end="1190"&gt;Tip:&lt;/STRONG&gt; It’s always good practice to deactivate user accounts that are no longer required to maintain security and system cleanliness.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;HR data-start="1321" data-end="1324" /&gt;
&lt;H3 data-start="1326" data-end="1365"&gt;&lt;span class="lia-unicode-emoji" title=":busts_in_silhouette:"&gt;👥&lt;/span&gt; What is a Group in ServiceNow?&lt;/H3&gt;
&lt;P data-start="1366" data-end="1512"&gt;A &lt;STRONG data-start="1368" data-end="1377"&gt;Group&lt;/STRONG&gt; is a collection of users organized based on department, role, or function (e.g., &lt;EM data-start="1459" data-end="1471"&gt;IT Support&lt;/EM&gt;, &lt;EM data-start="1473" data-end="1482"&gt;HR Team&lt;/EM&gt;, &lt;EM data-start="1484" data-end="1508"&gt;Change Management Team&lt;/EM&gt;).&lt;/P&gt;
&lt;P data-start="1514" data-end="1542"&gt;Groups are often used for:&lt;/P&gt;
&lt;UL data-start="1543" data-end="1627"&gt;
&lt;LI data-start="1543" data-end="1566"&gt;
&lt;P data-start="1545" data-end="1566"&gt;Assigning approvals&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1567" data-end="1589"&gt;
&lt;P data-start="1569" data-end="1589"&gt;Distributing tasks&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1590" data-end="1627"&gt;
&lt;P data-start="1592" data-end="1627"&gt;Managing user access collectively&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;BLOCKQUOTE data-start="1629" data-end="1856"&gt;
&lt;P data-start="1631" data-end="1856"&gt;&lt;span class="lia-unicode-emoji" title=":counterclockwise_arrows_button:"&gt;🔄&lt;/span&gt; &lt;STRONG data-start="1634" data-end="1646"&gt;Example:&lt;/STRONG&gt; Instead of assigning the “ITIL” role to every Service Desk agent individually, you can assign it once to the &lt;EM data-start="1756" data-end="1776"&gt;Service Desk Group&lt;/EM&gt;. Every user added to that group will automatically inherit the assigned role.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;HR data-start="1858" data-end="1861" /&gt;
&lt;H3 data-start="1863" data-end="1893"&gt;&lt;span class="lia-unicode-emoji" title=":hammer_and_wrench:"&gt;🛠&lt;/span&gt;️ How to Create a User&lt;/H3&gt;
&lt;OL data-start="1894" data-end="2110"&gt;
&lt;LI data-start="1894" data-end="1942"&gt;
&lt;P data-start="1897" data-end="1942"&gt;Navigate to &lt;STRONG data-start="1909" data-end="1940"&gt;User Administration → Users&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1943" data-end="1961"&gt;
&lt;P data-start="1946" data-end="1961"&gt;Click &lt;STRONG data-start="1952" data-end="1959"&gt;New&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1962" data-end="2029"&gt;
&lt;P data-start="1965" data-end="2029"&gt;Fill in the required details like &lt;EM data-start="1999" data-end="2022"&gt;User ID, Name, Email,&lt;/EM&gt; etc.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2030" data-end="2051"&gt;
&lt;P data-start="2033" data-end="2051"&gt;Click &lt;STRONG data-start="2039" data-end="2049"&gt;Submit&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2052" data-end="2110"&gt;
&lt;P data-start="2055" data-end="2110"&gt;Assign roles as needed using the &lt;EM data-start="2088" data-end="2095"&gt;Roles&lt;/EM&gt; related list&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;HR data-start="2112" data-end="2115" /&gt;
&lt;H3 data-start="2117" data-end="2147"&gt;🧭 How to Create a Group&lt;/H3&gt;
&lt;OL data-start="2148" data-end="2344"&gt;
&lt;LI data-start="2148" data-end="2197"&gt;
&lt;P data-start="2151" data-end="2197"&gt;Navigate to &lt;STRONG data-start="2163" data-end="2195"&gt;User Administration → Groups&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2198" data-end="2216"&gt;
&lt;P data-start="2201" data-end="2216"&gt;Click &lt;STRONG data-start="2207" data-end="2214"&gt;New&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2217" data-end="2258"&gt;
&lt;P data-start="2220" data-end="2258"&gt;Enter &lt;EM data-start="2226" data-end="2238"&gt;Group Name&lt;/EM&gt; and &lt;EM data-start="2243" data-end="2256"&gt;Description&lt;/EM&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2259" data-end="2298"&gt;
&lt;P data-start="2262" data-end="2298"&gt;Add &lt;EM data-start="2266" data-end="2275"&gt;Members&lt;/EM&gt; (Users) to the group&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2299" data-end="2344"&gt;
&lt;P data-start="2302" data-end="2344"&gt;Assign &lt;EM data-start="2309" data-end="2316"&gt;Roles&lt;/EM&gt; to the group if necessary&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;HR data-start="2346" data-end="2349" /&gt;
&lt;H3 data-start="2351" data-end="2394"&gt;🧩 Assigning Roles to Users or Groups&lt;/H3&gt;
&lt;P data-start="2395" data-end="2482"&gt;Roles define what actions a user or group can perform within the ServiceNow instance.&lt;/P&gt;
&lt;UL data-start="2483" data-end="2670"&gt;
&lt;LI data-start="2483" data-end="2566"&gt;
&lt;P data-start="2485" data-end="2566"&gt;You can assign roles directly to a user or indirectly through group membership.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2567" data-end="2670"&gt;
&lt;P data-start="2569" data-end="2670"&gt;Assigning roles via groups is often more efficient, especially for teams with similar access needs.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR data-start="2672" data-end="2675" /&gt;
&lt;H3 data-start="2677" data-end="2700"&gt;&lt;span class="lia-unicode-emoji" title=":light_bulb:"&gt;💡&lt;/span&gt; Best Practices&lt;/H3&gt;
&lt;P data-start="2701" data-end="3043"&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; Assign roles through groups whenever possible — it’s easier to manage and audit.&lt;BR data-start="2783" data-end="2786" /&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; Regularly review inactive users and remove unnecessary access.&lt;BR data-start="2850" data-end="2853" /&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; Keep user and group naming conventions consistent for clarity.&lt;BR data-start="2917" data-end="2920" /&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; Document role assignments for governance and compliance.&lt;BR data-start="2978" data-end="2981" /&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; Avoid giving admin-level roles unless absolutely required.&lt;/P&gt;
&lt;HR data-start="3045" data-end="3048" /&gt;
&lt;H3 data-start="3050" data-end="3083"&gt;&lt;span class="lia-unicode-emoji" title=":movie_camera:"&gt;🎥&lt;/span&gt; Watch the Video Tutorial&lt;/H3&gt;
&lt;P data-start="3084" data-end="3196"&gt;If you’d like to see a &lt;STRONG data-start="3107" data-end="3137"&gt;step-by-step demonstration&lt;/STRONG&gt;, check out my latest YouTube video where I walk through:&lt;/P&gt;
&lt;UL data-start="3197" data-end="3308"&gt;
&lt;LI data-start="3197" data-end="3226"&gt;
&lt;P data-start="3199" data-end="3226"&gt;Creating users and groups&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3227" data-end="3246"&gt;
&lt;P data-start="3229" data-end="3246"&gt;Assigning roles&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3247" data-end="3276"&gt;
&lt;P data-start="3249" data-end="3276"&gt;Understanding inheritance&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3277" data-end="3308"&gt;
&lt;P data-start="3279" data-end="3308"&gt;Implementing best practices&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-start="3310" data-end="3345"&gt;&lt;span class="lia-unicode-emoji" title=":television:"&gt;📺&lt;/span&gt; &lt;STRONG data-start="3313" data-end="3328"&gt;Watch here:&lt;/STRONG&gt;&amp;nbsp;&lt;A href="https://youtu.be/Ci8cHg-k4Vs" target="_blank"&gt;https://youtu.be/Ci8cHg-k4Vs&lt;/A&gt;&lt;/P&gt;
&lt;HR data-start="3347" data-end="3350" /&gt;
&lt;H3 data-start="3352" data-end="3371"&gt;&lt;span class="lia-unicode-emoji" title=":chequered_flag:"&gt;🏁&lt;/span&gt; Conclusion&lt;/H3&gt;
&lt;P data-start="3372" data-end="3635"&gt;Proper management of Users, Groups, and Roles in ServiceNow ensures secure access control and smoother operational management. Following best practices will not only simplify administration but also strengthen compliance and data integrity within your instance.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Nov 2025 12:34:34 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/understanding-user-and-group-administration-in-servicenow/ta-p/3422083</guid>
      <dc:creator>Abhishek_Thakur</dc:creator>
      <dc:date>2025-11-07T12:34:34Z</dc:date>
    </item>
    <item>
      <title>Understanding Import Sets in ServiceNow — Step-by-Step Guide</title>
      <link>https://www.servicenow.com/community/community-resources/understanding-import-sets-in-servicenow-step-by-step-guide/ta-p/3418598</link>
      <description>&lt;P data-start="148" data-end="524"&gt;When working with data in ServiceNow, there are often situations where we need to &lt;STRONG data-start="230" data-end="254"&gt;import external data&lt;/STRONG&gt;—such as user details, assets, or configuration items—into the platform.&lt;BR data-start="326" data-end="329" /&gt;This is where &lt;STRONG data-start="343" data-end="358"&gt;Import Sets&lt;/STRONG&gt; come into play. Import Sets provide a powerful mechanism to bring external data into ServiceNow.&lt;/P&gt;
&lt;HR data-start="526" data-end="529" /&gt;
&lt;H2 data-start="531" data-end="558"&gt;What are Import Sets?&lt;/H2&gt;
&lt;P data-start="560" data-end="841"&gt;An &lt;STRONG data-start="563" data-end="577"&gt;Import Set&lt;/STRONG&gt; in ServiceNow provide a powerful mechanism to bring external data into ServiceNow.&lt;/P&gt;
&lt;HR data-start="843" data-end="846" /&gt;
&lt;H2 data-start="848" data-end="884"&gt;&lt;span class="lia-unicode-emoji" title=":gear:"&gt;⚙️&lt;/span&gt; Steps to Work with Import Sets&lt;/H2&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3 data-start="932" data-end="953"&gt;&lt;STRONG data-start="936" data-end="953"&gt;&lt;span class="lia-unicode-emoji" title=":keycap_1:"&gt;1️⃣&lt;/span&gt; Data Load&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-start="954" data-end="1067"&gt;You can import data into ServiceNow from external sources such as Excel, CSV, XML, or via a direct integration.&lt;/P&gt;
&lt;UL data-start="1068" data-end="1265"&gt;
&lt;LI data-start="1068" data-end="1119"&gt;
&lt;P data-start="1070" data-end="1119"&gt;Navigate to &lt;STRONG data-start="1082" data-end="1116"&gt;System Import Sets → Load Data&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1120" data-end="1171"&gt;
&lt;P data-start="1122" data-end="1171"&gt;Choose your &lt;STRONG data-start="1134" data-end="1149"&gt;data source&lt;/STRONG&gt; (e.g., Excel file).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1172" data-end="1265"&gt;
&lt;P data-start="1174" data-end="1265"&gt;Upload the file and define a &lt;STRONG data-start="1203" data-end="1220"&gt;staging table&lt;/STRONG&gt; where the data will be temporarily stored.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-start="1267" data-end="1398"&gt;&lt;span class="lia-unicode-emoji" title=":backhand_index_pointing_right:"&gt;👉&lt;/span&gt; After loading, ServiceNow automatically creates a &lt;STRONG data-start="1320" data-end="1337"&gt;staging table&lt;/STRONG&gt; with the prefix &lt;CODE data-start="1354" data-end="1358"&gt;u_&lt;/CODE&gt; that contains all the imported records.&lt;/P&gt;
&lt;HR data-start="1400" data-end="1403" /&gt;
&lt;H3 data-start="1405" data-end="1439"&gt;&lt;STRONG data-start="1409" data-end="1439"&gt;&lt;span class="lia-unicode-emoji" title=":keycap_2:"&gt;2️⃣&lt;/span&gt; Create a Transform Map&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-start="1440" data-end="1588"&gt;A &lt;STRONG data-start="1442" data-end="1459"&gt;Transform Map&lt;/STRONG&gt; defines how data moves from the &lt;STRONG data-start="1492" data-end="1509"&gt;staging table&lt;/STRONG&gt; (source) to the &lt;STRONG data-start="1526" data-end="1542"&gt;target table&lt;/STRONG&gt; (destination).&lt;BR data-start="1557" data-end="1560" /&gt;To create a Transform Map:&lt;/P&gt;
&lt;UL data-start="1589" data-end="1789"&gt;
&lt;LI data-start="1589" data-end="1651"&gt;
&lt;P data-start="1591" data-end="1651"&gt;Navigate to &lt;STRONG data-start="1603" data-end="1648"&gt;System Import Sets → Create Transform Map&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1652" data-end="1789"&gt;
&lt;P data-start="1654" data-end="1789"&gt;Select your &lt;STRONG data-start="1666" data-end="1682"&gt;source table&lt;/STRONG&gt; (staging table) and &lt;STRONG data-start="1703" data-end="1719"&gt;target table&lt;/STRONG&gt; (e.g., &lt;CODE data-start="1727" data-end="1737"&gt;incident&lt;/CODE&gt;, &lt;CODE data-start="1739" data-end="1757"&gt;cmdb_ci_computer&lt;/CODE&gt;, &lt;CODE data-start="1759" data-end="1779"&gt;u_employee_details&lt;/CODE&gt;, etc.).&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-start="1791" data-end="1858"&gt;Now, map the fields between the two tables.&lt;BR data-start="1834" data-end="1837" /&gt;You can use either:&lt;/P&gt;
&lt;UL data-start="1859" data-end="2018"&gt;
&lt;LI data-start="1859" data-end="1935"&gt;
&lt;P data-start="1861" data-end="1935"&gt;&lt;STRONG data-start="1861" data-end="1884"&gt;Auto Mapping Assist&lt;/STRONG&gt; — Automatically maps fields with matching names.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1936" data-end="2018"&gt;
&lt;P data-start="1938" data-end="2018"&gt;&lt;STRONG data-start="1938" data-end="1956"&gt;Mapping Assist&lt;/STRONG&gt; — Allows you to manually define the mapping for each field.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-start="2020" data-end="2132"&gt;You can also include &lt;STRONG data-start="2041" data-end="2062"&gt;Transform Scripts&lt;/STRONG&gt; for additional data manipulation during the transformation process.&lt;/P&gt;
&lt;P data-start="2020" data-end="2132"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="2020" data-end="2132"&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; - Once, field is mapped either via mapping assist or&lt;FONT color="#007393"&gt;&lt;SPAN&gt;&lt;U&gt;&amp;nbsp;&lt;/U&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN&gt;Auto Map Matching Fields at right you observe a "Coalesce" by default the value is false. You can make it to true for any field it defines the uniqueness of the records to prevent from duplicity. In case, for instance, if you need to update some existing data in system, then you can make&amp;nbsp;&lt;SPAN&gt;"Coalesce" for any field and based on that it will serach for the records, if with that uniqueness record found, that it will update the existing record else it will create new record.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;HR data-start="2134" data-end="2137" /&gt;
&lt;H3 data-start="2139" data-end="2168"&gt;&lt;STRONG data-start="2143" data-end="2168"&gt;&lt;span class="lia-unicode-emoji" title=":keycap_3:"&gt;3️⃣&lt;/span&gt; Run the Transform&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-start="2169" data-end="2284"&gt;Once the mapping is ready, you can execute the transform to move data from the staging table to the target table.&lt;/P&gt;
&lt;UL data-start="2285" data-end="2424"&gt;
&lt;LI data-start="2285" data-end="2313"&gt;
&lt;P data-start="2287" data-end="2313"&gt;Click &lt;STRONG data-start="2293" data-end="2310"&gt;Run Transform&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2314" data-end="2424"&gt;
&lt;P data-start="2316" data-end="2424"&gt;Review the &lt;STRONG data-start="2327" data-end="2348"&gt;Transform History&lt;/STRONG&gt; to verify if all records were successfully inserted, updated, or ignored.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR data-start="2426" data-end="2429" /&gt;
&lt;H2 data-start="2431" data-end="2449"&gt;🧠 Key Concepts&lt;/H2&gt;
&lt;DIV class="_tableContainer_1rjym_1"&gt;
&lt;DIV class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"&gt;
&lt;TABLE class="w-fit min-w-(--thread-content-width)" data-start="2451" data-end="2863"&gt;
&lt;THEAD data-start="2451" data-end="2476"&gt;
&lt;TR data-start="2451" data-end="2476"&gt;
&lt;TH data-start="2451" data-end="2461" data-col-size="sm"&gt;Concept&lt;/TH&gt;
&lt;TH data-start="2461" data-end="2476" data-col-size="md"&gt;Description&lt;/TH&gt;
&lt;/TR&gt;
&lt;/THEAD&gt;
&lt;TBODY data-start="2505" data-end="2863"&gt;
&lt;TR data-start="2505" data-end="2597"&gt;
&lt;TD data-start="2505" data-end="2525" data-col-size="sm"&gt;&lt;STRONG data-start="2507" data-end="2524"&gt;Staging Table&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD data-col-size="md" data-start="2525" data-end="2597"&gt;Temporary table created to hold imported data before transformation.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR data-start="2598" data-end="2674"&gt;
&lt;TD data-start="2598" data-end="2617" data-col-size="sm"&gt;&lt;STRONG data-start="2600" data-end="2616"&gt;Target Table&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD data-col-size="md" data-start="2617" data-end="2674"&gt;The destination table where the final data is stored.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR data-start="2675" data-end="2765"&gt;
&lt;TD data-start="2675" data-end="2695" data-col-size="sm"&gt;&lt;STRONG data-start="2677" data-end="2694"&gt;Transform Map&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD data-col-size="md" data-start="2695" data-end="2765"&gt;Defines how fields from the staging table map to the target table.&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR data-start="2766" data-end="2863"&gt;
&lt;TD data-start="2766" data-end="2781" data-col-size="sm"&gt;&lt;STRONG data-start="2768" data-end="2780"&gt;Coalesce&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD data-col-size="md" data-start="2781" data-end="2863"&gt;A feature that ensures no duplicate records are created during transformation.&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;HR data-start="2865" data-end="2868" /&gt;
&lt;H2 data-start="2870" data-end="2892"&gt;🪄 Example Scenario&lt;/H2&gt;
&lt;P data-start="2894" data-end="3231"&gt;In this demonstration, I imported user data through an Excel sheet into a staging table.&lt;BR data-start="2982" data-end="2985" /&gt;Then, I created a transform map to move the records into a custom target table. Using &lt;STRONG data-start="3071" data-end="3094"&gt;Auto Mapping Assist&lt;/STRONG&gt; and &lt;STRONG data-start="3099" data-end="3117"&gt;Mapping Assist&lt;/STRONG&gt;, I mapped the respective fields and ran the transform successfully to populate my target table with clean data.&lt;/P&gt;
&lt;HR data-start="3233" data-end="3236" /&gt;
&lt;H2 data-start="3238" data-end="3258"&gt;&lt;span class="lia-unicode-emoji" title=":light_bulb:"&gt;💡&lt;/span&gt; Best Practices&lt;/H2&gt;
&lt;UL data-start="3260" data-end="3568"&gt;
&lt;LI data-start="3260" data-end="3337"&gt;
&lt;P data-start="3262" data-end="3337"&gt;Always review imported data in the &lt;STRONG data-start="3297" data-end="3314"&gt;staging table&lt;/STRONG&gt; before transforming.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3338" data-end="3428"&gt;
&lt;P data-start="3340" data-end="3428"&gt;Use &lt;STRONG data-start="3344" data-end="3356"&gt;Coalesce&lt;/STRONG&gt; on unique fields like "email" or "username" to prevent duplicates.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3429" data-end="3494"&gt;
&lt;P data-start="3431" data-end="3494"&gt;Test mappings in a &lt;STRONG data-start="3450" data-end="3485"&gt;development or test environment&lt;/STRONG&gt; first.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3495" data-end="3568"&gt;
&lt;P data-start="3497" data-end="3568"&gt;Regularly clean up old staging tables to maintain system performance.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR data-start="3570" data-end="3573" /&gt;
&lt;H2 data-start="3575" data-end="3591"&gt;&lt;span class="lia-unicode-emoji" title=":direct_hit:"&gt;🎯&lt;/span&gt; Conclusion&lt;/H2&gt;
&lt;P data-start="3593" data-end="3857"&gt;Import Sets are an essential feature in ServiceNow for bringing external data into the platform efficiently and securely.&lt;BR data-start="3714" data-end="3717" /&gt;By mastering data loads, transform maps, and field mappings, you can streamline your data migration and integration processes effectively.&lt;/P&gt;
&lt;HR data-start="3859" data-end="3862" /&gt;
&lt;P data-start="3864" data-end="4059"&gt;&lt;STRONG data-start="3864" data-end="3905"&gt;&lt;span class="lia-unicode-emoji" title=":television:"&gt;📺&lt;/span&gt; Watch the complete video tut&lt;/STRONG&gt;&lt;STRONG data-start="3864" data-end="3905"&gt;torial:&lt;/STRONG&gt;&amp;nbsp;&lt;A href="https://youtu.be/seQQhti93WY?si=yIjRol-1bUTgpnsP" target="_blank"&gt;https://youtu.be/seQQhti93WY?si=yIjRol-1bUTgpnsP&lt;/A&gt;&lt;BR data-start="3936" data-end="3939" /&gt;Learn visually how to import data from Excel, create transform maps, and perform transformations with mapping assists.&lt;/P&gt;</description>
      <pubDate>Mon, 03 Nov 2025 19:49:22 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/understanding-import-sets-in-servicenow-step-by-step-guide/ta-p/3418598</guid>
      <dc:creator>Abhishek_Thakur</dc:creator>
      <dc:date>2025-11-03T19:49:22Z</dc:date>
    </item>
    <item>
      <title>🧭 Understanding Lists and Forms in ServiceNow: A Complete Guide to Configuration</title>
      <link>https://www.servicenow.com/community/community-resources/understanding-lists-and-forms-in-servicenow-a-complete-guide-to/ta-p/3417619</link>
      <description>&lt;P data-start="298" data-end="628"&gt;When working with ServiceNow, &lt;STRONG data-start="328" data-end="347"&gt;Lists and Forms&lt;/STRONG&gt; are the two primary interfaces through which users interact with data. Whether you’re managing incidents, requests, or custom tables, mastering how to configure Lists and Forms can make your instance more intuitive, user-friendly, and aligned with your organization’s processes.&lt;/P&gt;
&lt;P data-start="630" data-end="767"&gt;In this article, we’ll explore what Lists and Forms are, why they’re essential, and how you can configure them effectively in ServiceNow.&lt;/P&gt;
&lt;HR data-start="769" data-end="772" /&gt;
&lt;H3 data-start="774" data-end="810"&gt;&lt;span class="lia-unicode-emoji" title=":small_blue_diamond:"&gt;🔹&lt;/span&gt; &lt;STRONG&gt;What Are Lists in ServiceNow?&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-start="812" data-end="1116"&gt;A &lt;STRONG data-start="814" data-end="822"&gt;List&lt;/STRONG&gt; in ServiceNow represents a set of records displayed from a table. For example, when you open the &lt;EM data-start="920" data-end="930"&gt;Incident&lt;/EM&gt; module, you see a list of all incident records. Lists are not just data views — they are powerful tools that allow filtering, sorting, and editing records directly from the interface.&lt;/P&gt;
&lt;P data-start="1118" data-end="1144"&gt;&lt;STRONG data-start="1118" data-end="1144"&gt;Key Features of Lists:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-start="1145" data-end="1372"&gt;
&lt;LI data-start="1145" data-end="1186"&gt;
&lt;P data-start="1147" data-end="1186"&gt;Displays records in a tabular format.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1232" data-end="1296"&gt;
&lt;P data-start="1234" data-end="1296"&gt;Supports powerful filters, breadcrumbs, and sorting options.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1297" data-end="1372"&gt;
&lt;P data-start="1299" data-end="1372"&gt;Can be customized to show relevant fields for different users or roles.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR data-start="1374" data-end="1377" /&gt;
&lt;H3 data-start="1379" data-end="1415"&gt;&lt;span class="lia-unicode-emoji" title=":small_blue_diamond:"&gt;🔹&lt;/span&gt; &lt;STRONG&gt;What Are Forms in ServiceNow?&lt;/STRONG&gt;&lt;/H3&gt;
&lt;P data-start="1417" data-end="1650"&gt;A &lt;STRONG data-start="1419" data-end="1427"&gt;Form&lt;/STRONG&gt; in ServiceNow is used to view or modify a single record from a table. Each record you open from a list will appear in a form layout. The form organizes fields logically, helping users capture and manage data efficiently.&lt;/P&gt;
&lt;P data-start="1652" data-end="1678"&gt;&lt;STRONG data-start="1652" data-end="1678"&gt;Key Features of Forms:&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL data-start="1679" data-end="1940"&gt;
&lt;LI data-start="1679" data-end="1718"&gt;
&lt;P data-start="1681" data-end="1718"&gt;Displays individual record details.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1719" data-end="1780"&gt;
&lt;P data-start="1721" data-end="1780"&gt;Supports UI Policies, Client Scripts, and Business Rules.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1781" data-end="1851"&gt;
&lt;P data-start="1783" data-end="1851"&gt;Allows configuration through &lt;STRONG data-start="1812" data-end="1829"&gt;Form Designer&lt;/STRONG&gt; or &lt;STRONG data-start="1833" data-end="1848"&gt;Form Layout &amp;amp; Form builder&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="1852" data-end="1940"&gt;
&lt;P data-start="1854" data-end="1940"&gt;Can include related lists for connected records (like Tasks, Attachments, or Notes).&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR data-start="1942" data-end="1945" /&gt;
&lt;H3 data-start="1947" data-end="1990"&gt;&lt;span class="lia-unicode-emoji" title=":gear:"&gt;⚙️&lt;/span&gt; How to Configure Lists in ServiceNow&lt;/H3&gt;
&lt;P data-start="1992" data-end="2073"&gt;Customizing a list layout helps tailor data visibility according to your needs.&lt;/P&gt;
&lt;P data-start="2075" data-end="2112"&gt;&lt;STRONG data-start="2075" data-end="2112"&gt;Steps to configure a list layout:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL data-start="2113" data-end="2409"&gt;
&lt;LI data-start="2113" data-end="2186"&gt;
&lt;P data-start="2116" data-end="2186"&gt;Navigate to the list you want to configure (e.g., &lt;EM data-start="2166" data-end="2182"&gt;Incident &amp;gt; All&lt;/EM&gt;).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2187" data-end="2262"&gt;
&lt;P data-start="2190" data-end="2262"&gt;Right-click on the list header and select &lt;STRONG data-start="2232" data-end="2259"&gt;Configure → List Layout&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2263" data-end="2316"&gt;
&lt;P data-start="2266" data-end="2316"&gt;Add or remove fields from the available options.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2317" data-end="2366"&gt;
&lt;P data-start="2320" data-end="2366"&gt;Reorder columns by dragging them up or down.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2367" data-end="2409"&gt;
&lt;P data-start="2370" data-end="2409"&gt;Click &lt;STRONG data-start="2376" data-end="2384"&gt;Save&lt;/STRONG&gt; to apply your changes.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-start="2411" data-end="2548"&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; &lt;EM data-start="2413" data-end="2423"&gt;Pro Tip:&lt;/EM&gt; You can also use &lt;STRONG data-start="2441" data-end="2469"&gt;Personalize List Columns&lt;/STRONG&gt; (gear icon) to create a user-specific view without changing the global layout.&lt;/P&gt;
&lt;HR data-start="2550" data-end="2553" /&gt;
&lt;H3 data-start="2555" data-end="2598"&gt;🧩 How to Configure Forms in ServiceNow&lt;/H3&gt;
&lt;P data-start="2600" data-end="2697"&gt;There are three main ways to configure forms in ServiceNow — &lt;STRONG data-start="2659" data-end="2674"&gt;Form Layout and&amp;nbsp;&lt;/STRONG&gt;&lt;STRONG data-start="2679" data-end="2696"&gt;Form Designer&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-start="2699" data-end="2721"&gt;&lt;STRONG data-start="2699" data-end="2721"&gt;Using Form Layout:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL data-start="2722" data-end="2926"&gt;
&lt;LI data-start="2722" data-end="2763"&gt;
&lt;P data-start="2725" data-end="2763"&gt;Open any record (e.g., an incident).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2764" data-end="2822"&gt;
&lt;P data-start="2767" data-end="2822"&gt;Right-click the header → &lt;STRONG data-start="2792" data-end="2819"&gt;Configure → Form Layout&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2823" data-end="2887"&gt;
&lt;P data-start="2826" data-end="2887"&gt;Move fields between the &lt;EM data-start="2850" data-end="2861"&gt;Available&lt;/EM&gt; and &lt;EM data-start="2866" data-end="2876"&gt;Selected&lt;/EM&gt; columns.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="2888" data-end="2926"&gt;
&lt;P data-start="2891" data-end="2926"&gt;Save the layout to update the form.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-start="2928" data-end="2952"&gt;&lt;STRONG data-start="2928" data-end="2952"&gt;Using Form Designer:&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL data-start="2953" data-end="3137"&gt;
&lt;LI data-start="2953" data-end="3013"&gt;
&lt;P data-start="2956" data-end="3013"&gt;Right-click the header → &lt;STRONG data-start="2981" data-end="3010"&gt;Configure → Form Designer&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3014" data-end="3054"&gt;
&lt;P data-start="3017" data-end="3054"&gt;Drag and drop fields onto the form.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3055" data-end="3108"&gt;
&lt;P data-start="3058" data-end="3108"&gt;Organize sections and tabs for better usability.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3109" data-end="3137"&gt;
&lt;P data-start="3112" data-end="3137"&gt;Click &lt;STRONG data-start="3118" data-end="3126"&gt;Save&lt;/STRONG&gt; when done.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P data-start="3139" data-end="3277"&gt;&lt;span class="lia-unicode-emoji" title=":white_heavy_check_mark:"&gt;✅&lt;/span&gt; &lt;EM data-start="3141" data-end="3151"&gt;Pro Tip:&lt;/EM&gt; Use &lt;STRONG data-start="3156" data-end="3173"&gt;Form Designer&lt;/STRONG&gt; for a visual, drag-and-drop interface, especially when dealing with complex forms or multiple sections.&lt;/P&gt;
&lt;HR data-start="3279" data-end="3282" /&gt;
&lt;H3 data-start="3284" data-end="3337"&gt;🧠 Best Practices for Configuring Lists and Forms&lt;/H3&gt;
&lt;UL data-start="3339" data-end="3659"&gt;
&lt;LI data-start="3339" data-end="3396"&gt;
&lt;P data-start="3341" data-end="3396"&gt;Keep layouts &lt;STRONG data-start="3354" data-end="3379"&gt;simple and consistent&lt;/STRONG&gt; across tables.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3397" data-end="3452"&gt;
&lt;P data-start="3399" data-end="3452"&gt;Display only &lt;STRONG data-start="3412" data-end="3431"&gt;relevant fields&lt;/STRONG&gt; to reduce clutter.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3453" data-end="3525"&gt;
&lt;P data-start="3455" data-end="3525"&gt;Use &lt;STRONG data-start="3459" data-end="3476"&gt;related lists&lt;/STRONG&gt; to improve navigation between related records.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3526" data-end="3602"&gt;
&lt;P data-start="3528" data-end="3602"&gt;Apply &lt;STRONG data-start="3534" data-end="3549"&gt;UI Policies&lt;/STRONG&gt; and &lt;STRONG data-start="3554" data-end="3572"&gt;Client Scripts&lt;/STRONG&gt; to enhance user experience.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI data-start="3603" data-end="3659"&gt;
&lt;P data-start="3605" data-end="3659"&gt;Regularly review configurations as processes evolve.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR data-start="3661" data-end="3664" /&gt;
&lt;H3 data-start="3666" data-end="3683"&gt;&lt;span class="lia-unicode-emoji" title=":chequered_flag:"&gt;🏁&lt;/span&gt; Conclusion&lt;/H3&gt;
&lt;P data-start="3685" data-end="3889"&gt;Lists and Forms are the backbone of the ServiceNow user experience. Understanding how to configure them empowers administrators and developers to create a streamlined, efficient interface for end users.&lt;/P&gt;
&lt;P data-start="3891" data-end="4039"&gt;By applying the right configurations, you can enhance data visibility, reduce complexity, and ensure users interact with the platform efficiently.&lt;/P&gt;
&lt;P data-start="3891" data-end="4039"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="4041" data-end="4203"&gt;If you’re looking for a visual walkthrough, check out my latest YouTube video:&lt;BR data-start="4119" data-end="4122" /&gt;&lt;span class="lia-unicode-emoji" title=":movie_camera:"&gt;🎥&lt;/span&gt; &lt;STRONG data-start="4125" data-end="4203"&gt;“&lt;A title="Mastering Lists &amp;amp; Forms in ServiceNow | How to Configure Lists and Forms" href="https://youtu.be/y_e_yaiAQW8?si=rAuFA4fM4GwyuTfU" target="_blank" rel="noopener"&gt;Mastering Lists &amp;amp; Forms in ServiceNow | How to Configure Lists and Forms&lt;/A&gt;”&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 02 Nov 2025 09:53:10 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/understanding-lists-and-forms-in-servicenow-a-complete-guide-to/ta-p/3417619</guid>
      <dc:creator>Abhishek_Thakur</dc:creator>
      <dc:date>2025-11-02T09:53:10Z</dc:date>
    </item>
    <item>
      <title>SN data center locations</title>
      <link>https://www.servicenow.com/community/community-resources/sn-data-center-locations/ta-p/3388737</link>
      <description>&lt;P&gt;Hi SN teams,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any one have the most recent SN data location jpeg?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks&lt;/P&gt;
&lt;P&gt;George&lt;/P&gt;</description>
      <pubDate>Tue, 23 Sep 2025 16:13:32 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/sn-data-center-locations/ta-p/3388737</guid>
      <dc:creator>Geo92341</dc:creator>
      <dc:date>2025-09-23T16:13:32Z</dc:date>
    </item>
    <item>
      <title>Scripting, Performance, and Queries, OH MY</title>
      <link>https://www.servicenow.com/community/community-resources/scripting-performance-and-queries-oh-my/ta-p/3379309</link>
      <description>&lt;P&gt;One of the things I've found over the years pretty frequently is the question from junior devs asking about how they can make their 'code' more performant.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There's stuff everywhere and I haven't seen one place that has these little tips and tricks so here we go!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H2&gt;1. Use get().&lt;/H2&gt;&lt;P&gt;Seriously use get() where you can. If you have the sys_id for an object and are just trying to return one record this is super easy peasy. You don't even HAVE TO HAVE A SYS_ID. You can use a unique value!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here are some examples for how to use it!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can return a specific record:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;var gr = newGlideRecord('incident');
gr.get('ENTER-SYS-ID-HERE');&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can try to return a specific record and if it doesn't find it, do something:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;var gr = newGlideRecord('incident');
if(gr.get('ENTER-SYS-ID-HERE')){
//do something because it found the record
} else {
//do something else because you didn't find the record
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can use a specific field that holds a unique value:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;var incNumber = 'INC0012345';
var gr = newGlideRecord('incident');
gr.get('number', incNumber);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H2&gt;2. Use setLimit()&lt;/H2&gt;&lt;P&gt;If you are scripting out a query and need to return 1, single record: use setLimit( 1 ). If you are trying to return 10 records, use setLimit(10). This means that you are not going to query the entire table for that result and that means that it'll return faster!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here are some examples for how to use it!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I want to return 1 record:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;var incNumber = 'INC0012345';
var gr = newGlideRecord('incident');
gr.addQuery('number', incNumber);
gr.setLimit( 1 ); //spaces added for web formatting - remove the spaces between the 1 and the ( )
gr.query();&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I want to return any 10 records for a query:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;var ci = 'OfficePC2';
var gr = newGlideRecord('incident');
gr.addQuery('cmdb_ci', ci);
gr.setLimit(10);
gr.query();&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H2&gt;3. Short-circuit&lt;/H2&gt;&lt;P&gt;Using the boolean || will allow you to 'short-circuit' your logic. This means that if you evaluate whether A or B = 1, if it evaluates A = 1, it'll skip B allowing for faster processing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example, if you are doing this:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;if (name.startsWith('a')){
   return true;
} else if (name.startsWith('b')) {
   return false;
} else if (name.startsWith('c')) {
   return true;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can instead do this:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;if(name.startsWith('a') || name.startsWith('c') ){
  return true;
} else {
  return false;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H2&gt;Now, if you're talking about queries, here's what ServiceNow has to say:&lt;/H2&gt;&lt;P class=""&gt;Common reasons for slow queries&lt;/P&gt;&lt;DIV class=""&gt;&lt;UL class=""&gt;&lt;LI&gt;A query has too many OR conditions (for more information, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="" title="Use a &amp;quot;contains&amp;quot; query only in special cases, such as when users or groups need to see data from a domain that they don't have access to, but you don't want to move those users to a domain. Creating domain &amp;quot;contains&amp;quot; and user or group access for a domain should be an exception, only when absolutely needed." href="https://www.servicenow.com/docs/bundle/zurich-platform-security/page/administer/company-and-domain-separation/concept/bp-contains-domain-visibility.html" target="_blank" rel="noopener"&gt;Contains queries and domain access&lt;/A&gt;). In the domain hierarchy, place the user or a domain at a hierarchy level where contains or visibility is not needed.&lt;/LI&gt;&lt;LI&gt;The query method is not the domain path query method (for more information, see&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class="" title="You can create effective queries with domain paths." href="https://www.servicenow.com/docs/bundle/zurich-platform-security/page/administer/company-and-domain-separation/concept/bp-domain-query-method.html" target="_blank" rel="noopener"&gt;Domain paths query method&lt;/A&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt; If you are not using the domain path query method, contact&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;Customer Service and Support&lt;/SPAN&gt;.&lt;/LI&gt;&lt;LI&gt;A query needs a database to be indexed so you can see what is in the database quickly. If you can identify the slow query, run the "explain plan" to see if there are options for indexing available. The "explain plan" is a function of SQL that shows the query and what is going on with it.&lt;/LI&gt;&lt;/UL&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="skeletor.jpg" style="width: 735px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/470543iB7B395BFEC327E29/image-size/large?v=v2&amp;amp;px=999" role="button" title="skeletor.jpg" alt="skeletor.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Dec 2025 20:02:26 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/scripting-performance-and-queries-oh-my/ta-p/3379309</guid>
      <dc:creator>Ryan_Gillespie</dc:creator>
      <dc:date>2025-12-23T20:02:26Z</dc:date>
    </item>
    <item>
      <title>38 Feature of 38th Release - Zurich</title>
      <link>https://www.servicenow.com/community/community-resources/38-feature-of-38th-release-zurich/ta-p/3342664</link>
      <description>&lt;P&gt;Video Link:&amp;nbsp;&lt;A href="https://youtube.com/live/YIDLs6UoeUA?feature=share" target="_blank" rel="noopener"&gt;https://youtube.com/live/YIDLs6UoeUA?feature=share&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Playlist Link:&amp;nbsp;&lt;A href="https://www.youtube.com/playlist?list=PLi0Ik1xCDEbKxFhjDMMINC8gJI3O_Tpxv" target="_blank" rel="noopener"&gt;https://www.youtube.com/playlist?list=PLi0Ik1xCDEbKxFhjDMMINC8gJI3O_Tpxv&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Red Abstract Income Money YouTube Thumbnail (2).png" style="width: 999px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/460542i62C0941677511C17/image-size/large?v=v2&amp;amp;px=999" role="button" title="Red Abstract Income Money YouTube Thumbnail (2).png" alt="Red Abstract Income Money YouTube Thumbnail (2).png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 04 Aug 2025 10:12:28 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/38-feature-of-38th-release-zurich/ta-p/3342664</guid>
      <dc:creator>Dr Atul G- LNG</dc:creator>
      <dc:date>2025-08-04T10:12:28Z</dc:date>
    </item>
    <item>
      <title>Quick docusign setup with document templates in the HRSD</title>
      <link>https://www.servicenow.com/community/community-resources/quick-docusign-setup-with-document-templates-in-the-hrsd/ta-p/3268519</link>
      <description>&lt;DIV&gt;&lt;SPAN&gt;Hi Everyone,&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;This document provides instructions for setting up DocuSign and enabling external signing through document templates in the HRSD module.&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;H4 id="toc-hId-1094018967" class="" data-start="313" data-end="339"&gt;&lt;STRONG data-start="318" data-end="339"&gt;Required Plugins:&lt;/STRONG&gt;&lt;/H4&gt;
&lt;UL data-start="341" data-end="457"&gt;
&lt;LI class="" data-start="341" data-end="392"&gt;
&lt;P class="" data-start="343" data-end="392"&gt;&lt;STRONG data-start="343" data-end="390"&gt;Document Template Integration with DocuSign&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="393" data-end="418"&gt;
&lt;P class="" data-start="395" data-end="418"&gt;&lt;STRONG data-start="395" data-end="416"&gt;Document Template&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="419" data-end="457"&gt;
&lt;P class="" data-start="421" data-end="457"&gt;&lt;STRONG data-start="421" data-end="457"&gt;Human Resources Scoped App: Core&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;
&lt;H3 id="toc-hId-1083515863" class="" data-start="464" data-end="510"&gt;&lt;STRONG data-start="468" data-end="510"&gt;Configuration Steps for DocuSign Spoke&lt;/STRONG&gt;&lt;/H3&gt;
&lt;OL data-start="512" data-end="1560"&gt;
&lt;LI class="" data-start="512" data-end="556"&gt;
&lt;P class="" data-start="515" data-end="556"&gt;&lt;STRONG data-start="515" data-end="554"&gt;Create a DocuSign Developer Account&lt;/STRONG&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="557" data-end="606"&gt;
&lt;P class="" data-start="560" data-end="606"&gt;In the Admin tab, navigate to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="590" data-end="603"&gt;‘Connect’&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="607" data-end="652"&gt;
&lt;P class="" data-start="610" data-end="652"&gt;&lt;STRONG data-start="610" data-end="649"&gt;Create a new ‘Custom’ configuration&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="653" data-end="1282"&gt;
&lt;P class="" data-start="656" data-end="1282"&gt;&lt;STRONG data-start="656" data-end="689"&gt;Fill in the following details&lt;/STRONG&gt;:&lt;BR data-start="690" data-end="693" /&gt;a.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="700" data-end="708"&gt;Name&lt;/STRONG&gt;: Enter your instance name or any preferred identifier.&lt;BR data-start="763" data-end="766" /&gt;b.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="773" data-end="791"&gt;URL to Publish&lt;/STRONG&gt;:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE data-start="793" data-end="873"&gt;https://{instance_name}.service-now.com/api/sn_docusign_spoke/docusign_webhook&lt;/CODE&gt;&lt;BR data-start="873" data-end="876" /&gt;c.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="883" data-end="901"&gt;Event Settings&lt;/STRONG&gt;:&lt;BR data-start="902" data-end="905" /&gt;-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="915" data-end="930"&gt;Data Format&lt;/STRONG&gt;: Legacy&lt;BR data-start="938" data-end="941" /&gt;-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="951" data-end="982"&gt;Event Message Delivery Mode&lt;/STRONG&gt;: Aggregate&lt;BR data-start="993" data-end="996" /&gt;-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1006" data-end="1024"&gt;Trigger Events&lt;/STRONG&gt;: Envelope Sent, Envelope Delivered, Envelope Signed/Completed, Envelope Declined, Envelope Voided&lt;BR data-start="1122" data-end="1125" /&gt;d.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1132" data-end="1169" data-is-only-node=""&gt;Integration and Security Settings&lt;/STRONG&gt;:&lt;BR data-start="1170" data-end="1173" /&gt;- Select&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1190" data-end="1229"&gt;Include Basic Authentication Header&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and provide the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1246" data-end="1257"&gt;‘admin’&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;username and password.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="1283" data-end="1560"&gt;
&lt;P class="" data-start="1286" data-end="1560"&gt;&lt;STRONG data-start="1286" data-end="1312"&gt;Click on Apps and Keys&lt;/STRONG&gt;:&lt;BR data-start="1313" data-end="1316" /&gt;a. Under&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1329" data-end="1347"&gt;Authentication&lt;/STRONG&gt;, add the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1357" data-end="1371"&gt;Secret Key&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and save it for later use.&lt;BR data-start="1398" data-end="1401" /&gt;b.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1408" data-end="1431"&gt;Additional Settings&lt;/STRONG&gt;:&lt;BR data-start="1432" data-end="1435" /&gt;-&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1445" data-end="1462"&gt;Redirect URIs&lt;/STRONG&gt;:&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE data-start="1464" data-end="1523"&gt;https://{instance_name}.service-now.com/oauth_redirect.do&lt;/CODE&gt;&lt;BR data-start="1523" data-end="1526" /&gt;c.&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1533" data-end="1541"&gt;Save&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;the configuration.&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;/DIV&gt;
&lt;DIV&gt;
&lt;H3 id="toc-hId--723938600" class="" data-start="1567" data-end="1621"&gt;&lt;STRONG data-start="1571" data-end="1621"&gt;Configuration Steps in the ServiceNow Instance&lt;/STRONG&gt;&lt;/H3&gt;
&lt;OL data-start="1623" data-end="2174"&gt;
&lt;LI class="" data-start="1623" data-end="1658"&gt;
&lt;P class="" data-start="1626" data-end="1658"&gt;&lt;STRONG data-start="1626" data-end="1638"&gt;Download&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;the setup folder.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="1659" data-end="1711"&gt;
&lt;P class="" data-start="1662" data-end="1711"&gt;&lt;STRONG data-start="1662" data-end="1672"&gt;Import&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;all XML files provided in the setup.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="1712" data-end="1774"&gt;
&lt;P class="" data-start="1715" data-end="1774"&gt;&lt;STRONG data-start="1715" data-end="1723"&gt;Open&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;the script in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1742" data-end="1764"&gt;Background Scripts&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;module.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="1775" data-end="1839"&gt;
&lt;P class="" data-start="1778" data-end="1839"&gt;&lt;STRONG data-start="1778" data-end="1809"&gt;Update the specified values&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;in the script, then run it.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="1840" data-end="1924"&gt;
&lt;P class="" data-start="1843" data-end="1924"&gt;&lt;STRONG data-start="1843" data-end="1897"&gt;Assign the ‘sn_docusign_spoke.docusign_admin’ role&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1905" data-end="1916"&gt;‘admin’&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="1925" data-end="2037"&gt;
&lt;P class="" data-start="1928" data-end="2037"&gt;Navigate to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE data-start="1940" data-end="1969"&gt;/oauth_2_0_credentials_list&lt;/CODE&gt;, open the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="1980" data-end="1997"&gt;DocuSignCreds&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;entry, and click&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2015" data-end="2034"&gt;Get OAuth Token&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="2038" data-end="2174"&gt;
&lt;P class="" data-start="2041" data-end="2111"&gt;Go to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE data-start="2047" data-end="2081"&gt;/sn_docusign_spoke_accounts_list&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and click&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2092" data-end="2108"&gt;Get Accounts&lt;/STRONG&gt;.&amp;nbsp;&lt;SPAN&gt;(Refresh the page you should be able to see a record).&lt;/SPAN&gt;&lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV&gt;
&lt;H3 id="toc-hId-1763574233" class="" data-start="2181" data-end="2205"&gt;&lt;STRONG data-start="2185" data-end="2205"&gt;Testing the Flow&lt;/STRONG&gt;&lt;/H3&gt;
&lt;OL data-start="2207" data-end="2751"&gt;
&lt;LI class="" data-start="2207" data-end="2283"&gt;
&lt;P class="" data-start="2210" data-end="2283"&gt;Create an HR case with the HR Service&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2248" data-end="2280"&gt;‘Verification of Employment’&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="2284" data-end="2390"&gt;
&lt;P class="" data-start="2287" data-end="2390"&gt;Remove the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2298" data-end="2319"&gt;Document Template&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;category and select the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2344" data-end="2369"&gt;DocuSignHTML template&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that was imported.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="2391" data-end="2482"&gt;
&lt;P class="" data-start="2394" data-end="2482"&gt;Ensure that the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2410" data-end="2426"&gt;‘Opened For’&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;user has a valid email address linked to the HR case.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="2483" data-end="2534"&gt;
&lt;P class="" data-start="2486" data-end="2534"&gt;Change the case state to&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2511" data-end="2531"&gt;Work in Progress&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="2535" data-end="2600"&gt;
&lt;P class="" data-start="2538" data-end="2600"&gt;&lt;STRONG data-start="2538" data-end="2562"&gt;Preview the document&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and initiate the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2580" data-end="2597"&gt;Document Task&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="2601" data-end="2649"&gt;
&lt;P class="" data-start="2604" data-end="2649"&gt;You should see a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG data-start="2621" data-end="2638"&gt;Document Task&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;created.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="" data-start="2650" data-end="2751"&gt;
&lt;P data-start="2653" data-end="2751"&gt;Open the document, sign it, and after a few seconds, the Document Task should automatically close&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;Let me know if you face any issue.If the blog helped, please give it a like.&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-05-19 at 11.25.26 PM.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/455531i14D055EFEA9EA657/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2025-05-19 at 11.25.26 PM.png" alt="Screenshot 2025-05-19 at 11.25.26 PM.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-05-19 at 11.37.03 PM.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/455532i822D3FF11FD484DB/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2025-05-19 at 11.37.03 PM.png" alt="Screenshot 2025-05-19 at 11.37.03 PM.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-05-19 at 11.37.13 PM.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/455533iAA9D4A349B8EF4AD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2025-05-19 at 11.37.13 PM.png" alt="Screenshot 2025-05-19 at 11.37.13 PM.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-05-19 at 11.37.24 PM.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/455530iBB0E47A35CB463E1/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2025-05-19 at 11.37.24 PM.png" alt="Screenshot 2025-05-19 at 11.37.24 PM.png" /&gt;&lt;/span&gt;
&lt;P&gt;    &lt;/P&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;Note:&lt;/P&gt;
&lt;P&gt;If you are using Rest in Event setting then please include Recipients from Include Data as shown below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-09-04 at 8.43.49 PM.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/467377i515D1F7DCF24FC80/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Screenshot 2025-09-04 at 8.43.49 PM.png" alt="Screenshot 2025-09-04 at 8.43.49 PM.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Thu, 04 Sep 2025 15:15:39 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/quick-docusign-setup-with-document-templates-in-the-hrsd/ta-p/3268519</guid>
      <dc:creator>DeepakV76228068</dc:creator>
      <dc:date>2025-09-04T15:15:39Z</dc:date>
    </item>
    <item>
      <title>Convert Knowledge Article to PDF in Servicenow Script (Article Body Field to PDF Generation)</title>
      <link>https://www.servicenow.com/community/community-resources/convert-knowledge-article-to-pdf-in-servicenow-script-article/ta-p/3237926</link>
      <description>&lt;P class="lia-align-center"&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Servicenow PDF Generation Script&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-center"&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="servicenowpdfgeneration" style="width: 277px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/435061i635629B3E0C0C31A/image-size/large?v=v2&amp;amp;px=999" role="button" title="download.jpg" alt="servicenowpdfgeneration" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;servicenowpdfgeneration&lt;/span&gt;&lt;/span&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Line 2 : Replace sys_id with your KB sys_id or make it dynamic as needed&lt;/P&gt;
&lt;P&gt;Last line : replace sys_id with your sys_id or make it dynamic as needed&lt;/P&gt;
&lt;P&gt;pagePorperties : Update the page properties as required.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;var gr = new GlideRecord('kb_knowledge');
gr.get('6b7c4bba93bc26108af172ba2bba1006');
var html = gr.getValue('text');

var pageProperties = {
	HeaderImageAlignment: 'LEFT',
	PageSize: 'A4',
	GeneratePageNumber: 'false',
	TopOrBottomMargin: '72',
	LeftOrRightMargin: '50'
};

new sn_pdfgeneratorutils.PDFGenerationAPI().convertToPDFWithHeaderFooter(html, 'kb_knowledge', '6b7c4bba93bc26108af172ba2bba1006', 'your_pdf_name_temp', pageProperties );&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;#servicenowpdf #pdfgeneration #servicenowpdfgeneration #servicenowpdfscript #converttopdf&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 15 Apr 2025 08:58:33 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/convert-knowledge-article-to-pdf-in-servicenow-script-article/ta-p/3237926</guid>
      <dc:creator>Sohail Khilji</dc:creator>
      <dc:date>2025-04-15T08:58:33Z</dc:date>
    </item>
    <item>
      <title>Regarding CSA certificate</title>
      <link>https://www.servicenow.com/community/community-resources/regarding-csa-certificate/ta-p/3029979</link>
      <description>&lt;P&gt;Please provide some websites to practice CSA questions&lt;/P&gt;</description>
      <pubDate>Wed, 28 Aug 2024 14:24:10 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/regarding-csa-certificate/ta-p/3029979</guid>
      <dc:creator>BhanuprakaT</dc:creator>
      <dc:date>2024-08-28T14:24:10Z</dc:date>
    </item>
    <item>
      <title>Delay in CSAT/Survey Emails</title>
      <link>https://www.servicenow.com/community/community-resources/delay-in-csat-survey-emails/ta-p/2880526</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In this article, let's explore one of the ways of setting up delay in the CSAT/Survey emails post the closure of a ticket.&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SN_Learn_0-1711623967634.png" style="width: 400px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/343168iAAEA343328EDAD31/image-size/medium?v=v2&amp;amp;px=400" role="button" title="SN_Learn_0-1711623967634.png" alt="SN_Learn_0-1711623967634.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;Use Case:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;End&amp;nbsp;User confirms that the issue is resolved and closes the ticket, then a notification gets triggered for the CSAT and end user need to provide the feedback. They submit the feedback from the portal still they receive the email for the survey which they should not because they have already submitted it from the service portal. In this scenario, we can add a delay of 15-20 minutes so that we can check whether survey is already submitted or not, if not we will trigger the notification after 10-15 minutes.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Implementation Steps&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Navigate to [sysevent_register] table and create a new event called&amp;nbsp;&lt;SPAN&gt;delay.csat.survey.eng on the table&amp;nbsp;[asmt_assessment_instance]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. We will create a new business rule on the table '&lt;SPAN&gt;&lt;EM&gt;Assessment Instance&lt;/EM&gt;'&lt;/SPAN&gt; [&lt;SPAN&gt;&lt;EM&gt;asmt_assessment_instance&lt;/EM&gt;].&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;STRONG&gt;When to run&lt;/STRONG&gt;: after insert, you can provide filter conditions as per your setup.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Example: 'Metric type.Evaluation' method 'is' 'Survey'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'Assigned to' 'is not empty'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'Trigger table' 'is' 'incident'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;In the &lt;EM&gt;&lt;STRONG&gt;advance&lt;/STRONG&gt;&lt;/EM&gt; section, write the below code&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;(function executeRule(current, previous /*null when async*/ ) {

    if (current.state == 'ready') {

        var glideDelay = new GlideDateTime();
        glideDelay.addSeconds(900);
        gs.eventQueueScheduled("delay.csat.survey.eng", current, current.number, '', glideDelay);
    }

})(current, previous);&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;For more details about eventQueueScheduled, follow &lt;A href="https://developer.servicenow.com/dev.do#!/reference/api/utah/server/no-namespace/c_GlideSystemScopedAPI#r_SGSYS-eventQSched_S_O_S_S_O" target="_blank" rel="noopener"&gt;Article&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;3. Now we will trigger our CSAT notification with an event called 'delay.csat.survey.eng'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;EM&gt;&lt;STRONG&gt;Notification &lt;/STRONG&gt;&lt;/EM&gt;will be on the table [asmt_assessment_instance]&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;EM&gt;When to run&lt;/EM&gt; &amp;gt; Send when --&amp;gt; &lt;STRONG&gt;Event is fired&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Event name&lt;/EM&gt; '&lt;EM&gt;delay.csat.survey.eng&lt;/EM&gt;'&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Condition&lt;/EM&gt; --&amp;gt; 'State' 'is not' 'complete'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Define 'who will receive' and 'what it will contain' as per your requirement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's it. The notification will now wait 900 seconds and check the user's response before sending the CSAT survey email.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;If this helped you in any way, Please hit like or&amp;nbsp;mark it as&amp;nbsp;helpful. Thanks.&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Mar 2024 11:44:22 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/delay-in-csat-survey-emails/ta-p/2880526</guid>
      <dc:creator>SN_Learn</dc:creator>
      <dc:date>2024-03-28T11:44:22Z</dc:date>
    </item>
    <item>
      <title>100 Article Re-Writes!</title>
      <link>https://www.servicenow.com/community/community-resources/100-article-re-writes/ta-p/2780837</link>
      <description>&lt;P&gt;Finished my 100th blog article re-write on December 31st, 2023!&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jan 2024 15:31:07 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/100-article-re-writes/ta-p/2780837</guid>
      <dc:creator>sabell2012</dc:creator>
      <dc:date>2024-01-04T15:31:07Z</dc:date>
    </item>
    <item>
      <title>Configure User Autoprovisioning in OIDC Single Sign On (SSO) in servicenow</title>
      <link>https://www.servicenow.com/community/community-resources/configure-user-autoprovisioning-in-oidc-single-sign-on-sso-in/ta-p/2779595</link>
      <description>&lt;P&gt;This article will walk you through how we can configure User Auto-provisioning in OIDC SSO. These same steps can be followed for configuring user auto-provisioning for any OIDC identity providers like Okta, Azure etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1: Configure the OIDC SSO Record and make sure the login is working successfully with any existing user. User provisioning is not yet enabled.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="Screenshot 2024-01-04 at 1.14.09 AM.png" style="width: 648px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/317649iE73EFD2874373809/image-dimensions/648x405/is-moderation-mode/true?v=v2" width="648" height="405" role="button" title="Screenshot 2024-01-04 at 1.14.09 AM.png" alt="Screenshot 2024-01-04 at 1.14.09 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2: Configure Auto provisioning by creating (or selecting the existing) data source corresponding to the provision method selected (ID Token/Userinfo/Both). In this example, I am using ID Token Data source.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-01-04 at 1.16.21 AM.png" style="width: 649px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/317652i36AA055547117BA2/image-dimensions/649x406/is-moderation-mode/true?v=v2" width="649" height="406" role="button" title="Screenshot 2024-01-04 at 1.16.21 AM.png" alt="Screenshot 2024-01-04 at 1.16.21 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3:&amp;nbsp;If you are creating the new data source and with a new table, this table will not have any columns and you dont have to add any columns in it either. This table will be auto created after first login attempt. If you are using the existing table, you can go ahead and create the transform map using the existing columns. Make sure the columns you map are correct columns which are present in the ID Token/Userinfo response.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-01-04 at 1.24.47 AM.png" style="width: 656px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/317655iE75FFDED445F6748/image-dimensions/656x410/is-moderation-mode/true?v=v2" width="656" height="410" role="button" title="Screenshot 2024-01-04 at 1.24.47 AM.png" alt="Screenshot 2024-01-04 at 1.24.47 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here, since I have created a new table, this doesn't exist yet.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-01-04 at 1.17.00 AM.png" style="width: 660px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/317653i95F8BA40126DC230/image-dimensions/660x413/is-moderation-mode/true?v=v2" width="660" height="413" role="button" title="Screenshot 2024-01-04 at 1.17.00 AM.png" alt="Screenshot 2024-01-04 at 1.17.00 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;4: Login with any external user which is not present in the servicenow. This login attempt will fail with the below errors.&lt;/P&gt;
&lt;P&gt;-&amp;nbsp;&lt;SPAN&gt;Transform map record not provided, transform stopped&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;-&amp;nbsp;TransformMapId is null, Skip adding transform entry.: no thrown error&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Now, the above table demo_user_table1 will be automatically created with the required columns.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-01-04 at 1.18.58 AM.png" style="width: 665px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/317656iA8C10077F19E7FC0/image-dimensions/665x416/is-moderation-mode/true?v=v2" width="665" height="416" role="button" title="Screenshot 2024-01-04 at 1.18.58 AM.png" alt="Screenshot 2024-01-04 at 1.18.58 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;5: Now the transform map will have the option to map the fields from the source table (demo_user_table1) to the target table (sys_user) in this case. Map the fields that are required to be mapped in the transform map.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-01-04 at 1.20.35 AM.png" style="width: 670px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/317657i06C35F87C959E447/image-dimensions/670x419/is-moderation-mode/true?v=v2" width="670" height="419" role="button" title="Screenshot 2024-01-04 at 1.20.35 AM.png" alt="Screenshot 2024-01-04 at 1.20.35 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The data corresponding to the each column in both source and target tables can be seen in the data viewer section. This can be helpful to avoid incorrect mapping of columns from both the tables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;6: Save the Tranform map record after the mapping is done and login with the user.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-01-04 at 1.21.15 AM.png" style="width: 671px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/317658i0AE9B2CA75332F62/image-dimensions/671x420/is-moderation-mode/true?v=v2" width="671" height="420" role="button" title="Screenshot 2024-01-04 at 1.21.15 AM.png" alt="Screenshot 2024-01-04 at 1.21.15 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now the login should be successful with the external user which is not present in the servicenow and that user should also be created in the target table (sys_user).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also the data source table (demo_user_table1) should contain a new entry for the above transformed record which got created after user login.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2024-01-04 at 1.56.12 AM.png" style="width: 671px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/317659i39C8CD76CFA86368/image-dimensions/671x420/is-moderation-mode/true?v=v2" width="671" height="420" role="button" title="Screenshot 2024-01-04 at 1.56.12 AM.png" alt="Screenshot 2024-01-04 at 1.56.12 AM.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jan 2024 20:30:17 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/configure-user-autoprovisioning-in-oidc-single-sign-on-sso-in/ta-p/2779595</guid>
      <dc:creator>Ambuj Tripathi</dc:creator>
      <dc:date>2024-01-03T20:30:17Z</dc:date>
    </item>
    <item>
      <title>ServiceNow - Unknown To Known - Ep8 With Sanjiv Meher , 6X MVP , Kilo Patron</title>
      <link>https://www.servicenow.com/community/community-resources/servicenow-unknown-to-known-ep8-with-sanjiv-meher-6x-mvp-kilo/ta-p/2776875</link>
      <description>&lt;P&gt;&lt;A title="Event Link:" href="https://youtube.com/live/p8xZ6NDdt2M?feature=share" target="_blank" rel="noopener"&gt;https://youtube.com/live/p8xZ6NDdt2M?feature=share&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A title="EVENT LINK" href="https://youtube.com/live/p8xZ6NDdt2M?feature=share" target="_self"&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SM.png" style="width: 993px;"&gt;&lt;img src="https://www.servicenow.com/community/image/serverpage/image-id/316822i3CA81D1669EAA42F/image-size/large?v=v2&amp;amp;px=999" role="button" title="SM.png" alt="SM.png" /&gt;&lt;/span&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 01 Jan 2024 17:04:13 GMT</pubDate>
      <guid>https://www.servicenow.com/community/community-resources/servicenow-unknown-to-known-ep8-with-sanjiv-meher-6x-mvp-kilo/ta-p/2776875</guid>
      <dc:creator>Dr Atul G- LNG</dc:creator>
      <dc:date>2024-01-01T17:04:13Z</dc:date>
    </item>
  </channel>
</rss>

