Search code examples
alexa-skills-kit

How to end session for custom Alexa skill?


I am creating a custom skill for Alexa. I want to close the session on AMAZON.StopIntent. How can I achieve this with below code?

const ExitHandler = {
  canHandle(handlerInput) {
    const request = handlerInput.requestEnvelope.request;
    return request.type === 'IntentRequest'
      && (request.intent.name === 'AMAZON.StopIntent');
  },
  handle(handlerInput) {
    return handlerInput.responseBuilder
      .speak('bye!')
      .reprompt('bye!')
      .getResponse();
  },
};

Solution

  • Alexa ends the session when shouldEndSession flag is set to true in the response JSON.

    ... 
    "shouldEndSession": true
    ...
    

    In your response builder can you try with the helper function withShouldEndSession(true)

     return handlerInput.responseBuilder
          .speak('bye!')
          .withShouldEndSession(true)
          .getResponse();
    

    Response builder helper functions are listed here