Karan Katle
Karan Katle

Reputation: 5

AWS LEX V2 -Invocation Source is not changing to FullfillmentCodeHook from DialogCodeHook after receiving value for all required slots

I am building a multi-lingual bot using LexV2

For English - US language I have an 3 Intents, 1: Start Conv having 1 slots (Not Required for intent), 2: Eligibility Determination having 6 slots (4 required and 2 not for intent), 3: End Conv having 1 slot (not required for intent)

The same intent I have for English_AU language. The only change is at the end of IntentName, slot name, I have added '_au'.

Please note I am using same lambda Function file for both languages... attached specifically on each language. Lambda file have different modules for entire conversation flow for each language and a common lambda handler, handling events based on intent name.

Conversation Flow should be like like this on a high level and straight forward scenario.

Start Conv Intent ----> Eligibility Determination Intent (Required Slots) ----> After Filling required Slots in a FullfillmentCodehook it should Elicit 1 Non required Slot----> End Conv Intent

For English_US the conversation flow is working as expected.

But the problem is for English_AU after fullfilling all the required slots in Eligiblity_Determination_AU Intent, it should change invocation source to Fullfillment code hook, but it is not, it still keeping invocation source as DialogCodehook and in console After giving response to last required slot, it shows Eligiblity_Determination_Intent is ready for fullfillment.

Can anyone please help me in debugging this,

Upvotes: 0

Views: 521

Answers (1)

Reegz
Reegz

Reputation: 579

Are you seeing the below fields in the Json response after the last slot has been filled?

"state": "ReadyForFulfillment",
"confirmationState": "None"

If so, this means you have not checked the Code Hooks checkbox at the bottom of the intent's configuration page. You need to enable this on a per-intent level.

Upvotes: 1

Related Questions