Learn

Scenario 2: Set a default value for departureCity and create a custom prompt to confirm that slot value

If your skill needs many slot values, it may frustrate users to answer many slot elicitations. In that case, your skill can set default values — but it should notify users of the values it assumes! For example, if the Flight Booker skill is only available to New York travelers, it may set “New York” as its default departure city, but it should inform its users via a slot confirmation:

this.emit(':confirmSlot', slotToConfirm, speechOutput, repromptSpeech, updatedIntent);

where the default slot value is set in updatedIntent and mentioned in speechOutput and repromptSpeech.

How to access values

Access departureCity value and confirmation status like this:

this.event.request.intent.slots.departureCity.value; this.event.request.intent.slots.departureCity.confirmationStatus;

How to set default values

Set the a default value for departureCity by copying the existing intent and editing the value:

const updatedIntent = this.event.request.intent; updatedIntent.slots.departureCity.value = 'new york';

Instructions

1.

If the user does not provide a departureCity, set the default value to 'new york' and confirm the slot. The skill should create conversations similar to those linked here.

You can move on when your code passes the following tests:

  • If the dialog is not completed and the departureCity value HAS NOT been collected, update the intent so that the departure city is 'new york' and confirm the slot. The prompt must mention New York.

  • If dialog is not completed, there IS a departureCity value, and its confirmation status is denied, then elicit that slot again.

You will need to write the else if conditions for both of these.

Take this course for free

Mini Info Outline Icon
By signing up for Codecademy, you agree to Codecademy's Terms of Service & Privacy Policy.

Or sign up using:

Already have an account?