6

Is there a way or a workaround anyone knows of to compare the differences between two versions of a flow? I'd love to be able to track those changes and compare differences at a glance.

I'll frequently save multiple versions of a flow as I make incremental changes over time, but sometimes I'll make big updates within the same version. If the intended changes don't work as expected and I have to revert back to a previous version of the flow, often this will be after it has been in production for a period of time - which can be difficult to go back and recall exactly which changes were made between each version.

Looking for a workaround, app, plug-in, extension, or even recommended best practice - essentially any insight that may help with this. All advice is appreciated. Thank you!!

3 Answers 3

4

There is now a way to do this using the Unofficial SF Analyze Flows report functionality that allows for comparing two different versions of flows (new as of 1/18/23). The initial release includes several useful analysis modules and it provides the ability to select two versions of a flow. An output report provides two lines for each flow element and indicates that they are either the same or different and which ways they differ (see image below. Right now, it doesn’t have 100% coverage for all possible changes, but the Unofficial team hopes to expand functionality. Flow comparison report To use the Analyze Flows tool, install this package, and run the Analyze Flows flow. Select two versions of the same flow.https://unofficialsf.com/analyze-flows-compares-two-flow-versions-and-reports-on-the-differences/

0
3

Looks like you can retrieve Flow definitions via the Metadata API. For a Flow, the fullName field appears to be where you'd specify the version:

To deploy or retrieve a version, you can specify the version number. For example, sampleFlow-3 specifies version 3 of the flow whose unique name is sampleFlow. If you don’t specify a version number, the flow is the latest version.

Alertnatively, if you're more comfortable with the Salesforce CLI in VSCode, you can pull down Flows using package.xml. This question appears to have good answers - Shawn Kuruganti's in particular mentions retrieving specific versions.

Neither of these are graphical comparisons, but it might give you what you need to go forward.

If you want a graphical version, it seems you're out of luck, but you can vote on the idea in the Idea Exchange.

4
  • 2
    comparing flow versions in a non-graphical manner is mind-bending as there is so much XML that obfuscates the way the flow developer conceptualizes the flow.
    – cropredy
    Commented Dec 21, 2021 at 5:17
  • 2
    @cropredy I understand that - hence my statement "Neither of these are graphical comparisons, but it might give you what you need to go forward" - but I don't believe there's a side-by-side method of comparison short of opening up flow versions in different windows in the browser. There's an idea in the Idea Exchange for it: ideas.salesforce.com/s/idea/a0B8W00000GdWKoUAN/… Commented Dec 21, 2021 at 12:08
  • 1
    I didn't mean it as a criticism, more to emphasize your original answer.
    – cropredy
    Commented Dec 21, 2021 at 14:45
  • 1
    @cropredy Ah, I see. My apologies for defensiveness. Commented Dec 21, 2021 at 14:51
1

Elaborating on @Victor Lockwood's answer here to make this a bit more surmountable for the average developer.

Prerequisites:

  • Salesforce CLI installed
  • VS Code installed
  • An SFDX project in VS Code
  • An active default session connecting you to your org

In your SFDX project, enter a command like this in the terminal (probably, but not necessarily, your VS Code terminal) to retrieve multiple versions of your flow. Substitute your flow's API name for "My_Flow" and the version numbers you want for "1" and "2".

sf project retrieve start --metadata Flow:My_Flow-1 Flow:My_Flow-2

Or if you don't have sf v2 or higher yet:

sfdx force:source:retrieve --metadata "Flow:My_Flow-1,Flow:My_Flow-2"

You'll get 2 files in your force-app/main/default/flows directory. Open one of them, use Ctrl+Shift+P to open the VS Code Command Palette, type in "Compare", select File: Compare active file with..., then select the other file. You'll get a diff view that will allow you to compare the XMLs.

Not that an XML diff is necessarily going to be the most straightforward or helpful thing to read in all circumstances, but let's face it -- we're dealing with Flow.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .