Understand Skill Connections
Skill connections enable an Alexa skill to use another skill to perform a specific task. A skill connection lets you offload common tasks to outside providers while retaining control over your customer experience.
Skill connections improve the Alexa customer experience by allowing customers to move freely between skills without having to repeat information. For example, a customer who interacts with a recipe skill can say "print this" to print a recipe. The recipe skill can then use a skill connection to forward the request to a printing skill.
- Tasks, requester skills, and provider skills
- Custom tasks and Amazon predefined tasks
- Managed and direct skill connections
Tasks, requester skills, and provider skills
A task is a piece of user experience that is implemented in an Alexa skill, such as an action that a skill performs. When a skill receives a task request, it can fulfill the request by performing the task itself, or it can use a skill connection to allow Amazon or a provider skill to handle the request. You can combine tasks to create richer user interactions that use, for example, multi-turn dialogs or device screen cards.
A task consists of a task definition and a task implementation. A task definition specifies the name and other attributes of your task. A task implementation specifies the behavior of the task.
A requester skill uses a skill connection to request a task. The task can be handled by Alexa or by a provider skill. Ultimately the task is performed by a skill that is selected by Alexa or by the requester.
A provider skill can implement one or more custom tasks, or it can implement predefined tasks created by Amazon. In the preceding example, the recipe skill is the requester skill, and the printing skill is the provider skill.
A skill can be both a requester and a provider. However, a skill can't request a task from itself.
Custom tasks and Amazon predefined tasks
A task can be a custom task or an Amazon predefined task.
A custom task is one that is defined and implemented by a custom skill. You can create a custom task and incorporate it into your provider skill. Custom tasks allow for a wide range of possible functionality. When the provider skill is published after certification, its custom tasks can be made available to requester skills.
An Amazon predefined task is one that is defined by Amazon and performed by a skill selected by Alexa or one that's selected by the requester skill.
The following list shows the current providers For Amazon predefined tasks:
- Print: Hewlett-Packard, Canon, Epson
- Book a table: OpenTable
- Book a ride: Uber
Managed and direct skill connections
There are two types of skill connections: managed and direct. In both types, a requester skill requests a task from a provider skill.
In a managed skill connection, the requester skill requests an Amazon predefined task from Alexa, and Alexa determines whether the task is completed by Amazon or by a provider skill. Alexa selects the provider skill, which completes the task if it can, and returns control to the requester skill. If you have a provider skill, you can set your skill up to implement an Amazon task, but you cannot make your skill be the one Alexa selects to fulfill requests for that task.
In a direct skill connection, it is the requester, not Alexa, that chooses whether the Alexa service or a specific provider skill completes the task. The requester skill either:
- requests a custom task directly from a provider skill
- requests an Amazon-defined task from Alexa and specifies a provider skill for the task
For example, if you have a recipe skill, and it receives a request to print a recipe, it can either:
Use a managed skill connection to request a web printing skill without choosing a specific provider. In this case, Amazon chooses the provider skill based on the user's usage history.
Use a direct skill connection to request a custom printing task from a specific provider.
If a skill connection fails, for example, if a web printing skill provides a printing task, and that task isn't available, the skill connection ends, and the connection returns the customer to the original requester skill.
To summarize, with skill connections, a requester skill can:
- Connect to an Amazon-defined task and specify the task provider (direct connection)
- Connect to a custom task that's implemented by you or another skill developer (direct connection)
- Connect to an Amazon-defined task and let Alexa choose the best task provider for your customer (managed connection).