Create conversational actions for Microsoft Copilot

Important

Power Virtual Agents capabilities and features are now part of Microsoft Copilot Studio following significant investments in generative AI and enhanced integrations across Microsoft Copilot.

Some articles and screenshots may refer to Power Virtual Agents while we update documentation and training content.

Note

Actions were previously known as plugins. Some articles and screenshots may refer to actions while we update documentation and training content.

Microsoft Copilot provides functionality to engage with content and resources from across your organization. In some situations, answers and interaction with external systems are required. With Copilot Studio, you can author a conversational topic and publish that as a Copilot action. Once your tenant admin approves the action, it can be added to your organization's Microsoft 365 chat experiences.

You can create a conversational action that receives the user's query (stored in the Activity.Text variable), processes it by completing one or more operations, and then sends one or more responses back to the user in the chat.

Important

You can't use conversational actions created in Copilot Studio as plugin actions.

What is a conversational action and how does it work?

The conversational system for Copilot uses orchestration logic and large language models to help the user achieve their goals. This system interprets the user's request, determines the best course of action, and then activates the appropriate system, action, component, or series of components. Finally, the system generates a result and returns it to the user.

A conversational action built in Copilot Studio enables you to extend your app's behavior. You can create new abilities that aren't natively in Copilot, like calling a specific API, applying sophisticated business logic, or accessing data sources.

A traditional component model creates a hard-coded integration point with the copilot. For conversational actions, the maker gives descriptive text to the Copilot orchestrator about the action's abilities. The orchestrator can then make its own decision about when the action would be most useful and carry out the logic defined for the action.

Prerequisites

  • End users must have a license to use Copilot for Microsoft 365.
  • Your Power Platform tenant must be configured to enable publishing actions, as described in the Copilot for Microsoft 365 article Build plugins using Microsoft business applications.
  • The Microsoft 365 tenant admin needs to enable the Microsoft Copilot Studio Integrated Apps category in the Microsoft Admin Center.

Note

The tile in the Microsoft Admin Center was previously Dynamics 365 and Microsoft Copilot Studio, and was split into two, Dynamics 365, and Microsoft Copilot Studio. Only the latter is required for this feature to work.

Important

In this release, there are some limitations:

  • Your topic will not be able to interact (ask questions of) the user, and can only process the incoming query from the user (in the variable Activity.Text) and send a response.
  • Responses will be limited to text. No media or adaptive cards will be supported.
  • In this preview, Copilot Studio can't authenticate the user, so SharePoint and OneDrive sources for generative answers won't be functional.
  • This release is limited to English language copilots.
  • All users of Copilot within your organization will be able to interact with the action, the action will not support authorizing the user itself.
  • Copilot Studio integration with Copilot is enabled by default. That means that actions created in Copilot Studio will show up for users under "Copilot Studio" or "Power Automate" even if the tenant admins have not explicitly deployed the app for end users. This might change in future.

An admin can always block actions from showing up for your users by blocking the app in Microsoft 365 Admin Center.

Create a basic conversational action to publish to Microsoft Copilot

Your topic, when triggered within a Copilot chat, uses the system variable Activity.Text as an input. Activity.Text represents the user's question. The chat processes the question text—for example, passing it to generative answers—and then returns the result as one or more messages. These messages could include the response that comes from generative answers or messages from message nodes. Multiple messages can be included and sent separately to form the output.

The following steps help you create a new conversational action within Copilot Studio. You author basic capabilities and publish them to the Admin Center.

  1. On the side navigation pane, select Copilots.

  2. Select the Copilot experience you wish to extend. The Overview page for the specific Copilot appears.

  3. Select the Actions tab.

  4. Select + Add action. A menu of available action types appears.

  5. Select New action. You are presented with a menu of available action types for the new action.

    Screenshot showing choose new action type for Copilot for Microsoft 365

  6. Select Conversational to create a conversational action. A configuation window appears letting you set some basic configurations for the conversational action.

  7. Choose a name and primary language. Optionally, you can also specify a solution and schema name to use. Otherwise, a default solution and schema name are selected for you.

  8. Select Create to proceed. Your new conversational action is created. This will take several seconds. When it is done, you are dropped into the conversational authoring canvas.

With your conversational action created, you can next proceed to refine the action using the topics editor. When you are done, you can publish your action.

Refine your conversational action example

Let's look at an example of refining a conversational action.

You can use the topic editor to define the logic for the conversational action. The process is similar to the process for configuring any other topic. This could include calling an action, initiating a generative answers request, or sending a message to the user.

Conversational actions only support logic that doesn't require user interaction.

For this example, let's use a generative answers node to search through web content in a specified web site and provide an answer to the user in the Copilot.

  1. Select Edit the topics under Refine to edit your conversational action.

    Screenshot showing revise or publish your conversational action

    You are presented with some guidance on how to configure the conversational action.

    Screenshot showing configure conversational action in topic editor

  2. Before authoring further, set the name of the topic in the top panel above the authoring canvas. This name is visible to the user and admin in the Copilot and Microsoft 365 admin center respectively.

  3. In the Trigger node description, provide a clear description of how the conversational action can help the user and what it can do. Unlike other trigger node descriptions, this one has functional purpose and is used by Copilot to determine whether to invoke your action or not. Describe what your action does for the user and what it returns.

  4. To add the generative answers node, select the plus on the canvas under the Trigger node, then select Generative answers under the Advanced tab of the popup menu.

  5. For the Input field, invoke the variable picker by selecting the arrow in the Input box.

  6. Choose the system variable Activity.Text which represents the user's last query to Microsoft 365 Copilot. This query was what the user asked in Microsoft 365 chat which caused Copilot to invoke the action.

  7. Select the Data Sources editor in the center of the Create generative Answers tile. A Create generative answers properties configuration window appears.

  8. Under Classic data and Data sources within the Public websites field, enter a link to a public website that has content you want for your copilot. This web content gets used to answer user questions. Alternatively, under Knowledge sources, select + Add knowledge to open the Add available knowledge sources dialog to add a public website there. For more information on adding knowledge, see Add knowledge to a copilot.

    Note

    The content source must be a public website. Make sure Bing can find and index this website.

  9. Once the link is added (don't forget to hit "+" after entering the URL), close the properties panel.

  10. Optionally, add one or more messages to the user. You can use a message node, or more generative answer nodes, as needed.

  11. If your action needs to receive input parameters from a connector or pass output parameters to a connector, you can Add input and output variables.

  12. Finally, select Save to save your conversational action.

Publish your conversational action to Copilot

Publishing your conversational action creates a new action in the Dataverse registry for your tenant. Once available there, your tenant admin needs to approve your action to be available to users.

In Copilot, your conversational action is labeled as Conversational action name in the library. With this in mind, make sure to choose your conversational action name for readability.

To publish your conversational action:

  1. First, create, edit, and save your conversational action as described in the prior sections.

  2. On the action Overview page, select Publish.

  3. Select Publish. A message appears prompting you to confirm your intention.

  4. Finally select Publish again. The publish should complete quickly. The actual availability in the Microsoft 365 admin center can take a few minutes. If an error occurs, try again. If the error continues, file a support ticket in the Power Platform admin center.

  5. Your admin can find the Copilot Studio integrated app in the Microsoft 365 admin center under Settings, then Integrated Apps. Deploy/block is at this category level only.

    Important

    In this release, Copilot Studio integration with Copilot is enabled by default. That means, actions created in Copilot Studio will show up for users under "Copilot Studio" or "Power Automate" even if the tenant admins have not explicitly deployed the app for end users. This may change in the future.

    An admin can always prevent conversational actions from showing up for users by blocking the app in Microsoft 365 admin center.

  6. Once your tenant admin approves the integrated app, it should appear in the user's list of actions in their Copilot experience UI.

Once the action is enabled, your user can pose questions in Copilot chat, and see the action invoked and returning the most relevant results.

Note

To remove your conversational action from the catalog, in conversational action details, clear the Status checkbox, save your conversational action, and then re-publish, which will remove it from the Dataverse registry and Microsoft Copilot app catalog.

Considerations

Interacting with the Copilot is likely to be a different experience than you might have had integrating with previous systems.

  • Copilot will always rewrite your answers with its own voice. It's not possible in this preview to have the content passed through unchanged to the end user.
  • The description of your conversational action is critical to how reliably it will be invoked. The description teaches the orchestrator what your action is good at and what answers it can provide. Be sure to use clear prose when writing the description, and consider experimenting with changes to get the best outcome.