Designing

How to design your assistant on Voiceflow.

Channel-Specific Steps

An overview of the Steps used to leverage functionality specific to the channel you're building your assistant for.

Purchase Step

The Purchase Step allows for the creation and activation of In-Skill Products which are digital purchases that the user can make. An In-Skill Product only covers digital products such as premium content, or an app subscription. In-Skill Products cannot be used for real-world services or goods.

For real-world goods or services, use an Amazon Pay integration.

Create an In-Skill Product

The Purchase Step requires an In-Skill Product to be linked to in order to be activated. If there are no active ISPs already, click on the "Create Product" button which will walk you through the process of creating an ISP.

Name & description

Enter a name and description for your ISP. Remember to keep the name short, relevant, and distinct to the specific product. These options will be visible to the Alexa consumer via their Alexa mobile app.

Pricing model

Choose one of 3 available pricing options for your ISP. Each option will have additional pricing configurations per option.

  • One-time purchase - the ISP will only be available for purchase once
  • Consumable - the ISP can be consumed an unlimited number of times and will charge per consumption
  • Subscription - the ISP will charge the user on a recurring subscription basis

Availability

Choose your ISP's availability amongst the supported ISP regions. You can also set regional prices, although it is highly recommended to use the given prices.

Phrases

Choose the phrases users can use to access your ISP's when In-Skill.

Product icons

Choose your product's unique icons.

Details

Finalize your ISP's details:

  • Keywords - used to describe the ISP within the Alexa Skill marketplace
  • In-app description - describes the ISP within the Alexa mobile app card
  • Privacy policy - your privacy policy that covers the ISP (can be your generic Skill privacy policy)
  • Testing information - any notes you would like for the Alexa Skill certification team to see before testing your Skill

Activating an ISP

Alexa will take over the fulfillment process of the ISP once your Purchase Step has an active ISP selected. When the user reaches that Step, the ISP will take over to manage the fulfillment process.

Setting an upsell message

The upsell message is what the user first hears when they reach the Purchase step and are prompted to purchase ("upsell"). Ensure you follow the upsell message requirements outlined within Voiceflow to ensure successful Alexa Skill certification.

Allowing users to cancel ISPs

In order for your Alexa Skill with ISP to be certified, you are required to have an active ISP cancellation method. To enable ISP cancellation, you can use the "Cancel Purchase Step".

Reminder Step

The reminder block can be used to send both scheduled reminders and timed reminder to the user. You can add variables to both the trigger time and content of the reminder message.

Types of Permissions

There are two types of reminders you can set:

Timer ****- will set the reminder to occur at a set amount of time in the future from when the user has interacted with your Skill

Scheduled - will set the reminder to occur at a specific date and time

For both of these values, you can set them using a variable if you do want to introduce dynamic rules for the timing being set.

Reminder Content

Your reminder will consist of a Speak Step, which you will define in-line in the Reminder Step editor.

Granting Permissions

To send a user a reminder, they must grant your project permission to do so. In order to gain this permission. You must use a Permissions block, and request the ability to send the user reminders.

User Info Step

The User Info block is used to fetch data that the user has given your project permission to access. In order to use the User Info block effectively, you must first use the Permissions block to request access to the user's info. The Permissions block will send a card to the user's mobile phone where they can accept or decline the permissions request.

Permissions Available

Through this step, you can request many types of information from a user, including email, name, location and more. You can view the full list of permissions available here.

Mapping to a Variable

You will need to define a project variable to map the response to when a request is successful. You can add as many user info requests as you'd like to a single step.

Permissions Step

The Permissions block allows your project to request information from the user, in order to deliver a more personalized experience. When a user hits the permission block, a card is sent to the users mobile device. From there, the user can approve, decline, and manage the permissions your project can access.

Selecting Permissions

You can select from a list of user info to request permission to access, including email, name, address and more. You can view the full list of permissions available here.

Account Linking Step

Account linking enables your project to connect the user's identity with their identity in a different system. You can read more on how it works here.

Initiating Account Linking

Users can start account linking in two ways. First, from the skill detail card in the Alexa app while enabling the skill, and second, from a link account card in the Alexa app after making a request that requires authentication.

This will give you multiple opportunities to get users to opt-into linking their accounts.

Configuring Account Linking

To enable account linking, you will need to provide an Authorization URL, Access Token URL, Client ID and Client Secret. For more information on how that is configured, you can view Alexa's documentation here.

Alexa Directive

Whenever a user speaks to Alexa, it will send a request to us containing useful things such as the intent the user said. We have to send back a response with what Alexa should say back to the user. Within this response we can include directives which prompt Alexa to do additional things besides just talking. For more info on this, refer to the Alexa Documentation

Directive Functionality

The directive step will allow you to send customized directives for Alexa features that Voiceflow might not have a block for yet, or even emulate the behaviour of an existing block with more details. Any valid JSON will be included in the directives array in the response sent back to Alexa.

The directive steps often get used for experimental or beta Alexa features that Voiceflow hasn't created a block for yet. You will often find directive JSON in Amazon documentation or tutorials.

Google Directive

Whenever a user speaks to Google, it will send a request to us containing useful things such as the intent the user said. We have to send back a response with what the Google Assistant should say back to the user. Within this response we can include directives which prompt Google to do additional things besides just talking, like showing cards or even a carousel. For more info on this, refer to the Google Documentation.

What the Directive Step Does

The directive step will allow you to send customized directives for Google features that Voiceflow might not have a block for yet, or even emulate the behaviour of an existing block with more details. Any valid JSON will be included in the 'prompt' object in the response sent back to Google.

The directive step can be used for interesting Google Action features like the Interactive Canvas.

For a full list of everything possible with the Directive block, check out Google's documentation. Anywhere it provides a code snippet - go to 'JSON Builder' and look at the object inside the 'candidates' array. This provides the JSON we want to paste in and modify in the directive block. Variables can be used within a directive's JSON to pass in dynamic data.

Other docs in this section