# How versioning works

With versioning you can manage conversational processes in a secure way. Versioning exist for two main reasons:

1. For auditing purposes, to keep track of major changes in the conversational process

2. For testing purposes, to allow testing different versions of the chatbot at the same time

Let’s make an example.

You can have version 1 of a conversational process starting with some messages and a new version, version 2 with different starting messages.

⬇️ version 1

⬇️ version 2

Through the versioning system, we can keep track of both versions, make experiments by changing the chatbot messages or the conversational flow, and rollback to any previous version at any time.

Also, we can test any new version, in this example version 2 without necessarily promoting changes to production (version 1).

In addition, every conversational process is available in two environments: UAT (User Acceptability Testing) and Prod (Production). The existence of these two environments allows to thoroughly test a conversational process in a dedicated test environment without affecting the production one and safely promote changes to production once happy.

Promotion to production is a feature available for admin users only. This is to minimise the risk of promoting a conversational process by mistake and to give the control to expert platform users only.

Please note that not always UAT and Prod environments are aligned. As in the image example, a project can have version 1 published in Prod and version 2 published in UAT.