Best practise - Tips and tricks

In this section we will explain what we think is the best practice when you build your chatbot. We will try to explain how to think when starting your bot project. How to focus your bot on the right areas. How to build a balanced NLU. What’s nice to have and what’s need to have? What is confidence level?

Building your NLU-model

  1. Define clear intents: Intents are the main building blocks of a Puzzel NLU model. Define clear and concise intents that represent the goals and needs of your users.
  2. Use entities: Entities are pieces of information that users provide along with their intents. Use entity extraction to identify relevant information in user messages and use it to provide a better response.
  3. Use real user data: Train your model on real user data to ensure that it can handle a wide range of user inputs and scenarios.
  4. Use a variety of training examples: Provide a variety of training examples for each intent to ensure that the model can handle variations in user input and context.
  5. Evaluate and iterate: Continuously evaluate your model's performance and iterate on it to improve its accuracy and handling of edge cases.
  6. Use a fallback policy: Include a fallback policy in your model to handle inputs that it does not understand or cannot classify with confidence.
  7. Test thoroughly: Test your model thoroughly before deploying it to ensure that it can handle a variety of user inputs and scenarios
  8. Use natural language: Your training sentences should be written in the same way that people naturally speak or type. Avoid using formal language or jargon that your users may not be familiar with.


To figure out which workflow works best for a specific bot, it’s a good practice to test by using AB-testing.
AB-testing is created with the help of the “Random next”-action. Where the first workflow of a customer journey is a “Random next”-workflow. This will distribute the visitors 50/50 between to different workflow-series.
Another good practice is to make sure that you set a Case type for each workflow-series. This way, you can gather much more information and statistics about which workflow worked best.
And of course, you will want to use customer satisfaction scores on your AB-testing.

Naming of workflows

By naming your workflows in a structured manner, you will get automated categories and you will also get a much better structure and overview of your workflows as your chatbot grows.
Normally we name our workflows by this convention.

For example: Booking-Tickets-Intro or Booking-Hotels-Pricing
The function will automatically identify dash or a space between words and create categories for all categories that have more than 3 workflows with the same namings.

Using the currentUrl variable

currentUrl is a standard context variable in Puzzel smart bot. It will always contain the current browser URL. (window.location.href)
By using “check if context is set” and checking the currentUrl variable, you can easily avoid doing an unnecessary website navigate, when the visitor is already on that specific page on the website.
Another good example on using the currentUrl variable is in combination with the wait for context variable.
If you have a login page, that redirects you on a successful login. You can wait for the currentUrl to match the url on you redirected page. Doing this will allow the bot to wait for the end user to login.


06/03/2023 - 16:27

Last updated

13/03/2023 - 07:29