Lifecycle management APIs

  • Release version: Zurich
  • Updated July 31, 2025
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Lifecycle management APIs

    Lifecycle Management APIs in the Zurich release provide ServiceNow customers with comprehensive tools to manage Configuration Item (CI) operational states and actions programmatically. These APIs enforce business rules by adhering to restrictions on allowed CI actions and operational state transitions, ensuring consistent and compliant CI lifecycle management.

    Show full answer Show less

    When a disallowed operation is attempted, the system blocks it, logs an error, and may automatically create a task to address the issue. Additionally, bulk APIs enable efficient management of operational states and CI actions across multiple CIs, supporting scalability in enterprise environments.

    Key Features

    • Registration APIs: Enable non-workflow user operators to register and unregister for state management operations. They also provide methods to validate operators, check lease expirations on CI actions, and extend CI action leases to maintain control over action durations.
    • Operational State APIs: Allow setting and retrieving operational states for single or multiple CIs. Bulk operations streamline updates across groups of CIs.
    • CI Actions APIs: Support adding, removing, and retrieving CI actions in bulk, facilitating simultaneous updates to multiple CIs’ action states.
    • Validation APIs: Include methods to verify whether specific CI actions are allowed based on operational state, check disallowed operational state transitions, and confirm compatibility between different CI actions.

    Practical Usage

    ServiceNow customers can use these APIs to automate and enforce lifecycle management processes. For example, a typical use case involves:

    • Registering an operator to perform state management tasks.
    • Bulk updating operational states (e.g., setting multiple CIs to “Repair in Progress”).
    • Bulk adding CI actions (e.g., applying a “Patching” action to multiple CIs).

    This approach ensures operational consistency, reduces manual effort, and maintains adherence to lifecycle policies.

    Key Outcomes

    • Improved automation and control over CI operational states and actions.
    • Prevention of invalid state transitions and disallowed actions, enhancing data integrity.
    • Efficient bulk processing enabling scalable lifecycle management.
    • Dynamic lease management for CI actions, ensuring timely updates and expirations.

    CI Lifecycle Management provides a set of state management APIs for manipulating CI operational states, and applying CI actions.

    State management APIs adhere to restrictions and allowances specified by Not Allowed CI Actions, Compatible CI Actions, and Not Allowed Operational Transitions. If an API attempts to perform a restricted operation, the operation is blocked, an error is logged, and a task is automatically created if appropriate.

    Lifecycle management APIs can set operational states and CI actions to CMDB groups by utilizing lifecycle management bulk APIs.

    Registration APIs

    • registerOperator() - Method to register operator with state management for non-workflow user.
    • unregisterOperator(String requestorId) - Method to unregister operator for non-workflow users.
    • isValidRequestor(String requestorId) - Method to determine if the specified requestor is a valid active workflow user or a registered user.
    • isLeaseExpired(String requestorId, String ciSysId, String ciActionName) - Method to check if registered user lease expired.
    • extendCIActionLease(String requestorId, String ciSysId, String ciActionName, String leaseTime) - Method to extend CI Action Lease time, for registered users. If previous lease already expired, extend lease from now.

    Operational State APIs

    • setBulkCIOperationalState(String requestorId, String sysIdList, String opsLabel, String opsStateListOld) - Method to set Operational State for an array of CIs.
    • getOperationalState(String ciSysId) - Method to get CI Operational State.

    CI Actions APIs

    • addBulkCIAction(String requestorId, String sysIdList, String ciActionName, String ciActionListOld, String leaseTime) - Method to add CI Action for an array of CIs.
    • removeBulkCIAction(String requestorId, String sysIdList, String ciActionName) - Method to remove a CI Action for a list of CIs.
    • getCIActions(String ciSysId) - Method to get CI Actions.

    Not Allowed Action Based on Operational State API

    isNotAllowedAction (String ciType, String opsLabel, String actionName) - Method to check if a specific CI action is not allowed for specific Operational State on a CI Type.

    Not Allowed Operational State Transition API

    isNotAllowedOpsTransition(String ciType, String opsLabel, String transitionOpsLabel) - Method to check if specific operational state transition is not allowed on a CI Type.

    Compatible Action API

    isCompatibleCIAction(String actionName, String otherActionName)- Method to check if two specific actions are compatible with each other.

    Using state management APIs

    // 1. Register Operator with State Mgmt
    var output = SNC.StateManagementScriptableApi.registerOperator();
    var jsonUntil = new JSON();
    var result = jsonUntil.decode(output);
    var requestorId = result.requestorId;
    
    // Get list of sys_ids to update
    var sys_ids;
    
    // 2. Set list of sys_ids's Operational State to 'Repair in Progress'
    output = SNC.StateManagementScriptableApi.setBulkCIOperationalState(requestorId, sys_ids,'Repair in Progress');
    gs.print(output);
    
    // 3. Set list of sys_ids's CI Action State to 'Patching'
    output = SNC.StateManagementScriptableApi.addBulkCIAction(requestorId, sys_ids, 'Patching');
    gs.print(output);