Alexa Skills Kit Glossary
This document defines common terms used throughout the Alexa Skills Kit documentation.
Access token: (account linking) A credential that represents the end user (resource owner) in another system. A token should identify the user in the other system. The access token is included in the requests sent to your skill if the user has successfully linked their accounts.
Account linking: An Alexa Skills Kit feature that lets you connect the identity of the end user with an account in another system. For example, a "Car-Fu" custom skill for ordering a ride needs to access the Car-Fu service as a specific user. Similarly, a smart home skill for controlling a light needs to connect the Alexa user with an account in the device cloud. See Understand Account Linking.
Alexa app: The companion app for Alexa users to set up devices, change settings, and see the displayed output from interactions with Alexa.
Alexa service / Alexa: The cloud-based voice service that powers devices such as the Amazon Echo, Amazon Echo Dot, Echo Show, Fire TV Cube, and Amazon Tap. You can give Alexa new abilities by creating your own cloud-based service that accepts requests from Alexa and returns responses.
Alexa skill: See skill.
Alexa Skills Kit: A collection of APIs, tools, and documentation for giving Alexa new capabilities. See Build Skills with the Alexa Skills Kit.
Alexa Smart Home Skill API: See Smart Home Skill API.
Alexa-enabled device: A device that provides access to the Alexa service. Examples include Amazon Echo, Amazon Echo Dot, Amazon Tap, Echo Show, Fire TV Cube, and devices that use the Alexa Voice Service.
Ask: One of the words a user can say to ask Alexa to invoke a particular custom skill. This is used in combination with the invocation name for the skill. For example: "Alexa, ask Astrology Daily for my horoscope." There are several phrases users can say to start a conversation with Alexa. See Understanding How Users Invoke Custom Skills.
Authorization code grant: (account linking) A grant type for requesting the end user's authorization to access their information in another system. In authorization code grant, the authorization server returns a
code once the user logs in. Alexa then uses this
code to request an
Authorization server: (account linking) The server that authenticates the identity of the resource owner and issues access tokens. One of the four roles defined by OAuth 2.0, used in account linking. For example, if your skill connects to a service for ordering rides ('Car Fu'), the authorization server authenticates the user and provides an access token that can be used to get the user's Car Fu profile from the resource server.
You specify this in the developer console, in the Authorization URI field on the Build > Account Linking page.
Authorization URI: (account linking) The URI of the page for entering login credentials for a service. The user is redirected to the authorization URI when starting the account linking process for a skill. Once the user has authenticated, this page redirects the user back to an Alexa-specified
AWS Lambda function: The code uploaded to AWS Lambda. Lambda supports coding in Node.js, Java, Python, or C#. A smart home skill must be implemented as a Lambda function. You can also choose to use a Lambda function for the service for a custom skill. See also AWS Lambda.
AWS Lambda: An AWS compute service that runs your code in response to events and automatically manages the compute resources for you. This lets you run code (referred to as a Lambda function) in the cloud without managing servers. Lambda is required for smart home skills – the code for your skill must be hosted as a Lambda function. You can also choose to use a Lambda function for the service for a custom skill. AWS Lambda is a service offering by Amazon Web Services.
Card: See Home card or Detail card.
Client (OAuth): (account linking) The application making the requests to the resource server on behalf of the resource owner. In the context of account linking for skills, this role is shared by the Alexa service and the skill. Alexa handles getting the resource owner's authorization, and then the skill uses the access token to access the protected resource in the resource server. One of the four roles defined by OAuth 2.0, used in account linking.
Cloud-based service: See Service.
Cloud-enabled device: In the context of smart home devices, a customer device such as a light bulb, switch, thermostat, or other smart home device with the ability to connect to the Internet. The device is normally controlled by the device cloud.
Companion app: See Alexa app.
Confirmation: When Alexa says something to make sure the user knows she understood them correctly. Types of confirmation:
Implicit confirmation (also known as landmarking): a prompt that subtly repeats back what Alexa heard to give the user assurance that they were correctly understood. Example:
User: Alexa, ask Astrology Daily for my horoscope.
Astrology Daily: Horoscope for what sign?
Here, repeating back the word horoscope is a landmarking technique used to establish trust with the user, but still supports a natural dialogue.
Explicit confirmation: a prompt that repeats back what Alexa heard and explicitly asks the user to confirm whether she was correct. Example:
User: Alexa, ask Astrology Daily for my horoscope.
Astrology Daily: You wanted a horoscope from Astrology Daily, right?
For recommendations around when to confirm, see Using Confirmation Selectively.
Conversation: See Interaction.
Custom interaction model: An interaction model that you define for a custom skill. A custom interaction model consists of an intent schema that defines the requests the skill can handle and a set of sample utterances that users can say to invoke those requests.
Custom skill: A skill that uses a custom interaction model. You, as the developer, can define the requests your skill can handle (intents) and the words users say to make (or invoke) those requests (sample utterances). The mapping between the intents and sample utterances creates the interaction model or voice user interface for the skill.
A complete custom skill includes the code hosted as a cloud-based service and a configuration that provides the information the Alexa service needs to route requests to the service. This is the most flexible kind of skill you can build, but also the most complex, as you must provide the voice interface yourself.
Detail card: A card displayed in the Alexa app with information about the skill and how to use it. Customers can review detail cards and enable the skills they want. You enter most of the information displayed on the detail card on the Distribution page. See Define Skill Store Details and Availability.
Device cloud: Back-end cloud service that can control a cloud-enabled device. For a smart home skill, you write code hosted as a Lambda function that translates commands from the Alexa Smart Home Skill API to the device cloud.
Device cloud account: Unique customer account used to access the device cloud. The customer links the device cloud account with the Alexa service using the Alexa app. OAuth 2.0 is the required mechanism for account linking.
Device directive: A set of data and instructions, expressed in JSON, sent from Alexa to a smart home or video skill.
Device discovery: Process by which the Alexa Smart Home Skill API or Video Skill API discovers the devices that can be controlled with a skill.
Device event: A response to a device directive, expressed in JSON, sent from a smart home or video skill to Alexa.
Device with Alexa: A device that provides access to the Alexa service. Examples include Amazon Echo, Amazon Echo Dot, Amazon Tap, and devices that use the Alexa Voice Service.
Dialogue errors: When something unexpected happened in the conversation between Alexa and the user. Types of dialogue errors:
- Low confidence errors: when Alexa has low confidence that she correctly understood what the user said. When this occurs, Alexa cannot proceed in the interaction without asking the question again or ending the interaction.
- Timeouts/Silence/No input: when the user does not respond to a question Alexa asked. A re-prompt is usually played to encourage the user to respond.
- False accept: when Alexa has mid- to high confidence that she correctly understood what the user said, but she actually misunderstood.
For recommendations on how to handle dialogue errors, see What Alexa Says.
Directive: See Device directive.
Directive language: JSON protocol that enables communication between the Alexa Smart Home Skill API and a smart home skill.
Display template: A display template is used for to Alexa-enabled devices with a screen to display a combination of text and images in a specified format. There are several body templates, which are used to display content, and several list templates, which allow selection of content. Display templates are displayed as cards in the Alexa app if the user does not have an Alexa-enabled device with a screen.
Echo app: See Alexa app.
Endpoint: Represents a physical device, virtual device, group or cluster of devices or a software component. Used in smart home and video skills.
Example phrase: A phrase showing users what they need to say to begin using your custom skill. You enter these phrases on the Distribution page in the developer console. The phrases must also be included in your list of sample utterances. See Define Skill Store Details and Availability.
Exit command: When the user says a command like "exit" or "stop" to end the interaction.
Home card: an element displayed in the Alexa app to describe or enhance a voice interaction with a custom skill. Cards can also be useful when testing and debugging the Lambda function or web service for a skill. See Including a Card in Your Skill's Response.
Implicit grant: (account linking) A grant type for requesting the end user's authorization to access their information in another system. In implicit grant, the authorization server returns the
Intent: The main request or action associated with the user's command for a custom skill. For example: "Alexa, ask History Buff what happened on June third." In this statement, "what happened on June third" maps to a specific intent that can be handled by a particular Alexa ability. This tells Alexa that the user wants "History Buff" to get historical information on a specific date.
For details about defining intents, see:
Intent schema: A JSON structure which declares the intents that can be handled by the service for a custom skill. This is documented in the Interaction Model Schema. You can also build your intent schema graphically in the developer console.
Interaction: An exchange or dialogue between the user and Alexa. This may be a single request-response, or a more extended set of turns.
Interaction model: The words and phrases users can say to make a skill do what they want. For a custom skill, you define the interaction model by creating a set of intents and sample utterances. For a skill with a pre-built model (such as a smart home skill), this is defined for you by the relevant API (such as the Smart Home Skill API).
Interruptions: When the interaction between Alexa and the user is interrupted by another event. Examples of interruptions are alarms and timers going off while the user is talking to Alexa.
Invocation: The act of beginning an interaction with a particular Alexa ability. Example: "Alexa, ask Astrology Daily for my horoscope" is an example of how the user could wake up Alexa and make a request directed to the Astrology Daily skill. Alexa then follows up after the invocation and asks "For what sign?". Different types of invocation:
- Full intent: a user's request that contains all information Alexa needs to make the request actionable. Example: "Alexa, ask ask History Buff what happened on August twentieth."
- Partial intent: a user's request that contains the user's intent, but is missing a required slot. Example: "Alexa, ask Astrology Daily for my horoscope." Here, the required zodiac sign is missing, and Alexa needs to obtain that information from the user.
- No intent: a user's request with no intent or slot information. Example: "Alexa, open History Buff."
For recommendations around designing interactions that handle different types of invocation, see Alexa Voice Design Guide: What Users Say.
Invocation name: A name that represents the custom skill the user wants to use. The user says a supported phrase in combination with the invocation name for a skill to begin interacting with that skill. For example: "Alexa, ask History Buff what happened on June third". In this example, History Buff is the invocation name an ability that retrieves historical events. Note that a smart home skill does not have an invocation name.
Lambda blueprint: An option in the AWS Lambda console that provides sample code and a sample configuration for a new Lambda function. Use this to create Lambda functions with just a few clicks. There are multiple blueprints relevant to the Alexa Skills Kit. For example:
alexa-skills-kit-color-expert-pythonprovide samples of a simple custom skill in both Node.js and Python. See Creating an AWS Lambda Function for a Custom Skill.
alexa-smart-home-skill-adapterprovides a sample skill for a smart home skill in Node.js.
- Note that several other Alexa skill blueprints are available when you create a new Lambda function.
Lambda function: See AWS Lambda function.
Landmark: (also known as implicit confirmation) a prompt that subtly repeats back what Alexa heard to give the user assurance that they were correctly understood.
Link account card: (account linking) A special type of card (
LinkAccount) displayed in the Alexa App that tells the user to link their account. The user can start the account linking process right from this card. A custom skill can respond with this card if a user who has not linked their account tries to invoke an intent that requires authentication.
Max error condition: When consecutive dialogue errors occur. This terminates the interaction and is designed to keep Alexa from making the same mistake repeatedly.
Notification: When the user takes an action that requires Alexa to inform them at a later time that an event is occurring or about to occur. The most common examples of this are alarms and timers. A notification can occur if nothing else is going on at all, or they also can occur in the form of an interruption while the user is interacting with Alexa. In this case, the notification is delivered between turns during an interaction.
Prompt: A string of text that should be spoken to the user to ask for more information. You include the prompt text in your response to a user's request. Types of prompts:
- Open-ended: a prompt that asks the user a question intended to elicit a wide range of responses. Example: "What would you like to do?"
- Menu-style: a prompt that asks the user a question intended to elicit a response from a small set of possible options (recommended 5 or fewer). Example: "Minecraft Helper. You can ask for a recipe, the ingredients of a potion, or game instructions. Now, which would you like?"
Re-prompt: a prompt that asks the user a question after a dialogue error has occurred. The general purpose of a re-prompt is to help the user recover from errors. Example:
User: Alexa, open Score Keeper.
Score Keeper: Score Keeper. What's your update?
User: … (no response)
Score Keeper: You can add points for a player, ask for the current score, or start a new game. To hear a list of everything you can do, say Help. Now, what would you like to do?.
- Landmark (also known as implicit confirmation): a prompt that subtly repeats back what Alexa heard to give the user assurance that they were correctly understood.
Redirect URL: (account linking) An Amazon-provided URL to which the Authorization URI redirects the user after the user is authenticated. The redirect URLs are displayed in the developer portal after you configure account linking.
Refresh token: (account linking) A credential that can be used to obtain an access token. Refresh tokens are supported with the
Resource owner: (account linking) The user who wants to connect your skill with their user account in another system. One of the four roles defined by OAuth 2.0, used in account linking.
Resource server: (account linking) The server hosting the resources the skill wants to access on behalf of the resource owner. One of the four roles defined by OAuth 2.0, used in account linking.
For example, if your skill connects to a service for ordering rides ('Car Fu'), the resource server might be a database containing profiles for Car Fu users. If your skill is a smart home skill for controlling lighting ('My Lights'), the resource server is the part of your device cloud containing information about each user's smart devices that the service controls.
Re-prompt: a special kind of prompt used by Alexa when a response is not heard or clearly understandable. See also Prompt.
Sample utterance: a structured string of text that connects a specific intent to a likely utterance. You provide a set of sample utterances as part of your interaction model for a custom skill. When users say one of these utterances, the Alexa service sends a request to your service that includes the corresponding intent.
Service: A cloud-based service you create to support a skill. This service takes requests from Alexa and returns responses. For a custom skill, the service accepts requests with intents and returns responses with the text to speak back to the user. For a smart home skill, the service takes device directives, communicates with the device cloud to control devices such as lights and thermostats and sends device events back to Alexa.
You can deploy the service for a custom skill either as an AWS Lambda function or a web service. Smart home skills can only be hosted using Lambda.
Skill: A capability or ability of Alexa. Alexa provides a set of built-in skills (such as playing music), and developers can use the Alexa Skills Kit to give Alexa new skills. A skill includes both the code (in the form of a cloud-based service) and the configuration provided on the developer console. See also custom skill and smart home skill.
Slot: an argument to an intent that gives Alexa more information about that request. For example: "Alexa, ask History Buff what happened on June third". In this statement, "June third" is the value of a date slot that refines the request.
For a given intent, slots can be required or optional:
- Required: a slot that contains values that are necessary for Alexa to complete the user's request. For example: "Alexa, ask Astrology Daily for the horoscope for Taurus." Without the name of the specific zodiac sign, Astrology Daily cannot provide a horoscope. If the user does not provide a value for a required slot, you must ask the user for that slot value.
- Optional: a slot that contains values that refine the user's request, but are not necessary for Alexa to complete the task. For example, "Alexa, ask History Buff what happened in history on June third". Here, June third is optional since History Buff can just give historical events for today if the user does not specify a date. As such, you should not ask the user for optional slot values if they exclude them.
Smart Home Skill API: An API to create skills that give Alexa the ability to control smart home devices such as lights and switches. The Smart Home Skill API translates utterances such as "turn on the lights" into device directives that it routes to a lambda function that can control a cloud-enabled device.
Smart home skill: A skill intended to control smart home devices such as lights and thermostats. When using the Smart Home Skill API, the API defines the requests the skill can handle (device directives) and the words the users say to make those requests.
A complete smart home skill includes the code hosted as an AWS Lambda function and a configuration that provides the information the Alexa service needs to route requests to the Lambda function. The code for the skill must be able to control the device (such as a light) using the cloud.
System errors: when something unexpected happened, unrelated to the dialogue between the user and Alexa. Example: The call for a data service used to get the information the user requested failed to send Alexa that information.
Tell: One of the words a user can say to tell Alexa to invoke a particular custom skill. This is used in combination with the invocation name for the skill. For example: "Alexa, tell Color Expert that my favorite color is red." There are several phrases users can say to start a conversation with Alexa. See Understanding How Users Invoke Custom Skills.
Template: See Display template.
Text-to-Speech (TTS): Converting a string of text to synthesized speech (Alexa's voice). The Alexa service can take plain text for TTS conversion.
Touch interaction: A touch on an Alexa-enabled device with a screen that produces a specified response, such as touching an item in a list on the screen to see more information about the item.
Turn: A conversational turn is a single request to or response from Alexa. Sometimes shorthand for only the request side of a conversation, so "Alexa, Open Horoscope", "What horoscope sign would you like?", "Pisces", "Today's horoscope for Pisces is …" might be referred to as a two-turn interaction, rather than the 4 turns that it technically contained.
Utterance: The words the user says to Alexa to convey what they want to do, or to provide a response to a question Alexa asks. For custom skills, you provide a set of sample utterances mapped to intents as part of your custom interaction model. For smart home skills, the Smart Home Skill API provides a predefined set of utterances.
Voice Interface or Voice User Interface (VUI): A way of humans to interact with computers using primarily voice communication. For a custom skill, the voice interface consists of a mapping between users' spoken utterances and the intents your cloud-based service can handle. See:
- Choose the Invocation Name for a Custom Skill
- Create the Interaction Model for Your Skill
- Best Practices for Sample Utterances and Custom Slot Type Values
- Interaction Model Schema
- Alexa Voice Design Guide
Wake word: A command that the user says to tell Alexa that they want to talk to her. Example: "Alexa, ask History Buff what happened on December seventh." Here, "Alexa" is the wake word. Alexa users can select from a defined set of wake words.
Web service: In the context of the Alexa Skills Kit, an Internet-accessible service that can accept requests from the Alexa service and return responses. You can use a web service as the cloud-based service for a custom skill.
- For the requirements your service must meet, see Hosting a Custom Skill as a Web Service
- For sample code you can deploy as a web service, see Deploying a Sample Custom Skill as a Web Service