Steps to Build a Custom Skill

This guide provides the steps to create a new custom skill. To build a simple Hello World skill for practice, see Tutorial: Build Your First Alexa Skill in the Developer Console.

Is a custom interaction model the right model for what you want to build? See About Voice Interaction Models to learn about the differences between the custom interaction model and the pre-built models.

Step 1: Plan and Design Your Skill

Before you write any code, do the following:

  1. Think about the value that your skill will provide to users. For more information, see Determine the value proposition of your skill.

  2. Consider how you might enhance the user experience. For example, you can add in-skill purchasing, support screen interaction, change the audio, make your skill accessible to all, define your skill as a paid skill, and publish your skill to additional markets.

  3. Design a voice user interface. This maps out how users will interact with your skill. For guidance and best practices, see Build Your Design Artifact.


Step 2: Set Up the Skill in the Developer Console

Create a new skill in the developer console. When prompted to choose a model, select the Custom model.

Step 3: Use the Voice Design to Build Your Interaction Model

The interaction model refers to your collection of intents, sample utterances, and the dialog model:

  • The requests your skill can handle are represented as intents.
  • Intents can optionally have arguments called slots.
  • Sample utterances map the intents to the words and phrases users can say to interact with your skill.
  • A dialog model identifies information your skill requires and the prompts Alexa can use to collect and confirm that information in a conversation with the user.

There are two different ways to create these components:


Step 4: Write and Test the Code for Your Skill

Your primary coding task for your skill is to create a service that can accept requests from the Alexa service and send back responses.

  1. For the quickest start, create an AWS Lambda function to host the service for your skill. AWS Lambda (an Amazon Web Services offering) is a service that lets you run code in the cloud without managing servers.

    See: Create an AWS Lambda Function for a Skill.

    Alternatively, you can build a web service for your skill and host it with any cloud provider. See Hosting a Custom Skill as a Web Service.

  2. Write the code for your skill. If you are using Lambda, you can code in Node.js, Java, Python, C#, Go, Ruby, or PowerShell. If you are hosting your skill as a web service, you can use any programming language.

  3. In the developer console, update your skill with your endpoint (for instance, the Lambda ARN).

    See Build Your Skill (Custom Model).

  4. Test your skill with the Alexa simulator or an Alexa-enabled device.

    See Test Your Skill.

  5. Update the metadata about your skill that will appear in the Alexa Skills Store in the Alexa app.

    See Define Skill Store Details and Availability.


Step 5: Beta Test Your Skill (Optional)

Once your skill is finished, you have the option of setting up a beta test for your skill. With a beta test, you can make your skill available to a limited group of testers that you have personally selected, rather than to the general public.

Step 6: Submit Your Skill For Certification

When you are ready to make your skill public, submit it for certification. If your skill is currently in a beta test, you can still proceed with certification.

  1. Run the validation and functional tests on the Certification page in the developer console. These tests help you identify issues that you need to fix before you submit the skill.

  2. Review the submission checklist. This checklist includes the tests performed by Amazon's certification team, so passing all of these tests can speed up the certification process.

  3. When you are ready for your skill to be made public, and you have ensured that your skill fulfills the requirements on the certification checklist, submit your skill for certification.


Your Skill is Published, Now What?

Once your skill is published, Amazon customers can see it in the Alexa App and choose to enable and use it.

You can (and should) continue to work on your skill, enhancing its features, fixing any problems, and improving the experience for your end users. For recommendations for ongoing skill development and when you need to re-submit the skill, see Test and Submit Your Skill for Certification: Revise and Update Your Skill after Publication