Intermediate | Flow of the Week: Automating Change Management Processes

Change Management processes are important to organizations to ensure work is scheduled, prioritized, repeatable and that oversight has been applied. However, a problem may arise if organizations layer too many levels of bureaucracy on top of these processes. But, the good news is that Microsoft Flow can automate many Change Management processes that allow organizations to achieve their Change Management goals, without accruing inefficiencies.

For many organizations, the IT Change Advisory Board (CAB) is weekly event.  The change board has many purposes including:

  • A communication vehicle for teams to discuss what activities they are about to perform
  • Prioritize activities in the queue
  • Understand impacts to dependent services
  • Applying governance to ensure of regulatory and financial compliance
  • Monitoring and tracking the execution of changes

Unfortunately, some organizations start to layer inefficiencies and red tape which leads to a lot of bureaucracy. Inefficient CAB processes may lead to disengaged members as the value of change board meetings drop. These inefficiency losses only impair the original intents we described above and lead to more mistakes, outages and compliance exposure.

There are many opportunities to automate Change Management processes which can actually improve efficiency, engagement, compliance and success of changes. The scenario I am about to describe is one, of many, ways in which organizations can automate a change board process. To aid in the illustration of this scenario, we will use ServiceNow as our IT Service Management system and use the Microsoft Flow connector to interact with it.

Most CAB meetings occur at the same time every week. In order for people to know whether their change has been approved, they need one of the following:

  • Having attended the CAB meeting to see if their change has been approved.
  • Wait for an email from their team's representative indicating that their change has been approved/rejected.
  • Log in to the IT Service Management application and look for their ticket to see if it has been approved.

Instead, a scheduled process can be setup within Microsoft Flow that performs the following functions:

  • Add a Recurrence Trigger and have it configured to run at a relevant time after your CAB meeting.
  • Initialize an Array called Changes
  • Create a connection to your ServiceNow instance and select the List Records action. Select Record Type of Group and then provide a Query of name=Network. In this case, name represents the display name of an Assignment group in ServiceNow called Network. You can change this based upon the Assignment Group that you would like to target. 

Note: For greater clarity, I have renamed the List Records action to be more descriptive bay calling it List Assignment Groups.

  • The List Assignment Groups action will return an array. In this case we expect only 1 record as we have provided a query. As a result, when we go to use the output of our previous action, an Apply to each loop is added. Once again, we want to use the List Records action when connecting to ServiceNow. This time we are going to target the Change Request table and look for records that have been approvedassignment_group=Sys ID (returned from our List Assignment Groups call) and state= 2 which in this case means scheduled.

Note: The ^ represents the logical & operator in ServiceNow's query language.

  • At this point, we will have all of the approved change requests for the Network team. But, it would also be useful to have who the owner of the ticket is to ensure there is clear accountability of who is responsible for the execution of the change.  To accomplish this, we will add a Get Record action and will pass in the Assigned to value that was returned from the List Approved Change Requests action. In this particular case, the Assigned to contains a reference to the assigned to user but does not include a user friendly display name. By retrieving the User record we can retrieve their user profile.

  • We can now assemble a composite message which will include the outputs from our List Approved Change Requests and Get (User) Record. To do this, we will use the Variables - Append to array variables action, which I have renamed for my scenario.

Note: this action takes place within our parent loop as we need to do this for reach change request that has been returned.

  • Our next step is to assemble an HTML table that we can use as part of our output.

  • When it comes to outputs, there are several options including posting to a Microsoft Teams Channel or sending an email.

Testing

If we go ahead and run this flow, we will see the following outputs. The first one for Microsoft Teams and the second for Email which includes CSS markup.

Bonus Content

Since this is a Scheduled flow, this also means that we can invoke this flow from within Microsoft Teams itself through the Flow Bot for Microsoft Teams which we introduced this past January. This allows the owner of this flow to kick off the flow and communicate with the broader team with a few keystrokes.

Conclusion

This was just one example of a Change Management process that can be automated. We have created ServiceNow templates to help get you started on this and other scenarios which allow you to improve the efficiencies of both your Incident and Change Management processes.

What are some other Change Management processes that you would love to see automated? Please let us know in the comments below.