Chatlayer Documentation
Get in touchAbout Chatlayer
  • Welcome
  • What's new
  • Send feedback
  • start quickly
    • Leadzy tutorial
      • 0. Introduction
      • 1. New bot, new block
      • 2. Understand your users
      • 3. Collect and display user input
      • 4. Steer the conversation with Conditions
      • 5. Empower your bot with Actions
      • 6. Set up a channel and publish your bot
    • Templates
      • Banking
      • E-Commerce Returns
      • E-Bike Shop
      • E-Scooter Support
      • Feedback
      • Find Nearest Location
      • GPT
      • 🆕Gym
      • Job applications
      • Knowledge base AI template
      • Lead generation
      • 🆕NPS
      • Restaurant
      • Retail
  • navigation
    • Analytics
      • Dashboard
      • Customers
      • Conversations
      • User flow
      • Intents
      • 🆕Funnels [Beta]
    • Bot builder
      • Flows
        • Canvas functionalities
        • Collaborate with team members
        • Manage your flows
        • 🆕[Beta] Export and import flows
      • Bot dialogs view
      • Translations
      • Events
    • NLP
      • Dashboard
      • Intents
      • Expressions
      • Entities
      • Train
      • NLP settings
      • Improve
    • Knowledge base AI
      • Add content to your KBAI
      • Build your KBAI flow
      • Use your KBAI source URL in a button
      • Use tags to limit your KBAI content
      • 🆕Use Tables to store your KBAI questions
      • 🆕Manage handover where KBAI is unsatisfactory
    • History
      • Conversations
      • Execution logs
      • Versions
    • Channels
    • Tables
      • Create a table with records
      • Column types
      • Operate on your records
        • Insert record
        • Update record
        • Retrieve record
        • Delete record
      • API
    • Settings
      • Bot settings
      • Offloading
      • Variables
      • Voice
      • Import/Export
  • build your bot
    • Conversation design
      • Plan your bot
      • Conversation design workflow
    • Flow logic
      • Blocks
        • Message
        • Condition
        • Collect input
        • Action
      • Go-to connections
    • 🆕Emulator
    • Tips & best practices
      • Route your flow depending on the time
      • Improve the Not understood block
        • How to create better not understood messages
        • Not understood counter
        • Not understood Google search
      • Go to previous block
      • Recognizing a returning user
      • Skip introduction message
      • Route your flow depending on the channel
      • Reuse flows
      • Connect two bots to each other
  • understand users
    • Natural language processing (NLP)
      • Basic NLP concepts
      • Detect information with entities
        • Match entities
        • Contextual entities
        • System entities
        • Composite entities
      • NLP best practices
        • Word order and diversity of expressions
      • AI intent booster
      • Train your NLP
      • Context
      • NLP import & export
      • Sentiment analysis
    • Languages
      • Supported languages
      • Make your bot multilingual
      • Change language within the conversation
  • set up channels
    • Add a channel to your bot
    • All channels
      • 🚨Facebook Messenger [Deprecated soon]
        • Facebook Admin Removal
        • Facebook Webview Whitelisting
        • Facebook Messenger API updates for Europe
      • 🚨Google Assistant [Deprecated soon]
      • Webhook
      • Web
        • 🚨Web V1 [Deprecated]
          • Customize web widget
          • Live example web widget
        • 🆕Web V2
          • 🆕From Web V1 to V2
          • 🆕Web V2 methods and options
    • Sinch Conversation API
      • Configure your Sinch Conversation API
      • 🆕 Make the most of RCS with Carousels
      • WhatsApp Business API
  • integrate & code
    • API calls
      • Configure your API integration
      • Advanced API features
      • V1 API Reference
      • Custom integrations 101
    • Code editor
      • [Example] Sending data to Airtable (POST)
      • [Example] Retrieving data from Airtable (GET)
      • [Example] Making SOAP requests
    • App integrations
      • Airtable
      • Freshdesk
      • Freshdesk Messaging
      • 🆕Gmail
      • Intercom
      • Mailgun
      • OpenAI: GPT-3, ChatGPT and GPT-4
      • Salesforce
      • 🆕Slack
      • Topdesk
      • Zendesk Support
      • Zendesk Sunshine (beta)
    • 🆕Expression syntax
    • Human handover & live chat
      • Sinch Contact Pro
      • #Interact
      • Genesys Cloud
      • Offloading Webhook
      • Salesforce Service Cloud
      • Sparkcentral by Hootsuite
      • Zendesk Chat
    • Chatlayer messages specifications
  • Publish
    • Publish your bot
      • Publish a flow
  • Analyze & maintain
    • Analytics definitions
    • Data retention
    • Maintenance
    • Session
    • Track events for analytics
  • VOICE
    • 🆕Send bot response as audio
    • Voicebots
      • Create a voicebot
      • Voicebot-specific actions
      • Test your voicebot
      • From chat to voice
  • access & support
    • Identity & Access
      • Single Sign-On (SAML SSO)
    • Billing & subscription
    • Get in touch
    • Chatlayer glossary
    • SaaS Regions & IP Ranges
    • Status
    • Debug your bot
      • No correct response
      • Collect input not working
      • Video isn't working
Powered by GitBook
On this page
  • Option 1: using the NLP Threshold
  • Step 1: Check your NLP Threshold score
  • Step 2: Get intent variables
  • Step 3: Configure the 'Not Understood' block
  • Step 4: Fill in the bot messages
  • Step 5: Test your bot
  • How to scale this set-up
  • Option 2: Using variables

Was this helpful?

  1. build your bot
  2. Tips & best practices
  3. Improve the Not understood block

How to create better not understood messages

By creating specific not understood messages, the bot seems smarter and gives users a much better experience.

PreviousImprove the Not understood blockNextNot understood counter

Last updated 11 months ago

Was this helpful?

There are a few ways to make your bot respond in a smarter way when it is unable to understand the user. What if the bot could name the topic the user was asking about, so the user at least knows the bot kinda understood, but is unable to reply? This type of bot reply can be built by tweaking the NLP Threshold score and using specific variables.

Option 1: using the NLP Threshold

In the tutorial below, you will learn how to configure a specific 'not understood' message for whenever an expression doesn't meet the NLP threshold. In this block, the bot will try and figure out what the user meant, making the bot look smarter and helping the user find their answer faster.

See the example below: the expression "Can you check where my ordered parcel is?" both triggers a recognition rate for the intent 'lost package' and the intent 'general.no'. Since neither of those meet the 80% NLP confidence score, the bot shows a 'not understood' block.

Step 1: Check your NLP Threshold score

Step 2: Get intent variables

In the bot's debugger, we need to get the right variable so we can use it for intent recognition. To do so, open the debugger after using an expression of your choice. Underneath the title READ-ONLY SESSION DATE, click on nlp . You should see something like this:

The variables we need for a confidence score over 60% and for the name are:

internal.nlp.intent.score

internal.nlp.intent.name

Step 3: Configure the 'Not Understood' block

Now we need to change the 'not understood' block into a Condition block:

Then we need to create a rule for the specific intent. Let's create a rule for the 'lost package' intent:

Here, we will create two new bot messages: One specifically for expressions related to lost packages, and a general one, for all other intents that were not understood correctly.

Step 4: Fill in the bot messages

Write some text in the bot messages, such as:

  • Specific not understood message: "Do I understand correctly that you have a question about your lost package?"

  • General not understood message: "Sorry, I did not understand. Can you please rephrase?"

Step 5: Test your bot

Let's try again the sentence we used at the beginning of this tutorial:

It works! As you can see, the intent is still not recognised correctly (above 80% confidence score) but the user feels better understood this way. When they reply 'yes' to this message (use context!) they can immediately start the 'lost package' flow, without having to rephrase their question.

This creates a much better user experience than before you applied the steps in this tutorial!

How to scale this set-up

This tutorial is a great alternative for when you don't want to lower your overall NLP confidence score, or for when bots don't have a lot of expressions (yet). Be aware that these steps need to be implemented separately for each intent in order to create specific 'not understood' blocks.

To check which intent is recognized under what score, check out the Train tab under the NLP section. There you can see which intents are used most by users, which gives you an indication which intents need extra expressions, or a specific 'not understood' message.

Option 2: Using variables

Another option to create specific 'not understood' messages is to use variables. Many bots have a set-up like below, where you can add variables to buttons or Go-Tos to save the route users have taken in the bot:

Then, change your 'not understood' in a 'Go To' (see step 3 in the tutorial above) and create a logic as such:

Make sure to fill in your specific not understood bot messages, just like in Step 4 of the previous tutorial. After that, you are all set to give users a smarter 'not understood' experience!

In the left column, under NLP, click on NLP Threshold. There you can check what the current confidence score is of your NLP . In this example, let's say we have a threshold for intents at 80%, and we would like to give a specific error message for all intent recognition between 60% and 80%.

threshold
The confidence score is too low for the bot to recognise this expression correctly
Click on Go To to convert this block into a Condition block.
In the example above, the variable 'topic' saves the route the user has taken in the bot