# Virtual environment  packages

## Introduction

A *package* is a collection of process flow versions that can be deployed to a given virtual environment in a single operation. If you have lots of process flows to manage, this is more efficient than [deploying them individually](/product-documentation/virtual-environments/implementing-virtual-environments/deploying-a-single-process-flow-to-a-virtual-environment.md).

Having [created](/product-documentation/virtual-environments/virtual-environment-packages/creating-a-package.md) a package, you add the required process flow versions and then (when you're ready) [deploy](/product-documentation/virtual-environments/virtual-environment-packages/managing-packages/deploying-a-package.md) the package to each virtual environment. Once a package is deployed, it remains available so you can deploy the same set of flow versions in future.&#x20;

## Need to know

* A package can contain *one* version of any given process flow. If you need to deploy different versions of the same process flow, you must create one package for each version.
* You can deploy a given package to a virtual environment as many times as you need.
* If a [deployed configuration](/product-documentation/virtual-environments/implementing-virtual-environments/deploying-the-configuration-for-a-virtual-environment.md) exists for the selected virtual environment, this will be used. Otherwise, the current `draft` configuration is used.  Note that this behaviour differs from [deploying a single process flow via process flow settings](/product-documentation/virtual-environments/implementing-virtual-environments/deploying-a-single-process-flow-to-a-virtual-environment.md), where only `deployed` virtual environments can be selected.&#x20;
* If you deploy a package to a virtual environment and the package includes a process flow that already exists in that virtual environment, the package takes precedence - the existing version becomes `inactive` and the package version is `deployed`.  Note that this behaviour differs from [deploying a single process flow via process flow settings](/product-documentation/virtual-environments/implementing-virtual-environments/deploying-a-single-process-flow-to-a-virtual-environment.md).
* When process flows are deployed via a package, they are [enabled](/product-documentation/virtual-environments/managing-virtual-environments-versions-and-flows/managing-virtual-environment-flow-deployments/disabling-or-enabling-a-process-flow-deployment-for-a-virtual-environment.md) automatically (i.e. they will run in that environment according to any trigger shape settings).&#x20;
* Process flows are associated with a package for deployment purposes only. After a flow version is deployed, it won't be affected by any subsequent actions taken with the package - for example, if a package is [removed](/product-documentation/virtual-environments/virtual-environment-packages/managing-packages/deleting-a-package.md), any associated flow deployments won't change.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.wearepatchworks.com/product-documentation/virtual-environments/virtual-environment-packages.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
