Overview of Bot Framework Composer

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

Microsoft Copilot Studio now supports these features without Composer.

Enhance your bot by developing custom topics with Bot Framework Composer and then adding them to your Microsoft Copilot Studio copilot.

Composer is integrated into Microsoft Copilot Studio to allow developers and business users to build bots together. Composer lets you extend your bot with Bot Framework functionality, including:

  • Adaptive dialogs
  • Language Generation (LG)
  • Regular expressions (RegEx)
  • Adaptive Cards

Using Composer with Microsoft Copilot Studio lets you access conversational memory and context, including the variables defined in Microsoft Copilot Studio. This memory and context lets you create topics to handle interruptions, cancellations, and context switching. You can also add Adaptive Cards to display interactive elements like images and videos, forms, and more in the bot.

There are various prebuilt functions and expressions in Composer for you to use, and the ability to define multiple variations of a phrase for the bot to randomly select at runtime.

Custom topics added with Composer are deployed, hosted, and executed together with the rest of Microsoft Copilot Studio copilot content, and don't require any more Azure hosting.

Important

Composer integration isn't available to users who only have the Teams Microsoft Copilot Studio license. You must have a trial or full Microsoft Copilot Studio license.

Prerequisites

Understand key Composer terms

Composer uses a different set of terms to describe similar concepts used in Microsoft Copilot Studio. Here are some key terms to understand:

  • dialog: Dialogs are the basic building block in Composer and serve as containers for triggers. Each dialog represents a portion of the bot's functionality that contains instructions for what the bot does and how it reacts to user input. To learn more about dialogs, see Dialogs as conversational building blocks in Composer.

  • main dialog: A bot's main dialog is the first dialog that appears in the bot explorer and is created when you import your Microsoft Copilot Studio copilot into Composer. The main dialog should never be deleted, as it corresponds to your Microsoft Copilot Studio copilot.

  • trigger: Triggers are the main component of a dialog and let you catch and respond to events. Each trigger has a condition and a collection of actions to execute when the condition is met. You can think of triggers as the equivalent of topics in Microsoft Copilot Studio. To learn more about triggers, see Triggers.

  • action: Actions are the main components of a trigger that enable you to send a response, create and assign values to properties, manipulate the conversational flow, manage dialogs, and many other activities. You can think of actions as the equivalent of nodes in Microsoft Copilot Studio.

Composer features not supported with Microsoft Copilot Studio

The following Composer features aren't supported with Microsoft Copilot Studio:

Unsupported feature Additional information
LUIS (language understanding) Recognizer Default Recognizer in Composer is set to Microsoft Copilot Studio Natural Language Understanding (NLU).
Bot Framework Orchestrator Bot Framework Orchestrator isn't supported in Composer for Microsoft Copilot Studio.
Custom recognizer Custom recognizer isn't supported in Composer for Microsoft Copilot Studio.
Bot skills Can't invoke Bot skills in Composer content meant for Microsoft Copilot Studio.
QnA Maker This feature isn't available in Composer for Microsoft Copilot Studio.
OAuth Login and User Sign Out These types of actions aren't supported in Composer for Microsoft Copilot Studio.
Dialog Inputs and Outputs Dialog Inputs and Outputs aren't supported in Composer for Microsoft Copilot Studio.
Entity detection in trigger phrases in Composer Can't use # getUserName my name is {username=userName} in Composer.
Testing in Bot Framework Emulator All Composer content should be published and then tested in Microsoft Copilot Studio.

Guidelines for creating content for Microsoft Copilot Studio in Composer

There are a few key guidelines to follow when using Composer to create content for Microsoft Copilot Studio:

  • The topics from your Microsoft Copilot Studio bot are displayed in Composer as dialogs. You can't edit these dialogs in Composer; selecting them opens the relevant topics in Microsoft Copilot Studio for editing.

    Screenshot of the list of topics in Composer that were imported from a Microsoft Copilot Studio copilot.

  • Microsoft Copilot Studio global variables are accessed in Composer by using the virtualagent scope. This scope doesn't appear in Composer's property reference menu, but you can access it by entering an expression directly.

  • Publishing content in Composer makes the changes available for testing, but doesn't automatically publish your Microsoft Copilot Studio copilot. To publish your copilot changes to channels, use the Publish feature in Microsoft Copilot Studio.

  • Use a Begin a Microsoft Copilot Studio Topic action to call Microsoft Copilot Studio topics in Composer.

    Screenshot of Composer's add action menu.

  • You can add new Composer triggers of any kind to your main (also known as "root") dialog.

  • You can send messages and ask questions from these Composer triggers.

  • You can't use the Regular expression recognizer in the main dialog. Using the Regular expression recognizer in the main dialog prevents you from publishing your Composer content to Microsoft Copilot Studio. However, you can use the Regular expression recognizer in any other Composer dialog.

  • You can add any Composer events and triggers to newly created dialogs.

  • On the Bot Responses page, the Common section should be empty. Using any assets there results in validation errors and prevents you from publishing your Composer content to Microsoft Copilot Studio.

    Screenshot of the common bot responses section empty.

  • Each Composer dialog has its own bot response (.lg) and language understanding (.lu) resources. For example, a bot that speaks English (US) and has a dialog named dialog1 has one dialog1.en-us.lg file and one dialog1.en-us.lu file.

  • The main dialog in Composer should never be deleted, as it corresponds to your Microsoft Copilot Studio copilot. The main dialog can have zero or more triggers.

  • You can capture telemetry in Composer dialogs and triggers and use Application Insights to analyze it with Kusto queries for adaptive dialogs. For more information, see Capture telemetry with Application Insights.

For a deep-dive on Composer dialogs, events, triggers, and how to create advanced bot content with Bot Framework, refer to the following resources:

References

To learn more about developing in Composer, see these resources: