If you’ve created an OSGi workflow on one environment and wish to deploy that process to another server, you’ll need to create a package that includes the proper assets.
In this example we’ve created a custom workflow with a title of “My Custom Workflow” and a name of “MyCustomWorkflow”.

The designs of the custom workflow (ie: a workflow that was not part of your AEM installation) are in two unique locations. The first and likely most obvious for those who’ve traversed CRX is under /var/workflow/[name]. In this case our new workflow model can be found under:

The second location is under /conf/global/settings/workflow/models/[name].

To ensure you have a package that contains a deployable workflow, you must include the two locations in your package.

Including the two filter locations will provide you with a deployable package that will automatically version the current workflow on the destination location.
Note that OSGi workflows differ from LiveCycle workflows where the newly deployed workflow will only be executed by new workflow instances and not overwrite the processes of instances already being executed. In the case of LiveCycle, this would only occur if you created a new version of the application. With OSGi, versioning is automatic.