Versions versus releases
Throughout the bot lifecycle, it's important to follow good change management practices. LivePerson 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 return the bot to a previous state.
-
Releases are similar to versions in that they also involve creating a snapshot of the bot at a particular moment. However, releases have a different purpose: They're 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 important milestones.
Use releases to create snapshots that you then push to other bots, e.g., from a Development bot to a Production bot.
Conversation Builder stores only the last 10 versions. In contrast, only one release can exist at a time. Once you upgrade a destination bot with a release, the release is removed automatically from the source bot.
Save a version
Any time you make major 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 significant points in the development process to ensure that you can do so.
To save a version
- Open the bot.
-
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.
- Click Save Current Version.
- In the dialog that appears, specify the following:
- Version Name: Enter a version name or number. If you don't enter a name, the current date and time is used.
- Description: Briefly explain what's changed in the version. While this info is optional, it can be helpful when debugging later.
- Click Save.
Restore a previous version
Restoring a previous version completely overwrites the bot with the selected, previous version, so use caution.
To restore a previous version
- Open the bot.
-
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.
-
Click the Restore button that's located to the right of the version that you want to restore.
You might need to scroll the table to the right to see this button.
-
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 and push changes to Production
Once your bot is deployed in Production, it's live and available to your consumers. Because of this, you don't want to make changes to the live bot code. Instead, work updates in a Development or Sandbox bot and only push those changes to a Production bot when they're finished and fully tested. You can do this by creating a "release" of the Development bot and using that release to "upgrade" your Production bot.
The release is a snapshot of a bot at a specific point in time. Consider the following workflow:
- Monday - You create and fully configure your Development bot.
- Tuesday - You fully test things, and you create a release (snapshot) in the Development bot. You intend to push these changes to your Production bot on Saturday.
- Wednesday through Friday - You do some more work changing the configuration of the Development bot, as you're now working on updates to take live next month.
- Saturday - You "upgrade” your Production bot with the release created on Tuesday.
- Next week - You do some more work changing the configuration of your Development bot.
Neither step 3 nor step 5 impact your Production bot.
To create a release and push changes to Production
- Identify your Development or Sandbox bot. This is the bot that's fully configured to meet your requirements. It has the bot code that you want to make live in Production.
- In your Development or Sandbox bot, as a best practice, save a version (create a snapshot) of the bot since this is an important milestone.
-
Create a new bot. Append "Production" or "PROD" to the name. You only need to create the bot. You don't need to build out its dialogs or interactions. This is the bot that will receive the updates you want make live.
- Return to your Development bot and open it.
- 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 Release window, specify the following:
- Release to Bot: Select your newly created Production bot.
- Version: Enter the same version name or number that you used in step 2 when you saved a version of the bot. This helps with traceability; you can more easily track changes across the Development and Production bots.
- Description: Enter the same description that you used in step 2 when you saved a version of the bot. Here again, this helps with traceability.
-
Click Create Release.
This creates the release (snapshot). To complete the push, the new bot must accept the release.
-
In the Development bot, click the link to the Production bot that's provided.
This opens the Production bot, and takes you to its Releases page.
-
Click the Upgrade button. If the button isn't enabled, your account needs a configuration change made by LivePerson; contact your administrator for assistance.
Three things happen:
- The Production bot is updated using the release (snapshot) that you created.
- A new version of the Production bot is saved. This is so that you can restore the Production bot to this state if you ever need to do so. You can see this new version on the Versions page.
- In the Development bot, the release is removed.
The agent connectors in the Development bot are not pushed to the Production bot. You must create new agent connectors in the Production bot if they don't already exist.
If you have certain hard-coded values that might differ from one bot to another (e.g., skills), consider using environment variables to maintain the values externally.