Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Create and organize topics in a way that's manageable and maintainable for your context
Copilot Studio offers much flexibility when it comes to topic management. While there's no one size fits all, it's a good practice to keep in mind the different ways that topics can be triggered:
Topics trigger based on the user utterance and the natural language understanding (NLU) model.
You can think of these topics as your entry point topics.
If trigger phrases overlap multiple topics, include a catch-all topic (or disambiguation topic) that redirects to other topics through slot filling and clarifying questions.
Thanks to entity extraction, the conversation can skip clarifying questions and flow directly to the appropriate topic, without further input from the user.
Topics trigger when called from a redirect action.
These topics can contain conversation and logic nodes, can be called by multiple topics, and can have input and output variables. They're ideally reusable, bite-size, topics.
A topic can also be both.
For example, a topic can trigger through intent recognition or by an explicit redirect.
Events can trigger topics.
For example, custom events, inactivity, and so on.
For more information, see the full list of topic triggers.
Tip
In the following example, you associate trigger phrases to two main topics that then break down their logic into multiple topics that you call by using redirect actions.
Some topics can be called by multiple other topics. For example, the End of Conversation topic.
Thanks to slot filling and entity extraction, if a user says "I need to unblock my credit card," the Card topic is triggered, and both Debit/Credit and Block/Unblock questions are skipped, since CardType and OperationType are deduced from the trigger phrase. Then, the appropriate Credit Card child topic is automatically called, without the user providing any further input.
Create bite-size topics
Large topics can be challenging to maintain and update. Break down your agent logic whenever possible, especially if multiple topics share parts of your agent conversation logic.
Topics don't need to all have trigger phrases. Topics can redirect to other topics and pass variable information back and forth.
Tip
It's often more manageable to create many bite-size topics rather than a few large topics. This approach also helps make triggering more effective by clearly mapping trigger phrases to the specific topics that address those areas.
The number of topics is a conversational design preference. You can have a few bigger topics or several smaller topics.
Tip
For intents that are more complex to recognize, such as generic words like "request" or "issue," consider splitting the topics. These words could mean different things, so include adequate trigger phrases.
Create reusable topics
When multiple topics share conversation messages or logic nodes, group them in a new topic instead of duplicating their content. This way, a single update to that topic reflects on all the topics that redirect to it.
Tip
If you call the same Power Automate cloud flow from multiple Copilot Studio topics with the same or a similar sequence of nodes, turn these nodes into a dedicated topic.
Avoid topic overlap
Monitor and remove ambiguity between topics
When NLU triggers topics, avoid overlap problems. Frequent calls to the Multiple Topics Matched system topic (also known as "did you mean") often reveal overlap problems.
You can prevent these problems by reducing the overlap in intent meaning between the trigger phrases of different topics.
Tip
For topics triggered by trigger phrases, you should:
- Compare the trigger phrases across your topics and remove ambiguous pairs.
- Avoid using the same words in different topics trigger phrases.
- Analyze the user utterances that trigger a "did you mean" topic.
Create a disambiguation topic
When multiple topics have trigger phrases that are too similar, you can avoid topic overlap by creating a disambiguation topic.
Tip
For example, consider scenarios such as "unblock credit card" or "unblock debit card," where users might just say "unblock card" and the NLU model can't determine the topic to trigger. You can call a generic Card disambiguation topic, use an entity slot filling question for CardType, and launch the appropriate topic accordingly.
Use entities to reduce the number of topics
Avoid duplicating logic when you can store variations in variables. For example, instead of creating similar topics such as:
- Order Pizzas
- Order Burgers
- Order Drinks
Create:
- One topic for
Order - One entity for
FoodType, withPizzas,Burgers, andDrinksas values.