The employing of dynamic slots refers to the new dynamic entities capability with which you can add more slot values and expand the initial list defined with values without updating the model manually and resubmitting for certification. This potentiality enables the skill to handle customer, context, and conversational changes by updating existing slot values from data structures in your code, database, or a RESTful API call. Dynamic entities are powerful tools for driving engagement, helping to deliver customized interactions and a higher-quality experience within the least duration.
In this user-centric guide, you will learn how to navigate the VOGO Voice platform to implement dynamic slots to personalize the Alexa skill experience. The comprehensive walkthrough with requisite screenshots, limitations, and best practices will offer the required direction needed to follow with ease the task of using dynamic entities to modify a custom interaction model in runtime without edits.
- VOGO Voice account: https://www.vogovoice.com/
- Familiar with Alexa Skills Kit concepts such as intent, slot, and sample utterance.
- Access rights to the Interaction builder platform.
How to implement ‘Dynamic Slots’ to customize Interactions
Navigate to the interaction builder platform of VOGO Voice. To execute the Dynamic Slots, click on the Response component, then drag and drop it onto the flow canvas, after which attach it to the necessary components needed to fulfill the interaction flow. To configure it, click on its voice icon.
Purpose and Relevance of Dynamic Slots
The purpose of implementing Dynamic Slots allows the developer to add to the existing list by inputting the new set of slot values directly in the interaction flow via one of the recommended boxes within the Response component. Moreover, in the absence of this feature, the Skill Designer or developer will have to manually update the slot values and resubmit the skill for certification.
🖍 Note: To add the new set of slot values in the requisite format click on the expand icon which is highlighted right above.
In the Response component’s configuration window, after the necessary voice response has been added, check the Expect Response as shown below which will open up the additional features within the component card, one of which is Include Dynamic Slots. Make sure to check the checkbox of Include Dynamic slots to proceed.
As shown below, the first box allows the input of the Slot name, with the next one requiring to enter the new set of slot values in the prescribed format, followed by selecting its relevant data type. To know more about data types, click here.
Follow the format given below but omit the dummy slot values representing a select use case to render dynamic entities.
🖍 Note: Dynamic entities can only “augment” an existing slot type by adding additional slot values and synonyms.
Exploring dynamic entities offers the ability to contextualize slot values and synonyms, which personalizes the experience based on user preferences and previous interactions. Powerful as it may seem, it still comes with a few limitations.
- Limited to 100 Entities
The inclusion of entities is limited, i.e. the combination of values and synonyms per slot type must not exceed 100. If exceeded, you’ll receive a 403 error and your dynamic entities will not be registered, however, your static entities will continue to work.
2. Not additive
You are free to update your list of dynamic entities for any of the responses over and over again, however, bear in mind that the previous ones will be overwritten. Also, you can’t use multiple Response cards to register 200 dynamic entities, but it’s possible to load 100 entities based on the context your skill entered for handling user responses and then swap them with a new set of 100 by entering a different context.
3. No one-shot support
In order for your custom skill to return a directive, it must first receive a request, that is to say, dynamic entities won’t be registered until the skill has been opened. Ideally, the customer will open the skill by saying, “Alexa, open (invocation name)” which will trigger the LaunchRequest, enabling the register of your dynamic entities. But, if the user makes a request i.e. tied to the intent and not to the invocation name, then what follows will be the trigger of the requested intent thereby nullifying the register of your dynamic entities. In such a scenario only the static entities will be available to your skill. Moreover, in similar instances, you’ll have to check manually to see if the loaded dynamic entities are still on offer.
Therefore, by making use of dynamic entities: “You can expand your skill’s predefined slot type in the interaction model by allowing your skill to dynamically create new entities in runtime. Without dynamic entities, the entities are resolved at build time and remain the same until an update is made to the skill, and you cannot customize entities by the customer or by dialog turn. With dynamic entities, you can create personalized voice experiences, and dynamically enable or disable slot values based on conversation or user context.”
Overall, the use of dynamic entities boosts user experience within a session based on the newly uploaded slot values.
👍 Note: It is important to ensure that all example phrases provided for the skill use static entities and not dynamic entities, in order to pass certification. Slot values are not always static, and they can vary by time or location. Dynamic entities allow your skill to adapt to the dynamic nature of slot values by providing the custom skill the ability to load entities in runtime.
For more information on the concept, real-time examples, guidelines, and best practices refer to the https://developer.amazon.com/en-US/docs/alexa/custom-skills/use-dynamic-entities-for-customized-interactions.html