Reputation: 1165
I have an intent called "Number" which detects when someone has entered digits throughout a conversation and it acts appropriately.
I then have an intent called "Report" which provides the user with user-specific info from the database. In order to verify the user's identity, I ask for their security code (which is a set of digits).
The user experience: User invokes "Report" intent. User is asked for their security code.
The problem: Once the user enters their security code, rather than return to the "Report" intent, it invokes the "Number" intent since the user is entering digits.
I'd like to have a way of saying that only invoke the "Number" intent if we are not slot-filling another intent. How is this possible?
P.S using the all_required_params_present == True
doesn't work.
Upvotes: 0
Views: 241
Reputation: 5256
If you have a similar thing to captured in two intents (number) in your case, then the only way to invoke the right intent would be to have an "input context" or an "event" active like
Here the number tells for how many interactions this context is active.
So, if you have capture_report
context active for your Report intent, then it will only be fired when this context is active and the user is speaking the correct phrase. Similarly, you will need context for your Number intent to stop it from firing when you want Report intent to fire.
You will need to set this context either from Dialogflow or programatically form webhook fulfillment.
For details check about Context and Event by Dialogflow and how contexts works.
Upvotes: 1