Use Cases for Custom Variables
Using custom variables, you can make any information available at the global level at any stage in the process.
Using custom variables, you can make any information available at the global level at any stage in the process. Custom variables have the following use cases:
Independency of Branch Outcome
Make the step that follows a condition branching independent of the outcome of the conditional branches. Let's look at an example: We have a condition where the branches have steps for two shipping companies. The Final Approval form needs to cover both possible outcomes to map the Shipping Cost field. So, we map an independent custom variable instead of the specific process output from the steps in the branches.

The following shows the order, in which the custom variable is inserted into the process.
-
We define the shipping cost global custom variable for the process.

-
In the two steps in the branches, we use the new custom variable on the Outputs tab.

-
In the Final Approval form, we can now map the Shipping Cost field to the custom variable as well, and make it independent of the condition branches.

-
At runtime, the final approval form receives an input for the shipping cost, no matter which branch is used.
Rework Request
Send a request back for rework while preserving the already-entered values and the comments added by the parties involved.
Let's assume that a step needs rework before the approver accepts it. To send the process back to the previous step that needs rework, you can define a custom variable that is already available before the approval step outcome is available. In this way, the previous step can anticipate the result of the approval step and use the correct variable.

One Field, Multiple Processes
Multiple process steps edit the same field. This field is immediately available and doesn't need to be mapped and carried forward.