Designing

How to design your assistant on Voiceflow.

Event Steps

An overview of the Steps used to leverage functionality triggering events in your assistant & conversations.

Intent Step

Intents are a fundamental core concept in the world of conversation design. To learn conversation design in Voiceflow and the relationship between conversational components, reference this doc here.

The Intent step lets you create non-linear and flexible conversation paths within your project. The Intent step listens for the linked intent and triggers the conversation path. It operates as linearly as the Choice step, or as globally by allowing the user to trigger any open-intent available.

Because of this flexibility, Intents provide the flexibility to jump between conversations, Topics & Components/Flows and other Intents. You will notice dragging an Intent step makes it appear differently and as a chip-like UI as opposed to other Step(s) dragged from the sidebar.

This is because Intent steps operate a little differently than other block(s)/step(s):

Note: The Intent step requires no direct link and can be activated from anywhere within the project (as long as it's in contextual scope) by its linked intent. Unlike the Choice or Buttons step, you can't link to an Intent step. It only accepts outward connections.

Linking Intents to an Intent Step

Intent steps are constantly listening for their linked/trigger intent to be invoked by a user. When their linked intent is invoked, the Intent step is triggered and users are directed to its corresponding conversation path.

To link an intent to an Intent step, you can choose an existing intent or create a new intent. Once the desired/linked intent is selected, clicking the pencil icon can allow you to quickly edit your selected intent and its properties.

Intent Actions

Under the Intent step, you can perform these nested actions per trigger Intent:

  • Go to Block - Goes to a specific block referenced within the project
  • Go to Intent - Goes to an existing intent contained in the project
  • End - Ends the conversation at its current state
  • Set variable - Allows you to set and change the value of variables
  • API - Allows you to set up, configure and execute API calls & functions
  • Code - Allows you to set up and code custom Javascript functions & commands
Tip: Learn more about Actions in-depth and in detail here.

AVAILABLE FROM OTHER TOPICS TOGGLE

You can toggle whether the Intent triggers globally or locally to the specific topic the Intent is located within.

When toggled on, the intent acts as a 'Global' intent, meaning it can be triggered anywhere in the project; regardless of topic or Canvas location.

Pulling Entities from an Intent Step

Intents linked within an Intent step act like a normal intent and can thus pull entities from the user's utterance if the entity values have been defined.

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.

Purchase Step (Legacy)

Important Notice: This step functionality has been discontinued and is not available for new projects. We'd recommend using the Directive Step to send customised directives to Alexa. For more info on this, refer to the Alexa Documentation

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 (Legacy)

Important Notice: This step functionality has been discontinued and is not available for new projects. We'd recommend using the Directive Step to send customised directives to Alexa. For more info on this, refer to the Alexa Documentation

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 (Legacy)

Important Notice: This step functionality has been discontinued and is not available for new projects. We'd recommend using the Directive Step to send customised directives to Alexa. For more info on this, refer to the Alexa Documentation

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 (Legacy)

Important Notice: This step functionality has been discontinued and is not available for new projects. We'd recommend using the Directive Step to send customised directives to Alexa. For more info on this, refer to the Alexa Documentation

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 (Legacy)

Important Notice: This step functionality has been discontinued and is not available for new projects. We'd recommend using the Directive Step to send customised directives to Alexa. For more info on this, refer to the Alexa Documentation

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.

Other docs in this section