Build with Alexa for Business
With Alexa for Business, device makers can bring the power of voice to enterprises. The Alexa Voice Service (AVS) extension of Alexa for Business allows:
- Deployment of third-party devices to shared spaces, such as conference rooms, hotel and dorm rooms, lobbies, kitchens, break rooms, and copy rooms.
- Device management as part of the device makers existing management flow, including room designation, device health monitoring, and location settings.
You can also build and manage voice skills, without publishing them to the public Alexa Skills Store. You can assign them to your devices as private skills for your organization. See Understand Alexa for Business in the Alexa Skills Kit (ASK) documentation.
- Getting Started with AVS
- Alexa for Business Components
- Functional Requirements
- The AVS Product Registration Flow
- Submitting Devices for AVS Testing
Getting Started with AVS
Third-party commercial device makers use the Alexa Voice Service (AVS) to integrate Alexa directly into connected products. Because AVS is a cloud-based service, all your Alexa for Business devices with Alexa built-in will receive the most up-to-date new features and improvements.
Together, the AVS Device SDK sample app and the Alexa for Business device maker sample service provide an example of how the end-to-end experience can be implemented:
- Build the AVS Device SDK sample app, and use the Alexa for Business Build Option to see AVS in action with a quick prototype. Use it to define your customer use cases, desired features, and hardware requirements.
- Set up the Alexa for Business sample device maker service. Download the application and follow the instructions in the README.md. This is a Node.js application that serves as an example of how you as the AVS device maker can manage your customer's AVS devices.
Alexa for Business Components
The system architecture of a product with the Alexa for Business extension has three main components:
- The AVS Device SDK: It includes C++-based libraries that leverage the AVS APIs. Use it as the software interface for your Alexa Built-in devices. The AVS Device SDK contains a sample app which demonstrates interactions with AVS.
- Device maker AVS application: The AVS Device SDK, available on GitHub, includes a sample application which demonstrates the interactions with AVS and Alexa for Business. We recommend developing your own application by leveraging the AVS Device SDK.
- Your device maker service: Your AVS companion app interacts with your company's service to register AVS devices, among other use cases. Alexa for Business provides a sample device maker service to show how you can create a service to interact with Alexa for Business.
To help you meet customer expectations, avoid issues, and ensure proper registration of shared devices, your product must follow all AVS functional, design, and security requirements and guidance, as well as additional Alexa for Business requirements.
Get to know the Alexa for Business requirements.
The AVS Product Registration Flow
This following steps cover the registration flow for Alexa built-in devices with Alexa for Business.
The customer must grant you, as the AVS device maker, with permission to register your AVS devices in Alexa for Business on their behalf. The following one-time setup steps are required before you can register your AVS devices with Alexa for Business.
- Create your device maker AWS Account.
- The customer organization admin logs into their account in the AWS Alexa for Business console.
The customer organization admin must create an IAM role:
A. If your product has passed AVS and Alexa for Business certification: In the AWS Alexa for Business console, the admin selects “AVS permissions” under the "Settings" tab. They can now select the device maker (your company name) from the “AVS device maker” dropdown and create a 1-click IAM role. This grants permission to your device maker AWS Account, providing access to certain Alexa for Business APIs, including the ability to register and deregister an AVS Device in Alexa for Business.
B. If your product is not certified: Provide the customer organization with your device maker AWS Account ID, and the Amazon ID of their AVS Device. Under “AVS permissions” in the "Settings" tab, they select “Other” from the “AVS device maker” dropdown, enter the AWS Account ID, and enter the Amazon ID you provided them. This creates the 1-click IAM role.
- The customer organization admin logs into the device maker's management console (backed by the device maker’s service) with their AVS device maker’s account credentials.
- The customer organization admin sets the IAM Role ARN (and External ID) that they created for the device maker to call Alexa for Business on their behalf.
- The customer organization admins provisions an AVS Device by providing the DSN and Product ID. This step is device maker-specific.
An example of how Steps (5) and (6) are implemented can be found in the Alexa for Business device maker sample service, which you set up as a prerequisite.
After the initial setup, implement the following flow in order to register your AVS Device with Alexa for Business, allowing it to access Alexa functionality:
- Power on the AVS Device, and ensure no valid OAuth tokens are present.
- The AVS Device makes a Device Authorization Request. (See Step 2 of the CBL documentation.)
- The AVS Device receives a User Code and a Device Code in response to the Device Authorization Request to LWA.
- As defined in Step 4 of the CBL documentation, the AVS Device starts polling for Access and Refresh Tokens.
- The response of the call in the previous will return “authorization_pending” as the AVS Device has not been registered to Alexa for Business yet. The device, however, should keep polling until the tokens are returned.
- AVS Device calls device maker’s service with the User Code and DSN to start the Alexa for Business registration process. Upon receiving the Device Registration Request, the device maker service authenticates the device to verify it is valid and figures out who the end customer is. Implementation of how the AVS Device is authenticated is up to the device maker.
- Your device maker service finds the IAM Role ARN and External ID associated with the end customer and it calls AWS IAM’s AssumeRole API. The returned AWS Credentials consist of an AccessKeyId, SecretAccessKey and SessionToken.
- Your device maker service calls Alexa for Business’s RegisterAVSDevice API by signing the request with the AWS Credentials returned in Step 7. Inputs are ClientId, ProductId, UserCode, AmazonId and DSN. For a given ProductId, your device maker Service is expected to store the ClientId and AmazonId. The UserCode and DSN are provided by the Device Registration Request in Step 6.
- Alexa for Business receives the request and identifies the end customer’s AWS Account. You, as the device maker, sign the request with the credentials received from the AWS IAM Role created by the end customer. Alexa for Business registers the AVS Device internally and returns a Response: 200 OK. A. The AVS device makes another Device Token Request. B. Since the AVS device is now registered, LWA vends out the Access and Refresh Tokens. C. The device can be used in Alexa for Business by the end customer.
An implementation example of Steps 2-6 can be found in the Sample App that is bundled with the AVS Device SDK whereas the implementation example of Steps 7-8 can be found in the Alexa for Business Sample device maker Service.
Submitting Devices for AVS Testing
Amazon Alexa users expect a high quality and consistent experience across all products. To help you meet this bar and build the best possible Alexa integration, the device must be submitted for certification.
Review the AVS Product Testing process.