Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions articles/bot-service-channel-connect-alexa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
title: Connect a bot to Alexa - Bot Service
description: Learn how to configure a bot's connection to Alexa.
keywords: connect a bot, bot channel, Alexa bot, credentials, configure, phone
author: NickEricson
ms.author: kamrani
manager: kamrani
ms.topic: article
ms.service: bot-service
ms.date: 04/27/2020
---

# Connect a bot to Alexa

You can configure your bot to communicate with people using Alexa devices that support Custom Skills.

**Important**: Your bot must use the [Bot Framework Sdk](https://github.com/microsoft/botframework-sdk) version 4.8 or later. If you create a new bot via the Azure Portal it will have 4.8 or later. If you have an existing bot you may need to update your Sdk version.


## Create an Alexa skill

1. Log into the [Alexa Developer Console](https://developer.amazon.com/alexa/console/ask) and then click the 'Create Skill' button.

2. On the next screen enter a name for your new skill. On this page you can **Choose a model to add to your skill** (**Custom** selected by default) and **Choose a method to host your skill's backend resources** (**Provision your own** selected by default). Leave the default options selected and click the **Create Skill** button.

![Skill model and hosting](./media/channels/alexa-create-skill-options.png)

3. On the next screen you will be asked to **Choose a template**. **Start from scratch** will be selected by default. Leave **Start from scratch** selected and click the **Choose** button.

![Skill template](./media/channels/alexa-create-skill-options2.png)

4. You will now be presented with your skill dashboard. Navigate to **JSON Editor** within the **Interaction Model** section of the left hand menu.

5. Paste the JSON below into the **JSON Editor**, replacing the following values;

* **YOUR SKILL INVOCATION NAME** - This is the name that users will use to invoke your skill on Alexa. For example, if your skill invocation name was 'adapter helper', then a user would could say "Alexa, launch adapter helper" to launch the skill.

* **EXAMPLE PHRASES** - You should provide 3 example phases that users could use to interact with your skill. For example, if a user might say "Alexa, ask adapter helper to give me details of the alexa adapter", your example phrase would be "give me details of the alexa adapter".

```json
{
"interactionModel": {
"languageModel": {
"invocationName": "<YOUR SKILL INVOCATION NAME>",
"intents": [
{
"name": "GetUserIntent",
"slots": [
{
"name": "phrase",
"type": "phrase"
}
],
"samples": [
"{phrase}"
]
},
{
"name": "AMAZON.StopIntent",
"samples": []
}
],
"types": [
{
"name": "phrase",
"values": [
{
"name": {
"value": "<EXAMPLE PHRASE>"
}
},
{
"name": {
"value": "<EXAMPLE PHRASE>"
}
},
{
"name": {
"value": "<EXAMPLE PHRASE>"
}
}
]
}
]
}
}
}
```

6. Click the **Save Model** button and then click **Build Model**, which will update the configuration for your skill.

7. Get your **Alexa Skill Id** either from the Url in the Alexa Portal or by going to the [Alexa Developer Console](https://developer.amazon.com/alexa/console/ask) and clicking **View Skill ID**. Your Alexa Skill Id should be a value like 'amzn1.ask.skill.A GUID'.

8. In the Bot Framework Portal navigate to the Alexa Channel Configuration page and paste your **Alexa Skill Id** into the **Enter skill Id** field.

9. In the Alexa Portal navigate to the **Endpoint** section on the left hand menu. Select **HTTPS** as the **Service Endpoint Type** and set the **Default Region** endpoint to the **Alexa Service Endpoint URI** value copied from the Bot Framework Alexa Configuration page.

10. In the drop down underneath the text box where you have defined your endpoint, you need to select the type of certificate being used. Choose **My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority**.

![Skill template](./media/channels/alexa-endpoint.PNG)

11. Click the **Save Endpoints** button in the Alexa Portal.

12. Click the **Save** button in the Bot Framework Alexa Channel Configuration page.

You will need to publish your Skill within Alexa before users other than yourself can communicate with it. You can test your skill, prior to publishing it, within Alexa using an Alexa device you own or from the **Test** tab for your skill. To get to the **Test** tab navigate to your Skill from the [Alexa Developer Console](https://developer.amazon.com/alexa/console/ask).
2 changes: 1 addition & 1 deletion articles/bot-service-manage-channels.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ ms.date: 09/22/2018

# Connect a bot to channels

A channel is a connection between the bot and communication apps. You configure a bot to connect to the channels you want it to be available on. The Bot Framework Service, configured through the Azure portal, connects your bot to these channels and facilitates communication between your bot and the user. You can connect to many popular services, such as [Cortana](bot-service-channel-connect-cortana.md), [Facebook Messenger](bot-service-channel-connect-facebook.md), [Kik](bot-service-channel-connect-kik.md), and [Slack](bot-service-channel-connect-slack.md), as well as several others. The [Web Chat](bot-service-channel-connect-webchat.md) channel is pre-configured for you. In addition to standard channels provided with the Bot Connector Service, you can also connect your bot to your own client application using [Direct Line](bot-service-channel-connect-directline.md) as your channel.
A channel is a connection between the bot and communication apps. You configure a bot to connect to the channels you want it to be available on. The Bot Framework Service, configured through the Azure portal, connects your bot to these channels and facilitates communication between your bot and the user. You can connect to many popular services, such as [Alexa](bot-service-channel-connect-alexa.md), [Cortana](bot-service-channel-connect-cortana.md), [Facebook Messenger](bot-service-channel-connect-facebook.md), [Kik](bot-service-channel-connect-kik.md), and [Slack](bot-service-channel-connect-slack.md), as well as several others. The [Web Chat](bot-service-channel-connect-webchat.md) channel is pre-configured for you. In addition to standard channels provided with the Bot Connector Service, you can also connect your bot to your own client application using [Direct Line](bot-service-channel-connect-directline.md) as your channel.

The Bot Framework Service allows you to develop your bot in a channel-agnostic way by normalizing messages that the bot sends to a channel. This involves converting it from the bot framework schema into the channel’s schema. However, if the channel does not support all aspects of the bot framework schema, the service will try to convert the message to a format that the channel does support. For example, if the bot sends a message that contains a card with action buttons to the email channel, the connector may send the card as an image and include the actions as links in the message’s text.

Expand Down
1 change: 1 addition & 0 deletions articles/bot-service-troubleshoot-bot-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ It's possible that channel configuration parameters have been set incorrectly or

The links below provide instructions for configuring channels supported by the Bot Framework:

- [Alexa](bot-service-channel-connect-alexa.md)
- [Cortana](bot-service-channel-connect-cortana.md)
- [DirectLine](bot-service-channel-connect-directline.md)
- [Email](bot-service-channel-connect-email.md)
Expand Down
1 change: 1 addition & 0 deletions articles/manage/TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#### [Create .NET Client with extension](../bot-service-channel-directline-extension-net-client.md)
#### [Use extension with WebChat](../bot-service-channel-directline-extension-webchat-client.md)
#### [Use extenson within VNET](../bot-service-channel-directline-extension-vnet.md)
## [Alexa](../bot-service-channel-connect-alexa.md)
## [Email](../bot-service-channel-connect-email.md)
## [Enable speech in Web Chat](../bot-service-channel-connect-webchat-speech.md)
## [Facebook](../bot-service-channel-connect-facebook.md)
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added articles/media/channels/alexa-endpoint.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.