Reputation: 61
If our backend receive a request for say AMAZON.YesIntent
or any other custom intent. Can we Elicit slot of a different intent than the triggered intent as response.
Ex:
...
user: Yes
(Amazon.YesIntent is mapped)
Alexa: Which city do you want to stay in?
(elicit slot of another intent)
...
Upvotes: 3
Views: 1114
Reputation: 4387
Unfortunately you can't. Only updated intent of same type can be sent with a Dialog.ElicitSlot
directive.
Note that you cannot change intents when returning a Dialog directive, so the intent name and set of slots must match the intent sent to your skill.
You will receive an "Invalid Directive" card and "There was some problem with the requested skills response" as error message.
Use updateIntent
object to specify the new intent whose slot has to be triggered. When you update the Intent object originally sent to your skill with the new updateIntent
, include all of the slots, including any empty slots you are not changing.
{
"type": "Dialog.ElicitSlot",
"slotToElicit": "slotOfSomeOtherIntent",
"updatedIntent": {
"name": "SomeOtherIntent",
"confirmationStatus": "NONE",
"slots": {
"slotOfSomeOtherIntent": {
"name": "slotOfSomeOtherIntent",
"value": "string",
"resolutions": {},
"confirmationStatus": "NONE"
}
}
}
}
Read more about Change the intent or update slot values during the dialog
Read more about ElicitSlot Directive
Upvotes: 4