Understanding System Topics vs Custom Topics in Microsoft Copilot Studio

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.

Copilot Studio topics: system behavior and custom conversations.
Figure 1. Copilot Studio topics: system behavior and custom conversations.

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 in the example agent. Your topic list may differ.
Figure 2. System topics in the example agent. Your topic list may differ.

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 and sample topics in the example agent.
Figure 3. Custom and sample topics in the example agent.

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