Throughout the bot creation lifecycle, it's important to follow good change management practices. Conversation Builder has two features that support this:
Versions let you save your progress at crucial moments during bot development. When you save a new version, the system takes a snapshot of the bot at that moment and saves it. You can then recover the bot to the state of a previous version. This is helpful if you ever make mistakes or break something and need to go back.
Releases are similar to versions in that they also involve creation of a snapshot of the bot. However, releases are used to push the snapshot to a different bot, updating it with the new bot code.
Use versions during the development cycle to take snapshots at different milestones. Use releases to push snapshots to different bots, e.g., to push a snapshot from a Development bot to a Production bot.
Conversation Builder stores only the last 10 versions.
Save a version
Any time you might be making large changes to the functionality of a bot, there is the possibility that you might need a way to roll back those changes. It is highly recommended that you save a version at periodic and significant points in the development process to ensure you don't lose any work.
To save a version
In the upper-left corner, just to the right of the menu bar, click , and select Versions.
This displays the list of versions of the bot, if any.
- In the Versions window, click Save Current Version.
- In the dialog that appears, enter a version name if desired, and click Save. If you don't enter a name, the current date and time is used.
Restore a previous version
A "restore" completely overwrites your existing bot with the selected, previous version, so use caution when restoring versions.
To restore a previous version
- Move your mouse over the version you want to restore, and click the Restore button that appears.
- In the Restore Version dialog box, enable the provided controls to verify the name and version of the bot you want to restore, and then click Proceed.
Create a release
Once your bot has been deployed, it is live and available to your customers. Because of this, you would not want to make changes to the live bot code. Rather, you should be working in a "Development" or “Sandbox” version of the bot and only push this to a “Production” version when it is finished and tested. You do this by creating a release. The procedure that follows describes the process.
To create a release
From the Conversation Builder dashboard that lists your bots, click New Bot and create a new bot based on the Custom Bot template. You will be pushing your production version to this bot. You might want to be specific with the naming and append "Production" or "PROD" to the bot name to differentiate it from your Development/Sandbox bot.
You only need to create the Production bot; you don't need to build out its dialogs and interactions.
- Return to your Development bot.
- In the upper-left corner, just to the right of the menu bar, click , and select Releases.
- In the upper-right corner, click New Release.
In the New Releases dialog box, specify the following:
- Release to Bot: Select your newly created Production bot.
- Version: Enter a version number. When you upgrade the Production bot, this automatically creates a version in that bot, so you need to specif a version number here.
- Description: Enter a meaningful description of any changes from the previous version.
Click Create Release.
This creates a release "snapshot." To complete the push, the new bot must accept the release.
Click the link to the new bot that's provided.
This opens the new bot.
In the new Production bot, click in the upper-left corner, and select Releases.
At this point, the functionality of the Production bot should be identical to the Development bot’s at the time of the push. Additionally, a new version of the Production bot has been created.
The bot user agents attached to the Development bot are not pushed to Production. You will need to create new bot user agents and attach them to the Production bot, if they do not already exist.
Tip: If you have certain hard-coded values (e.g., skills) that might differ from one bot to another, you could use environment variables to maintain the values externally.