What is the difference between system topics and custom topics in Microsoft Copilot Studio? Both shape the conversation, but they serve different purposes.
I have been working with Copilot Studio for a while, and this is one of the questions that comes up when developers first explore the Topics page. In this article, I’ll explain the distinction with examples from a test agent and show where classic and generative orchestration affect the picture.

What is a topic?
A topic defines a portion of an agent’s conversation. It can contain messages, questions, conditions, variables, and calls to tools or flows.
Think of a help desk. Some behavior is common across requests: introducing the service, recovering from a problem, or offering a handoff. Other behavior belongs to a specific task, such as requesting leave or resetting a password.
System topics provide built-in conversation behavior. Custom topics let you design the conversations and tasks your agent needs. In a generative agent, topics work alongside tools and knowledge, so not every response needs a dedicated topic.
System topics: built-in conversation behavior

System topics are supplied by Copilot Studio. You cannot delete them, although supported options let you customize their conversation nodes or turn topics off. Treat changes carefully because these topics support shared behavior across the agent.
The example agent includes Conversation Start, End of Conversation, Escalate, Fallback, Multiple Topics Matched, On Error, Reset Conversation, and Sign In. Eight is not a universal count. The list depends on the agent experience and configuration.
For instance, End of Conversation and Reset Conversation can run through a redirect. Conversation Start introduces the agent, but its behavior depends on the channel: in Teams it runs when the user first adds the agent, rather than at every new chat session. On Error also should not be described as handling every internal platform failure.
Can you modify system topics? Yes, but available changes depend on the topic. Some support configurable trigger phrases, so “you can change the content but never the trigger” is too broad.
Reference: Microsoft Learn — Use system topics.
Custom topics: the conversations you design

Custom topics are the topics you create, whether from a blank canvas or with AI-assisted authoring. Predefined samples can also appear in the Custom tab.
In my test agent, the custom list includes Greeting, Goodbye, Start Over, Thank You, and three Lesson topics. Those names describe this example; they are not a guaranteed starting list for every agent.
The Lesson topics provide useful examples of messages, conditions, variables, and entities. You can edit or remove these samples as you develop the agent.
What can you build with custom topics?
- A leave request conversation that collects dates and a reason.
- A store-hours response that asks which location the customer means.
- An IT ticket flow that collects the issue details and returns a confirmed ticket number.
- A password-reset conversation that guides an authenticated employee through approved steps.
You can adjust the conversation, configure its trigger, collect information in variables, branch on conditions, call tools or Power Automate flows, and redirect to another topic. Custom topics can also be turned off or deleted when no longer needed, subject to dependencies and platform limits.
Reference: Microsoft Learn — Create and edit topics.
How topics are triggered
The phrase-based triggers in the screenshot are useful examples, but custom topics are not limited to phrases. Topic category and trigger type are separate concepts.
Classic orchestration
The default trigger is User says a phrase. You provide example phrases, and the agent uses language understanding to identify a relevant topic.
For a store-hours topic, you might configure:
- When are you open?
- When are you closed?
- Store hours
- Daily opening hours
A similar question may also match, but test variations rather than promising that any particular wording will always select the topic.
Generative orchestration
The default trigger is The agent chooses. The topic’s name and trigger description help the agent decide when to use it. Other available triggers handle messages, activities, events, or explicit redirects.
Reference: Microsoft Learn — Set topic triggers.
A better way to remember the distinction
System topics: built-in conversation behavior.
Custom topics: conversations and tasks you can design.
Use this distinction instead of “system equals events, custom equals phrases.” A trigger explains when a topic runs; it does not, by itself, tell you which category it belongs to.
Practical examples
Example 1. Customize the introduction
Suppose you want an introduction that explains what the agent can help with. Start by examining Conversation Start. Adjust the wording and add appropriate conditions if needed. Test the published channel before relying on the introduction to appear for returning users.
A separate Greeting custom topic can respond to a user saying “hello” in the example agent. This is a different requirement from automatically introducing the agent.
Example 2. Improve unanswered-question handling
When the agent cannot answer a question, inspect the actual route in your configuration. Fallback and, where present, Conversational boosting are relevant built-in topics. Do not assume that adding a generative answer to Fallback is the right solution for every agent.
Test the current behavior first, then provide a useful recovery path: ask the user to rephrase, suggest supported tasks, or offer an approved handoff. Check that your changes do not create a loop.
Example 3. Build an HR or IT task
For “request leave” or “raise an IT ticket,” create a custom topic. Collect the required inputs, validate them, confirm the request where appropriate, and call the approved backend operation.
Keep the response tied to the result: show a ticket number only after creation succeeds, and give a clear recovery message if it fails. Topic routing does not replace backend permissions.
Are default topics the same as system topics?
“Default topics” is an informal description of topics that arrive with an agent. It can include built-in system topics and predefined custom samples.
Use the category shown in your agent instead of assuming that a familiar name must be a system topic. Greeting and Goodbye appear under Custom in the supplied example, while older chatbot experiences can categorize familiar topics differently.
Quick comparison
| Feature | System topics | Custom topics |
|---|---|---|
| Origin | Built into Copilot Studio | Created by makers, AI-assisted authoring, or included as samples |
| Purpose | Shared conversation behavior | Specific conversations and tasks |
| Trigger | Depends on the built-in topic | Depends on orchestration and trigger configuration |
| Editing | Supported customization varies by topic | Editable conversation and configuration |
| Deletion | Not supported | Supported; check dependencies first |
| Count | Varies by experience and configuration | Varies by samples and authored topics, within platform limits |
| Examples | Conversation Start, Fallback, Escalate | Request Leave, Store Hours, Raise IT Ticket |
Try it in your agent
Open Topics and compare the System and Custom tabs. Inspect one built-in topic, then create a small custom topic such as Store Hours. Check the trigger your agent uses and test several ways of asking the same question.
Step 1 Compare the topic categories
Open Topics and compare the System and Custom tabs.
Step 2 Inspect a system topic
Open one built-in topic and review its trigger and conversation nodes.
Step 3 Create a custom topic
Use the Store Hours example and check the trigger configured for your agent.
Step 4 Test different questions
Try several ways of asking about store hours and check which topic runs.
That exercise makes the distinction easier to see: the category tells you the topic’s role, while the trigger tells you how the conversation reaches it.
Have you noticed a different topic list in your agent? Share the agent experience and orchestration mode in the comments so we can compare examples.
No comments
Post a Comment