How to Version Your AI Bots with ChatBotKit
As your AI bot evolves - new backstory instructions, different model choices, updated configurations - you need a way to track changes and roll back if something breaks. In this tutorial you will learn a simple but powerful versioning strategy: copy the bot, rename it, and keep iterating.
What You'll Learn
- How to create a base bot with a backstory and model configuration
- How to use the copy feature to create versioned snapshots
- How to run multiple versions side by side for testing
- How to branch versions into sub-versions for experimentation
Why This Approach Works
ChatBotKit supports virtually unlimited bots per account, so there is no practical cost to keeping previous versions around. Each copy is a fully independent bot that you can test, share, or connect to integrations without affecting the original. This gives you three key benefits:
- Side-by-side testing - run the current version and a candidate version at the same time to compare behavior.
- Full preservation - every version is a complete snapshot that can be forked into sub-versions at any time.
- Zero overhead - no external tooling, no Git repositories, no infrastructure to maintain.
Prerequisites
- A ChatBotKit account
- Basic familiarity with the ChatBotKit dashboard
- Approximately 10 minutes to complete this tutorial
Step 1: Create Your Base Bot
Start by creating a simple bot with a backstory and model configuration. This will be your initial version - think of it as v1.
- From your dashboard, navigate to Bots.
- Click Create to start a new bot.
- Set the following fields:
- Name:
Customer Support Bot (v1) - Model:
claude-4.6-sonnet(or your preferred model) - Backstory: paste the system prompt below
- Name:
Here is the blueprint for your v1 bot:
- Save the bot and test it using the Agent Console in the Blueprint Designer to make sure it behaves as expected.
Tip: Spend some time chatting with the bot in the Agent Console before moving on. You want to confirm the baseline behavior so you can compare it with future versions.
Step 2: Iterate and Improve
After testing v1 you decide the bot needs a more structured response style and should collect the user's name upfront. Before making changes, you will create a versioned copy so the original is preserved.
Step 3: Copy the Bot to Create v2
- Navigate to Bots and find Customer Support Bot (v1).
- Click the Copy button on the bot card (or in the bot detail view).
- ChatBotKit creates an exact duplicate of the bot with all its settings.
- Open the copy and rename it to Customer Support Bot (v2).
- Update the backstory with your improvements.
Here is the blueprint showing both versions side by side:
At this point you have two fully independent bots. You can test each one using the Agent Console directly from the Blueprint Designer.
Step 4: Test Versions Side by Side
One of the biggest advantages of this approach is that both versions are live at the same time.
- Open the Blueprint Designer and click on Customer Support Bot (v1) to open its Agent Console.
- Do the same for Customer Support Bot (v2) in a separate tab.
- Send the same message to both - for example: "What pricing plans do you offer?"
- Compare the responses. Does v2's structured format improve clarity? Does collecting the user's name feel natural?
If v2 is better, great - it becomes your active version. If not, v1 is still exactly where you left it.
Step 5: Create a Sub-Version (Branching)
Versions are not limited to a linear sequence. You can branch off any version to explore different directions. For example, you might want to try a different model on v2 without losing the current v2 configuration.
- Navigate to Customer Support Bot (v2).
- Click the Copy button.
- Rename the copy to Customer Support Bot (v2.1-gpt).
- Change the model from
claude-4.6-sonnettogpt-4o.
Here is the blueprint showing all three versions together:
Now you have three bots you can test in parallel:
| Bot | Purpose |
|---|---|
| Customer Support Bot (v1) | Original baseline |
| Customer Support Bot (v2) | Improved interaction flow |
| Customer Support Bot (v2.1-gpt) | v2 branch with GPT-4o model |
This branching pattern lets you explore multiple directions without ever losing previous work.
Step 6: Establish a Naming Convention
As your version history grows, a consistent naming convention keeps things manageable. Here are some patterns that work well:
- Linear versions:
Bot Name (v1),Bot Name (v2),Bot Name (v3) - Sub-versions:
Bot Name (v2.1),Bot Name (v2.2) - Experimental branches:
Bot Name (v2.1-gpt),Bot Name (v2.1-fast) - Date-based:
Bot Name (2026-04-07)for snapshots tied to a specific date
Pick the convention that fits your workflow and apply it consistently.
Troubleshooting
I accidentally edited my original version instead of creating a copy first. No problem. If the changes are small, you can manually revert them. For future safety, always copy before editing. The copy takes just a few seconds.
I have many versions and it is hard to find the right one. Use the search bar in the Bots list to filter by name. A consistent naming convention (like the one above) makes searching much easier.
Does having many bot versions affect performance? No. Each bot is independent and only consumes resources when actively used in conversations. Idle bots have no performance impact.
Next Steps
- How to Build a Reprogrammable AI Agent - learn how to let a bot modify its own backstory at runtime
- How to Choose the Best AI Model for Your Chatbot - compare models to find the best fit for each version
- How to Create an AI Widget for Any Website - connect your chosen version to a live widget