Build Your Design Artifact

The next step in the script writing process is to take your scripts, which have outlined some of your turns, and convert them into storyboards. This conversion enables you to think through all the common paths and to add various situations and error cases.

Create a storyboard

A storyboard is a linear progression through time. It’s a good way to simulate the turns in a conversation. Your first storyboard should be your happy path- the optimal way your customer travels through your skill.

A turn by turn layout going from left to right showcasing the user's progress through a skill over time.

Add variation

After you’ve built your happy path, add in some variations underneath. For example, you may have multiple types of welcome messages to start your skill. You can just add new turns underneath the first welcome message in your happy path.

The first card is shown with variations below it in the storyboard on the vertical plane.

Once you identify a few variations in a particular turn, create a couple more storyboards that cover the edge cases in your design. Each storyboard can help find new variations in your design that you’ll create when you build. The more robust you make your design, the better the experience will be for the customer using your skill.

Test it out again

A good way to find the flaws in your voice design is to test your storyboard out, just like your script, by having a friend help you act out the storyboards as they’d work through time. Each time you go through it, try another variation and write down any changes you come across. Similar to your scripts, you quickly see what seems natural and what seems robotic or unrealistic for your skill.

Define the Interaction Model

After you figure out the dialog and the potential flow of the design, you need to connect these back to the way you need to build your skill. You already did this in your turns. The customer’s utterances map back to intents, which represent the unique actions the skill can take. For example, a skill that can plan vacations might have intents like plan a trip or book a trip.

Not all customers invoke an intent the same way. You have to prepare by listing out different ways customers might ask the skill for the action. For example, a customer might say, “I want to go to Hawaii next Friday,” instead of just, “Plan a trip” to invoke the action. To ensure a good experience, provide examples, from complete commands all the way through incomplete and ambiguous fragments. To make sure you have coverage, include subtle variations and even mispronunciations. For example, include “arrangement” and “bouquet” when talking about flowers, even though they have similar meanings. The following example shows how to disassemble your turns into the parts of a skill.

An utterance and an intent are broken down by their parts to understand how intents, utterances, and slots are defined in the build model.

In our example, “I want to go to Hawaii next Friday,” the customer is providing a type of over-answering called a one-shot utterance. In this case, the utterance is front-loaded so that it provides most or all of the pieces of information your skill needs to activate an intent. A customer can also provide a one-shot utterance to start a skill, not just within a skill. For example, “Alexa, open Plan My Trip to book a flight to Hawaii.” This is over-answering the situation, which you need to handle by means of Dialog Management.

Often, you have customers who aren’t very thorough in their commands. They might provide only partial information. You then have to have Alexa prompt for more information. For example:

User: "I want to go windsurfing at Rooster Rock."

Alexa: "When would you like to go?"

You need to have Alexa keep asking until you get all the details to ensure the customer’s needs are taken care of. This might lead to a correction by the customer, which is usually followed by a valid utterance. You need to be ready to capture that information. For example:

Alexa: "Alright, it looks like you’re going windsurfing in Portland next Friday, leaving from Seattle. Should I book it?"

User: "No, I'm going to Rooster Rock."

Alexa: "Ah, got it. You’re headed to Rooster Rock next Friday to go windsurfing, leaving from Seattle. Ready to book?"

Use the built-in intents

Every Alexa skill needs to include the ability to cancel, stop, and offer help. For these and other common intents; such as repeat, play, and next; use the built-in intent library. The Alexa service has already configured built-in intents so that Alexa can recognize the corresponding utterances. For example, with the help intent, you don’t need to specify the ways a person might ask for help. You can also extend built-in intents if your skill needs to react to additional things customers might say. This is a good way to customize these built-in features to fit the specific needs of your skill.

Identify slots

Slots let you specify the variable parts of an utterance, allowing for more customization. Slots are commonly used in task and information-based skills. For example, dates and places are common slot types. You can choose slots from the built-in catalogs or create your own.

For example, if our utterance is: “I want to go snorkeling next Friday in Aruba.”

That can be broken down into: “I want to go [activity] [date] in [place].”

In this case, your slots would be activities, dates, and places. Many slots can be filled with the built-in library so you don’t have to add everything by hand. This ensures a consistent experience across Alexa.