- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-07-2026 09:13 AM
Hello All,
In ServiceNow, both Incidents and Major Incidents use the same Incident [incident] table.
Is there a way to maintain separate Resolution Codes for:
• standard Incidents, and
• Major Incidents
Since Major Incidents are differentiated only by flags/states (but still remain in the same table), I’m not seeing a clean way to segregate resolution codes without impacting normal incidents.
Has anyone implemented this requirement before?
Looking for best-practice or platform-supported approaches.
Thank you,
Laxma.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-07-2026 10:21 AM
Hi Laxma,
Since both types of incidents reside on the same table, there is no OOB "switch" to segregate the Choice List based on the Major Incident state. However, this is a very common requirement.
Here are the two approaches to achieve this. Option 1 is generally considered the best practice for flexibility and UX.
Option 1: Client Script (The "Filter" Approach)
Since the Resolution Code field is likely a Choice List (not a Reference field), the standard way to manipulate the available options is using g_form.removeOption().
Implementation:
Define the Superset: Add ALL necessary resolution codes (both Standard and Major) to the choice list for the close_code field.
Create an onLoad Client Script: This script checks if the incident is a Major Incident and filters the list accordingly.
Sample Logic:
function onLoad() { var isMI = g_form.getValue('major_incident_state'); // Check field name, usually 'major_incident_state' var miStateAccepted = 'accepted'; // Check the value for 'Accepted' if (isMI == miStateAccepted) { // It IS a Major Incident - Remove Standard Codes g_form.removeOption('close_code', 'solved_workaround'); g_form.removeOption('close_code', 'user_education'); } else { // It is a Normal Incident - Remove MI specific codes g_form.removeOption('close_code', 'infrastructure_failover'); g_form.removeOption('close_code', 'emergency_change'); } }
Note: You might need an onChange script as well if users can promote an incident to Major dynamically on the form, though usually, that happens via UI Action/Workspace.
Option 2: Dependent Values (The "No-Code" Approach)
You can configure the close_code choice list to be Dependent on the major_incident_state field.
Right-click the Resolution code label > Configure Dictionary.
In the Dependent Field tab, select major_incident_state.
Go to your Choices (sys_choice list).
For every resolution code, you must now populate the Dependent value column.
Set Standard codes to have a dependent value of proposed or canceled (or whatever the non-MI state is).
Set Major codes to have a dependent value of accepted.
Why Option 1 is usually better: Option 2 is rigid. If major_incident_state is empty or changes, your choices might disappear unexpectedly. Also, if close_code is already dependent on state or category, you can't easily add a second dependency without custom scripting anyway.
A Critical "Watch-out"
Remember that Major Incidents often require a Post Incident Report (PIR). Best Practice Recommendation: Instead of cluttering the Incident close_code, many organizations prefer to keep the Incident Resolution simple (e.g., "Restored") and capture the detailed "Root Cause" and "Resolution Method" in the PIR (Post Incident Report) record, which is a separate table/tab specifically designed for Major Incidents.
Hope this helps you choose the right path!
If this response helps you achieve your requirement, please mark it as Accepted Solution.
This helps the community grow and assists others in finding valid answers faster.
Best regards,
Brandão.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 weeks ago
Hello,
I have tried with Client script; it is working fine in Service operation workspace view but is not working in default view, it is showing old resolution codes only even if the incident is major incident.
It is also not working when the user clicks on resolve UI action button to resolve the incident. It is showing old resolution codes only even if the incident is major incident.
Thank you,
Laxma.
