Utterance required twice to be captured

I have a simple flow with some yes / no intents. For example,

  1. Home block
  2. Speak block -> “Do you like cheese?”
  3. Choice Block -> Yes Intent, No Intent, Else to an Error Handler
  4. User says “yes”, goes to Speak block: “What is your favorite kind of cheese?”
  5. Choice Block -> set a “favorite_cheese” intent. Create a “favorite_cheese” variable. set a “cheese_type” slot.
  6. Capture Block-> saves “cheese_type” slot in utterance to “favorite_cheese” variable.
  7. Speak Block-> “favorite_cheese” variable used to speak back to user.

Simple enough. Now, when I go to test it in “Prototype”, it all works as planned - HOWEVER, I then am required to say my response “my favorite cheese is {favorite_cheese}” TWICE before it is captured. This happens for the Food input type and the Book input type.

Just following up, this is what the response looks like in the Alexa Developer’s Console the FIRST time:

"request": {
	"type": "IntentRequest",
	"requestId": "amzn1.echo-api.request.86fac52b-bfb5-42db-94fa-55873f0492f1",
	"timestamp": "2020-02-24T22:56:59Z",
	"locale": "en-US",
	"intent": {
		"name": "favorite_cheese",
		"confirmationStatus": "NONE",
		"slots": {
			"cheese_type": {
				"name": "cheese_type",
				"value": "cheddar",
				"confirmationStatus": "NONE",
				"source": "USER"
			}
		}
	},
	"dialogState": "COMPLETED"
}

{
	"body": {
		"version": "1.0",
		"response": {
			"outputSpeech": {
				"type": "SSML",
				"ssml": "<speak></speak>"
			},
			"reprompt": {
				"outputSpeech": {
					"type": "SSML",
					"ssml": "<speak></speak>"
				}
			},
			"shouldEndSession": false,
			"type": "_DEFAULT_RESPONSE"
		},
		"sessionAttributes": {},
		"userAgent": "ask-node/2.7.0 Node/v11.15.0"
	}
}

And here is the second:

	"request": {
	"type": "IntentRequest",
	"requestId": "amzn1.echo-api.request.d1de42b3-2f35-468c-8eba-40d0b3d255d1",
	"timestamp": "2020-02-24T22:58:41Z",
	"locale": "en-US",
	"intent": {
		"name": "favorite_cheese",
		"confirmationStatus": "NONE",
		"slots": {
			"cheese_type": {
				"name": "cheese_type",
				"value": "cheddar",
				"confirmationStatus": "NONE",
				"source": "USER"
			}
		}
	},
	"dialogState": "COMPLETED"
}

{
"body": {
	"version": "1.0",
	"response": {
		"outputSpeech": {
			"type": "SSML",
			"ssml": "<speak><voice name=\"Nicole\">Oooh your favorite cheese is cheddar ? Delicious. I should try that next time. </voice></speak>"
		},
		"shouldEndSession": true,
		"type": "_DEFAULT_RESPONSE"
	},
	"sessionAttributes": {},
	"userAgent": "ask-node/2.7.0 Node/v11.15.0"
}

}

you don’t need capture block. if you created intent with sample utteraces and slot in choice block, it will capture. it’s like capture block is simple type of chouce block. means you are trying to capture twice.

1 Like