Manage topic inputs and outputs

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.

Topics can have input and output parameters. When a topic redirects to another topic, you can use these parameters to pass information between topics.

If your copilot uses generative AI to decide how to respond to users, it can automatically fill inputs, before running the topic, by using conversation context or generate questions to collect values from the user's response. This behavior is similar to how generative slot filling for actions works.

Topic inputs and outputs can share values with other topics and actions in the same generated plan.

Add inputs and outputs

To add inputs or outputs for a topic, select the Details in the navigation bar at the top of the authoring canvas. Alternatively you can select Details from the context menu for a topic on the Topics list page.

Once the Details pane is shown, you can navigate to the Inputs or Outputs tabs, and then create new input or output variables by selecting Create a new variable.

For every input and output parameter, you must enter a name, select a data type, and enter a description for the corresponding variable.

If your copilot uses generative AI to decide how to respond to users, more properties are available for input variables. Specifically How will the copilot fill this input? determines how the copilot fills this variable with a value before running the topic. By default, each input is set to Dynamically fill with the best option. The copilot tries to populate the value from available context, such as extracting a value from the user's message, or previous conversation. If no appropriate value is found, it generates a question to ask the user for a value. You can choose to override an input with a value instead of asking the user. To override an input parameter, select Set as a value, under How will the copilot fill this input?, and enter the desired value. This value can be a literal value, an existing variable, or a Power Fx formula.

To ensure your copilot captures the correct type of value for the input, you must also specify an entity type under Identify as.

Screenshot of the Details pane with a new input variable being added

There are a number of additional settings that can be configured for inputs, that can control the copilot's behavior when asking for a value or validating a user's answer.

One of these properties, Should prompt user, is only available for topic inputs. It determines if the copilot should try to fill the variable with a value before executing the topic. This property is enabled by default.