Register and Manage Custom Skills in the Developer Portal

Registering a new skill or ability on the Amazon Developer Portal creates a configuration containing the information that the Alexa service needs to do the following:

  • Route requests to the AWS Lambda function or web service that implements the skill. AWS Lambda is a service offering by Amazon Web Services.
  • Display information about the skill in the Amazon Alexa App. The app shows all published skills, as well as all of your own skills currently under development.

You must register a skill before you can test it with the Service Simulator in the developer portal or an Alexa-enabled device.

Developer Console Beta

This topic applies to the old developer console. If you are using the developer console beta, see Create a Skill and Choose the Interaction Model and Build Your Skill.

About the Configuration

The configuration for a skill includes information entered in the following sections on the developer portal:

  • Skill Information defines basic information about the skill, such as its name and type.
  • Interaction Model defines your voice user interface. This includes the intent schema, sample utterances, and any custom slot types.
  • SSL Certificate collects information related to SSL. This is only used when you are hosting a skill on your own HTTPS endpoint, rather than using AWS Lambda.
  • Configuration defines your endpoint and other options, such as account linking and permissions.
    • Account linking lets you create a link between the Alexa user and a user account in your own system.
    • Permissions let you ask the user for specific personal information, such as access to the address of their device so that you can use this address in your skill to provide address-based information and customization, or read and write access to the user's Alexa shopping list and Alexa to-do list.
  • Test lets you enable your skill for testing and do basic testing in the Service Simulator. You can use this to send your service commands and see the responses it returns. You can also listen to the responses in Alexa's voice.
  • Publishing Information determines how the skill is presented to end users in the Alexa app. For example, you provide descriptive text and example phrases to help users understand how to use the skill, and image icons.
  • Privacy and Compliance contains options related to user privacy, such as the URLs for your privacy policy and terms of use.

When you create a skill, you select the language for the skill. A skill can support multiple languages. The Alexa Skills Kit currently supports:

  • English (Australia)
  • English (Canada)
  • English (India)
  • English (UK)
  • English (US)
  • French
  • German
  • Japanese

See Develop Skills in Multiple Languages for details.

Register an Alexa Skill

To configure a new skill, you need an account on the Developer Portal. If you don't already have an account, go to https://developer.amazon.com/login.html and create an account.

Minimum Fields for Testing a Skill

Note that you do not need to fill in all of the required fields for testing. The minimum requirements for testing are:

  • Skill Information: Skill Type, Name, and Invocation Name.
  • Interaction Model: (Including both the intent schema and the sample utterances).
  • Configuration: Endpoint.
  • SSL Certificate (Set to one of the three options. Not required for Lambda).
  • Test (Set to Enabled).

When you are ready to submit the skill for certification, you must complete all of the sections. Once all required fields in a section are complete, a green check mark is displayed next to the section name. You can submit the skill for certification once all sections have the green check marks. For details about testing your skill to ensure it passes certification, see Certification Requirements for Custom Skills.

Register a New Skill

  1. Log on to the Alexa section of the developer portal. From the developer portal console page, click Alexa.
  2. In the Alexa Skills Kit box, click Get Started to open the Alexa Skills Kit page. This displays any skills you have already created.
  3. Click the Add a New Skill button.
  4. Select the Language for the skill the drop-down list. You can add additional languages after completing the initial configuration.
  5. For the Skill Type, select Custom Interaction Model.

    For more about the different types of skills, see Understanding the Different Types of Skills.

  6. Enter the Name and Invocation Name.
    • The name is displayed to end users when they view the list of published skills.
    • The invocation name is used with a set of defined phrases to invoke your skill.
    • You can change both of these items at any time until your skill is certified and published.
    • Once you have entered the Skill Type, Name, and Invocation Name, you can save the skill and complete the rest of the fields later.
  7. Under Global Fields, select any interfaces your skill uses:

  8. On the Interaction Model page, copy and paste your Intent Schema and Sample Utterances into the provided text boxes, then choose Next.
  9. On the Configuration page, enter your Endpoint.
  10. Also on the Configuration page, determine whether you need account linking.
    • If your skill doesn't need account linking, select No.
    • If your skill will need account linking, but you aren't yet ready to set these options, ignore this section and proceed to Permissions below it. The account linking options are not required to start testing, but you will need to come back and fill in this section before you can test any account-linking specific features in your skill.
  11. Also on the Configuration page, in the Permissions section, select Device Address if your skill requires address information. Select either Full Address or Country & Postal Code, depending on your skill's requirements. Only select this option if your skill will require address information to operate correctly. See Device Address API.
  12. If you are hosting your cloud-based service as a web service, select the SSL option you want to use on the SSL Certificate page and choose Next. If you are hosting your service as a Lambda function, this section is not shown.

    See About the SSL Options for more information about the three options.

    If you select I will upload a self-signed certificate, open the certificate's .pem file in a text editor, copy the entire contents, and paste it into the provided text box.

  13. Make sure the Test page shows that your skill is Enabled for testing. Note that if you select Full Address, you will be required to have an applicable privacy policy in place.

At this point, you should be able to test the skill using either the Service Simulator or an Alexa-enabled device.

Lambda Functions and the Alexa Skills Kit Trigger

If you host your skill as a Lambda function, you must provide an ARN that identifies your function. When you enter the ARN as your endpoint, the developer portal validates that the provided Lambda function meets both of these criteria:

  • The function is configured with the Alexa Skills Kit trigger. This gives Alexa permission to invoke the function.
  • If a skill ID is associated with the trigger, the ID matches the ID of the skill.

If you get an "event source type" error when saving the ARN, check your Lambda function and make sure that it has the Alexa Skills Kit trigger and that the skill ID configured with the trigger matches the skill.

For more about associating a skill ID with the Alexa Skills Kit trigger, see Configure the Alexa Skills Kit Triggers.

Update the Configuration for an Existing Alexa Skill

You can edit the configuration for a skill in the developer portal. Refer back to Understanding the Configuration for details about the configuration for an Alexa skill.

Note: Once a skill is published to users, it is considered live. You cannot edit the configuration while it is live. Instead, you must create a new version. See "Creating a New Version of an Alexa Skill" in Publishing an Alexa Skill.

Note: as you test, you will likely add additional sample utterances. After adding a new utterance, there may be a short delay before the new utterance is available for testing, particularly if you want to test the utterance with your invocation name ("Alexa, ask <invocation name> to give me the horoscope for Gemini").

Edit the Configuration for an Existing Skill

  1. Log on to the Alexa section of the developer portal. From the developer portal console page, click Alexa.
  2. In the Alexa Skills Kit box, click Get Started to open the Alexa Skills Kit page. This displays any skills you have already created.
  3. Find the skill to change in the list and choose Edit.
  4. Click the section for the information you want to edit.

Delete the configuration for an Existing Skill in Development

  1. Log on to the Alexa section of the developer portal. From the developer portal console page, click Alexa.
  2. In the Alexa Skills Kit box, click Get Started to open the Alexa Skills Kit page. This displays any skills you have already created.
  3. Find the skill to change in the list and choose Delete.

    Note that this completely removes the skill. All information you have entered for the skill is deleted.

You cannot delete skills that are either live or in certification.

About the SSL Options

When Alexa communicates with your web service, user requests and corresponding responses are transmitted over the Internet. To protect the confidentiality and integrity of this data, Alexa strictly enforces that HTTP connections are secured using SSL/TLS.

This means that the web service for a skill published to users must present a valid, trusted certificate when the connection is established and must possess the corresponding private key.

The SSL certificate type you need to get started depends on how you plan to get the SSL certificate for your web service:

  1. If you create your service as a Lambda function using AWS Lambda, you do not need to do any SSL configuration. Lambda functions use invocation permissions to control who can call them. See Creating an AWS Lambda Function for a Custom Skill.
  2. If you host your web service on an endpoint for which you already have a certificate signed by an Amazon-approved certificate authority, select the My development endpoint has a certificate from a trusted certificate authority. You don't need to do any additional configuration.
  3. If you host your web service with a cloud platform that provides a wildcard certificate, select My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority.
    • A wildcard certificate is set up to provide SSL for multiple sub-domains. It still must be signed by a trusted certificate authority.
    • Check with the cloud hosting provider you are using to determine whether they provide this type of certificate to your web service.
    • Note that the wildcard certificate provided by your cloud platform must be signed by an Amazon-approved certificate authority.
  4. If you create a free self-signed certificate, you can create the certificate yourself, upload it to the Developer Portal when you register the skill, and configure your endpoint to present this certificate when it connects to Alexa. See Testing a Custom Skill for instructions.
    • This option can only be used for testing.
    • This option is not available in the developer console beta.
    • Your endpoint will need to present a certificate signed by an Amazon-approved certificate authority when you make the new Alexa ability available to users.