‘Analyze Flows’ Compares Two Flow Versions and Reports on the Differences

For a long time, we’ve wanted to address the manageability gap that Flow has regarding version control: There has never been a practical way to compare two versions. This new Flow application provides a set of comparison tools.

Here’s an example of the kind of report that gets generated when two versions are compared:

The initial release includes several useful analysis modules, but hopefully that’s just the start. Analyze Flows is designed as a framework so that additional analysis plugins can be added to it. Right now, it doesn’t have 100% coverage for all possible changes, but if there’s interest in this, we should be able to keep adding coverage.

To use the Analyze Flows tool, install this package, and run the Analyze Flows flow. Select two versions of the same flow. As an example, we’ll analyze this flow:

Let’s compare version 3 to version 2:

Note that you need to set up a Remote Site Setting to authorize Flow to make use of your org’s external API’s.

Here’s the report that’s generated:

The report points out that an Update Record element called Update Case was removed. Let’s visually verify that. Here’s version 2 and version 3, side by side:

Now let’s compare version 3 to version 4:

There are a couple of new Assignment elements. Let’s run the analysis:

There’s a bunch of information here:

  1. The first two rows report the presence of two completely new Assignment elements. These are the ones in the red box, above.
  2. The next three rows, however, refer to a different element. It’s also an Assignment element, but it’s the one called ‘Assign to Variable:

This ‘Assign to Variable’ element is present in both Version 3 and Version 4. However, it’s configuration has changed. And here some of the power of Analyze Flows is displayed. The fifth line of our report draws attention to an ‘AssignmentItem’ that now has a value of 67. This turns out to be the right-hand-side of one of the Assignment Rows. Let’s compare version 3 and version 4, but focus on the property editor of that one element:

In V1, this configuration-level comparison is supported for: Create Records, Delete Records, Update Records, Screen, Action, Start, Subflow, Decision, Assignment

Not Yet Supported

Wait, Loop, Formula, Choice, Text Template, Steps and Stages (Orchestration), Process Metadata Values, Rollback Records


Note: this requires version 3.15+ of Actions Base Pack and version 3.0.20+ of Screen Components Base Pack

V 1.0.2 4/2/23 Production Sandbox Incorporates versioning fixes in Base Packs.


view source

Old Releases

V 1.0.1 1/18/23 Production Sandbox Requires version 3.12+ of Actions Base Pack. Fixes the ‘Apex Type not found’ bugs

V 1.0 1/10/23 Production Sandbox Initial Release

Developer Notes

Dual Flow Version Selector Screen Component

This new lwc enables the selection of two specific versions of two flows:

It returns the names of the selected flows. Note that it appends the selected version number to the apiName, like this: Test_Flow-1. This is how you request a particular version when retrieving Flow metadata.

It’s available for reuse.