Copying a Flow

REST API Equivalent: You can use the /config/{app}/flows/{flow}/copy endpoint to copy a flow.

As noted elsewhere, you can copy the current version of a flow from the Registration Flows page: all you have to do is click the Actions icon next to the flow you want to copy and then click Copy. That works fine, albeit with one stipulation: from that page you can only copy the latest version of a flow. If you want to copy an earlier version of a flow, you’ll have to access the version history and then copy the flow from there. 

Note. However, after you reach the version history the copy process is the same: you use the same approach to copy a flow from the Registration Flows page that you use to copy a flow from the Edit page.

To copy a flow from the Edit page, complete the following procedure:

  1. Click the Copy flow icon next to the flow you want to copy:

  2. In the Create a copy of dialog box, enter a name for your new flow:

    Note that flow names must be unique within an application: if you already have a flow named gms_flow then you can’t name your new flow gms_flow:

    On top of that, flow names can only contain letters and numbers, with one exception: the underscore character (_). But that’s it: you can’t include spaces, dashes, commas, or other special characters in a flow name. gms_flow is a valid flow name; gms flow and gms-flow are not valid flow names. If you type an invalid character (such as a blank space) the Save button becomes unavailable and you will not be able to save the flow until that character has been deleted. For example:
  3. After entering the name click Save to create the new flow. 

A Note About Renaming Flows

To be honest, there isn’t a way to rename a flow. Obviously, you can copy Flow_A and then save it under the name Flow_B. However, this isn’t really renaming a flow, and for two reasons. First, when you rename an object you typically end up with the same number of objects as you started with: one. For example, suppose you have one file: File_A. If you rename the file, you’ll still only have one file: File_B. However, when you copy a flow and give it a new name, you’ll end up with two flows: Flow_A and Flow_B. If you no longer want a flow named Flow_A then you’ll have to delete that flow.

But, before you do that, keep this in mind. When you copy a flow the flow itself gets copied: the copied flow will contain the same data – fields, strings, screens, translations, etc. – as the original flow. What it won’t contain is the original flow’s metadata. For example, suppose Flow_A has 37 prior versions. When you copy the flow, Flow_B will have no prior versions: that’s because the flow history is not copied over. (Which makes sense, seeing as how copying a flow means creating a new flow, one that has no prior history.) Whether that’s a problem or not is something you’ll have to decide for yourself.