
If you’ve ever wondered how to easily open a topic and change the trigger type so that the topic is solely used for a redirect, this blog post will show you how to do it.
By default, every new topic comes wired up with an OnRecognizedIntent trigger. That makes sense: it’s built to handle user utterances. BUT what if you want this topic to run only when it’s redirected to from another topic or maybe even an action node?
You’ll need to swap that trigger from OnRecognizedIntent to OnRedirect. And a super easy way to do that exists by simply swapping out the trigger or editing the YAML (code) manually.
So, let’s walk through how to do this with both options.
No Code
How do you swap the trigger?
It’s super easy and quick to swap the trigger to OnRedirect, but where on the UI to do this can often be easily missed, especially if you’re new to the product.
Open up the topic you want to edit (even a brand new topic) then click the circle with arrows pointing in both directions (as shown below) then you will see the triggers available. You can then select It’s Redirected To, this will use the OnRedirect trigger, allowing you to use this topic ONLY when it’s redirected to.

Code
How do you edit the YAML?
Personally, I believe it’s important to know what’s going on behind the scenes with the code, so you should also learn how the YAML structure works. Firstly, open up the topic you want to edit (even a brand new topic) then click the three dots on the top right (…) and select Open Code Editor (shown below):

What You Get by Default
When you create a new topic in Copilot Studio, behind the scenes you’ll find this in the YAML:
kind: AdaptiveDialog
beginDialog:
kind: OnRecognizedIntent
id: main
intent: someIntent
That’s standard. It’s waiting for the user to say something like, “I want to check the status of my order,” or whatever utterances (phrases) you mapped to that intent.
But what if you don’t want your topic to be triggered by natural language at all?
Let’s say you want to send the user to this topic only from a specific action, maybe from a condition in another topic? You don’t want it listening for user input you simply want it listening for redirection.
Changing the Trigger to OnRedirect
To do that, with the YAML open for your topic you then change to this:
kind: AdaptiveDialog
beginDialog:
kind: OnRedirect
id: main
You no longer have INTENT in the YAML, and you change KIND to OnRedirect.
Now you can save and close the code editor. When you open the topic again in Copilot Studio, it won’t have an intent mapped anymore, it will show as a topic that can be redirected to ONLY.

How to Redirect
So now you have your topic that can be redirected to, how are you supposed to redirect to it?
You will want to open the topic you want to redirect from and add a new node, select Topic Management, then select Go To Another Topic and finally select the topic you want to redirect to (shown below):

This will then display the redirect node and the topic you’ve selected, and once it’s triggered it will redirect to that topic.

Why This Matters
This pattern is especially useful when you want to create reusable components or “helper” topics that aren’t tied to specific user inputs. It’s a clean way to modularise your conversations & break logic into reusable chunks.
For example:
- Create a redirect-only topic that confirms order details.
- Create a topic that asks for a post code and checks a database, but only when another topic needs that step (it can be reusable across multiple topics).
- Set up error-handling or escalation logic that redirects from multiple places in your conversation tree.