Steps to Create a Skill with Alexa Conversations

To create a new skill with Alexa Conversations by using the developer console, take the following steps. To adapt an existing skill to work with Alexa Conversations, see Steps to Add Alexa Conversations to an Existing Skill.

Alexa Conversations is best suited to published voice developers who have experience with Node.js or Python, and are familiar with the basic constructs of artificial intelligence and machine learning.

Steps to create a skill with Alexa Conversations

Complete the following steps to create a skill with Alexa Conversations.

  1. Create a skill.
  2. Edit the invocation name and interaction model.
  3. Create Alexa Conversations elements.
  4. Review common errors before you build the skill model.
  5. Build the skill model.
  6. Write the skill code.
  7. Test the skill.
  8. Certify the skill.

Step 1: Create a skill

To create a new skill that supports Alexa Conversations, you have the following two options:

  • Start with a template that already supports Alexa Conversations and demonstrates a specific use case, such as a weather skill.
  • Start with a regular custom skill and then add support for Alexa Conversations interfaces.

The following instructions show both methods.

Start from a template that already supports Alexa Conversations

You can start from a skill template, such as the Weather Bot template, that already supports Alexa Conversations as follows.

To start from a template that already supports Alexa Conversations

  1. Log in to the developer console, and then navigate to your Alexa Conversations skill.
  2. Click Create Skill.
  3. Enter a name for your skill.
  4. For Choose a model to add to your skill, click Custom.
  5. For Choose a method to host your skill's backend resources, choose either Alexa-Hosted (Node.js) or Provision your own.
  6. At the top, click Create skill.
  7. For Choose a template to add to your skill, click a template that includes Alexa Conversations at the bottom of the description, such as Weather Bot Skill.
  8. Click Choose or Continue with template, depending on the hosting method you chose in step 5.

Start from a blank skill template

You can start from an empty skill template and then add support for Alexa Conversations as follows.

To start from a blank template and then add support for Alexa Conversations

  1. Log in to the Alexa Skills Kit developer console.
  2. Click Create Skill.
  3. Enter a name for your skill.
  4. For Choose a model to add to your skill, click Custom.
  5. For Choose a method to host your skill's backend resources, choose either Alexa-Hosted (Node.js) or Provision your own.
  6. At the top, click Create skill.
  7. For Choose a template to add to your skill, click Start from Scratch.
  8. Click Choose or Continue with template, depending on the hosting method you chose in step 5.
  9. Enable the interfaces that are necessary to support Alexa Conversations as follows:
    1. In the left pane, click Interfaces.
    2. In the interface list, enable Alexa Presentation Language.
    3. Enable Alexa Conversations and click the check box for Use Alexa Conversations as the default dialog manger.
    4. In the header bar, click Save Interfaces.

Step 2: Edit the invocation name and interaction model

In this step, you do the following:

  • Change the invocation name.
  • Make sure that the interaction model includes the fallback intent. Alexa Conversations needs this intent for routing purposes.
  • Add a custom intent. Your skill must have at least one custom intent with at least one sample utterance. The intent doesn't need to do anything.

To change the invocation name

  1. In the developer console, navigate to your Alexa Conversations skill.
  2. On the left, click Invocation, and then, in the Skill Invocation Name field, replace the default skill name.
    Standard invocation name requirements apply. For details, see Invocation Name Requirements.
  3. At the top, click Save.

To check for the fallback intent

  1. On the left, expand Interaction Model, and then click Intents.
  2. Ensure that AMAZON.FallbackIntent is in the list of intents.
  3. If AMAZON.FallbackIntent is not present, click Add Intent, click Use an existing intent from Alexa's built-in library, and then use the search box to search for and add the AMAZON.FallbackIntent.

To add a custom intent

  1. Continuing from the previous step, click Add Intent again.
  2. Next to Create custom intent, enter an intent name such as DummyIntent, and then click Create custom intent.
  3. In the Sample utterances section, enter some text such as "This is a dummy intent", and then press enter.
  4. At the top, click Save.

Step 3: Create Alexa Conversations elements

This step is the majority of the work that you do to create a skill that uses Alexa Conversations. You can do all this work in the developer console.

You first enter dialogs that are typical conversations between the user and Alexa during the course of your skill. Each dialog consists of turns between your user and Alexa (that is, a user utterance followed by an Alexa utterance).

You then create custom slot types, API definitions, user utterance sets, and Alexa responses. Finally, you tie those elements together by configuring the turns of the dialog. As a starting point to this process, see Best Practices for Authoring Dialogs in Alexa Conversations.

For best practices and ways to design your workflow, write dialogs, and set user expectations, see Design with Alexa Conversations.

Step 4: Review common errors before you build the skill model

To proactively cut down on debugging time, review Avoid Common Errors in Your Skill Model for Alexa Conversations before you build your skill model.

Step 5: Build the skill model

You build the skill model for your Alexa Conversations skill by using the developer console. For details, see Build the Skill Model for Your Alexa Conversations Skill.

Step 6: Write the skill code

Write code to handle Alexa Conversations requests in your skill endpoint. For details, see Handle API Calls for Alexa Conversations. For details about how to get sample code, see Get Started With Alexa Conversations.

After you create your skill code, use the developer portal to configure your skill to point to your skill endpoint. To do so, navigate to your skill, click Build in the top pane, and then click Endpoint in the left pane.

Step 7: Test the skill

Before you test your skill, make sure that your skill has at least one custom intent with at least one utterance in the interaction model. Otherwise, the skill session might end prematurely during runtime.

When you're ready to test your skill, you can use the Alexa Simulator in the developer console. For details about what to test, see Certification Requirements.

Step 8: Certify the skill

Submit your skill for certification. For details, see Test and Submit Your Skill for Certification.