For more complex workflows, a DataFlow application can also reference and call another DataFlow application. This reference is just like any other module, but its functionality is to call the referenced DataFlow. To provide inputs into the DataFlow, and retrieve certain outputs, the referenced DataFlow must have certain module inputs and outputs marked as externalized with additional data (name and description). The DataFlow author does this by adding special modules that externalize inputs and outputs. These external modules then become the inputs and outputs in the ‘application reference module’ in the calling DataFlow application.