Enterprise Assistant Bot template for Composer
APPLIES TO: Composer v2.x
Many organizations are looking to provide a centralized conversational experience across canvases for their employees. The Enterprise Assistant template in Bot Framework Composer provides a starting point for those interested in creating a virtual assistant for common enterprise scenarios. This template demonstrates a common bot building architecture and high-quality pre-built conversational experiences through a root bot connected to multiple skills. This pattern allows for the consolidation of multiple bots across the organization into a centralized solution where a root bot finds the correct bot to handle a query, accelerating user productivity. With Composer, you have the flexibility to personalize the assistant to reflect the values, brand, and tone of your company.
The template is designed to be ready out-of-the-box with support for common employee channels such as Microsoft Teams and Web Chat. It includes features from the Core Assistant Bot template and two pre-built skills (Enterprise Calendar Bot and Enterprise People Bot), with more to come.
Note
Azure QnA Maker will be retired on 31 March 2025. Beginning 1 October 2022, you won't be able to create new QnA Maker resources or knowledge bases. A newer version of the question and answering capability is now available as part of Azure AI Language.
Custom question answering, a feature of Azure AI Language, is the updated version of the QnA Maker service. For more information about question-and-answer support in Composer, see Natural language processing.
This template includes QnA Maker features.
Conversational experience
Design principles
This template aims to deliver an experience that lets bots communicate like humans, rather than teaching humans how to talk to bots. It uses natural conversation to let users accomplish common enterprise tasks, such as managing calendars and searching for colleagues. Employees in your organization will save time and have a more accurate understanding of their schedules and the people in your organization.
The end-to-end interactions with the Enterprise Assistant Bot are based on the following principles:
UX Pattern: the chat-optimized flows follow a consistent pattern of displaying visual information using Adaptive Cards (from complex elements in a list to a detailed view card). When appropriate, follow up actions are included to promote smooth transitions between relevant tasks.
Natural conversation: every reply from the assistant (excluding card responses) has at least three variant Language Generation responses.
Hero channels: the template is optimized for a great experience in Microsoft Teams and Web Chat. It's also designed so that support for additional channels can be added.
Chit-chat style: professional chit-chat is included in the template, can be replaced with other out-of-the-box personality offerings. Learn more about Personality Chat.
Learn more about these design principles in the Conversational User Experience Guide
Scenarios
Here's an overview of the scenarios included in the Enterprise Assistant Bot template:
Example interactions
Find example interactions from the Enterprise Assistant Bot and connected skills below:
Welcome experience
Switch between skills
Call the Enterprise Calendar Bot to view and manage events
Call the Enterprise People Bot to answer questions about the people in an organization
Developer experience
The Enterprise Assistant Bot builds upon the features in the Core Assistant Bot template to include the following:
- Orchestrator recognition
- Connected skills
Orchestrator
The Enterprise Assistant Bot uses Orchestrator as the primary tool for language understanding to route incoming activities to the right intent handler or skill. Learn more about Orchestrator.
Connected skills
The template includes two connected skills out-of-the-box, the Enterprise Calendar Bot and Enterprise People Bot. These skills are hosted separately to demonstrate a pattern that is common in enterprise scenarios. Learn more about Skills.
Refer to the following documentation for more information about the pre-built skills:
Data usage and storage
The Enterprise Assistant project includes two enterprise skills, Calendar and People, which require access to users' Microsoft Graph data. The following sections outline what data is accessed, where it's stored, and the default data retention policy for each service. We recommend reviewing this information and adjusting the default configuration of your services to meet your organization's compliance standards.
Storage locations
This section outlines the different data stores used in a typical bot lifecycle, their purpose, and our recommendations for configuring them.
Azure Cosmos DB (Required)
Cosmos DB is the default and recommended provider for storing Bot State. Bot State is split into four different scopes, each with a different default lifetime. The default scopes are as follows:
Conversation State: For storing values that should persist over the lifetime of a conversation with a user on a given channel. In a channel with persistent conversations such as Microsoft Teams or Facebook Messenger, this could be stored indefinitely unless otherwise configured.
User State: For storing values that should persist over the lifetime of a user on a given channel. In a channel with persistent conversations such as Microsoft Teams or Facebook Messenger, this could be stored indefinitely unless otherwise configured.
Dialog State: For storing values that should persist for the length of a dialog. If a dialog is left in a waiting state in a channel with persistent conversations such as Microsoft Teams or Facebook Messenger, this could be stored indefinitely unless otherwise configured.
Turn State: For storing values that persist only for the current turn. A turn indicates the time between the user's response. Every time a new activity from a user is received, Turn State is reset. Turn State properties are never written to a persistent storage location.
For more information about the data accessed and stored in each skill, see:
Due to the potentially sensitive data stored by the skills in bot state, we recommend the following configuration for your Cosmos DB resource:
- Configure a default Time to Live (TTL) for your Cosmos DB container. This value should be adjusted according to your organization's standards. Learn more.
Application Insights (Recommended)
If you have Application Insights provisioned and configured in your Project Settings, each incoming and outgoing activity will be logged including varying properties depending on your settings. You can configure your telemetry settings in your Project Settings in Composer by toggling the following properties:
"runtimeSettings": {
"telemetry": {
"logActivities": true,
"logPersonalInformation": false
}
}
The logActivities
property controls whether activity will be logged in Application Insights, and the logPersonalInformation
property controls whether the logged activities will include the Activity.Text
, Activity.Speak
, and Activity.From.Name
properties.
By default, any telemetry stored in Application Insights will follow the default to retention duration. You may want to change this behavior depending on your organization's standards. Learn more.
Azure Blob Storage (Optional)
If you have transcript storage configured in your Project Settings each incoming and outgoing activity will be logged in Azure Blob Storage. This is useful for analysis of your bot's conversations but should be evaluated against your organization's compliance standards. You can configure transcript storage in your Project Settings in Composer by toggling the following property:
"runtimeSettings": {
"features": {
"traceTranscript": false
}
}
Next steps
To set up the assistant created using Enterprise Assistant Bot template in Bot Framework Composer, follow the steps in Enterprise Assistant Bot Tutorial.
Submit a feature request with your detailed enterprise scenario for future consideration.