Similar utterances with one word difference not working in multiple context


I have two intents. 1. for Regression flow. 2. For teamcity flow

Entites are as below;

When I enter the utterance for regression “tell me the status of workflows regression”, it recognizes the intent for teamcity which is incorrect. Here entity extraction happens for Regression intent and slots for teamcity.

If I remove the build slot from the teamcity intent then it works fine. Why the build slot has an impact to the utterance given that this word is entirely different.

Kindly help me to resolve the issue.


Hello Saritapol13,

I’m not an advanced user and ran into similar issues. I would say that you should try reviewing the way you use intents. For me, both intents are the same (“tell me the status of xxx”)… you should therefore merge them into one single intent and using slots to differentiate between the different entities that can be involved. I think the NLU should work better that way.

Try it. If it doesn’t work then maybe a more advanced user can help.

Hello Pascal,

Thanks for the suggestion to resolve the issue. The problem is these are two different internal tools(hence the two different intents) and hence grouping them together would add more challenges. Also, few utterance makes sense for one intent while not for other e.g. (check status for product xyz… This is fine for check-regression-status but not for check-teamcity-build-status intent)


@saritapol13 You can always use quick replies in these cases where you can prompt user to select any one of the project , even if they type it, the nlu will detect the correct project. Routing with just NLU is always an advanced approach but quick replies provides a good UX.

@swetangkashyap Thanks for the suggestion. So just to be sure I understood correctly, when we give quick reply to the user to select the tool, then switch to that context and then only the utterances from those context will be used and entity extraction will work better?

E.g. Which tool you would like to work on 1. Jenkins 2. TeamCity
After the user does the selection, select to the checkRegressionStatus
Which only look for utterances from those context ( e.g. check regression status) and the entity and slot extraction would happen without issues.

If this is not correct if you can help me with some sample use-case would be very helpful.


Hello @saritapol13 aritapol. Can not tell for sure how @swetangkashyap swetangkashyap makes it work, but using the same intent differentiated through slots would work fine for me in the event of the same utterances.

You would simply create a flow “get status” and create subflow for each slot you’ve configured. A simple slot rule should work just fine.

For the different utterances, then create a dedicated intent and design your conversation flow by linking with the above concerned subflow…

Hope this helps…