# Amazon Alexa: Deploy an Endpoint

**Cognigy Support**  
October 24, 2022

This page describes the important steps for creating and configuring an Alexa Endpoint.

Flows created with Cognigy.AI can be deployed as an `Alexa skill` and used together with any Amazon hardware from `Echo Dot` to `Echo Show`.

This tutorial covers the necessary steps for creating and configuring an `Alexa Endpoint` and deploying it to your `Alexa Skill`. If you want information about assigning a flow to the endpoint and setting up _Data Management_ see [Endpoints](https://docs.cognigy.com/docs/endpoints).

**Processes**

Processes are currently not supported for the Alexa channel.

## Three Step Preparation Process

1. **Create an Alexa skill** in the [Amazon Developer Portal](https://developer.amazon.com/home.html)
2. **Add necessary intents to your Alexa skill** in the [Amazon Developer Portal](https://developer.amazon.com/home.html)
3. **Create an Alexa endpoint and deploy it to your Alexa skill** in Cognigy.AI

## Create an Alexa Skill

🔗 In the [Amazon Developer Portal](https://developer.amazon.com/home.html)

**Requirements:**

✔ An Amazon Developer Account

### 1.1 Amazon Developer Portal Overview

To create a skill, navigate to [Amazon Developer Portal](https://developer.amazon.com/home.html). Click on the **Alexa** tab in the navigation bar.

_Figure 1.1: Amazon Developer Portal landing page_

### 1.2 Create the Skill

To create a new skill, click on the **Create Skill** button on the right. Here you can give the skill any name you want. You can choose whichever language you want; the steps to build the skill are the same for all languages.

_Figure 1.2.1: Alexa Skills Overview_

On the next page, you will be asked to choose a model. Let's choose the "Custom model" for now since it fits most needs. In this tutorial, you can see how to build Alexa models from scratch.

_Figure 1.2.2: Choosing an Alexa Skill Model_

Now we have successfully created an Alexa Skill. We can now proceed and add some necessary intents.

## Adding necessary intents to your Alexa Skill

🔗 In the [Amazon Developer Portal](https://developer.amazon.com/home.html)

**Requirements**

✔ An Amazon Developer Account  
✔ An Alexa Skill

### 2.1 Intents

If you are not using our sample package, but instead using a pre-configured Alexa Skill, then you have to add the following built-in intents to your Alexa Skill:

- `AMAZON.YesIntent`
- `AMAZON.NoIntent`

This ensures that you can use [Yes/No type Question](https://docs.cognigy.com/v3.6/docs/yn-question) nodes in your Flow.

**Using Amazon Intents**

You can use any Amazon built-in intent with Cognigy.AI. If an Amazon intent is triggered, then you can access them via ci.intent like with any other intent.

## Configuring and Deploying an Alexa Endpoint

🔗 In Cognigy.AI

**Requirements**

✔ Amazon Developer Account  
✔ Alexa Skill

### 2.1 Creating an Alexa Endpoint

In order to connect a Flow to your Alexa Skill, you have to create an Endpoint of type Alexa as described in [Endpoints](https://docs.cognigy.com/docs/endpoints). You then need to connect the corresponding Endpoint to your Flow.

_Figure 2.1: Creating an Alexa Endpoint in Cognigy.AI_

### 2.2 Auto-deploying the Endpoint to your Alexa Skill

Cognigy.AI offers an easy way to automatically deploy your Endpoint to an Alexa Skill of your choice by just the click of a button. If you open the **Deployment** panel, you will be prompted to `Login With Amazon` if you haven't done so already. Clicking this button will send you to a secure Amazon login page where you can log in to the Amazon Developer Account that has your Alexa Skills.

_Figure 2.2.1: Authenticating with Amazon_

When you have successfully logged in to your Amazon Developer Account, a drop-down with all your Alexa Skills should appear. When you select the skill you wish to use, then you can click on the `Deploy` button. Clicking this button will configure your skill to use this endpoint when invoked.

_Figure 2.2.2: Deploying the Endpoint_

### 2.3 Manually deploying the Endpoint

You can also deploy the Endpoint to your skill manually. To do this, go to the top of the Alexa Endpoint and copy the `EndpointURL`. You need to add this URL as the Endpoint for your Alexa Skill.

_Figure 2.3.1: Getting the EndpointURL_

To add this EndpointURL in your Alexa Skill, go to your Alexa Skill and navigate to the `Endpoints` page. Here you have to choose _HTTPS_ as the Service Endpoint Type. When you have selected this, then you can enter the EndpointURL you copied before in one of the URI fields for one of the regions. If you have no preference as to which region you need, simply use the default region. The last thing to do is to make sure to select that the development endpoint is a sub-domain.

**Endpoint Domain Type**

It is very important that you select the correct domain type for the endpoint; otherwise, the endpoint will not work. The endpoint type needs to be: "My development endpoint is a sub-domain of a domain that has a wildcard certificate from a certificate authority". See the image for reference.

_Figure 2.3.2: Manually deploying the Endpoint in your Alexa Skill_
