Sub-Flows are often used for re-usable pieces of logic. For example, you might have a solution in which multiple flows need to ask for a date of birth. In that case, one single Sub-Flow that asks for the date of birth can be used. This Sub-Flow can then be called by any flow that needs the user's date of birth.
Unlike regular flows, Sub-Flows are not triggered by a user input. In fact, Sub-Flows do not have triggers at all. Sub-Flows can only be activated when linked to from other flows.
Once the Sub-Flow has finished processing, execution will be handed back to the parent flow. One flow can link to multiple Sub-Flows, which will behave as if they were part of the parent flow. Sub-Flows can also link to other Sub-Flows. When linking to a Sub-Flow you can specify which variables can be transferred back and forth. If an output in the Sub-Flow uses a revisitability limit and that limit is exceeded, the Sub-Flow and all calling flows are dropped.
Sub-Flows are created in the same way as regular flows. However, to turn a regular flow into a Sub-Flow, click the 'Sub-Flow' icon in the 'Flow Entry' group of the ribbon when editing a flow. This will remove the trigger and turn it into a Sub-Flow entry point.