What's New in Alexa Conversations

Since the public beta launch of Alexa Conversations, we've made the following improvements.

November 2021

The Alexa Conversations developer console experience has been upgraded. To migrate your skill to the new experience, click the associated link in the developer console banner. The following updates are the primary differences between non-migrated and migrated skills.

Terminology

The following changes in the developer console terminology now align with the Alexa Conversations Description Language:

  • User input dialog acts are now called request acts.
  • Alexa prompts are now called responses, and Alexa response dialog acts are now called response acts.

Dialog annotation workflow

To create dialogs, you still enter user turns and Alexa turns in plain text. However, the following aspects have changed.

User turns

The following changes apply to user turns in dialogs:

  • You no longer need to "annotate" user turns by selecting text and associating a type and a variable with the selected text. Now, you only need to select the utterance set. (The text of the user turn is the first sample utterance in the utterance set.) You typically create new utterance sets from user turns and then add samples to the utterance set to offer variants. However, you might also choose to select an existing utterance set if you already have one that fits.
  • Because the user turn text is just the first utterance sample in the utterance set, the syntax of the user turn can include curly braces to represent slots.
  • Utterance sets can still have properties, but those properties are now defined in an Alexa Conversations type. You can create and edit this type in the utterance set user interface or separately as a Slot Type with Properties.
  • There is now a single variable that corresponds to the use of an utterance set. The variable has the same properties as the utterance set type. For example, if the utterance set is named invokeOrderPizza and the variable in the utterance set is called invokeOrderPizza0, you can expect invokeOrderPizza0.size to be available to pass as an API argument if size is one of the type properties in the invokeOrderPizza utterance set.

Alexa turns

The following changes apply to Alexa turns in dialogs:

  • You now only have to select an audio response. The visual response is optional.
  • The payload properties of the audio response and visual response are based on a type that you can create and edit as you create the audio response and visual response. You can also create a payload with properties as a Slot Type with Properties in the AssetsSlot Types section of the developer console.
  • The text in an Alexa turn is the first prompt in the selected audio response. If the corresponding APLA document has advanced features, you might not be able to edit the response directly in the Alexa turn.

Responses

Before the migration, you created response templates that combined audio and visual responses. After the migration, audio responses and visual responses are separate concepts that you refer to directly from the dialog. Existing skill response templates have been split into visual and audio responses.

Response acts

Response acts (previously called Alexa response dialog acts), have the following changes:

  • The Offer Next API response act no longer has carryover arguments, because arguments are automatically carried over to the next turn.
  • For the Request Args response act, responses currently can't have payload type properties .
  • The Confirm API response act, doesn't have "Arguments to Confirm" anymore. The response type must contain all the mandatory arguments from the selected API definition.
  • For the Confirm Args response act, the arguments to be confirmed must be a subset of the response arguments.

Lambda code

Make the following updates to your Lambda skill code:

  • When you refer to an API name in your code (typically in canHandle), you must add apis. in front of the API name. For example, if the API is called orderPizza, replace orderPizza with apis.orderPizza.
  • To refer to the name of a Slot Type with Properties in your code, use the types. prefix.
  • To refer to an utterance set name in your code, use the utterance_sets. prefix.

Limitations

The updated developer console currently has the following limitations for Alexa Conversations:

  • The developer console currently doesn't support conditionality.
  • The developer console currently doesn't support visual responses on Confirm turns.

September 30, 2021

July 21, 2021

  • Added locale support (beta) for en-AU, en-CA, en-IN, en-GB, and de-DE to the guided development experience.
  • Added reusable dialog support (beta) to ACDL.

April 2021

  • Updated the functionality of the shouldEndSession flag. For Alexa Conversations skills, the functionality of the shouldEndSession flag is now the same as with other custom skills, as described in Request and Response JSON Reference. Prior to this update, Alexa Conversations skills that didn't set the shouldEndSession value would, by default, have the shouldEndSession value set to false.

March 1, 2021

  • Went General Availability (GA).
  • Added support for Alexa entities for en-US.

February 18, 2021

November 30, 2020

  • Added user interface validations and error messages that notify you of the following:
    • Undefined variables.
    • The Affirm/Deny dialog acts must follow the Confirm API/Confirm Args dialog acts.
    • The Inform Args dialog act must follow the Request Args dialog act.
    • Dialogs must start with a user turn that uses the Invoke APIs dialog act.
    • Dialogs must end with an Alexa turn.
    • Dialogs must alternate between user turns and Alexa turns, except when an Offer Next API dialog act follows an API Success/Failure dialog act.
    • If more than one argument is requested for the Request Args dialog act, the Alternate Responses section contains a line for each required API argument. You can't modify these arguments or delete these lines.
    • User input validations.
  • Prevented you from using the same slot name multiple times in a sample utterance.
  • Made dropdown names visible on hover.
  • Disabled the Evaluate Model button when Alexa Conversations is the default dialog manager.
  • Added comments on the Analytics page to indicate how Alexa Conversations metrics are reflected.
  • Added a pop-up warning message before overwriting changes made from a separate tab.
  • Added Alexa Conversations skill responses in the Alexa app.
  • Automatically updated dialog turns with the Request Args and Confirm APIs dialog acts when changing mandatory API arguments.
  • Added hints on how to create dialogs in the right fly-out.
  • Made the following improvements when you configure responses:
    • Removed the + button. To create a new line, you now use the Add prompt button or press enter.
    • Removed the Create Prompt, Create and Edit APL Audio, and Reset buttons. Instead, you name your APLA document and enter Alexa prompts. The APLA documents are saved when you save your skill. You can still navigate to the APLA editor tool by clicking the APL for Audio editor link in the notification banner.
  • Removed the + button when you configure user utterance sets. To add a sample utterance, you now click the Add Utterance button or press enter.

Previous improvements

  • Resolved data loss issue caused by editing the same skill in multiple tabs.
  • Added documentation to explain how to troubleshoot and resolve the most common validation messages: MissingRequestTemplateV2, MissingDialogAnnotation, MismatchArgumentSize, and MissingSampleUtterance.
  • Reduced friction around multiple save buttons on the response page and added clearer call to actions in the developer console.
  • Enabled developers from outside the US to test their en-US Alexa Conversations skills.
  • Enabled slot types with values, which you can use to represent strings in API definitions and responses, without requiring dummy values.
  • Reduced friction in authoring responses in the dialog annotation flow by automatically filling in default response and prompt names.
  • Resolved the issue where dialogs were not automatically updated when utterance sets, responses, and API definitions were updated from the left navigation.
  • Added new validation messages to fast-fail the model build and advise how to resolve issues such as the following:
    • An utterance set has a null slot type
    • There are slot types (with properties) without defined properties
    • There are inconsistencies between arguments in API definitions and dialogs
    • The argument name of the API must match the arguments of the dialog acts
  • Improved model build error messages to advise how to resolve issues such as the following:
    • The first user utterance in a dialog is missing
    • Annotated dialogs are not yet generated
    • An utterance set has an argument that contains special characters
    • A dialog is missing annotations
    • An API definition is missing
  • Provided minor user experience upgrades such as the following:
    • Improved Firefox support
    • Added support for pressing enter on any dialog turn to create new, blank user and Alexa utterances
    • Added inline warning messages when slots are not set
    • Renamed response condition to API success condition / API failure condition
    • Highlighted the link to known issues on the dialog page
    • Restricted a single list slot per annotated utterance
    • Prevented the right fly-out when annotating slots and clicking outside utterances
    • Fixed the pagination bug
  • Added dialog cloning capability to enable you to create similar dialogs faster.
  • Added autocomplete of response names in the left navigation, utterance sets, and API definitions to reduce the effort required to create new components.
  • Added automatic propagation of changes to annotated variable names and API return variable names across the dialog to reduce the effort required to manually update them.
  • Enabled you to create all required Alexa Conversations components as you annotate dialogs so that you don't have to leave the dialog annotation flow and click separate tabs to create the required components. Specifically, we:
    • Removed the requirement to provide API definitions in utterance sets
    • Removed the requirement to provide API definitions in responses
    • Enabled you to create, edit, and delete API definitions from the right fly-out during dialog annotation