Part 3 – How to write Microsoft Copilot Prompts

Reading Time: 8 minutes



In this blog post, we’ll delve into the art of prompting and how to achieve the best possible responses from Copilot.

What is a prompt?


A prompt is essentially a question or set of instructions you give to Copilot, such as asking it to create, summarise, edit, or transform content. Think of prompting as having a conversation, using plain and clear language and providing context as you would with a human. Simply put, a prompt is how you ask Copilot to do something for you. Being clear and concise when entering your prompt is crucial, as it helps unlock Copilot’s full potential. If you don’t get the desired result with the first prompt, you can keep the conversation going, just like you would when communicating with a human. Following up on your prompts helps you collaborate with Copilot to gain more useful, tailored responses. However, aiming to include what you need in the first prompt will help Copilot provide you with the required response. We will explore a few examples in this post.

Here’s a brief two minute video that explains what a prompt is. I recommend watching it before proceeding.


It’s important to remember that when you enter a prompt, the more specific and detailed your instructions are, the better Copilot can customise its response to meet your desired outcome.

Let’s use a couple of examples to illustrate this. Imagine you walk into a restaurant and simply ask the waiter for food. The waiter would likely ask for more details, such as what type of food you want and whether you prefer to dine in or take away. Similarly, if you ask a builder to construct a house, they would need more information, like the type of house and the number of rooms you want. When working with AI, we need to adopt a similar approach. The quality of Copilot’s response depends on the details you provide. If your instructions are vague, the response will be limited, and you’ll need to provide additional prompts to get the information you need. It’s ok to continue having a conversation with Copilot but it’s possible to limit that conversation with less prompts.

Creating effective prompts when working with Copilot will improve over time. However, at a minimum, aim to have a clear goal in mind when crafting your prompt. If Copilot’s initial response isn’t exactly what you need, you can always refine it by providing additional information through follow-up prompts. For instance, you might get the right information but find the response too lengthy. In that case, you can ask Copilot to shorten it. Think of it as an ongoing conversation with a human. The key is to be clear and concise from the start, and then build on that if necessary.

To receive the best response from Copilot the first time, think about including the following four parts in to your prompt if possible or at a minimum, a goal and context.

Goal
What is it that you want Copilot to do for you, summarise an email, generate a document, creating a bullt point list and so on. Provide it with specific instructions of what you require from Copilot)

Context
Why do you require the information? what is it you’re going to do with the information? for example, is the information needed for an upcoming presentation for school children.

Expectations
What type of tone do you wish for Copilot to respond. Should the response be in a simple and friendly manner so school children can understand it. Should the response be a couple of paragraphs or a page of text.

Source
Do you need Copilot to refer to a particular document, from a website or from an email conversation between you and a colleague where the email includes a list of topics which need to be discussed in the presentation.


It’s not always important to include all four parts into a prompt, a couple if parts may be sufficient, but including the four parts into your prompt provides a more specific set of instructions to Copilot and a good response.

Let’s go through a few examples,


Example 1 – Copilot Prompt

I input the prompt below at copilot.microsoft.com

“Write about water”

Copilot provides a response about water, but I could rephrase the prompt so it is more specific.


Let me try again, but this time I’ll provide a clear goal and make it specific.

Goal: Please write a speech to prepare me
Context: for an event where I will be presenting a topic about the benefits of drinking water to children
Expectations: so make it sound casual and youthful.
Source: Refer to data from the following link Water, drinks and hydration – NHS (www.nhs.uk)

Here is the prompt:

Please write a speech to prepare me for an event where I will be presenting a topic about the benefits of drinking water to children so make it sound casual and youthful. Refer to data from the following link Water, drinks and hydration – NHS (www.nhs.uk)

It’s not always important to all four parts into a prompt, if needed we can always input further prompts. For example, I could input a prompt without the source and let Copilot provide a response based on it’s own sources. Such as,

Please write a speech to prepare me for an event where I will be presenting a topic about the benefits of drinking water to children so make it sound casual and youthful. Refer to data from the following link Water, drinks and hydration – NHS (www.nhs.uk)

and here is the response from Copilot. Copilot has provided a response with a tone that can relate to children, such as the sentence below.

Hey everyone! I’m super excited to talk to you today about something really important – water! Yep, that simple drink we all know and love. But did you know that water is like a superhero for our bodies? Let me tell you why.

Additional wording has been used such as awesome and playground to catch the attention of the children.

It has also included in the prompt recommended amount of water as per NHS UK guidelines as per my request.


Furthermore, I can continue with the conversation and ask Copilot to adjust the response if needed.

If I am not happy with the response or Copilot provided me with incorrect information, I can use the thumbs up or thumbs down icon to feedback to Microsoft. It’s important to verify the information Copilot provides, as it may sometimes provide a convincing, yet incorrect response. Use the feedback options to report such responses to Microsoft.


Let’s try that prompt again, this time removing the NHS website as a source.

Please write a speech to prepare me for an event where I will be presenting a topic about the benefits of drinking water to children so make it sound casual and youthful. Refer to data from the following link Water, drinks and hydration – NHS (www.nhs.uk)

Before I enter the above prompt without the last part. I click the option for a new chat so Copilot no longer uses the information I have already provided it in my recent conversation.


Prompt and response below.

This time Copilot has used generated me a different response without any reference to the NHS website. I could also reference an internal document if needed, but the point here is that depending on what you ask for is what you’ll receive from Copilot.


Example 2 – Copilot Prompt

Another prompt that I could input into Copilot could be,

Please write me a technical blog post article

Copilot responds requesting for more detail about what technical topic I would like Copilot to write a blog post about. Yes, we can provide that additional information, but if you focus on including that in the initial prompt, you may get what you need from the first prompt.

This prompt may work better. I have not used a source in this prompt, but I could ask Copilot to use a document or a website when putting together its response.

Please write me a blog article about the benefits of Microsoft 365 Copilot. The blog post must be 1,000 characters and simple to understand for someone who is new to the Copilot for 365.

Goal: Please write me a blog article
Context: about the benefits of Microsoft 365 Copilot
Expectations: The blog post must be 1,000 characters and simple to understand for someone who is new to the Copilot for 365.
Source:

Here is the response from Copilot. Much better, however I can always insert another prompt and ask Copilot to shorten or make the blog post longer.


Finally, lets ask Copilot to explain what a good prompt should include.

Create a bullet point list of what I should take into consideration with prompting with Copilot.

Goal: Please write me a blog article
Context: for an event where I will be presenting a topic about the benefits of drinking water to children
Expectations:
Source:

I could add additional prompts if the response required additional information, however, I feel the below response is what I need to summarise what to consider when prompting with Copilot.



Example 3 – Copilot Prompt

Give me 5 bullet points for me to use in a talk from the Copilot email discussion I had with my colleague Darren last week. The response should be easy to understand and keep it short.

Goal: Give me 5 bullet points
Context: for me to use in a talk to my colleagues
Source: from the Copilot email discussion I had with my colleague Darren last week
Expectations: The response should be easy to understand and keep it short


Example 4 – Copilot Prompt

I want a list of five games to play for a team get together at Las Vegas. Provide a list of ideas that are fun and family friendly and include any supplies that may be needed. Please take ideas from the Internet.

Goal: I want a list of five games to play
Context: for a team get together at Las Vegas
Expectations: Provide a list of ideas that are fun and family friendly and include any supplies that may be needed.
Source: Please take ideas from the Internet.


Example 5 – Copilot Prompt

Create me 5-8 bullet points to prepare me for a meeting with Client Contoso Ltd to discuss their new “Phase 10” brand campaign. Focus on email and teams messages since August. Please use simple language so I can get up to speed quickly for the meeting tomorrow.

Goal: Create me 5-8 bullet points
Context: to prepare me for a meeting with Client Contoso Ltd to discuss their new “Phase 10” brand campaign.
Source: Focus on email and teams messages since August.
Expectations: Please use simple language so I can get up to speed quickly for the meeting tomorrow.

And remember, keep the conversation going. Following up on your prompts help you collaborate with Copilot to gain more useful, tailored responses.


Looking for additional prompts?

Check out Copilot Lab, a free resource which provides hundreds of example prompts you could use.

I hope you found this post useful

In the next posts, I explore and demo Copilot in 365 apps such as Word, Excel, Powerpoint, Outlook and Teams. Stay tuned for more prompting. If you’ve not already done so, please subscribe to stay informed of new posts.



Part 2 – Copilot for Microsoft 365 under the hood

Reading Time: 7 minutes


In part one of this blog series, I provided a short introduction to Copilot for Microsoft 365. Here is the link to that post if you missed it, Save time and be more productive at work with Copilot for Microsoft 365 – Part 1

In part 2 of this blog series I explore how Copilot for Microsoft 365 works under the hood.

Once a user is assigned a Copilot for Microsoft 365 license, the Copilot icon becomes visible in the various Microsoft 365 Apps. We’ll explore and demo Copilot in a few 365 Apps in a later post.


Step 1

Andrew Doe, a Manager, returns from holiday to find a lengthy email discussion including a few attachments about a new office location project. Upon opening the email, he asks Copilot to summarise the conversation and identify any actions assigned to him which he needs to be aware of. As a user when we ask Copilot to do something, such as summarise an email or drafting an email, this is known as a prompt. More on prompts later.

The Summarise button will summarise the email conversation with the email thread.

However, if you wish to ask Copilot to check for any outstanding tasks in the last couple of weeks, there is a Copilot button which works across Outlook as a whole instead of focusing on one email thread. See image below.


Step 2

The Copilot orchestration engine receives the prompt from Andrew Doe’s Outlook application.


Step 3

The Copilot orchestration engine undergoes a task known as post-processing or grounding, during which it accesses Microsoft Graph and Semantic search. Microsoft Graph is basically your Microsoft 365 data, such as your calendar, SharePoint, OneDrive files, meetings, chats, and more. Additionally, Copilot can search other services using plugins and connectors, such as a Bing search plugin that allows access to internet content or third party applications such as ServiceNow. This grounding/post-processing step enhances the quality of the prompt, ensuring you receive relevant answers.



What is Semantic search?
The semantic index is a new feature of Microsoft 365 search that uses the Microsoft Graph to better interact with your personal and organisational data. Relevant information is obtained in the Microsoft Graph and semantic index to provide the Large Language Model (LLM) with more information to reason over. As an example, suppose you want Microsoft Copilot to locate an email where a colleague praised the design work of a vendor. Semantic index includes nearby words (for example, elated, excited, amazed) into the search to broaden the search area and give the best result. All of this work takes place behind the scenes to add relevance to results that you search for with Microsoft Copilot. Another example of Semantic search, it’s like a librarian who not only knows every book in the library but also understands the story behind your question. Traditional search is like looking for books with a specific title, while semantic search finds books by understanding the story you’re really interested in, even if the title is slightly off.



Step 4

The Copilot orchestration engine combines the user data retrieved from graph and Semantic search and sends the modified prompt to the Large Language Model (LLM).



What is a Large Language Model (LLM)?

There is a lot more to LLMs but to simplify, so this post is in a no way a deep dive into LLMs. Here are a few points about LLMs.

Large language models (LLMs) represent a class of artificial intelligence models that specialise in understanding and generating human like text. In the context of Copilot for Microsoft 365, LLMs are the engine that drives Copilot for Microsoft 365’s capabilities. You may have heard/read about the company OpenAI who developed the popular ChatGPT service. Microsoft have invested billions of dollars into OpenAI and the LLMs they develop. The ChatGPT models are utilised by Microsoft, however, Microsoft privately hosts these models on the Microsoft’s Azure OpenAI Service, so your company data is not shared with OpenAI. Microsoft aims to push the boundaries of AI research and development. By partnering with OpenAI, they can leverage cutting edge AI technologies and innovations. This collaboration is seen as a way to accelerate AI breakthroughs and ensure these benefits are broadly shared with the world.

A few points about LLMs below.

1. LLMs are used to understand user inputs and generate relevant responses.

2. LLMs allow computers to understand and generate language.

3. LLMs specialise in understanding and generating human like text.

4. Operate as generative AI, producing new content and can have a real conversation mimicking human behaviour. It can be difficult to tell whether you’re having a conversation with a human or a machine.

5. Provides the engine that drives Copilot capabilities. The LLM is what provides a response to our prompts/instructions we send it.

6. Instead of merely predicting or classifying, generative AI, like LLMs, can produce entirely new content.

LLM’s are trained using a large amount of data sourced from the Internet, books, conversations, movies and a lot more. An LLM can be used for all sorts of tasks including chat, translation, summarisation, brain storming, writing poems, code generation, writing a book, troubleshooting, writing a FAQ, image creation/detection and a lot more.

That’s where the name Large Language Model comes from. A large amount of work goes into training the LLM. In simple terms, a LLM is a super intelligent auto complete so if we input Roses are _______. The LLM will respond with the next word of Red. At the time of training these models, the LLM will make errors and is then trained/corrected. For example, if an LLM responded with Roses are Green, the team of data analysts would retrain the LLM with the correct answer and this process continues as the LLM fine tunes itself and gets better.

We can compare an LLM to how neurons/brain cells work in the human brain. In the human brain there are some 80 – 100 billion neurons with 100 trillion connections to each other. The brain is structured so that each neuron is connected to thousands of other cells. Human brain cells form a very complex and highly interconnected network which send electrical signals to each other to allow us humans to process information.


Let’s take an example of a toddler/baby who is shown a picture of a dog. At first the baby will make mistakes when learning to identify the differences between animals. When a baby incorrectly identifies a dog as a cat, a parent or teacher may correct the toddler and the more practice the baby gets overtime by viewing pictures of different animals or seeing animals in the real world, the neurons in the brain adjust, allowing the toddler to get better at identifying animals correctly.

Data scientists created LLM’s in a similar way to how the brain works. An LLM is like a human brain made up of a neural network, each neuron is connected to the others. As mentioned earlier, the LLM is pre-trained on a large amount of data. For example, an LLM can be provided with pictures of thousands or even millions of pictures of a dog and then is trained on how to identify the correct one. When an LLM makes a mistake in identifying an animal, it is corrected and the neural networks start to adjust and this process continues as the LLM learns. Similar to the way we learn as humans.

In the diagram below each circle below represents a neuron. When we provide an input we expect to receive an output. Under the hood we have the hidden layer where all the processing takes place before we are provide with the result, known as the output. Simply put, as we make mistakes and learn, neurons are activated/deactivated.


Scientists discovered that the neural network within a large language model (LLM) can be structured to allow neurons to loop back into previous layers, enabling two way communication similar to human neurons. This breakthrough led to more complex behaviors in LLMs, culminating in the development of ChatGPT by the company OpenAI, which can engage in human like conversations. Microsoft invested in OpenAI and use the LLMs in their products. As you’ll appreciate, there is a lot more to this topic and the information I have provided is basic, but I hope this provides you with a simple overview.


Step 5

The LLM (Large Language Model) retrieves the prompt from the Copilot orchestration engine and generates a response. It then returns the response to the Copilot orchestration engine.


Step 6

Copilot takes the response from the LLM and post-processes it. The post-processing involves aditional grounding calls to graph, security, compliance, privacy and responsible AI checks. This is a final check before it is safe to forward the generated response from the LLM to the user Andrew.


Final Diagram


Stay tuned for the next post where I will explore Copilot in several 365 Apps

Part 1 – Save time and be more productive at work with Microsoft 365 Copilot

Reading Time: 4 minutes


In this blog series, I’ll delve into the advantages of using Microsoft 365 Copilot. In this first post, I’ll discuss the common challenges we face in our daily tasks at work and how Copilot can help alleviate these burdens, save time and money, and boost our productivity.

We all feel the pressure of work. Information, deadlines, and constant communication can often overwhelm us. AI can help, not just by making work easier or faster, but by making it more fulfilling. When we don’t have to spend as much mental energy figuring out what happened in that meeting, catching up on emails, or finding that document from last week’s chat, we can focus more on the core of our work and the purpose behind it.

In recent years, the pace and volume of work have continued to increase. Data from searches across Microsoft 365 services reveals that on any given workday, Microsoft’s most active Microsoft 365 users:

  • Conduct 18 searches for what they need.
  • Receive over 250 emails.
  • Send or read nearly 150 chats.

Globally, Microsoft Teams users are now in three times as many meetings each week compared to 2020. Additionally, some people use 11 different apps on Windows in a single day to complete their tasks.

AI helps lighten the workload by boosting human abilities and speeding up natural creativity. When leaders learn to use AI effectively, they can enable their teams to embrace this new era of AI-powered productivity, bringing great benefits to their organisations.

Before diving into Microsoft 365 Copilot, let’s compile a list of tasks we typically handle each day at work. On an average workday, you might find yourself:

  1. Catching up on email threads among colleagues.
  2. Engaging in numerous Microsoft Teams chat conversations.
  3. Reviewing recordings of Teams meetings you missed due to other commitments.
  4. Sending various emails to colleagues and external partners.
  5. Creating PowerPoint presentations
  6. Analysing data in Excel, budgeting, transforming it into tables, graphs, or pie charts
  7. Locating emails and Teams messages where you’ve been directly mentioned with the @ symbol and tasked with specific actions to complete.
  8. Reviewing outstanding tasks from this or last week, including important actions assigned by your manager.
  9. Checking emails or Teams channels to ensure you haven’t missed any company announcements.
  10. Planning for the upcoming week’s tasks and meetings.
  11. Organising the next team get together and ensuring fun activities are arranged.
  12. Reading through a lengthy 100 page document in preparation for a meeting the next morning.
  13. Recalling the last time you had a meeting with a specific colleague.

I could list additional daily tasks, but you get the idea.

How can Microsoft 365 Copilot help?

Microsoft 365 Copilot isn’t just another feature introduced by Microsoft. It’s more than that, it’s your AI (Artificial Intelligence) powered Copilot that accompanies you, the Pilot, throughout your day to day interaction with Microsoft 365 apps such as Outlook, PowerPoint, Word, Excel, Teams, Loop and Whiteboard. Copilot was developed to save time and make you more productive by being able to generate new content mimicking human behavior. This is known as Generative AI where machines are able to generate new unique content and respond like your interacting with a real human being.

Going back to the list of daily tasks I created at the beginning of this post. Well, Copilot can assist with addressing those challenges and more. Those challenges we are all aware of at the workplace where the pace of work is overtaking our ability to keep up with our daily tasks. Microsoft 365 Copilot is designed to assist and reduce that burden, such as being able to generate new emails, summarise email threads, summarise a large word document, summarise team meetings you were not able to attend, create you a PowerPoint deck, generate a business proposal, generate a job advertisement, locate email and teams conversations where you were @ mentioned, list your outstanding tasks for the week and more!

Remember, Microsoft 365 Copilot is not replacing you, it’s your Copilot and you’re the Pilot.

Image generated by Microsoft Copilot in Bing

Is Copilot the same as a search engine like Bing or Google?

Is Copilot the same as a search engine like Bing or Google? Not exactly. Copilot is more advanced than a search engine. When you use a search engine, you may ask a question like, “How do I fix this plumbing issue?” The search engine will then scour its index of relevant content and present a list of website links for you to explore. You then have to sift through these links to find the information you need or perform another search.

Copilot, on the other hand, uses a pre trained Large Language Model (LLM) to perform a similar task but with a twist. It doesn’t just find relevant content; it generates new content, providing a direct answer to your question, such as how to resolve the plumbing issue. This process is known as Generative AI. I’ll cover Large Language Models (LLMs) later in this blog series.

Here is a short video from Microsoft which summarises and provides an insight into Copilot.


Is Microsoft 365 Copilot free?
No, this particular service requires a license for each user who will be using Copilot in your organisation. Microsoft 365 Copilot is available as an add-on plan with one of the following licensing prerequisites listed at the at the following Microsoft Learn page, Microsoft Copilot for Microsoft 365 requirements.

Before exploring Microsoft 365 Copilot within the various Microsoft 365 Apps, such as Word, Excel, PowerPoint, Teams and Outlook, I explore how this AI Powered Copilot functions under the hood and provide a high level architecture overview through a number of diagrams.

Click the link below to progress to the next post. See you there 🙂

Copilot for Microsoft 365 under the hood

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.

Integrate Defender for Endpoint with Defender for Cloud Apps

Reading Time: 6 minutes


In this post I explore how to integrate Defender for Endpoint with Defender for Cloud Apps natively without having to go through much effort.

Why would you want to do this? Once traffic information is collected by Defender for Cloud Apps, you can analyse what Cloud Apps your users are accessing, including details such as website address, IP, user and device name.

Defender for Cloud Apps takes advantage of capabilities to block endpoint device access to Cloud Apps. Cloud Apps can include any application or website accessed over the Internet, for example, Office 365 and websites such as social media sites. For example, you may want to identify commonly used risky cloud storage and collaboration websites your users may be using and unsanction (block access). Defender for Cloud Apps helps you manage over 31,000 apps by assessing risk factors provided by Microsoft to ensure compliance. If a Cloud App does not meet security and compliance requirements, you can unsanction the app. This is basically shadow IT and mitigation, allowing you to block the use of unauthorised Cloud Apps in your organisation with a click of a button.

Pre-requisites

There are number of configuration options we must enable before the data we require from our user devices is visible within Defender for Cloud Apps.

  1. Access the Microsoft Defender XDR portal at security.microsoft.com

  2. From the left pane, click settings.


3. Click Endpoints


4. Click Advanced features


5. Scroll down to Microsoft Defender for Cloud Apps and enable this option.


6. From the left pane, click Settings again


7. Click Cloud Apps


8. Under Cloud Discovery, click Microsoft Defender for Endpoint


9. Enable enforce access. Once you discover and unsanction unauthorised Cloud Apps, users will not be able to access them and will receive a warning. You can also set up additional alerting options as required, such as redirecting the users to a custom web page of your choice when a website/cloud app is blocked.


10. Click Settings > Endpoints > Advanced features, and then select Custom network indicators. This allows you to leverage Microsoft Defender Antivirus network protection capabilities to block access to URLs using Defender for Cloud Apps.

11. Click Yes to confirm.

It can take up to 2 hours before information is passed from the endpoints to Defender for Cloud Apps

12. Access Defender for Cloud Apps (security.microsoft.com) and click Cloud Discovery from the left pane as shown in the image below.


13. Once the data is visible in Defender for Cloud Apps, a new report similar to the one below should be visible. The report shown in the image below is named Win10 Endpoint Users.


14. In the Win10 Endpoint Users report, some statistics start to become visible. Click Discovered apps.


15. We can see a list of Cloud Apps being accessed by users. There is not much going on as I only have one Windows 10 machine and one user that I used for this demo.

Each Cloud App/website is assessed against a catalog of built in Cloud Apps. The Microsoft Defender for Cloud Apps catalog page provides a list of over 31,000 discoverable Cloud Apps. Defender for Cloud Apps discovery analyses your traffic logs from your Windows 10 and 11 devices to give you ongoing visibility into Cloud use, shadow IT, and risks posed to your organisation. Defender for Cloud Apps rates each website/cloud app risk based on regulatory certification, industry standards, and best practices.


16. We can dig deeper and check the users and IP addresses tab.



17. All Cloud Apps accessed by my demo users are ok from a risk score point of view, but let’s assume that I wanted to prevent my users from, accessing Dropbox or other websites. I could unsanction, block access to the Cloud App.


Note: unsanctioning a Cloud App blocks access for the whole organisation. However, you can create custom App tags which can be based on include and exclude. You can then select to exclude or include certain devices. For example, block access to social media sites for all devices apart from marketing user devices.


18. Once I click unsanction, a list of drop box url’s are added to a blocked list known as Indicators. These can be viewed by clicking settings from the left menu > Endpoints and then scroll down to Indicators as shown in the image below.


19. You’ll find that as part of unsanctioning Dropbox, a number of urls are added automatically by Defender for Cloud Apps, such as dropbox.com, dropbox.jp, dropboxbusiness.com and more. You could also manually add website addresses you wish to block from user devices.

Note: it can take a few hours, sometimes up to 24 hours before the changes are synced to Defender for Endpoint.


20. We can also unsanction Cloud Apps from the catalog of over 30,000 built in apps. From the left pane click Cloud App catalog.


21. I filter to display all Cloud Apps with a risk score of zero. Change the filter as per your requirements using the risk score option shown in the image below.

A total of 321 apps (at the time of writing) with a risk score of 1 appear from the catalog.


22. Let’s click the first one in the list, torrentz.cl

Clicking the app, provides me with some useful information including app security and compliance details. This could be really useful as I may only want my users accessing apps which meet ISO 27001 and ISO 27018 compliance.


I could also check if my users are using this app and if yes, I could decide to unsanction (block) or even monitor access. If a Cloud App is tagged as monitored, a message will appear notifying the users that this cloud app/website is being monitoring.

23. After the indicators have synced to Defender for Endpoint (This could take a few hours, sometimes up to 24 hours), I launch Edge browser and access dropbox.com, I receive a blocked message. An alert is also logged in the Defender portal to inform administrators that a user attempted to access an unsanctioned (blocked) website/cloud app.

Message: This website is blocked by your organization. Contact your administrator for more information.


and that’s it. I hope you found the post useful.

See you at the next post