Create and edit topics in your Power Virtual Agents bot


There is additional information available for people using Power Virtual Agents (preview).

Select the version of Power Virtual Agents you're using here:

In Power Virtual Agents, a topic defines a how a bot conversation plays out.

To author topics, you can customize provided templates, create topics from scratch, or get suggestions from existing help sites.

A topic has trigger phrases and conversation nodes. Trigger phrases are phrases, keywords, and questions that a user is likely to type that relate to a specific issue. Conversation nodes define how a bot should respond to a trigger phrase and what it should do.

The AI uses natural language understanding (NLU) to parse what a customer typed and find the most appropriate trigger phrase or node.

For example, a user might type "Open hours" into your bot. The AI matches that to the Store hours topic, begins a conversation that asks which store the customer is interested in, and then displays the hours the store is open.

The Test bot pane shows how the bot conversation plays out at every step. You can use the Test bot pane to fine-tune a topic without having to exit the Power Virtual Agents portal.

For bot and topic limits, see Quotas, limits, and configuration values.


Use system and sample topics

When you create a bot, several topics are created for you.

Screenshot of the Topics list showing lesson topics and system topics.

These automatically created topics fall into two categories:

  • Lesson topics help you understand simple to complex ways to use nodes to create bot conversations.

    You can edit lesson topics or delete them entirely.

  • System topics are topics you're likely to need during a bot conversation.

    You can't delete or disable system topics or edit their trigger phrases. However, you can customize the nodes on the authoring canvas. We recommend that you don't customize these topics until you're comfortable creating an end-to-end bot conversation.

Create a topic

  1. In the navigation menu, select Topics.

    Screenshot of the Power Virtual Agents navigation pane, highlighting Topics.

  2. Select New topic.

  3. The Trigger phrases pane should open. If it doesn't open, select Trigger phrases.

    Screenshot of the topic authoring canvas, highlighting Trigger phrases.

  4. Specify one or more trigger phrases for the topic in the Trigger phrases pane.

    Screenshot of the topic authoring canvas, highlighting adding trigger phrases.

    You can specify more than one trigger phrase for a topic. You can include punctuation in a trigger phrase, but it's best to use short phrases rather than long sentences.

  5. Select Details to open the topic details pane.

    Screenshot of the topic authoring canvas, highlighting Details.

  6. Enter a Name for your topic and, optionally, a Display name and Description.

    The bot uses the Display name when it needs to know which topic the person is asking about.

    The Description is never shown to users. Use it to describe the purpose of the topic to yourself and other bot makers.

    Screenshot of the topic details pane showing Name, Display name, and Description.

    You can also rename the topic by selecting its name and entering a new value.

    Screenshot of the topic authoring canvas, highlighting the topic name.

  7. Select Save to add the topic to the topics list.

Design the topic's conversation path

  1. In the topic list, select the topic you want to edit.

    Power Virtual Agents opens the topic in the authoring canvas and displays the topic's trigger phrases. The authoring canvas is where you define the conversation path between a customer and the bot.

    For existing or system topics, several nodes are created automatically. You can edit these nodes just as you would edit other nodes.

    When you create a new topic, a Trigger phrases node and a blank Message node are inserted for you.

  2. To add a node, select Add node (+) on the line or branch between or after nodes.

    Screenshot of adding a node.

  3. To move or change the paths between a node, drag the node anchor. It looks like a small circle on top of the node. When you drag the node anchor, you'll see a dotted line indicating the original path. You can also double-click the anchor and then select the new place for the anchor (you won't see a dotted line).

    Screenshot of moving a node's anchor.

Insert nodes

You have several options when you add a node. Each option has a specific node or nodes that will be inserted in the conversation path.

When you add a node after the Trigger Phrases node or between Message nodes, you can:

  • Ask a question
  • Call an action
  • Show a message
  • Go to another topic

Screenshot of adding a node between existing nodes from the options.

After the last node, you can also:

  • End the conversation

Additionally, you can Add a condition when you insert a node after a Question node.

Ask a question

  1. To have the bot ask a question and get a response from the user, select Add node (+) to add a node, and then select Ask a question to add a new Question node.

    Screenshot of adding a new question mode.

  2. Enter the question phrase in Ask a question.

  3. In the Identify list, select an option for the user's response.

    The options determine what the bot should listen for when the user responds. For more information, see Use entities in a conversation.

  4. Depending on what you selected in Identify, enter the options the user should have.

    For example, if you selected Multiple choice options, enter the choices the user can specify in Options for user. Each choice is presented to the user as a multiple choice button, but users can also type their answer.

    The conversation editor creates separate paths in the conversation depending on the customer's response. The conversation path leads the customer to the appropriate resolution for each response. You can add nodes to create branching logic, and specify what the bot should respond with for each variable.

  5. (Optional) Save the user response in a variable to be used later.


Define synonyms for each option to help the bot determine the correct one if it isn't clear what the user's response should map to.

  1. Select the menu icon at the top of the Question node, and then select Options for user.

    Screenshot of selecting options for users.

  2. Select the Synonyms icon for the option you want to add additional keywords to.

    Screenshot highlighting the synonyms icon.

  3. Add the keywords individually. When you've entered all the synonyms you want, select Done.

Call an action

To call Power Automate Flows and insert authentication nodes, select Call an action.

If you've enabled voice-based capabilities for your bot, you'll see more actions.

Show a message

  1. To specify a response from the bot, select Add node (+) to add a node, and then select Show a message to add a new Message node.

  2. Enter what you want the bot to say in the text box.

    You can apply some basic formatting, such as bold, italics, and numbering. You can also use variables that you defined elsewhere in your bot conversation.

Redirect to another topic

  1. To have the bot move to a different topic, select Add node (+) to add a node, and then select Redirect to another topic.

  2. Select the topic that the bot should divert to. For example, you might send the user to a topic about the closure of a store if they ask about the store's hours.

    Screenshot showing redirection to another topic node with options for other topics.

You can consider the redirected topic as a "subtopic".

In the authoring canvas for the original topic, you can insert additional nodes under the subtopic's node.

When the path for the subtopic is finished, the bot will return to the original topic. The bot will then follow the nodes that are under the subtopic's node.

Screenshot of the authoring canvas showing nodes under a redirected topic node.

If you redirect to any of the following system topics, however, the entire conversation will end:

  • End of Conversation
  • Confirmed Success
  • Confirmed Failure
  • Goodbye
  • Escalate
  • Start over (also resets any global variables)

End the conversation

When the conversation ends, you can have a survey ask users if their question or issue was answered or resolved. The response is collected on the customer satisfaction analytics page.

You can also have the conversation handed over to a live agent if you're using a suitable customer service portal, such as Omnichannel for Customer Service.

  1. At the end of a response that resolves the user's issue or answers the question, select End the conversation.

    Screenshot showing options for ending a conversation.

    • To end with a customer satisfaction survey, select End with survey.

    • To insert a hand-off node that will link with your configured hand-off product, select Transfer To Agent.

      (Optional) Enter a private message to the agent.

      Transfer To Agent.

Add a condition

  1. To add branching logic based on variables, select Add node (+) to add a node, select Add a condition, and then select Branch based on a condition.

  2. Select the variable that will determine whether the bot conversation should branch at this point.

    For example, if you've set up user authentication, you might specify a different message if the user is signed in (which may have happened earlier in the conversation).

Delete nodes

Select the menu icon at the top of the node's title, and then select Delete.

Screenshot highlighting the node menu button and the Delete button.

Test and publish your bot

Test your bot when you make changes to your topics, to make sure that everything is working as expected.

After you've designed and tested your bot, publish it to the web, mobile or native apps, or Microsoft Bot Framework channels.