Use the Name-free Interaction Toolkit in the Developer Console

Use the developer console to update the interaction model

Use the developer console to tell Alexa which skill launch phrases and intent launch phrases you want the customer to be able to say to access your skill more naturally. When you specify a skill launch phrase, you give the customer a new way to open your skill without using the typical invocation pattern, like telling Alexa to open or launch the skill. When you specify an intent launch phrase, you give the customer a way to launch right into a particular intent within your skill, again without using the typical invocation pattern.

Check Eligibility

Your skill will be eligible to use the NFI Toolkit if it supports en-* locale, has been previously published as a live skill and has established a history of high quality and customer engagement. To see if your skill is eligible, you can navigate to the Skill Launch Phrases and Intent Launch phrases tab in the Developer Console.

Add your skill launch phrases

In the sidebar, under Invocations, click Skill Launch Phrases.

Skill Launch Phrases page
SKill Launch Phrases page

Add your intent launch phrases

In the sidebar under Invocations, click Intent Launch Phrases.

For each intent that you want to use as an IngressPoint to launch your skill, click Add Intent, select a custom intent from your interaction model, and then type your sample phrases.

Intent Launch Phrases page
Intent Launch Phrases page

Update the interaction model using the developer console JSON editor

Place the _nameFreeInteraction container within the interaction model. Identify each intent that you want to make available for name-free interaction.

For a skill launch phrase, which is where an IngressPoint launches your skill as a modal launch, set the type field LAUNCH with no name field. Use the format RAW_TEXT and set the value to your skill launch sample utterance. The sample utterance must not contain slots and should be a complete phrase. In your skill, specify up to five skill launch phrases.

For an intent launch phrase, which is where an IngressPoint launches into a specific intent for your skill, set the type field to INTENT and the name field to the existing intent name, as defined in language model for the skill. Use the format RAW_TEXT and set the value to your intent launch sample utterance. The sample utterance must not contain slots and should be a complete phrase. For each IngressPoint, specify up to five intent launch phrases.

In the developer console, on the JSON Editor tab, edit the model to include the new _nameFreeInteraction container.

JSON editor page with nfi container included
JSON editor page

The following shows an example interaction model with the _nameFreeInteraction container.

Example

{
  "interactionModel": {
    "languageModel": {},
    "_nameFreeInteraction": {}
  }
}

Sample

{
  "interactionModel": {
    "languageModel": {
      "invocationName": "XYZ 101.8",
      "intents": [
        {
          "name": "PlayGenreIntent",
          "samples": [
            "play jazz music",
            "play classical music",
            "jazz",
            "classical",       
          ]
        }
      ]
    },
    "_nameFreeInteraction": {
      "ingressPoints": [
        {
         "type": "LAUNCH",
         "sampleUtterances": [
           {
             "format": "RAW_TEXT",
             "value": "Launch Seattle's XYZ radio"           
           },
           {
             "format": "RAW_TEXT",
             "value": "Launch Seattle's 101.8"           
           }
         ]
        },
        {
          "type": "INTENT",
          "name": "PlayGenreIntent",
         "sampleUtterances": [
           {
             "format": "RAW_TEXT",
             "value": "play jazz music"           
           },
           {
             "format": "RAW_TEXT",
             "value": "play classical music"           
           }
         ]
        }               
      ]   
    }
  }
}

When you're ready, build the interaction model with name-free interaction container by clicking Save Model and then clicking Build Model.

Testing name-free interaction in isolation (en-* only)

After building a skill, consider testing your skill in isolation with name-free utterances to help you understand the user experience when Alexa invokes your skill by using name-free interaction. Keep in mind that testing in isolation isn't required for certification of your skill.

Testing in isolation means the simulation tool considers only the intents in the development-stage interaction model. In isolation, Alexa routes the name-free utterance to your skill. The testing doesn't reflect actual routing decisions made by Alexa across all published skills and experiences. You might observe different outcomes in production because Alexa considers a variety of signals when routing name-free requests.

Typically, you invoke skills using the following method that includes the invocation name:

User: Ask Joe's horoscopes for the Cancer horoscope for today
Alexa: Here is the horoscope for Cancer

With name-free interaction, you can start a simulation where you instead use name-free utterances for the participating intents, as shown in the following example:

NFI Simulation
NFI Simulation

To use the simulation tool with name-free interaction, from the Simulation Type box, select Name Free Interaction.

NFI Simulation Type
NFI Simulation Type

If your testing doesn't get a result that maps to an intent, make sure there are enough sample utterances for your intent and that you follow the guidelines for name-free utterances found in the Do's and Don'ts section. Make sure to have at least 10 utterances for your intent. You can also try to adjust FallbackIntent sensitivity.

NFI Simulation Error
NFI Simulation Error

If the simulation maps to the wrong intent, check for utterance conflicts, or update samples and slots to the correct intent and remove conflicting samples in other intents that conflict with the sample utterances.

To use the simulation feature, make sure to enable the skill. If you don't enable the skill, the error Skill is currently disabled in <development/live> stage. occurs.

Certification and name-free interaction model training

Once you're satisfied with the changes to your interaction model, submit your skill for publishing. Amazon reviews the interaction model updates to certify the skill. You don't need to take any additional action to deploy the updated skill.

Upon publication, the name-free interaction model begins learning how to route traffic to your skill and intents. With the recurring training of Alexa machine learning and artificial intelligence, it might take up to eight weeks for Alexa to route name-free interaction utterances to your skills.

Troubleshooting

Common reasons for the build process to fail:

  • Intent name is incorrect
  • Configuration specifies more than five skill launch phrases
  • Configuration specifies more than five intent launch phrases per intent
  • Intent launch phrase isn't part of the language model for the intent
  • Intent isn't included in the language model
  • Name-free interaction container doesn't have an IngressPoint field
  • Name-free interaction container has an IngressPoint field but the list of ingress points is empty
  • IngressPoint contains a null entry
  • IngressPoint name is empty or blank
  • IngressPoint doesn't have a valid type defined
  • IngressPoint is duplicated
  • IngressPoint isn't supported, for example built-in intents are not supported
  • Name-free interaction isn't valid, with error code InvalidNameFreeInteractionSchema
    • Sample utterances can consist of only unicode characters, spaces, periods for abbreviations, underscores, possessive apostrophes, and hyphens.
    • There must not be duplicate entries of sample utterances for the ingress points.