Connect External Data to M365 Copilot Using Built-in Graph Connectors

Enrich M365 Copilot with all your high-quality external data using Built-in Graph Connectors! Whether it’s a SQL Database, an internal ticketing system, or your internal wiki you can use them to enrich Microsoft 365 Copilot. Your users will be happy to have ALL the systems they use daily with the Power of Copilot!

Watch my 90+ courses on Pluralsight (opens in a new tab)

Video Summary

  • Integrating External Data: You can bring external data into Microsoft 365 Copilot using Graph Connectors, allowing Copilot to understand and respond to queries based on this data.
  • Admin Control: Admins can control which external sites Copilot has access to, ensuring only trusted sources are used. This can be done without allowing Copilot to search the entire web.
  • Indexing Process: After setting up a connection, the indexing process may take some time, but once complete, Copilot can semantically understand and use the data.
  • Enhanced Responses: By integrating external data, Copilot can provide richer, more accurate responses, making it a powerful tool for both admins and makers.
  • Practical Example: The video demonstrated adding a website as a data source, showing how Copilot can then use this data to answer questions and build specialized agents.

For more information, read the transcript blog below, or watch the video above!

Video Transcript

“Microsoft 365 is amazing on its own, but what if some of your data lives outside of Microsoft 365? Look, even if as an MVP I really wish that every company used only Microsoft 365, I know the reality is that most organizations still have data on-premises in file shares or third-party systems. Imagine if we could bring that data inside Copilot by default or even create specialized agents for those third-party systems and take a dumb file share and get it AI-enabled. Welcome back to The Ultimate Guide to Customizing Microsoft 365 Copilot series. I’m joined again by Sebastien Levert, Principal PM Manager at Microsoft and an amazing developer. Seb, how are you doing?”

“I’m good, thanks for having me back today, Vlad.”

“Well, thank you so much for coming back to record another episode. So, Seb, so far in this series we have covered terms and concepts, we have covered how to create agents only based on SharePoint, and we have covered how to create agents with no code with the Agent Builder. What’s next?”

“So, in this episode, we’re going to bring the Agent Builder we created last week. Do you remember?”

“I do. It was all about poutine and great M365 content together.”

“And we’re going to extend it with built-in graph connectors.”

“Okay.”

“These graph connectors are ways to ingest data inside Microsoft 365 that does not usually reside inside M365 and will help you get the value out of Copilot, meaning asking natural language questions and getting amazing content back from data that does not even live inside Copilot.”

“What are some examples of what kind of data people could bring?”

“There is a lot of data that people could bring. So, let me go on and show what parts today we’re going to really cover. We know that Copilot is kind of that mighty beast that lives around us and we can come and offer more capabilities, skills, knowledge, and grounding. When we think about graph connectors, we need to think about knowledge. Knowledge is where we’re going to really have a huge impact. So, think about anything that can bring knowledge inside Microsoft 365. Today, we’re going to really focus on the built-in connections that live inside the Search and Intelligence Center in the admin portals of Microsoft 365.”

“And if I remember correctly, you told me that a lot of the stuff that we’re going to do today, people can bring some of that data for free.”

“Absolutely. It’s not something that people have to pay for to bring other data into our index, into our knowledge, basically.”

“Exactly. So, as of today, you have access to 50 million items for free that you can bring inside Microsoft Copilot. Think about things like your most critical databases. So, think about it like you have a homegrown system, you have a database somewhere, and you want to bring that data in. Well, it’s your treat. Your clients, if you don’t use Dynamics, you can bring in your clients’ sales orders, all of that stuff.”

“Exactly. Think about file shares, any of the files that are still residing on-premises that, for whatever reason, you want to bring them. So be it. You want to bring websites, maybe your own website or your knowledge base that you’re building for your customers. You want to be able to grab an agent for your support staff. They could actually ask questions to go on how to do things and help their customers.”

“Cool. That’s really cool. So, that’s really what I want to highlight here. It’s super powerful, and today we’re going to use one of the best knowledge bases that I know, and it’s your website, Vlad.”

“Love it. Let’s do it. So, I might get back to this agent when I forget stuff myself. I’ll just ask the agent.”

“Absolutely. So, let’s go and set it up from the ground up and see how these things go. So, let me go on to here. I’m in Copilot, and right now, if you remember correctly, we have our poutine agent.”

“Our poutine agent, the mighty poutine agent.”

“The mighty poutine agent. So, we’re going to leave it there for now. We’re going to come back later to extend it, but let’s start, and we’re going to go to the Search and Intelligence Center.”

“What is the Search and Intelligence Center?”

“It’s actually one of the many pages that exist in the M365 admin center. It’s under Settings and Search and Intelligence. Now, I’m just going to collapse our left panel so we can really focus on this.”

“You need to be an admin for that, either a global admin or a search admin. There is a role for that, so you might need to have certain roles from your admin to access this page.”

“Absolutely. So, right now, the experience to select an existing connection is a maker selection, so any maker will be able to see these and connect to them. On the other side, creating the connection, yes, you’re absolutely right, is an admin gesture. So, I’m going to go and head over to the data sources. My data sources, it’s going to list here all the different connections that currently exist in my environment. So, right now, I have a policy management system. That policy management system is where, in this organization, we list all of our IT policies. It could come from a well-known SaaS service, or maybe you’re just building it as part of a small website that your IT enables you to do. We also have GitHub issues. We’re going to come back to that later on in a future video, but I wanted to give you a little bit of a glimpse of that. And now, we’re going to add your website. So, I’m going to go and add a new connection. I’m going to add a connection here. We’re going to see all the different data sources. I’m going to just walk you through some of the first-party or in-the-box available connections.”

“So, when we mentioned in the episode title that it’s built-in graph connectors, you mean those that I just put my credentials in and then it works. Microsoft already did the job, but we could also create our own too. Like, say we have our own system with our own APIs, we could also create our own connector as well.”

“Exactly, and we’re going to cover that later in the series, so you can have a website in the cloud, a publicly available website, or a website that lives on-premises. Think about if you’re building your own; we’ve seen that in a lot of organizations, they’re running their own version of Wikipedia internally for their own databases using the Wikipedia open-source tool. You can use that. If you’re using Confluence, you’re going to be able to use those file shares, ADLs, so that’s a data lake. A data lake, that’s exactly it. DevOps way, so ADO Wiki, ServiceNow catalog, the media here, MediaWiki. So, bad example with the on-premises stuff. Any other website of that, the work items on Azure DevOps, ServiceNow knowledge, Salesforce CRM, Jira. Everybody loves Jira. I know that everybody who uses Jira just loves it. Absolutely. SQL, now we have a preview of ADO, and get to connect to the source code. Nice. Tickets, we’ll come back later to the custom connector, other DevOps capabilities, Azure SQL, Oracle SQL, and finally to a regular CSV file. So, all of these are available for you to try. So, if your data lives in one of these things or you can transform your data into one of these, thinking about CSV here, maybe you have data. Maybe bringing that to a CSV is less burden on your IT staff or whatsoever. You can do all of that, but we’re going to start here by doing the enterprise website cloud, which will ask you a couple of questions. So, let’s go through this. Here, we’re going to call it Vlad Talks Tech. Awesome. And here, the URL is https://www (opens in a new tab). No, don’t need to. VladTalks. Super important to not make a typo here. Very important. VladTalks.com. Am I good on that?”

“You should be good on that.”

“Excellent. Now I can add it, and now I can either authenticate or not. Here, do you need to authenticate?”

“We don’t need authentication. It’s public knowledge for everybody.”

“Exactly. So, Sebastien, do you want to roll it out to limited audiences? This is a great capability that means that you can actually bring a smaller set of people to start using the connector. Tell you it’s all configured. Good. And then everybody can get access to it later on from a permission point of view. Let’s say I roll this out to IT, right? So, in the maker experience, only people from IT will see that connector. But what if somebody from IT shares this connector with somebody from marketing? They won’t be able to see it. They won’t be able to. So, they’ll have access to the agent that we create, but it will error out or not return anything. It won’t. Basically, the copilot will not be able to ground itself on the content coming from the website. So, it’s going to do the rest of the sources. It’s not going to fail, but it’s not going to be as rich as you’d want it to be. And that is the same case for basically any type of content. Still works the same way as all others. Awesome.”

“Exactly. And now, I do authorize Microsoft to create an index because that’s literally what we want. And then, just going to hit create. That’s it. Now, we wait.”

“Now, we wait. And that’s the part that is just normal, right? We’re waiting for that to bring new data inside. It’s going to start the indexing, the ingestion. It’s going to create the index. It’s going to also create a semantic index out of it so you can ask natural language questions. And now, here, because it’s very tightly connected to M65 Copilot, it’s going to ask you to enhance Copilot responses by adding a connector description. Okay, just to say what’s on that website. What can we ground our Copilot into? What is the type of content? And what will people ask? If people ask, ‘Hey, what does my, I don’t know, Project Excalibur say about this?’ Copilot needs to know, like, ‘Hey, when people ask about Project Excalibur, it’s this thing here.’”

“Exactly. So, here in this case, it’s a complete… Yeah, go ahead. Tell me what would be your description for the content that lives on your website.”

“Let’s call it the Microsoft 365 IT Pro Knowledge Base.”

“That is a great description because then it’s going to really be helpful. Now, I can save it. And now, when you’re going to invoke the content in Copilot, everything will work quite nicely. So, I’m just done, and we’re going to wait for this thing to continue. And when this thing is done, we’ll be back and we’ll continue from there.”

“Awesome. We’ll be back in a second. Okay, so we are back. It took a little bit over 30 minutes, a bit more, I think even. Yeah, we’re around 45 minutes approximately to load your entire site. But, you know, Vlad, there’s a lot of great content there, so it takes a long time. It’s a good reason to. But maybe if you have millions of records, maybe do it on a Friday and it’ll be done by Monday. Maybe don’t wait for it like we did over here. But okay, so it’s finished.”

“Yeah, we’re done. What’s next?”

“So now, well, the next thing is to go to Copilot and ask questions. Let’s go. That’s the fun part. I’m going to go to Copilot. I’m going to go here. And automatically, as part of when we set up the connector, it automatically enabled itself to be available in two experiences in Copilot, in what we call Mainline Copilot inside the actual CoPilot app, without an agent, it’s available as part of the overall knowledge that it has access to, including emails, documents, and everything that is available in Pilot. But it’s also available in an agent, so you’ll be able to go and select the specific connection in the agent. We’re going to start with just the CoPilot experience and then see how we can make that happen inside the agent builder. Before you ask something, because you know my website is now also a web source for CoPilot, we’re going to need to tell the chat right now to not look at the web.”

“So, let’s imagine that in my company, I closed off all web access for CoPilot. I don’t want CoPilot to go on the web; I only want it to be grounded in a few websites that I trust and brought in this way. Can I do that easily? Yes, you can absolutely do that. You go here to the manage CoPilot responses menu and just turn on or off the web. In our case, we’re going to leave it off to make sure we’re not querying the web for your content, but especially in internal websites, that should not be an issue.”

“Yeah, that should not be a problem. But in this case, we decided if we wanted to ground our IT pro knowledge base with your content, so we’re just going to turn it off. What is great is that inside agents, you also have that toggle on/off. It’s going to help you decide if you do it or you don’t. So, I’m going to go here, and now you see we have turned off web search. That’s great. I’m going to say, based on our IT pro knowledge base, what is a good opportunity to learn about Power Platform, for example.”

“And here you see tons of typos. I cannot type. That’s why I use GitHub CoPilot when I’m coding, exactly. But then, K is really good at rewording some of that to make sure it makes sense. Now, I’m just going to hit enter, and now it’s going to try to find the content and lay out a great set of capabilities and content based on your website. Now, here you’re going to find the opportunity to have an on-demand free applied skills credential. That’s good. What’s the part of the platform credential that is best for my career? PAAD, something about a keynote I could help people with, and then the Microsoft applied skills versus certification.”

“So, here it gives me a lot of great content that you had on your website. For example, let’s go see the AI models. How do I know it comes from my website? When you hover on top of either of the citations, you’re going to see it comes from Vlad Talk Tech. If you were querying on the web, it would say web here. So now, it automatically gets the name of the title of the page, so you know exactly what’s in there. For example, I can go here and say I’m going to go there, and now I have the opportunity to right away see the content. So, any type of content you would ask would come from here.”

“That is the experience that lives inside Mainline CoPilot, sorry, CoPilot Chat. Exactly, the new name. Now, what I want to do is go to the agent and update it. How would I update it? For now, I still need to hit create on an agent, but we’re coming up very soon with an experience where you’re going to be able to edit. Exactly. I’m going to go to the agent, and now I’m going to add nothing. I don’t want to add anything there, but the only thing I’m going to add is a new look at that. Now, I have from my organization, I now have my enterprise websites, and I’m going to find the internet site Cloud One, which is the name that we gave to that connection. When we hover over it, however, we do see Microsoft 365 IT pro knowledge base. So, it’s still important to tell CoPilot how to call it when we did that additional description.”

“Absolutely. So now, I’m going to do that here. I’m going to hit update, and now it’s going to update my agent. The agent will now be also grounded in that content. So, it’s going to be grounded in the content from the website, from the content that is in SharePoint, from a little bit of instructions we gave it, including the fun fact about we need to remember the fun fact, and also now about the enterprise content, in this case, your website. So, I’m going to go to the agent now. I’m going to say, what is new about AI Builder? We saw an article earlier, so we should be able to ask for something like this.”

“Now, it looks like it was not able to answer my chat. It happens. It’s shy at the beginning. Again, I think you have a problem where there are two of them there, so I think just a refresh. I’m going to hit a little refresh here. We’ll see how that plays out. There’s only one now. Exactly. So, let’s just ask the same question as we did before. What is a great opportunity to learn about Power Platform? Now, it’s going to find the content and now look at that. It found a lot of great content directly from the content that we showed. So now, the Power Platform best practices coming directly from your stuff, again, the Power Platform certifications, and all of that. It also added some Microsoft Learn capabilities. I’ll have to check, maybe we have the web turned on on that agent.”

“Interestingly enough, here it’s separated both, so that’s cool. That’s really important. Exactly. So now, you have a little bit more confidence. Let’s say I want to learn about Power Platform certifications. I can click here. Now I have that great infographic right here that tells me exactly which path I should be taking. That is the kind of really cool capability that I can build with bringing in content from the outside into M365 Copilot using graph connectors. It’s going to understand my question semantically, match it, and show the content. Now I can build agents that are not only specialized on one thing or another but can literally use a set of different data sources to help answer the question.”

“And without forgetting about our fun fact—did you know that poutine, a popular Canadian dish, originated in Quebec in the late 50s? It’s a delicious combination of fries, cheese curds, and gravy. I love it! Everybody should go try poutine.”

“So that’s what I wanted to show today: bringing content from the website, waiting a little bit for the indexation to happen, then going into Copilot, asking the question, and building an agent based on that. This brings a ton of value to admins who want to bring content in, but also to makers who want to ground their agent in the knowledge that is vetted by the organization, approved, and made available for everybody.”

“Something that I like about this and how easy it was is that, as an admin, I don’t really want to let Copilot go on the web. But if there are 10-15 sites that I really like, I can bring those in and still control the 15 sites that Copilot has access to as trusted sites, as long as they have less than 50 million items. So I don’t pay extra, but 50 million is a lot. It is absolutely a lot.”

“That’s what I wanted to focus on today, remembering that we are part of the declarative agents system where we create those. Today, we really focused on the knowledge that exists in M365.”

“Awesome, Seb! Thank you so much for sharing this amazing content. Like I said, I really think this opens so many opportunities to get even more value out of Copilot for everyone. I hope you enjoyed this video and found it valuable. You have our social media handles in the description below if you want to connect. Make sure to check out the next episode in the series, which should be on your screen right about now. And of course, make sure you hit that subscribe button to get notified as soon as the new episodes are available. See you in the next one. Cheers!”