---
sourceDocument: Australia IT Service Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/it-service-management

 Release :

    - australia

ft:locale :

    - en-US

ft:publication_title :

    - Australia IT Service Management

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# Configure state model transitions

# Configure state model transitions {#ariaid-title1}

Release version: Australia  
Updated January 30, 2025  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 1 minute to read  
You can use script includes or UI policies to configure state models and the criteria
for moving change requests from one state to another.

## Before you begin

Role required: script_include_admin, ui_policy_admin, or admin

## Procedure

1. Complete the following steps to add state change criteria in a script include that enables a state transition.  
   Note:  
   Before editing a Script Include consider configuring state transitions through Change Models and Model State Transitions as it doesn't require scripting. For the configuration approach, see [Create predefined transition condition types](https://servicenow-prod.fluidtopics.net/xrU0y~ZbYUJ7Dc_UvnF0Qw "Create predefined transition conditions to reuse the conditions for your Change models.")

   You can configure state transitions in two ways:
   * Configuration: Use Change Models and Model State Transitions to define transition conditions without scripting. This approach applies to most requirements.
   * Script includes or UI policies: Use these methods when transition logic requires conditions that the configuration approach cannot express.
   1. Navigate to System DefinitionsScript Includes.
   2. Open the script include for the state transition model that you want to edit.  
      {#t_ConfigStateModelTransit__table_i1c_j3l_wy__entry__2}

      | State transition model | Script include |
      |-|-|
      | Normal | ChangeRequestStateModel_normal |
      | Standard | ChangeRequestStateModel_standard |
      | Emergency | ChangeRequestStateModel_emergency |
      [ ]

      {#t_ConfigStateModelTransit__table_i1c_j3l_wy}
   3. Modify the appropriate method canMove method in the script include.  
      For example, to add a condition for a normal change to transition from the New state to the Authorized state, modify the draft.authorized.canMove() method in the ChangeRequestStateModel_normal script include. In the script, the GlideRecord you are acting on can be referenced using the this._gr variable.  
      The canMove method is part of a structure that
      defines the transitions available to the change type. The
      canMove method is contained in the
      currentState.nextState.canMove()
      structure.
   {#t_ConfigStateModelTransit__substeps_tfb_c3l_wy}
2. Complete the following steps to use a UI policy to add new criteria for state transitions.
   1. Navigate to System UIUI Policies.
   2. Open a default UI policy to edit or select New to create a new policy.  
      The following are the default UI policies.{#t_ConfigStateModelTransit__table_m45_ng1_mt__entry__2}

      | UI Policy | Description |
      |-|-|
      | Show | CAB fields for normal and emergency changes from the Authorize state and onwards. |
      | Mandatory | Assignment Group field. |
      | Mandatory | Close notes and Code fields when in the Closed state. |
      [ ]

      {#t_ConfigStateModelTransit__table_m45_ng1_mt}  
      Note:  
      In both of the mandatory UI policies, the state of the change request determines the mandatory fields. For Show - CAB fields, the type of change is also taken into account because standard changes do not require approval.
   3. Complete and save the UI policy.
   {#t_ConfigStateModelTransit__substeps_x2f_v3l_wy}
{#t_ConfigStateModelTransit__steps_ppx_vhl_wy}

*[\>]: and then


