Hi team,
I have one specific usecase that I want to achieve but I am unable to do so.
So the exact requirement is that once the user is in a middle of a conversation, if the user types anything else that will trigger some other intent, I want it to start the new dialog task and comeback to old one once the new task has been finished.
Now I know we can achieve this using the interruptions setting at the bot level or the task level but my requirement is a little bit different.
I dont want it to happen at all the tasks I only want it for one specific task.
For example, I have task named as Login , so if this task is triggered from another dialog task, then only I want the bot to return to the other dialog task.
I know we can do the reverse of this, i.e. we can ask one dialog task to return back to from whichever intent is used while in the middle of the task. But I want that if through NLP only this task has been triggered, then only go back to the original task else do not.
Kinjalk,
In my bot, I welcome the user and ask “how can I help today?”. A dialog task is executed based on the intent detected in the utterance. In this example the user wants to update their account information. I cannot allow them to check their account without first being verified, so I have a separate dialog flow for verification. If the user has already been down the Verify Identity flow (successfully) I set a context isVerified variable to “true”. At the start of all the other flows, I test to see if the variable is “true”. If it is “false”, I send the user to the verify identity flow using a dialog task node.
The flow looks like this:
Make sure the dialog task node is set to return after execution if you want to continue the original task.
If I didnt correctly understand your use case, please let me know.
Hi John,
In our case, the new dialog task wont be triggered through adding it in between but it will be though NLP.
Let me give an example to explain clearly
Like we have two dialogs, one is check balance and other is login into xyz
Now suppose the user is doing check balance and in the middle it says I want to login. So it should trigger the login into xyz dialog task and once that has ended it should go back to the check balance.
Now we cant add a node of login into xyz because that can be triggered from any of other dialog tasks from any place available.
Also if this was at the whole bot level, we could have used the interruptions settings to trigger this task and resume the other task.
But we want this functionality for only one of our tasks. E.g. if we have three tasks submit bill, check balance and login.
If the user triggers login from either of the tasks, then only we want it to go back and resume the old task. If the user triggers submit bill from check balance or the reverse, then it should discard the old task and resume the new one.
I understand now. You can modify the interruption behaviors for a specific intent using the “Manage Sub-Intents and Exceptions” setting for each dialog flow. I’ll assume the default interrupt behavior is to discard the current task like it is in my bot below. If you want to discard the old task, use these settings.
To override the default interrupt rules, you’ll need to add the “login” task to the exceptions list in every other dialog flow. Click on the Kabab menu (vertical ellipse) in the top right corner and select “Manage Interruptions” from the dropdown list.
Click on the “Add Sub-intents or Interruptions” under Manage Sub-intents and exceptions.
Select the “Login” task from the dropdown list and confirm the settings allow interruptions and will hold and resume the current task. Click Save and test.
You’ll need to make this change in every other dialog flow (submit bill) to override the default settings.
I hope this helps…