Creating your first Copilot in Copilot Studio
Peter Charquero Kestenholz
PPM, xPM & GenAI Innovation | Founder | Microsoft MVP
This step by step article explains how you can quickly spin up a custom Copilot that helps users answer questions about their projects, using data stored in Power Apps (dataverse) and the Prince2 project methodology (website links).
The pre-requisites for following this guide is that you have admin access to a Power Apps and dataverse enabled environment. In the example, I am using project data from Power PPM, a project portfolio management solution made by Projectum (www.projectum.com ). However, any dataverse table will work for this guide.
You should also have sufficient rights to launch Copilot Studio and build new custom copilot bots.
Step 1: Go to Copilot Studio and create a new copilot
From within your Power Apps environment, go to "Chabots" from the navigation pane or simply type in https://copilotstudio.microsoft.com
If launching Copilot Studio from our Power Apps environment you will create the new copilot atuomatically in the environment you arrived from. If not, you need to select the environment in the top right corner before selecting new "New copilot".
Click on "New Copilot"
Step 2: Go to Copilot Studio, create a new copilot and describe it
Using natural language I will ask Copilot to help me build and configure the new copilot. In the example below, I am defining my copilot as a chatbot that helps users with questions abour our company projects using a dataverse source. For other project management questions I will use a public #Prince2 source as this is the project methodology my company relies on internally.
Step 3: Defining the way your copilot will respond
I will now explain how the new copilot should interact with the user e.g. using a polite tone of voice and present answers in bullets or tables where it makes most sense.
Step 4: Websources
I am now asked which websource I want to use for answers related to the Prince2 methodology. This could also have been an internal SharePoint folder and/or specific document that explains how our company plans and executes projects.
Step 5: Start the copilot creation
When done, simply write "I am done". You will now see Copilot finalize the input and description of the Copilot. When satisfied, click "Create" in the top right corner, or simply go back and continue the conversation.
Step 6: Wait a few seconds...
After a few seconds you are now in the Copilot Studio configuration area for your new custom copilot. Give it a few seconds before moving ahead as it needs to finish the configuration elements from the previous steps. You can see the "leading" text in the description which means its not done yet.
Step 7: Remove "Training Topics"
New copilots are created with three example "Topics". These can be used for new users to understand the concept of "Topics" which essentially is a way to control what should happen when users asks for specific things like "help me create a SWOT analysis" or similar.
My recommendation is to always turn off "Lessons 1, 2 and 3" to not confuse your new copilot.
Step 8: Add the Power Apps (dataverse) source
We will start the configuration by navigating to the "Knowledge" tab where we should see the Prince2 website knowledge source. We will now add some new "knowledge" that uses one or more dataverse tables from the Power App.
Important: Dataverse sources will only work if the Authentication of the box (under settings) have been set to "Authenticate with Microsoft"
Step 9: Selecting tables
After connecting to a dataverse source, you can now see all tables found in the same environment as where your copilot is created. In the Power PPM application, the table that holds information about the projects, and only the projects, is called "Project" as the display name, and "pum_initiative" as the systemname. Simply scroll or search to find one or more tables you would like to include as knowledge in your copilot. In my example, I will only use the project table.
Step 10: Defining what the source means and does
Next, you can now explain in details what the knowledge should be used for. Its important to write something meaningful here as multiple tables or sources, that are not described, will confure your copilot and most likely have it provide non or wrong answers to certain questions
领英推荐
Step 11: Synonyms and glossary
Although it is not required, you can go a step deeper in explaining copilot what the datasource is all about. In this example, I am editing the "Synonyms" of the dataverse fields. An example could be that users are asking about a "project manager" but you are storing that information in the "Owner" field of the project table. Using synonyms, you can simply provide alternative words used and/or a description of each field allowing the copilot to better understand your company project lingo.
Step 12: Wait (again)
Now that we have added a dataverse source, we need to wait a little while in order for Copilot Studio to index the information. You can see the "In Progress" status. However, you can still move ahead and do other things while you wait for Copilot Studio to finalize the indexing.
Step 13: General knowledge...or not
One of the brand new, and super cool, featues is that custom copilots can have their own standard ChatGPT model available out of the box (without setting up Azure OpenAI). This means that users of our chatbot can ask for almost anything and get an answer. The setup is easy as you can simply enable/disable the "Allow the AI to use its own general knowledge" feature.
Important: Although "general knowledge" (ChatGPT) is enabled, you can still define in your copilot description that it should only answer to questions about project management which we did in the first steps when creating the copilot. The screenshot below shows what happens when a user asks for a Chocolate cake recipe.
Step 14: Classic or Generative interaction?
Another key setting is whether or not your custom copilot should use "Classic" or "Generative" mode in the way it interacts with the user.
"Classic" simply means more control. Here you can define a variety of "Topics" and when a topic should "trigger" based on what users write. From here, you can then add custom prompts, responses, questions or actions.
"Generative" means that the custom copilot will try to figure out when to use actions, topics or just the knowledge to answer questions or needs from the users.
In this step-by-step guide I have not created any custom "Topics". For that reason, I will use the "Generative" setting and have copilot figure out the conversation and response on its own.
My experience: In most cases, I still rely on "classic" mode to better steer the conversation towards the right response. However, it depends on how good your knowledge sources, descriptions and general definition is. My best advice to experiment with it hands-on and find out what works best for you.
Step 15: First test of our copilot (websites)
We have now done the basic setup of a new custom copilot. Much more could be done which is not covered in this article (might come in future articles).
Before we share the copilot with anyone we need to test it. Simply use the "Test your copilot" interface and experiment on your own. In the exampe below, I ask an open question about starting up a project in the planning phase. Notice, I do not write anything about Prince2 but because of the knowledge source, and its description, it knows that it should answer using infomration from the Prince2 WIKI page. It also gives me a source (hyperlink) to where the users can learn more. Smart??
Step 16: Second test of our copilot (dataverse)
Now lets try another test. We will ask for the 3 most expensive projects by total budget, shown in bullets and including who is the Project Owner. This data should naturally come from our our Power PPM system and therefor using the dataverse table provided in the knowledge area.
Step 17: Deploy to Teams
We will now deploy our copilot to Teams for further end-user testing.
Go to the "Channels" tab
Turn on Teams
Go to "Availability Options"
Configure who should get access... and how
For a quick personal test, simply click on "Open Copilot" next to the Teams icon
Step 18: Try it out
Run some example questions. You will most likely run into issues quickly as we havent done sufficient work in our Copilot configuration to fully capture all expected user questions. You should expect issues, and from here, continue the configuration of your copilot to include more, and better, descriptions. Include more datasources and start to explore the use of "Topics" and "Actions" as great next step on your Copilot Studio learning curve.
I hope this article gave new Copilot makers a basic introduction to setting up the first custom copilot with generative AI. Becoming a Copilot Studio master takes time and tons of experiments. However, the more you know about the specific "knowledge domain" the easier it will to set up a solid chat experience for your users.
Microsoft 365 & SharePoint Specialist | Power Platform Expert | Digital Transformation & Process Automation Consultant | IT Solutions & Business Efficiency Advisor
2 个月Great post! It’s always inspiring to see discussions on topics like this. **************************************************** I'm currently focused on #SharePoint and #PowerPlatform solutions, and I'm open to exploring new opportunities. If anyone is interested in collaborating or learning more, feel free to connect or DM! *****************************************************
MCT | Business Applications Portfolio Lead @ Avanade | Power Platform & Copilot Studio Expert | Content Creator
2 个月Nice! ??
? Shaping tomorrow’s Business Applications landscape with AI & innovation ??♂? ? Dynamics 365 Business Central, Dynamics 365 Sales, Power Platform & Copilot ??? Infusing Dynamics 365 & GAC IP with AI for every user ?? ?
2 个月As easy as that! Great article.