Optimizing trigger phrases and natural language understanding
What are trigger phrases in Copilot Studio
Trigger phrases train your copilot's natural language understanding (NLU) model.
Trigger phrases are configured at the topic level and indicate to the copilot for what typical user utterances a specific topic should be triggered.
Trigger phrases typically capture the way an end-user would ask about a problem or issue. For example, "problem with weeds in lawn"
Tip
When creating a new topic, a maker only needs to provide a few sample phrases (ideally between five and ten). When the copilot is used, the AI will parse what the user says and trigger the topic closest in meaning to the user utterance.
The importance of the triggering context
Copilot Studio NLU behaves differently based on the conversation state, which can sometimes lead to different behaviors for the same user utterance.
The following are the different conversation states:
- Start of the conversation: the copilot has no context, so a user utterance is expected to either: trigger a topic directly (intent recognition), trigger a "did you mean" (Multiple Topics Matched) disambiguation question among intent candidates if there are multiple matching topics, or go to a fallback topic if the intent isn't recognized.
- After a "did you mean" (Multiple Topics Matched) is triggered: NLU optimizes to match one of the suggested topics, with higher thresholds to move out of the presented options.
- Switching out from a current topic: If the NLU Is trying to fill a slot In a topic, and the user is giving a user query that could trigger another topic (topic switching).
On punctuation
The NLU model Is agnostic to punctuation, including question marks.
Creating new trigger phrases
If possible, start with real production data over making up your own trigger phrases. The best trigger phrases are the ones similar to actual data coming from end users. These phrases are the ones that users ask a deployed copilot.
There's no need to leave specific words out: the model is designed to give less weight to unnecessary words, such as stop words (words that are filtered out before the processing of natural language data because they're insignificant).
Optimizing trigger phrases
# | Tip | Examples |
---|---|---|
1 | Have at least 5-10 trigger phrases per topic Iterate and add more as you learn from users. |
Find my nearest store Check store location Find a store Find me your nearest location Store near me |
2 | Vary sentence structure and key terms The model automatically considers variations of those phrases. |
When are you closed Daily open hours |
3 | Use short trigger phrases Fewer than 10 words. |
When are you open |
4 | Avoid single-word trigger phrases This increases weight for specific words in topic triggering. It can introduce confusion between similar topics. |
Store |
5 | Use complete phrases | Can I talk to a human assistant |
6 | Have unique verbs and nouns or combinations of those | I need customer service I want to speak with a consultant |
7 | Avoid using the same entity variation You don't need to use all of the examples from the entity value. The NLU automatically considers all the variations. |
I want to order a burger I would like a pizza I want chicken nuggets |
Balance the number of trigger phrases per topic
Try to balance the number of trigger phrases between topics.
Tip
That way, the NLU capabilities don't overweight a topic versus another based on the configured trigger phrases.
Assessing the impact of your changes
When updating trigger phrases, or when merging or splitting topics, there are multiple ways to assess the changes:
- An immediate change in copilot behavior, which can be observed through the "test copilot" canvas (for example, a topic that's now triggering or not based on trigger phrase updates).
- A change after copilot deployment and facing traffic, which translates to higher or lower deflection (non-escalation) rates. This can be observed from the analytics tab in Copilot Studio.
Tip
You can test topic triggering and how your NLU model performs against test data in bulk, by leveraging the Copilot Test Framework.
Although the underlying features and components used to build the Copilot Test Framework (such as interacting with the Direct Line API) are fully supported, the Copilot Test Framework itself represents sample implementations of these features.
Our customers and community can use and adjust the Copilot Test Framework to implement bulk testing. If you face issues with the Copilot Test Framework, report the issue here: https://aka.ms/PVASamples. (Microsoft Support won’t help you with issues related to these samples, but they will help with related, underlying platform and feature issues.)