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.
More on how to link your topics here.
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