0

I have a customer requirement that necessitates a conditionally prompt from Alexa. Basically, the user will ask {intent} {utterance}, the back-end will check their account to see if they have more than one item in a list; if so, it will ask "which one item 1 or item 2". They will need to respond with 1 or 2.

If there is only one item in their list, it will default to that item and not require input from the user.

My understanding of how multi-turn dialogs works is that I must create a dialog model with at least one required slot. As you can see in my example, there isn't always a required slot.

Is this possible? If so, can you outline (at a high-level of course) what steps I should take?

Note: Unfortunately, one of the requirements is that the endpoints be handled in Azure; therefore, I must utilize Alexa.NET instead of the typical SDKs. Not sure if that changes anything.

Brandon Avant
  • 659
  • 5
  • 21

1 Answers1

1

Dialog handling Yes it's possible.

After your:

  • ask {intent} {utterance}
  • it will hit your backend with dialogState STARTED
    • now you can check if you have multiple items
      • yes(multiple items): delegate dialoge handling back to alexa and alexa will ask for the slot number. You now check if dialogState = COMPLETED and so on
      • no (only one item): just respond back to the user without dialog delegation

SDK

It does not make a difference with Alexa.NET if dialog handling is implemented there. I also struggle sometimes to find examples for the Java SDK ;-).

Here is a video which helped me.

timguy
  • 2,063
  • 2
  • 21
  • 40
  • 1
    I think you've started me down the right path. Thank you for this. This sentence in that documentation leads me to believe that manual delegation with my slot set to Required is key, "Delegating manually with Dialog.Delegate is more flexible, because your skill can make run-time decisions such as defaulting values. You can also use Dialog.Delegate in combination with other Dialog directives to take complete control over the dialog if necessary.". I will update the accepted answer here accordingly. – Brandon Avant Mar 26 '20 at 16:06