question

newuser-9b79d001-8d97-47f2-8d9e-922891ac9820 avatar image

dialogState still "IN_PROGRESS" after all slot "value"s filled

Three slots, all required. Tried with and without intent confirmation required, not with slot confirmation required. Calls Dialog.Delegate if dialogState != "COMPLETED" but it never reaches that so it throws an error.

"intent": {
		"name": "get_billing_info",
		"confirmationStatus": "NONE",
		"slots": {
			"full_name": {
				"name": "full_name",
				"value": "Isaac Chan",
				"resolutions": {
					"resolutionsPerAuthority": [
						{
							"authority": "amzn1.er-authority.echo-sdk.amzn1.ask.skill.9557157d-95c8-4646-bccd-13b64dc16556.full_name",
							"status": {
								"code": "ER_SUCCESS_MATCH"
							},
							"values": [
								{
									"value": {
										"name": "isaac chan",
										"id": "a760f1c53c0c3d3e380c058118c620cb"
									}
								}
							]
						}
					]
				},
				"confirmationStatus": "NONE"
			},
			"last_four_digits": {
				"name": "last_four_digits",
				"value": "6549",
				"confirmationStatus": "NONE"
			},
			"billing_date": {
				"name": "billing_date",
				"value": "2018-06",
				"confirmationStatus": "NONE"
			}
		}
	},
alexa skills kitslotsdialog directive
10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

rcast avatar image
rcast answered

SEND DIALOG DIRECTIVE BACK UNTIL DIALOG STATE == COMPLETED

1 comment
10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi rcast. Yes it looks like my summary was overwritten by my code but I readded it.

I've been returning Dialog.Directive if dialogState != "COMPLETED"

def get_billing_response(intent_request):
    dialog_state = intent_request['dialogState']
    if dialog_state != 'COMPLETED':
        return continue_dialog()
    else:
        return simple_response('No Dialog', None, False)

def continue_dialog():
    return {
        'version': '1.0',
        'sessionAttributes': {},
        'response':{
            'directives': [
                {
                    'type': 'Dialog.Delegate'
                }
            ],
            'shouldEndSession': False
        }
    }

0 Likes 0 ·
rcast avatar image
rcast answered

This should be normal functionality from my experience (which is limited). Just continue to send dialog directive until completed is sent. Make sure you're including the updatedIntent in the directive. This is just the request.intent sent to you by amazon in the request, just re-send them what they send you.

4 comments
10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thanks for the help. So as I've set it up, it will continue to send Dialog.Directive until dialogState is "COMPLETED".

1) Can you elaborate what you mean by including updatedIntent in the directive? I've read it and tried implementing it with each of the three values but it hasn't worked.

def continue_dialog():
    return {
        'version': '1.0',
        'sessionAttributes': {},
        'response':{
            'directives': [
                {
                    'type': 'Dialog.Delegate',
                    'updatedIntent': 'NONE'/None/{}
                }
            ],
            'shouldEndSession': False
        }
    }

2) What do you mean by "re-send them what they send you"?

0 Likes 0 ·

The documentation does state this property is optional, so I'm not completely sure why this works to bring the dialog to a status of "Completed". I could use some guidance here as well.

0 Likes 0 ·
Show more comments
rcast avatar image
rcast answered

It sounds like your not returning the intent that Alexa sends or she would not ask for slot again. If you say Mr Smith, the intent alexa request sends to your skill should include the value of fullname.

2 comments
10 |3000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

I asked a user on GitHub who posted the same problem and he says it's a problem with the Alexa Skills Tester. It will change to "COMPLETED" when testing on an Echo device. Have not confirmed this yet.

Still don't know if updatedIntent property is required or not. And why when (possibly incorrectly) implemented, it prompts for the same slot twice.

Can anyone at Amazon confirm?

0 Likes 0 ·
Jamie Grossman avatar image Jamie Grossman ♦♦ newuser-9b79d001-8d97-47f2-8d9e-922891ac9820 ·

Apologies for the delay - were you able to figure this one out?

0 Likes 0 ·