From ddf45154e8388663bf407331b6537227d807c80d Mon Sep 17 00:00:00 2001 From: Divya <165976969+divyajetti9@users.noreply.github.com> Date: Wed, 15 Oct 2025 15:38:00 -0500 Subject: [PATCH 1/2] README.md --- .../README.md" | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 "Server-Side Components/Business Rules/Auto-create a Knowledge Article from a resolved incident\342\200\231s resolution notes/README.md" diff --git "a/Server-Side Components/Business Rules/Auto-create a Knowledge Article from a resolved incident\342\200\231s resolution notes/README.md" "b/Server-Side Components/Business Rules/Auto-create a Knowledge Article from a resolved incident\342\200\231s resolution notes/README.md" new file mode 100644 index 0000000000..993ddbdaba --- /dev/null +++ "b/Server-Side Components/Business Rules/Auto-create a Knowledge Article from a resolved incident\342\200\231s resolution notes/README.md" @@ -0,0 +1,7 @@ +This ServiceNow Business Rule automatically creates a Knowledge Article when an Incident is resolved and includes detailed resolution notes. +It helps promote knowledge sharing, reduce repeated issues, and improve ITSM efficiency. + +Trigger when an Incident moves to Resolved. +Check if a Knowledge Article with a similar short description already exists. +If no similar KB exists → create one in “Draft” state. +If one exists → skip creation. From efe3d3aa7a7bdd752137f42e77031d169cd273a7 Mon Sep 17 00:00:00 2001 From: Divya <165976969+divyajetti9@users.noreply.github.com> Date: Wed, 15 Oct 2025 15:40:28 -0500 Subject: [PATCH 2/2] Create script.js --- .../script.js" | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 "Server-Side Components/Business Rules/Auto-create a Knowledge Article from a resolved incident\342\200\231s resolution notes/script.js" diff --git "a/Server-Side Components/Business Rules/Auto-create a Knowledge Article from a resolved incident\342\200\231s resolution notes/script.js" "b/Server-Side Components/Business Rules/Auto-create a Knowledge Article from a resolved incident\342\200\231s resolution notes/script.js" new file mode 100644 index 0000000000..5cdb128b36 --- /dev/null +++ "b/Server-Side Components/Business Rules/Auto-create a Knowledge Article from a resolved incident\342\200\231s resolution notes/script.js" @@ -0,0 +1,39 @@ +(function executeRule(current, previous) { + + // Only run when the incident moves to Resolved + if (current.state == previous.state || current.state != 6) { + return; + } + + // Make sure we have resolution notes to use for the KB article + if (!current.close_notes) { + gs.info('Skipping KB creation: No resolution notes found for ' + current.number); + return; + } + + // Get a clean version of the short description for comparison + var issueTitle = current.short_description ? current.short_description.toLowerCase().trim() : ''; + + // Check if a similar KB article already exists + var kbCheck = new GlideRecord('kb_knowledge'); + kbCheck.addQuery('short_description', 'CONTAINS', issueTitle); + kbCheck.query(); + + if (kbCheck.next()) { + gs.info('KB already exists for issue: ' + current.number + '. Skipping new KB creation.'); + return; + } + + // Create a new Knowledge Article + var kb = new GlideRecord('kb_knowledge'); + kb.initialize(); + kb.short_description = current.short_description; + kb.text = current.close_notes; + kb.workflow_state = 'draft'; + kb.kb_category = ''; // You can set a default category if needed + kb.u_source_incident = current.number; // Optional: track which incident created it + kb.insert(); + + gs.info('New KB article created from Incident: ' + current.number); + +})(current, previous);