Build your own copilot with Microsoft Copilot Studio

Reading Time: 17 minutes


Copilot Studio is a low code copilot making tool developed by Microsoft, offering a simplified way to create your own copilot with very little code. But how? Copilot Studio offers a drag and drop graphical interface allowing beginners to create and customise copilots. You don’t need to be an experienced developer to get started and Microsoft have done a great job in ensuring copilot is accessible to both developers and non developers.

Why has Copilot Studio been a game changer? It’s because Copilot Studio gives you a complete end to end experience for creating, managing and publishing copilots for any industry of your choice, whether you’re in healthcare, finance or any other organisation. Copilot Studio allows you to build sophisticated and secure copilots that work exactly as you want them to by choosing from thousands of prebuilt data connectors. These built in connectors allow you connect your copilot to Microsoft and non-Microsoft data sources such as your enterprise data, benefitting from OpenAI and Microsoft’s Large Language Model (LLM), which allows AI (Artificial Intelligence) to answer questions/queries, often making it challenging for users to tell whether they’re interacting with a machine or a human.

That’s great, but I’ve read about Microsoft 365 Copilot, is this the same? Yes, it’s similar because Microsoft 365 Copilot also uses Large Language Models and is a conversational chat interface that allows you to search for the specific information you are seeking, generate text such as creating new emails and is able to summarise documents. For example, it can summarise an email thread which you may want to catch up on after returning to work from holiday, saving you the time going through the whole email conversation. It can generate PowerPoint slides, proposals, essays, write code, create images, summarise a teams meeting you were not able to attend and more! No matter what application you’re using Copilot saves time and money. It’s our Copilot, assisting us, the Pilots, with our day to day tasks. When creating our own custom Copilot we can utilise the Large Language Model (LLM) using our own data.

Great, so why would I use Copilot Studio instead of Microsoft 365 Copilot? Copilot Studio allows you to create your own custom copilot using Microsoft provided Large Language Models hosted on the Microsoft platform. One of the many benefits of Microsoft Copilot Studio is the fact that it allows individuals to create and communicate with custom copilots using natural language understanding. This means that users can type as they would talk, and the copilot will understand and interact with them accordingly. 

The purpose of this blog post is to explore Copilot Studio only. But, before I continue to exploring Copilot Studio, I would like to provide a short explanation of a Large Language Model (LLM).

What is a Large Language Model (LLM)?
A Large Language Model (LLM) is a type of AI that can process and produce natural language text. It learns from a massive amount of data gathered from sources like books, articles, webpages, and images to discover patterns and rules of language. To simplify, a LLM is a computer program that has been pre trained with vast amounts of data so it can recognise and interpret human language. You would use Large Language Models when you need to generate text, images, translate and code. AI utilises this vast amount of tuned data it has been trained upon to intelligently answer questions similar to the way a human would respond.

An organisation named OpenAI have developed a number of intelligent Large Language Models. Have you heard of Chat GPT? a service owned by OpenAI which utilises LLMs to answer your questions. But how does Microsoft relate to OpenAI? Microsoft formed a partnership with OpenAI, utilise the OpenAI LLMs for Microsoft products, and continue to support OpenAI to create more powerful LLMs. For further information on the ongoing Microsoft and OpenAI partnership, visit the following link, Microsoft and OpenAI extend partnership.

If you’re interested to learn more about how LLMs work under the hood, visit the following Microsoft Learn link, Introduction to large language models – Training.


Copilot Studio

Copilot Studio allows you to create your own custom copilots using provided Large Language Models (LLM), but why would I want to create a custom copilot?

There are several reasons why you may want to create you own copilot. You may wish to create a copilot which intelligently answers questions by using a public website or information accessible via your internal applications. For example, you are a company who own hotels around the UK. As an organisation, you could enhance your copilot’s ability to answer questions quickly by pointing it to your organisation’s websites and offer your visitors an intelligent chat bot which can answer queries based on a knowledge base of hotels published on your website. Your customers could use the copilot/chatbot directly from your website when enquiring about which hotel is closest to London, which one of your hotels are pet friendly, which one of your hotels has parking, swimming pool and more. What’s the benefit? Well, you’re freeing up your customer service staff to deal with more challenging issues whilst your copilot deals with the repetitive queries such as how do I reset my password. Copilot can also be configured to check customer records, for example, a customer may want to enquire about they latest bill or book an appointment with a member of staff at one of your office locations. Copilot Studio is the tool which allows you to take control and build your copilot as per your business requirements.

In this blog post I will go through the process of building a custom copilot for this website cloudbuild.co.uk and then input a number of prompts (queries) to find out how my custom copilot responds.

Note
Copilot Studio is a licensed service. A free trial is available. For licensing details, visit the following Microsoft link Microsoft Copilot Studio Licensing.

Let’s get started

  1. Access copilotstudio.microsoft.com

    The first page visible is the overview page as seen in the screenshot below. The Copilot Studio overview page offers templates we can use to setup a custom copilot within minutes. If you prefer not to use the built in templates, type some text in the text box to describe what your copilot should do. For example, we could type,

    I want a copilot named James. It is an assistant for Contoso Hotels, helping to answer customer queries about hotel bookings, how to reset password and hotel facilities.

or

If I could select the built in Helpdesk template. In this case the field would auto populate with the following text, Provide employees with help on troubleshooting issues with their company issued devices.


2. I input the custom message below and press enter on my keyboard.

I want a copilot name James Does who is a technical support engineer. You assist visitors to the site by answering technical queries and cannot assist with any other non-tech related topics.


3. The process takes a few seconds before copilot confirms the instructions (image below) provided in the earlier step and requests for the information below.

The copilot setup asks: Do you have instructions for how copilot should assist, for example a specific tone?


Note:
Copilot will take you through the setup process step by step, however, if you prefer more control over the configuration by going into advanced mode, click the button labelled skip to configuration as shown in the image below.


4. If you’re not sure how to respond to the question in step 3, click What should I say? and copilot will suggest what you may want to type. When I click What should I say? a further message is posted to copilot, can you help me with what to include here as shown in the image below.


Based on the useful tip provided by copilot I can set a tone for when James Does is responding to visitors.

5. Here is my response

James Does should be professional and helpful at all times. See image below.


6. Again, copilot confirms it will follow my instructions and be polite and professional at all times. Now it requests for the source of information. Where knowledge base should copilot use to locate it’s information when responding to visitors. This could be your public website. However, copilot can also link to internal company data sources if needed. I’ll cover these shortly.


7. For the public knowledge base I input cloudbuild.co.uk as that’s where I would like copilot to obtain it’s information from when compiling answers for my visitors. It’s possible to add more than one website if required.

Note:
The more information a website stores, the better. As you can imagine a website with a couple of pages such as an about us and a contact us page would not work well with copilot.

If you’re not sure what to type or require tips, click the option Any Tips? and copilot setup wizard will assist.


8. I input cloudbuild.co.uk as shown below. Copilot confirms the instructions and requests for further information.

Are there any topics or tasks this copilot shouldn’t help or talk about?

We discover that as we move through the setup wizard, we fine tune our copilot, similar to the way we would train staff informing them of what they should and shouldn’t do. I want my copilot to respond to technical questions only.

Another example where you may want to prevent your copilot from responding is if you are in the hotel industry offering hotels around the globe. You may not want copilot to discuss other brands/hotels. Or if you’re a bank, you would want to prevent copilot from responding with products for other banks. Remember the Large Language Model (LLM)? Well, copilot has access to a vast amount of information it could access as a secondary source if needed. This could configuration option could be disabled if required. I’ll go through that option later in this post.


9. Again, copilot confirms my instructions as per the image below


10. To complete the setup, I click the button, I’m done as shown in the image below.

11. Before we can finalise the copilot, we are redirected to a test playground allowing us to test our new copilot by interacting with it.

12. Let’s test our copilot by entering a few prompts.

I ask my copilot how it can help me and it responds with the below message.

Hello! As a Technical Support Engineer, I can assist you with technical queries related to software, hardware, troubleshooting, and other IT-related issues. If you have any specific technical questions or need help with a technical problem, feel free to ask! AI-generated content may be incorrect.


13. Next, I input the following prompt, help me bake a chocolate cake suitable for 10 people

and the response from copilot below is as I would expect.

I specialize in technical support and can assist you with IT-related queries. For baking a chocolate cake, I recommend checking out a recipe website or a cooking blog. If you have any technical questions, feel free to ask! AI-generated content may be incorrect.


14. Looking good so far, let’s ask it a question about how to book a flight from London to Dubai.

The response is professional and polite as I instructed when configuring the copilot.

I specialize in technical support and can assist you with IT-related queries. For booking a flight from London to Dubai and finding the fastest and cheapest options, I recommend using travel websites or apps like Skyscanner, Expedia, or Google Flights. If you have any technical questions, feel free to ask! AI-generated content may be incorrect.


Let’s ask it for advice on credit cards. Response below.


15. Now let’s ask it a technical question.

Provide me with instructions on how to set up Microsoft Entra Entitlement Management step by step

And we have step by step instructions on how to configure Entitlement Management. This information was retrieved from this blog and summarised by copilot. Copilot sent the request to the Large Language Model (LLM) which created the response based on the pre-training it has had.


Furthermore, copilot has also provided the reference of where this information was populated from on my blog. The reference can be located towards the bottom of the response and links to the my blog post about Entitlement Management.


I’m using a custom copilot for a Tech blog, but as mentioned earlier in this post, copilot can be useful for any type of industry, for example, you’re a bank. A customer may have a query about whether they can use their credit card abroad. Copilot would look up the information on your website and provide a professional answer just like a human being would. Copilot is convenient as it saves the customer the time browsing through vast amounts of information on your site or having to contact your call centre. Copilot can save time, money, provide answers to customers quickly and increasing customer satisfaction levels, whilst making your call centre staff available for more complex queries customers may have. Copilot Studio has a lot more to offer including integrating with your internal apps and even allowing it to place appointments, checking customer records and responding.

16. Now that I have performed some testing, I click create to finalise my copilot (image below). The process takes less than a minute to complete. This creates the custom copilot and allows us to configure additional options if needed. We are not publishing this copilot and making it accessible just yet.


17. When the deployment is completed, I see an overview of my custom copilot.

18. Through Copilot Studio I can create and managed several custom copilots for other services if needed. For example, for employees, I may want to create a copilot which is only accessible by staff within my organisation. I’ll explore these options shortly.


19. Scrolling down on the overview page, I can change the description and instructions provided earlier.


Before going into the the option + Add Knowledge section, there is an option visible.

Enabled by default. The option is Allow the AI to use its own general knowledge (preview). This option provides generative answers that can be used as primary information sources or as a fallback source when authored topics can’t answer a user’s query.

To demonstrate, I disable the option as per the screenshot below.

I now ask a question about a topic which is not documented on this blog.

I input, what is a Cisco switch?

Copilot response, I’m sorry, I’m not sure how to help with that. Can you try rephrasing?

Copilot is not able to locate this information on my blog and because I have disabled the option above, it can not use it’s own sources/knowledge via the Large Language Model (LLM) to answer the question.


I re-enable the option and input the same question again and this time we have a response.


20. Let’s move into the knowledge tab. Click the button labelled + Add Knowledge as shown in the image below.


21. As per the below image, knowledge sources are not only limited to public websites. You could include other sources including a company brochure which may be a pdf file, or you may wish to create a copilot for internal staff which can browse your SharePoint and OneDrive data. Microsoft continue to introduce new sources so the screenshot below may be outdated shortly after this post is published.


22. Next, we move onto the tab named Topics

Using topics you can control how your copilot responds to certain topics. You can take control over conversations instead of handing full responsibility to generative AI. This gives you the ability to benefit from the best of both worlds.

For example, a customer inputs a message of “I don’t recognise a transaction on my bill”. Your copilot could respond with a list of questions to ask the customer from a topic you configured. Such as what is the date of the unrecognised transaction, how much was the transaction amount and what was the name of the product on your bill. Copilot could then forward this information to your internal team to investigate. Using a topic we are able to take control and instruct our copilot to use the questions from our topic to collect the required answers.



23. Next we move onto the tab named Actions. This is a great feature which allows your copilot to take actions, such as being able to read customer data in your organisation applications. For example, a customer may ask copilot “what is my outstanding balance?”, your custom copilot could be configured to execute an action to provide the customer with their outstanding balance or information on when payment is next due. There are thousands of built in connectors allowing you to plug copilot with different types of applications.


24. Next, we move onto the tab named Analytics. This feature is great for monitoring and reporting as it allows administrators to analyse the number of sessions taking place on your copilot, where escalations occurred because copilot was not able to assist, any negative or positive customer satisfactions, resolutions by copilot, why the customers were not satisfied and more. The information provided by Analytics could allows an organisation to introduce additional knowledge for copilot to use, or create a new topic to help copilot post the correct questions in future. Analytics could also provide you with information where copilot was not able to respond because it was not able to locate the information in the provided knowledge bases allowing you to publish new content so copilot could assist customers in the future. Furthermore, analytics could provide information on the top queries being asked by customers and provide information on content moderation to check if there is harmful content being returned by copilot. Analytics provides your organisation full visibility into what’s going on with your copilot.


25. And the last hidden tab is channels. Channels refer to the various platforms where you can publish and interact with your copilot. In my case, I would want to display copilot/chatbot on this blog, allowing users to interact with it and ask questions, but it could be made available to internal employees as shown in the images below.


I could select custom website and add the copilot to this blog by adding some provided code to my site.


Here is the code provided by copilot studio if I wanted to add this copilot chat to my blog.


I could publish a custom copilot to Microsoft Teams and control who can access my copilot.


I could select Demo website to view what my copilot would look like when published to a website, before I publish it to my live site.


Here is my custom chatbot published to a demo site.


26. To the right of the tabs we have a settings option. Let’s explore the options.


Here we are provided with additional configuration options to fine tune our copilot further. Let’s go through the available options.

Copilot settings:
We can change the copilot name. This is the name the copilot responds as and could be one of your choice. We can also add a picture for our AI assistance.


Next, we have the tab named voice.

The Optimize for Voice feature allows you to create voice enabled copilots. With the growing trend towards self service applications, voice enabled copilots are making a huge difference for businesses. Voice enabled copilots are used in various applications, such as call centers, mobile apps, and messaging platforms. Voice enabled copilots can collect user input through speech and Dual Tone Multi Frequency (DTMF). DTMF allows users to enter data by pressing keys on their phone keypad for surveys, feedback or for authentication. There are several reasons why you may want to use a voice enabled copilot. For example, automate routine tasks such as call routing, information collection, and basic troubleshooting, allowing human agents to focus on more complex issues. Another use case could be using voice capabilities to assist in medical screenings and patient interactions by collecting information through voice, which can be useful for elderly or visually impaired patients.


Finally, under the copilot details section we have the advanced tab which is used for the purpose of logging and what logs you wish to collect.


27. Moving on from the copilot details tab located in the left pane, we have AI Integration tools. Integrations allow you to connect existing Azure AI tools to your custom copilot. Combining Microsoft Copilot Studio and Azure Open AI allows you to create more powerful copilots that can assist users across various channels.


28. The next tab in the left pane is Generative AI. Here you can configure how your custom copilot should respond. The default setting is set to high where copilot generates fewer answers but responses are more relevant.


29. Next we have Security. Here you can configure security configuration. For example, inviting people to collaborate with you on your copilot. Or you could configure authentication to your copilot allowing users to sign in before they can use copilot, when giving your copilot access to a restricted resource or information.

Web channel security – when you create a copilot, it’s immediately available in the Demo website and custom website channels to anyone who knows the copilot ID. These channels are available by default, and no configuration is needed. However, using this option you can control access by enforcing the use of secrets and tokens for each individual copilot instead of allowing anonymous access.


30. Next we have the option Entities. A list of default entities are created by default. These represent some of the most used information in real world dialogs such as age, colors, numbers, and names. However, new ones can be created if needed. An entity can be thought of as a unit of information that represents a certain type of a real world subject, like a phone number, postal code, city, a person’s name and more. With the knowledge granted by entities, a copilot can smartly recognise the relevant information from a user input and save it for later use. This information can then be referred to in the ongoing conversation.


31. Next we move to Skills. Skills allows you to add automation to your copilot, for example, you could allow your copilot to book an appointment, send confirmational emails and more.


32. Next we move to languages. You can create chat based copilots in Microsoft Copilot Studio in many languages. This allows your copilots to reach a broader audience and engage with more markets around the world.


33. When ready we can click the publish button to make the copilot available to our users/customers depending on the channels you configured earlier.


34. You can also launch the demo website to check if your copilot loads and functions as it should do. Click the ellipsis icon (three dots) and click Go to demo website.


That’s it. I hope you found this post useful and it provided a better understanding of Microsoft copilot studio.

See you at the next post.