back to tutorials

How to Version Your AI Bots with ChatBotKit

Learn how to version your AI bots using ChatBotKit's copy feature, enabling side-by-side testing, rollback, and branching of bot configurations without any downside.

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:

  1. Side-by-side testing - run the current version and a candidate version at the same time to compare behavior.
  2. Full preservation - every version is a complete snapshot that can be forked into sub-versions at any time.
  3. 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.

  1. From your dashboard, navigate to Bots.
  2. Click Create to start a new bot.
  3. Set the following fields:
    • Name: Customer Support Bot (v1)
    • Model: claude-4.6-sonnet (or your preferred model)
    • Backstory: paste the system prompt below

Here is the blueprint for your v1 bot:

  1. 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

  1. Navigate to Bots and find Customer Support Bot (v1).
  2. Click the Copy button on the bot card (or in the bot detail view).
  3. ChatBotKit creates an exact duplicate of the bot with all its settings.
  4. Open the copy and rename it to Customer Support Bot (v2).
  5. 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.

  1. Open the Blueprint Designer and click on Customer Support Bot (v1) to open its Agent Console.
  2. Do the same for Customer Support Bot (v2) in a separate tab.
  3. Send the same message to both - for example: "What pricing plans do you offer?"
  4. 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.

  1. Navigate to Customer Support Bot (v2).
  2. Click the Copy button.
  3. Rename the copy to Customer Support Bot (v2.1-gpt).
  4. Change the model from claude-4.6-sonnet to gpt-4o.

Here is the blueprint showing all three versions together:

Now you have three bots you can test in parallel:

BotPurpose
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