Home / DialogFlow / Five ways to break your Dialogflow chatbot
DialogFlow

Five ways to break your Dialogflow chatbot

No, you wouldn’t intentionally break your chatbot’s functionality.

But you need to know the different ways it can happen (and also consider the suggestion I have at the end).

Add a new user says into an intent

Action: You want to handle a new phrase in an existing intent.

Problem: You have a very similar phrase already declared as part of another intent. As a result, the old phrase now gets mapped to the one you changed, potentially breaking some functionality.

Update an existing intent

Action: You modify the user’s phrase in an existing intent.

Problem: An user phrase which used to get mapped to the current intent is now triggering the fallback intent.

Approve a phrase in the training tab

Action: You see an unmapped phrase in the training tab and believe it should be mapped to an existing intent. So you select the intent, and click on the Approve button

Increase the ML threshold

Action: To get a tighter mapping, you slightly increase the ML threshold.

Problem: You didn’t know this before, but many of your phrases were already being mapped very close to the ML threshold score. After you increase it, the old phrases are getting mapped to the fallback.

Decrease the ML threshold

Action: To get a more generous mapping (or because you don’t want to spend more time adding new user phrases), you lower the ML threshold

Problem: Even junk user phrase inputs with very poor matching starts getting mapped to your intents. As a result, phrases get matched even if an entity is not present. This leads to low quality input data getting into your system.

Dialogflow updates their platform

Now clearly, this isn’t something you can control.

But there are also occasions when your chatbot, which was humming along very well, suddenly breaks. You go to the forum and notice that people are complaining. Turns out, Dialogflow made some updates to their service which breaks the old functionality in some way.

Solution

So what can you do to mitigate these problems?

Add some automated conversation testing to your chatbot. I will be discussing how to do it in a future post.

Related Posts

  • Hi Aravind, I had this really weird issue with Dialogflow that I tested out the same sentence but every time I tested, it triggered a different wrong intents and sometimes it triggered fallback =.= I’m building a Vietnamese bot though dunno if it has anything to do with DF not handling well for my language.

    • I think you might be actually setting a context in your first intent, and then you send the same query again, it might trigger a different intent. Make sure you go through the following article to understand the concept of candidate intents:
      https://miningbusinessdata.com/build-better-dialogflow-bots/#Candidate_Intents

      I think different intents are becoming candidates at different points, and that might be one reason why you are seeing this behavior.

      • Thanks so much for reply and yeah, I am aware of this. So every time I tested, I click “reset contexts” so it doesn’t trigger intents that have active input context because of the previous intent. I tested out a few times and realized that for the sentence I tested, DF triggered randomly within 4 intents (with 0.3 threshold) so is it because these 4 intents have equal score that made them equally be the candidate intents to be triggered?

        • >> these 4 intents have equal score that made them equally be the candidate intents to be triggered?

          No, that’s not the typical behavior. If you are certain that you are using the exact same phrases and the contexts are being reset, you should contact Dialogflow support and point this out. It could be a bug.

  • Hey Aravind, For some reason, entities I was trying to train the bot to recognize no longer trigger. DF says the intent is triggering correctly, but the “value” is now blank. I believe it’s a training error and that somehow I “trained” the bot to not recognize the specific entities (others are working and these used to work). I’ve gone back through days of logs and mapped the entity correctly, clicked approve, but still the error remains.

    How do you recommend we troubleshoot this? How do we isolate where in training I’m creating the error? I’m using the exact phrase and it’s still not understanding it (entity, the intent triggers fine).

    • Well, that’s quite unusual. You are using the exact same phrase. The intent you expect is firing. But the entity value isn’t being extracted.

      I have a couple of suggestions, but first can you provide some more concrete details about the kind of entity you are talking about. Is it a system entity? A developer entity? If it is a developer defined entity, can you post a link to a screenshot of the entity definition (and make sure it shows the checkboxes at the top of the entity definition)?