Microsoft Copilot Studio - Implementation Guide (1.4)
Microsoft Copilot Studio - Implementation Guide (1.4)
Implementation Guide
Kick-off Go-Live
Regular touchpoints
Success story
Go-live publishing
Implementation
readiness checks
Review Submit your story here:
aka.ms/ShareAIStory
With more immersive UX and next-generation AI capabilities, copilots are the new chatbots.
World Class UX Declarative Rich Response Intuitive Ease of use Copilot Assistance
Logic + Automation Power Fx Generative Answers + Actions Power Automate Bot Framework skills
Connected Azure AI
Microsoft Teams Dynamics 365 1000+ Connectors
experience Bot Service
Security +
Trusted identity Full visibility Advanced RBAC Granular DLP control
Governance
Environment
Channels
Azure Conversational
Language
Understanding (CLU) Generative Answers, SaaS
(optional) Actions, and Builder
Custom Topic
Entity Entity AI Builder
Plugin Action
Dynamic chaining:
LLM-based multi-intents
recognition (optional) System Topic
Microsoft Security
Power Platform
Copilot
Microsoft 365
GitHub…Copilot
Sales Copilot
Copilot for
Copilot for
Enterprise
Copilots
Copilot
Custom
Service
Copilot
Windows
Microsoft Copilot Studio
Extend and customize 1st party copilots | Build custom Copilots
Bot Power
Bot Service Azure AI Azure AI
Framework Platform AI Builder
Channels Studio Search
/ SDK Connectors
Why do we ask these questions?
Solution architecture • To have the big picture of your copilot
project and its integration in a broader
technical and functional landscape.
Provide an architecture diagram with the overview of the technical implementation
Information we’re looking for:
• Architecture diagrams or blueprints
• Functional and technical overview of the
copilot and its integration in the broader
Example answer (you can delete this) technical landscape (other Power Platform or
Azure services, internal APIs, etc.)
Channels
Intranet
Copilot Studio
HR Copilot
• 41k employees
• Handles HR,
Finance, and Generative
answers
IT questions.
Teams
Power Automate
SharePoint
Websites
Challenge #1
Example answer (you can delete this)
Connecting to on-premises resources that are not exposed to the
public internet.
Challenge #2
Example answer (you can delete this)
Deploying to a WhatsApp channel.
Challenge #3
Example answer (you can delete this)
Allowing copilot end-users to download the conversation transcript at
the end of the chat session.
Language Natural Language Understanding
Intent recognition and slot filling
Azure CLU integration
Topic structure
Handling unrecognized intents
Localization & languages
Miscellaneous
Why do we share this?
Natural Language Understanding • NLU (Natural Language Understanding) is a
subfield of NLP (Natural Language
Processing) that specializes in the machine's
Choosing the right option for intent recognition and entity extraction ability to comprehend and make sense of
human language in a valuable way, focusing
on understanding context, sentiment, and
intent.
Standard NLU model Custom Azure CLU model Dynamic chaining • In Copilot Studio, topic or action triggering
can be done in different ways: customers can
Supports additional languages, with Uses a GPT large language model. choose to override the standard NLU model
native models. with Azure CLU (Conversational Language
Can handle multiple intents and
Default, out-of-the-box, model that Understanding) – the modern equivalent of
Allows to further customize the chain topics and/or plugins.
comes pre-trained, with many LUIS – or can be fully replaced with
intent triggering model for better Automatically generate questions for
predefined entity types. dynamic chaining, a GPT LLM-based one.
intent recognition or to address missing inputs and answers complex
Configuration is done by adding specific industry requirements. • Azure CLU is a feature of Azure AI
entities and questions from the
trigger phrases and custom entities Language.
Allows for complex entity extraction conversation context.
(either closed lists with values and
(e.g., of the same type). Configuration is done by simply
synonyms, or regular expressions).
Entity extraction can also leverage describing topics, plugin actions, and
Copilot Studio standard NLU. inputs/outputs. Useful resources:
• Trigger phrases best practices
• Slot filling best practices
Single intent recognition per query.
• Copilot Studio supported languages
Single intent recognition per query. Configuration is done in Azure and
• Azure CLU supported languages
Cannot be extended. involves additional costs. As it’s a generative AI feature, the
licensing burn rate of messages is • Azure CLU limits
Slot-filling multiple entities of the Has its own service limits that need
to be evaluated. higher than in regular topic • Azure CLU pricing
same type in the same query requires
disambiguation for each (e.g., from triggering. • How to use CLU as your NLU (video)
Azure CLU intents and Copilot
and to cities) Studio topics must be carefully kept • Dynamic chaining (preview)
in sync.
Why do we ask these questions?
Intent recognition and slot filling Trigger phrases:
• Trigger phrases train your copilot's natural
language understanding (NLU) model.
Leveraging native capabilities for better intent recognition and efficient conversations • It’s important to appropriately configure
them to make sure that the right topic triggers
for the user utterances.
How are you planning to • When a copilot is uncertain what topic to
trigger, it can suggest up to 3 potential topic
define the topics trigger Example answer (you can delete this) candidates (Multiple Topics Matched topic)
phrases? or go to Fallback if no topic is identified.
From an existing FAQ base and from agent chat transcripts.
Entity extraction and slot filling:
• Slot filling relates to the use of entities that
let a copilot acquire and use information
more easily by identifying and extracting
them from the user query.
What is your expected use of • For example, when a user asks:
entities (prebuilt, closed list, Example answer (you can delete this) “I’d like to order 3 large blue t-shirts”,
regular expressions). the Natural Language Understanding (NLU)
Regular expressions to identify an order ID, prebuilt entity for email, can immediately understand:
and closed list for operation type and synonyms for each. Topic is Order.
Quantity is 3.
Color is Blue.
Size is Large.
Item Type is T-Shirt.
Do you plan to test topic And the related questions be skipped.
triggering with test
Example answer (you can delete this)
utterances? Useful resources:
Yes, bulk testing to make sure the relevant topics are triggered based
on a set of test user utterances. • Trigger phrases best practices
• Slot filling best practices
Why do we ask these questions?
Azure CLU integration • You can integrate a Conversational
Language Understanding (CLU) model with
a Copilot Studio copilot.
Overriding the standard NLU model with Azure Conversational Language Understanding • Azure CLU intents must be mapped with
Copilot Studio topics.
• Copilot Studio prebuilt entities can be used
in conjunctions with Azure CLU entities.
Do you plan to use Azure
• Using Azure CLU requires separate Azure
CLU? If yes, why? Example answer (you can delete this) resources and involves separate costs.
What benefits are you
Using Azure CLU to support additional languages, industry specific
expecting? dictionaries and complex entity extraction. Useful resources:
• Azure CLU integration overview
• Azure CLU best practices
• Azure CLU limits
Are you also doing custom • Azure CLU pricing
entity extractions with Azure Example answer (you can delete this)
CLU? Why?
To do silent or lucky slot filling without having to ask questions and
to handle unsupported scenarios in Copilot Studio such as source and
destination city in the same phrase.
End of Conversation
Why do we ask these questions?
Topic structure • Topics are discrete conversation paths that,
when used together, allow for users to have a
conversation with a copilot that feels natural
Creating and designing efficient topics and flows appropriately.
• While there's no one size fits all, given how
topics can be triggered, it's a good practice to
distinguish between:
What is your approach to Topics that will trigger based on user
designing topics? Example answer (you can delete this) utterances. These can almost be seen as
your entry points topics. If you have
A few custom topics for key scenarios with relevant trigger phrases trigger phrases that overlap multiple
and redirects, with a parent-child topic structure. Unrecognized topics, consider having a catch-all topic
intents will trigger generative answers and fallback. and then redirect to other topics after
clarifying questions. With entity
extraction and slot filling, clarifying
questions can be skipped if already
Do you plan to use answered.
disambiguation topics? Example answer (you can delete this) Topics that will trigger when called
from a redirect action, activity or
Yes, for user account operations with clarifying questions on the event. These can be called by multiple
operation (e.g. create, unlock, suspend, etc.) and system (e.g. SAP, topics and can have input and output
ServiceNow, Microsoft, etc.) variables. They're ideally reusable, bite-
size, topics.
A topic can also be both, triggered
through intent recognition or by an
How are you avoiding explicit redirect.
duplicating topic content Conversational boosting and fallback:
Example answer (you can delete this) topics that trigger when no matching
multiple times?
Whenever a dialog path needs to be repeated, creating reusable topics topic is triggered based on a user query.
that can be called by a parent topic before resuming the parent topic
conversation logic once the child topic is complete. Useful resources:
• Topics best practices
Why do we ask these questions?
Handling unrecognized intents • The Fallback topic gets triggered when
Copilot Studio doesn't understand a user
utterance and doesn’t have sufficient
Answering for unplanned user queries confidence to trigger any of the existing
topics.
• If Generative Answers are enabled on the
copilot, the Conversational Boosting topic
How are you planning to also triggers on the unknown intent event
manage unrecognized intents? Example answer (you can delete this) and triggers before the Fallback one.
• There are many ways to handle
First by going to the Conversational Boosting topic to look for the
unrecognized intents: using Generative
answer in corporate resources (SharePoint sites and public websites) Answers to look for the answer on various
and if no result to a fallback ChatGPT experience. data sources and/or using the Fallback topic
to integrate with other systems. For example,
question answering in Azure Cognitive
Service for Language allows you to offload
Are you integrating with an large volumes of question-and-answer pairs.
external system as part of Example answer (you can delete this) It also has a chitchat model to handle
fallback? If yes, how? random questions to the copilot.
The Azure OpenAI GPT-4 model is called through an HTTP request. • While it’s important to leverage the
It uses a custom system prompt to offer a compliant ChatGPT-like Conversational Boosting and Fallback
experience. capabilities, it’s also important to make sure
that the core scenarios and topics of your
copilots are property handled through
custom topics and their outcomes defined
What is the expected % of (resolved, etc.).
conversations hitting fallback?
Example answer (you can delete this)
25% initially, and these are regularly reviewed to enrich existing
Useful resources:
topics or create new ones. • Generative Answers
• Using the Fallback topic
Why do we ask these questions?
Localization & languages • There are multiple ways to address copilot
localizations. Understanding your
requirements will help make better
What languages should your copilot speak? architecture recommendations.
• The main approaches are:
One copilot per language.
One copilot for multiple languages, with
What languages and markets translations provided as part of the
should your copilot support? Example answer (you can delete this) copilot configuration. Translations need
to be updated each time the copilot is
Primarily US English (70% of end-users), Spanish (20%), French, updated or when new content is added.
Portuguese (Brazilian) and Dutch (Belgium Flemish). One copilot for multiple languages, with
translations provided real-time, at
runtime, through a relay copilot sitting
between the user and the copilot. This
allows deploying more languages
Do you plan for a single rapidly, but it also adds a dependency on
copilot multi-languages Example answer (you can delete this) a relay copilot and a real-time translation
copilot, or for one copilot per layer (e.g., Azure Service Copilot and
language? A single copilot enabled for multiple languages, with condition logic Azure Cognitive Services Translator).
based on the end-user language so that some topics are only available
for specific regions. Useful resources:
• Supported languages
• Azure CLU integration
Should the translations be set • Real-time multilingual copilot sample
during configuration or real-
Example answer (you can delete this) • Configure multilingual chatbots
time (i.e., provided at • How to make multilingual copilots (video)
runtime)? Not yet, but this could be considered to deploy to more markets more
rapidly. • Make generative answers multilingual (video
)
Why do we ask these questions?
Miscellaneous • Sessions can be configured to last for more
than the default 30-minute by using the
inactivity trigger.
Miscellaneous conversation design questions and requestions
Useful resources:
Do you have specific • Inactivity trigger
requirements on session Example answer (you can delete this) • Conversation Design Institute
timeout? (i.e., how long a
We need chat sessions to last up to 7 days on the Teams channel.
copilot session can last)
Missed opportunity
TOPICS BUILT
Why do we share this example?
Generative AI is changing conversational AI • Now, with Generative AI, companies are
increasingly only building a few, business
critical topics where they want tight control
After generative AI over the dialog.
• And for everything else, they're just pointing
to knowledge sources and allowing the bots
to talk over those corpuses.
• That means vastly increased support
coverage for anything a user could ask, and
far less topics that need to be handled by
Manually authored topics
human agents.
Manually author business-critical topics • But it also means that maintaining topics is
quickly with Copilot Studio far less onerous - as the information changes,
the copilot answers change automatically.
• There are no dialogs to continually update
and keep relevant. So, this dramatically
BUSINESS CRITICALITY
reduces costs.
TOPICS BUILT
Generative answers processes and considerations
Public •Up to 4 URLs, but the list can be dynamic.
1 Query rewriting • Websites must be Website •Max 2 subpages depth (/en/help/), no direct pages.
Optimizing the user question indexed by Bing.
for search Public data • Bing being a global •One configuration ID, but it can be set using a formula.
Bing
service, no regional •Azure costs covered by Microsoft
Last 10 turns are leveraged Custom
boundary is possible. •Up to 400 URLs, custom ranking options.
for contextualization Search
•Max 2 subpages depth (/en/help/), supports direct pages.
• Requires the user to be authenticated with Entra ID to make delegated calls to the Graph API.
2 Content retrieval
• Matching files (max 3 MB) are retrieved to get detailed snippets to summarize.
Querying each source
SharePoint
• Up to 4 SharePoint or OneDrive for Business sites (but the list can be dynamic).
Internal only
• Security trimming: returned results only include content the user has read access to.
Top 3 results per source • Users eligible to Microsoft 365 Semantic Index benefit from better results.
• Returns results from the linked Azure AI Search index (keyword, semantic, and vector search).
3 Summarization
Azure OpenAI • Not a passthrough to Azure OpenAI – generative answers summarization and validation apply.
Answer summarization from •
on your data Connection isn’t delegated: no security trimming, no authentication requirement for the user.
retrieved content • Can index content from public URLs/web addresses (useful if regional boundary is required).
Citation generation
• Files (max 3 MB) are stored in Dataverse file storage and indexed with Dataverse Search.
Answer personalization with Uploaded • Not possible to offer a URL to the source documents in the citations.
custom instructions
documents • Documents are uploaded at the copilot level. Gen Answers node will search across all uploaded
documents or none, when disabled at a node level.
Validation at each step
Moderation of harmful, malicious, • Requires a step to query the data source – using cloud flows, connectors, or HTTP requests.
uncompliant, or copyrighted answers • Results are passed as inputs to the generative answers to summarize an answer for the query.
Custom data • Input data needs to be in table format, with 3 properties: Content (typically snippets of relevant
Grounding validation and content) , ContentLocation (optional, typically a URL) and Title (optional).
hallucination removal
Generative AI security and compliance considerations
The large language models (LLM) Copilot Studio depends upon are the foundation models trained by OpenAI.
Generative answers uses GPT-3.5 Turbo, but as new models outperform previous ones, they can be updated.
Models are hosted on internal Azure OpenAI services, honoring the Microsoft Services Trust boundary.
Models are accessed and used following Microsoft Responsible AI principles and policies.
Custom instructions can be added to generative answers to influence format and filters.
Data storage and processing for Copilot Studio generative AI capabilities may result in data movement across
regional boundaries. When local data storage and processing aren’t available in the region, environment settings are
available to disable features requiring Azure OpenAI or Bing Search, preventing data movement.
Copilot Studio does not collect, nor provide any customer data, for use in the training of LLMs.
For operations purposes only, conversations are stored temporarily in a service-operated and secured store so that
authorized Microsoft employees via Secure Access Workstations (SAWs) with Just-In-Time (JIT) access requests may
respond to support requests. Access can be controlled through Customer Lockbox.
Generative AI capabilities log additional troubleshooting data, but only when the thumbs up or down reactions are
used by the copilot author in the Copilot Studio test pane.
Given the existing control layers and to avoid further logging of customer data, Azure OpenAI abuse monitoring is
disabled for Copilot Studio generative AI features.
Why do we share this example?
New design patterns with generative AI • This shows how generated responses are
plugged into a dialog manager (Copilot
Studio) to ensure that you remain in control
New paradigm in topic responses of the user experience while allowing for
authored experiences that are key functions
of your copilot, scripted responses that are
key for managing the answers you want
Authored Topics scripted (such as marketing-controlled
responses) work in conjunction with
STAGE 1 Unified Copilot-assisted Authoring generated responses allowing the enterprise
Authoring Canvas to remain in full control of the experience.
• This allows for an end-to-end enterprise
conversational platform to build effective
FAQ / Scripted Responses and managed experiences that delight
customers, while reducing the overhead and
*…STAGE 2 cost of maintaining fully scripted
Copilot Studio Topics FAQ via Question
Answering experiences of the past.
Topic examples:
Generated Responses
• Authored Topics
…STAGE 3 “How many miles do I have in my account?”
Generative
Large Language Models
Answers • FAQ / Scripted Responses
“Why are all flights currently grounded?”
• Generated Responses
Escalation “What type of snacks are available on your
…STAGE 4 flights?”
Omnichannel Live Agent Hand-off • Escalation
“Can I talk to an agent?”
Disambiguation Topic
• It’s still a good idea to have generative
Child Topic Standard dialog answers also configured in the
Conversational boosting topic that triggers
Utterance Intent Recognition
before Fallback, to try to catch and answer
Child Topic Escalation user queries with broader data sources before
they get to Fallback.
If no matching Condition-based SharePoint sites • While planning for generative answers, it’s
topic trigger phrase Child Topic
Generative Answers important to plan for follow-up questions
(should they remain in context of the
ServiceNow Custom Data previous answer or trigger a new topic?) and
Service Desk KB
No Intent Recognized #1 Generative Answers how you will measure, track, and validate
that the generated answers are accurate and
Variable-augmented Public answer the user questions.
Customer FAQ
Website Generative Answers
If no matching
Conversational
Boosting content Azure OpenAI On Your Data Useful resources:
Conversational Boosting
Generative Answers
• Data sources: public websites,
Bing Custom Search, SharePoint/OneDrive,
No Intent Recognized #2 Fallback ChatGPT-like experience Custom Data, uploaded documents,
Azure OpenAI on your data.
Why do we share this example?
Azure OpenAI reference architecture • Using your own Azure OpenAI service?
Consider reviewing the Azure OpenAI
Landing Zone.
Azure OpenAI Landing Zone reference architecture • Azure Landing Zones provide a solid
foundation for your cloud environment.
When deploying complex AI services such
as Azure OpenAI, using a Landing Zone
approach helps you manage your resources
in a structured, consistent manner, ensuring
governance, compliance, and security are
properly maintained.
• The Azure OpenAI Landing Zone is a
reference architecture that integrates a
variety of services to create a seamless
infrastructure for running OpenAI
workloads.
Useful resources:
• Azure OpenAI Landing Zone reference archi
tecture
Why do we ask these questions?
Generative answers • By default, generative answers is available
in the ‘Conversational boosting’ system
topic that triggers just before ‘Fallback’,
Dynamically generate answers real-time based on content you choose when an intent isn’t recognized.
• Generative answers nodes can however be
used throughout your custom and system
topics, and the data sources be different and
What data sources are you even set dynamically.
using for generative answers? Example answer (you can delete this)
Do you use custom Yes, over public websites, internal SharePoint sites, and ServiceNow
instructions? knowledge bases. Useful resources:
Instructions to return friendly and brief answers (40 words max). • Generative answers
• Generative answers node
• Generative answers with Bing Custom Searc
Where, in your topic structure, h (video)
do you leverage generative • Generative answers with custom data – Servi
Example answer (you can delete this) ceNow (video)
answers? • Generative answers with uploaded document
Mostly in custom topics that will contain trigger phrases and entity
s (video)
questions that will direct the user towards the right data source.
• Customize responses with generative answer
Conversational boosting will use public FAQ websites. s (video)
Internal Conversation Cloud flow 15,000 5,000 Use of the on-premises data gateway to
Directory API Start topic connect to an internal API.
Weather API Weather topic HTTP 500 100 GET request to a REST-based API
Teams Meeting Plugin 1,500 300 Create a Teams meeting based on
Booking topic conversation inputs.
Bot Framework Travel topic Skills 2,000 400 Leveraging existing Bot Framework Skill to
Skill book travels.
SAP Every 24h Cloud flow 20,000 - Daily batch synchronization of the product
catalogue from SAP to Dataverse.
Why do we ask these questions?
Power Automate and HTTP/Connectors • Power Automate offers great integration
capabilities, with more 1,000 native
connectors or ways to create your own
Leveraging the 1,000+ connectors to extend your copilot custom connectors to your APIs.
• For a good end-user experience, cloud flows
triggered from Copilot Studio must execute
quickly so that the user doesn’t have to wait
How are you optimizing your too long for the copilot to answer.
cloud flows and Example answer (you can delete this) • Cloud flows triggered from Copilot Studio
HTTP/Connector requests to have a maximum of 100 seconds to return to
When connecting to the target system, the query filters the results and
make sure they run as fast as only returns the columns that will be used.
Copilot Studio before they time out.
possible? • You can make HTTP requests or use
connectors directly from Copilot Studio, to
avoid invoking cloud flows and optimize
performance.
Do you call cloud flows that
don’t have any connector as Example answer (you can delete this) Useful resources:
part of their actions? • Call a flow as an action
If yes, why? No.
• Perform HTTP requests
• Power Automate Standards by MVP Matthe
w Devaney
Useful resources:
• FlowActionTimedOut error code
• MVP Matt Jimison's
example of handling cloud flow timeouts in
Copilot Studio
Why do we share this example?
Handling cloud flow timeouts example #2 • Cloud flows can continue to run after
outputs are returned to Copilot Studio.
• Place long running logic after the “Return
Return results to the copilot and let long-running logic continue value(s) to Copilot Studio” step.
• When deploying to Microsoft Teams, the
‘send proactive message’ message feature
could be used to have the bot send the
message to the user, once it is ready on the
Power Automate side.
Useful resources:
• FlowActionTimedOut error code
• Notify bot users in Teams with proactive me
ssages
Channels and Deployed channels
Useful resources:
• Publish a copilot to various channels
• Key concepts in the Bot Framework Direct L
ine API 3.0
• Add a Copilot Studio bot to Azure Copilot S
ervice channels
• Available Azure Copilot Service channels
• Channels and Community / Botkit Adapters
Why do we ask these questions?
Deployed clients • There are many available options to deploy a
copilot interface to users.
• Depending on the channel and client, not all
List the different clients the for the copilot Markdown and adaptive card formats may
be supported.
Chat Copilot Studio Microsoft Bot Engagement Hub (i.e., agent assist).
Opportunity for the bot to do skill-based
Canvas Direct Line APIs Framework Skill & APIs
routing to the right agent.
• Cons:
× Engagement hub must be sufficiently
2 3 extensible to support this pattern.
× Many hops between systems.
× Requires a pro-dev and PaaS approach
End-user Live agent for the Bot Framework skill.
× Heavy overhead and integrations of the
hub with Copilot Studio.
× Live agent is limited to using a
1.1 End-user chats with the Copilot Studio copilot through the chat canvas (the standard one compatible chat canvas.
or a custom one that integrates with Copilot Studio Direct Line APIs). × No ability for channel provider to
customize their agent messages to show
2.2 When an escalation event occurs, Copilot Studio triggers a Bot Framework skill. up in the canvas.
× Agent takeover / supervisor capabilities
3.3 The skill relays messages back and forth between the Contact Center live agent and the likely aren’t possible.
exclude specific environments to allow required capabilities Allow/block permissions to create, read, update or delete
Useful resources:
(e.g., allow unauthenticated usage). copilots through security roles. Dataverse tables: • Security and governance in Copilot Studio
T
Enable/disable generative answers at bot level. Share/unshare copilots with other users for authoring.
• Disable self-service trial sign-ups: set
Enable/disable intelligent topic authoring at user level. Users with a System Administrator or System Customizer
AllowAdHocSubscriptions to $false
Set bot authentication (None – if allowed, Only for roles can read and update all bots and transcripts.
• Share a copilot for collaborative authoring
Teams/Power Apps, and Manual – i.e., app registration)
• Configure web channel security
Enforce Direct Line Web Channel security at bot level.
Why do we share this?
Security, copilot, & user management • Entra ID groups should be leveraged to fully
drive user license assignment, environment
access, and security roles assignment.
Best practices to secure your Copilot Studio project • You should apply a most-restrictive
approach by default and relax requirements
on an exception basis.
Assign licenses to users through Entra ID groups
Grant the ‘Microsoft Copilot Studio User’ license to users through a group instead of individual assignment.
Useful resources:
Manage user access to environments through Entra ID groups
Only bot authors and a just-in-time admins should have access to your environments and data stores. • Assign licenses to a group
• Control user access to environments
Manage security role assignment through Entra ID group teams • Use group teams to assign security roles
Within each Dataverse environment, leverage group teams to assign security roles to users.
• Manage data loss prevention policies
Apply restrictive Data Loss Prevention policies to your environment • Disable the ability to publish copilots with g
DLP policies can be applies to your environments to block all connectors that are not required by the project as well as any bot enerative answers and actions
channel or setting that isn’t useful for the project (e.g., unauthenticated use, use skills, etc.). • Configure data movement across geographic
locations for generative AI
Review and only enable tenant, environment and copilot settings that are relevant • Configure web channel security
Tenant admins can disable publishing of GenAI-powered bots. Environment admins can disable GenAI features that require • Share and collaborate on chatbots
data movement outside of their region. Bot authors can require secured access for Direct Line. Internal chatbots can be limited
• Connecting and authenticating to sources
for use by specific groups instead of being available to all.
• Use environment variables for secrets
Review and tighten security of all integrations • Authentication variables
Connections should require strong authentication. Secrets should be stored in a secure location (e.g., Azure Key Vault). • Pipelines in Power Platform
Leverage delegation, impersonation or filtering for data access in the context of an end-user. • Activity logging
Have a gated release process to production • Customer-managed encryption
Deploying changes from dev to test and to prod should require reviews and be part of a gated process. • Customer lockbox
• IP firewall
Explore additional Power Platform, Dataverse and Entra ID security features • Virtual networks
E.g., audit logs, customer-managed keys, customer lockbox, IP firewall, network isolation, multi-factor authentication,
• Microsoft Entra ID security best practices
continuous access evaluation, etc.
Why do we share this?
Copilot Studio security roles • These security roles grant permissions to
Copilot Studio configuration and data tables
in Dataverse.
Overview of standard Dataverse security roles and impact on Copilot Studio • To start creating and working on copilots,
users can be assigned the standard
Environment Maker security role. With this
Security Role / Table Chatbot Chatbot Subcomponent Conversation Transcript role, users only see their own copilots or the
bot botcomponent conversationtranscript
copilots that have been shared with them. If
System administrator Org (CRUD) Org (CRUD) Org (CRUD) too permissive, custom roles may also be
used.
Org (CRUD) • The Environment Maker role also lets users
System customizer Org (CRUD) Org (CRUD) Soon none create other related Power Platform
components (e.g., solutions, cloud flows,
Environment maker User (CRUD) User (CRUD) None connection references, environment
variables, etc.)
Bot Transcript Viewer None None User (Read) • To see transcripts, users must be granted at
least one role giving read access to the
Bot Author (deprecated) User (CRUD) User (CRUD) User (CRU) Conversation Transcript table.
Useful resources:
Do you enforce strong • Power Platform security
requirements for authentication? Multi-factor authentication and conditional access.
• Microsoft Entra multifactor authentication
• Microsoft Entra Conditional Access
• Use Azure Key Vault secrets
How do you control privileged
• Just-In-Time Access Management
users access to sensitive data? Just-in-time access to production.
• Manage application users
• Manage group teams
• Customer Lockbox
How do you manage secrets?
Azure Key Vault and Environment Variables
Useful resources:
• Copilot Studio compliance offerings
• Copilot Studio GDPR compliance
Do you have hard • Copilot Studio Data Locations
requirements as to where the Example answer (you can delete this) • Managing compliance in the cloud
data must be located? • Service Trust Portal
Data location and processing must stay within the European Union • Change the default retention period for conv
boundary. ersation transcripts
• Move data across geographic locations for g
enerative AI features outside United States
Management Environments
Capacity
Test strategy
Training
Run & maintenance
Why is ALM important?
Application Lifecyle Management • Copilot Studio ALM is based on the broader
Power Platform ALM principles.
• They use the concept of solutions to package
Safely deploy customizations across environments and keep track of changes. and deploy customizations.
Useful resources:
How to you deploy your • Power Platform ALM
customizations, variables and Example answer (you can delete this) • Use segmented solutions
connections?
Deployment are done using Azure DevOps pipelines and managed
solutions. Environment variables are used for settings and secrets.
Connections are configured by a service account.
Useful resources:
4️⃣ • Key concepts – Analytics
• Measuring copilot engagement
• Measuring copilot outcomes
Why do we ask these questions?
Analytics strategy • Copilot Studio provides comprehensive out-
of-the-box analytics that allow customers to
understand a copilot's usage and key
Detail your strategy to monitor your copilot key performance indicators performance indicators.
• Customers can view reports related to:
Performance and usage.
Customer satisfaction.
Do you have an analytics Session information.
strategy? Example answer (you can delete this) Topic usage.
Billed sessions.
• Initially, only a few set of KPIs will be defined for the copilot
Do you plan to develop your success, essentially the engagement rate, resolution rate and the
• However, there are often scenarios where
own custom analytics? you'll need to create or use custom analytics.
defection rate. For example, you may need to:
Share analytics with non-makers or
• In phase 1, assess the native dashboards, even though they’re
If you are going to create your users.
limited to 30-day of data.
own reports, please detail how Report on conversation transcripts data
and where you plan to store • In phase 2, develop a Power BI report consuming the copilot and for a period longer than the default last
Conversation Transcript data directly from Dataverse. This will 30 days.
the data. Design a report not covered by out-of-
also be the opportunity to enrich copilot data with other business
the-box analytics.
metrics such as sales or website traffic.
• In phase 3, move data to cheaper long-term storage option (e.g.,
Azure Data Lake) and update the Power BI report to point to Useful resources:
these storage points. • Custom analytics strategy
Why do we ask these questions?
Optimization strategy • Return on investment (ROI) and improved
customer satisfaction (CSAT) are top
priorities for the organizations that
What is your plan to keep improving your copilot’s performance and ROI? implement Copilot Studio copilots.
• Optimizing the copilot deflection rate is one
of the top focus areas for organizations to
achieve their business goals around ROI and
Detail your strategy to CSAT, and to improve the copilot's overall
regularly improve your Example answer (you can delete this) performance. There are major indicators in
Copilot Studio that help improve copilot
copilot Monthly review of the copilot performance performance, such as resolution rate,
• Deflection rate escalation rate, and CSAT.
• While the metrics continue to evolve, there
• Resolution rate are several things you can do as a copilot
• Engagement rate builder to improve the deflection rate of your
copilot. In these articles, we cover the
• Topics with low resolution importance of deflection in conversational
• Unrecognized utterances AI and general techniques/considerations
that are universal for optimizing deflection
• Analysis per channel for copilots.
Gap #2
Example answer (you can delete this)
No native integration with WhatsApp
Gap #3
Example answer (you can delete this)
Pro-code is required for a SharePoint integration with single sign-on
support.
Why do we ask these questions?
Top requests • Help us prioritize our future investments by
submitting feature requests and detailing the
business impact they have for your
What are the top gaps, feature requests, and priorities? organization by using the link below.
Useful resources:
Request #1 • aka.ms/CopilotStudioFeatureRequest
Example answer (you can delete this)
P1: native file upload support by end-users to upload pictures that are
then analyzed with OCR.
Request #2
Example answer (you can delete this)
P1: support for right-to-left languages Arabic and Hebrew.
Request #3
Example answer (you can delete this)
Ability to disable adaptive card buttons once they have been actioned.
Dynamics 365 Chat widget integration & customizations
Omnichannel for Omnichannel hand-off
Customer Service Unified Routing Configuration
(optional)
Note: it is expected for Dynamics 365 Omnichannel for Customer Service to have an extended implementation review, typically with FastTrack teams.
This chapter calls specific items which are important for the Copilot Studio and Omnichannel integration.
Why do we ask these questions?
Chat widget integration & customization • Within Dynamics 365 Omnichannel for
Customer Service, there is a customized
Copilot Studio chat widget which is utilized
How are you modifying the chat widget in Dynamics 365 Omnichannel? rather than the native Copilot Studio widget
without Dynamics 365 Omnichannel. This
customized out-of-the-box widget is a
component that Dynamics 365 customers
Please describe the planned can utilize to get a greater number of options
Example answer (you can delete this) to tailor the widget without having to spend
use of the chat widget. a lot of time on the configuration every
• Use of the LCW v2 configured with the brand theme. single time.
Do you plan to develop a • Many context variables, including web page, user ID, locale, etc. • Some of these options include the design but
also include functionality like business hours
custom version of the must be passed from the website to the chat widget.
and even channel specific behavior like
widget? • Widget and first message should load in less than 5 seconds. persistent chat experiences.
• • Ensure you have reviewed these options
Internal mobile app teams are also looking to integrate their
within the chat widget
Do you have other client native app with Omnichannel through APIs.
• Additionally, ensuring you take into
requirements for specific consideration the connection experience
between Copilot Studio and Omnichannel in
channels? the ‘Agent Hand-off’ area of the Copilot
Studio portal, and track your environments
based on your environment structure, as well
What your expectations for as the copilot users within each environment
the widget load time and
first message display? Useful resources:
• Configure the chat widget
How are you making sure • Develop a custom live chat widget
• Omnichannel Live Chat Widget SDK
the first message is fast?
Why do we ask these questions?
Copilot Studio & Omnichannel hand-off • You can directly use the ‘Escalate’ system
topic to be able to escalate to a live agent in
Dynamics 365 Omnichannel within Copilot
Connect your Copilot Studio copilot to Dynamics 365 Omnichannel Studio.
• Make sure you consider the experience of
both the user and the agent when designing
this functionality.
Which topics within will link • Consider what data you wish the Dynamics
to the ‘Escalate’ topic? Example answer (you can delete this) 365 Omnichannel agent to receive from the
copilot when a handover is successfully
• Standard behavior will be maintained to escalate.
taken place e.g., data passed to the agent.
Do you need to extend the • Over the voice channel, DTMF key 0 will escalate to a live agent.
‘Escalate’ topic? If so, how • Fallback topic will not be used over the voice channel but will be Useful resources:
and why? used on the website: generative answers will be used before the • Configure the Copilot Studio copilot
user can escalate.
Would you be utilizing both
the ‘Escalate’ and ‘Fallback’
topic?
copilots based on the and to provide client IDs. • Use SSML to customize speech responses
Demo aka.ms/CopilotStudioDemo
aka.ms/TryCopilotStudio Product documentation aka.ms/CopilotStudioDocs