1
votes

I'm implementing an Alexa Dialog Model with an PHP Endpoint. I used the Alexa doc (https://developer.amazon.com/fr/docs/custom-skills/dialog-interface-reference.html)

Here is my example: My skill:

RequestIntent

Utterance : add an {obj} in the bedroom

Slots : {obj} / Slot Filling

Phrase:

Me : Alexa, Add an object in the bedroom

Alexa : What object do you want to add in bedroom ?

Me : I would like to add a cars in the bedroom

Alexa : You want to add a car in the bedroom ?

Me : Yes

STEP1:

DialogState is STARTED

I use ElicitSlot to set the {obj} slot

STEP2:

dialogState is IN_PROGRESS.

I use ConfirmIntent to ask user to confirm it

STEP3:

User say yes/no

ConfirmIntent is now set to CONFIRMED/DENIED

BUT still in IN_PROGRESS

dialogState should be COMPLETED because i set all of my slot and intent value right ? So why should not be working in here ?

Thanks by advance

3

3 Answers

4
votes

The reason your dialogState is not COMPLETE because you are using Dialog.ElicitSlot directive. The COMPLETED status is only possible when you use Dialog.Delegate directive.

More information on controlling the dialog with Dialog.Delegate directive here

1
votes

DialogState has only the following status: "STARTED" , "IN_PROGRESS" , "COMPLETED.

The reason why is not completed could be because not all the steps are complete or the IntentRequest has not all the required slot values.

0
votes

For me, I must enable the Auto Delegation option in Interfaces from Alexa Developer Console.

Let Alexa automatically determine and complete each step of the dialog, based on your dialog model. Your skill gets a single IntentRequest when the dialog is complete. You can override this setting at the intent level. Learn More about Auto Delegation.

Once all the steps are complete, the skill receives the final IntentRequest with dialogState set to COMPLETED.