Copilot Studio Topics: Design a Reliable Conversation

Topics are the conversation paths you build in Copilot Studio. Understanding how triggers, variables, branching, and fallback work together lets you design an assistant that handles real user input reliably.

Updated 5 min read

In Copilot Studio, a topic is the building block of a conversation. It defines what question or request the assistant handles, how it gathers information, what it does with that information, and what it says next. Every reliable assistant is a set of well-designed topics, each with a clear scope and a tested fallback for inputs that miss the mark.

The design choices inside a topic are worth recording, especially when the conversation involves a business process or a compliance requirement. Tools like fenbs keep those approved decisions in one place so the next person who updates the topic starts from the agreed version, not from guesswork.

What triggers a topic

Each topic has trigger phrases: the words or questions a user types that cause the assistant to start that topic. Good trigger phrases reflect how real users ask the question, not how the builder expects them to. Write five to ten phrases that cover the same intent with different words, and test each of them before publishing.

Copilot Studio also supports triggering topics from events, such as when a user starts a new conversation or when an activity arrives from an external system. For most first assistants, phrase triggers are the right starting point. Entity-based and event-based triggers add power and complexity at the same time.

Gathering input with question nodes

A question node asks the user for information and stores the response in a variable. Copilot Studio supports several entity types for responses: text, numbers, dates, multiple-choice options, and custom entities built from a list or a regular expression. Using the right entity type validates the input before passing it to an action.

Keep question nodes focused on one piece of information at a time. An assistant that asks three questions in a single message often gets an answer to only one of them. Use multiple question nodes and let the conversation flow naturally.

Storing information in variables

Variables hold the values gathered during a conversation and pass them to actions or message nodes. Copilot Studio has topic variables, which reset when the topic ends, and global variables, which persist across topics within the same session. Use topic variables for step-specific data and global variables only for information that multiple topics genuinely need.

Name variables descriptively. A variable called vendorName is easier to maintain than one called var1. When a flow action receives a variable, the name is what appears in the flow's input mapping, so a clear name saves confusion when the flow is updated months later.

Branching with condition nodes

A condition node checks a variable value and routes the conversation to a different path depending on the result. Use conditions to handle different user answers, to separate the happy path from the exception path, and to enforce business rules such as approval thresholds.

Keep branching logic as shallow as possible. A topic with four levels of nested conditions is hard to test and hard to maintain. If you find the branching getting deep, consider whether some of the paths should be separate topics that the current topic redirects to.

How fenbs helps

Record the process decisions behind each topic in fenbs

When a topic reflects a business rule, such as which amount triggers a review or which response applies to which user type, record that decision in fenbs with the reasoning and the name of the person who approved it. When the rule changes, you update the topic and the decision together, and every connected assistant reads the current version.

Create a free account

Free for one person · No credit card · Works with Claude, ChatGPT, Cursor and more

Handling inputs that miss all triggers

The fallback topic handles any message that does not match a trigger in the assistant. A well-designed fallback is informative: it tells the user what the assistant can help with, offers a way to reach a person, and does not pretend to understand something it did not. A fallback that just says "I didn't understand that" without an alternative path is a dead end.

Review the inputs that route to your fallback after the first week of real use. Patterns in those inputs usually point to a missing trigger phrase, a topic that needs to be added, or a common user question that the assistant was not designed to answer.

Testing topics before publishing

Use the test chat in Copilot Studio to verify that each trigger phrase routes to the right topic and that each condition branch follows the intended path. Then ask someone who was not involved in the build to try the assistant with their own words. First-time users will type things the builder did not anticipate, and those inputs are the most valuable tests.

Log every question that produced an unexpected result. Some will reveal missing trigger phrases. Others will reveal that the question node's entity type rejected a valid input. A third category reveals questions that genuinely need a new topic.

How to do this with fenbs

Use fenbs to track the decisions behind your conversation design and the improvements that testing reveals.

  1. Create a free account and add a project for the assistant you are building.
  2. Add a task for each topic you plan to design. Include the intent, the trigger phrases to test, and the business process it supports.
  3. Record the branching rules and thresholds as Decisions in fenbs so they can be found and updated independently of the Copilot Studio canvas.
  4. After user testing, add a task for each unexpected fallback input that reveals a gap. Prioritize by how often each pattern appeared.
  5. Save progress before handing the assistant to a new maintainer: what each topic does, what decisions drove its design, and what still needs testing.

fenbs does not connect to Copilot Studio's conversation analytics. Use the built-in analytics dashboard to see topic resolution rates and fallback rates. fenbs keeps the decisions and the improvement backlog in one record.

Questions people ask.

How many topics should a Copilot Studio assistant have?

Start with as few as you need to handle the core use cases. A focused assistant with five well-tested topics is more reliable than one with thirty half-tested ones. Add topics as user testing reveals real gaps, not as a way to cover every possible question before launch.

What is the difference between a topic trigger and a global trigger?

A topic trigger is a phrase that starts a specific topic. A global trigger is an action that fires regardless of which topic is active, such as canceling a conversation or reaching a live agent. Global triggers take priority over topic triggers.

Can a topic call another topic?

Yes. You can redirect to another topic from within a topic using a redirect node. This is useful for breaking a long conversation into reusable sections or for routing different paths to a shared ending, such as a goodbye or an escalation.

What entity types does Copilot Studio support for question nodes?

Copilot Studio includes built-in entities for common types such as numbers, dates, email addresses, and yes/no answers. You can also create custom entities using a list of expected values or a regular expression for more specific input formats.

How do I handle a user who changes their mind mid-conversation?

Add a global trigger for a cancel or restart intent that clears the session and returns to the greeting topic. Without it, a user who changes their mind is stuck in a topic that no longer applies to them.

More in AI agents at work

All AI agents at work articles

Start with one thing.

Free for one person · No credit card · Works with Claude, ChatGPT, Cursor and more

There is nothing to set up first. Write one line and you’ve started.