Last week, the product team at Voiceflow launched Topics and Components (also known as Flows), a better way to organize and design complex conversations, all in one project file.
When you’re designing a conversation for common ground, anticipating and understanding user needs is the number one priority for conversation design. Rather than having the assistant force a user down a strict decision tree, modern conversation designers need to be enabled to create conversational experiences that answer the user’s question, even if the question isn’t always contextual to the purpose of the conversational assistant.
When designing for common ground in this way, your conversation designs can start to get complex, hard to organize, and expand across your design canvas in a way that’s not sustainable.
That’s why we introduced Topics and Components (also known as Flows) - the better way to organize your project based on different global intents as topics and work faster by reusing strings of blocks as components (flows).
If you’re new to Voiceflow and are coming from other conversation design tools, building your entire conversational experience in one project could be a newer interface than you’re used to. This guide will walk you through how to make the most out of the entire Voiceflow canvas so that you can maintain better organization within your conversation designs and work smarter not harder when it comes to reusable components (flows) throughout your designs.
Best Practices For Using Topics
How to Organize Your Topics Using Global and Local Intents
When you think about leveraging topics for your projects, think about the overarching intents you want to organize your project by - thinking about both local and global intents.
Global intents are necessary to create a Topic - they’re an intent that can be accessed from anywhere on the canvas and linked from any other topic.
Local intents are specific to the topic itself and wouldn’t be linked to from any other topic in your flow.
To better understand global and local topics - let’s use the In-Car Assistant as an example. Your global intents in this scenario would be along the subjects of phone calls, navigation, playing music, and contacting roadside assistance. Within those global intents, you can have local intents.
The global intent of “music” can be linked to from any other topic because your user can always ask the assistant to play their music.
However, a local intent in the music topic would be the user responding “no” or “stop” when they want the music to turn off. Because that utterance is specific to the music intent, you would not want to link other topics to that intent.
How To Link Your Topics To Each Other Using Global Intents
Once you’ve indicated that an intent is global by toggling on the setting that says “Available from other topics” in the intent block settings, your assistant will be able to jump from topic to topic when those global intents are triggered anywhere in the conversation.
This linking is also helpful for organizing your project - simply by clicking the topic in the Layers sidebar, the canvas will snap to the selected Intent’s location. This can keep your canvas clean so that you don’t have to re-build frequently used parts of your design across every topic you create.
Best Practices For Using Components
How to Organize Your Frequently Used Steps Into Components
Components (Flows) should be used to organize the workflows that happen after an intent is triggered. Let’s go back to the in-car assistant example - you can see here that the “Anything Else” component is triggered at the end of each topic. Once the assistant has completed the initial task triggered by the intent from the user, regardless of topic, it will trigger the “anything else” flow.
💡 Something to be mindful of is that when you modify one component, all of the instances of that component across your project will be updated
What happened to Flows?
Great question - Components function the exact same way as flows so don’t be worried about your project breaking before you migrate your project to this new format.
Eventually, components will be able to be used at the workspace level whereas flows are only able to be used at the project level.
We found that flows were being used as folders for different areas of focus in users’ conversation designs. They were also being used to link different flows together. Because of this use-case, we incorporated this functionality into Topics. This helps shift the focus to topics being an intent and subject based system of organization.
That way you can easily look through each of your larger topic groups, see which global and local intents are being used, AND link to global intents from other topics.
Can I turn a topic into a component and vice versa?
You can turn a component into a topic simply by right-clicking the component and selecting the “Convert to Topic” option.
Right now you cannot convert a topic into a component, however, you can easily turn your topic into a component by selecting the blocks you’d like to include in your component and hit the Create Component button at the top of your project.
Can I access components across all of the projects in my workspace?
As of right now (February 2022), components are only project-based at the moment. However, our next update for this feature will include the ability to use components across all of the projects in your workspace. Stay tuned for updates!
How do I convert a legacy project from Flows into having topics and components?
To migrate your existing projects into the newer version to have access to topics and components, all you have to do is simply duplicate your project from the main dashboard.