Skip to content
Home » How to Connect External Data to Microsoft Copilot Studio Using Power Automate or Custom Connectors

How to Connect External Data to Microsoft Copilot Studio Using Power Automate or Custom Connectors

If you’ve been looking for a step-by-step guide to help your Copilot in Microsoft Copilot Studio access and share external data, you’re in the right place. Whether your data lives in a database, a REST API, or another system outside of Microsoft Dataverse, this post will walk you through how to wire everything up without compromising security.

Important: Copilot always respects any existing data privileges you’ve configured—whether you’re using Power Automate flows, APIs, or custom connectors. Nothing will bypass your current permission structure.

What Do We Mean by “External Data”?

In this context, external data refers to any information not stored in Microsoft Dataverse. If you’re looking to connect Copilot to Dataverse specifically, I’ve already created a separate tutorial for that — this article is for everyone else using third-party databases or services.

Let’s say you own a coffee shop, and you’ve stored your list of available coffee types in an external SQL database. You want your Copilot to retrieve this data when a user asks, “What kinds of coffee do you have?” We’ll cover how to set up your topic and connect it to your existing Power Automate flow or API.


Creating a Topic in Copilot Studio

To access external data, you’ll first need to create a topic in Copilot Studio that’s dedicated to that task. You can do this by clicking “Add Topic” and giving it a clear purpose like “Get Coffee Types.”

Once inside your topic, you’ll add an action node. Under “Add an Action,” you’ll find three tabs:

  • Power Automate
  • Connectors
  • Tools

What you’re interested in are the Power Automate and Connectors tabs. These sections will list your pre-built flows and any custom connectors you’ve already configured. From here, it’s just a matter of linking your topic to the appropriate automation.


Gathering User Input with Variables

In order for your flow or connector to work, it likely needs some input—like a user’s name, or an account ID. You can collect these using variables, which are just bits of information gathered during the Copilot conversation.

The most straightforward way to create a variable is by adding a Question Node. When you ask the user a question, Copilot will store their answer in a variable (e.g., typeOfCoffee). These variables are then passed into your automation as inputs.

For more advanced and cleaner logic, consider using Topic Inputs, which allow you to define required variables upfront. These inputs are customizable, keep your canvas tidy, and help make your conversations feel more natural and human.


Using the Output from Your Flow or Connector

After your Power Automate flow or custom connector runs, it will return some form of output—often in JSON format. Within Copilot Studio, you can parse this JSON using the variable management tools and extract exactly what you need to display back to the user.

To do this:

  1. Select “Send a Message”
  2. Click “Insert Variable”
  3. Choose your parsed variable (e.g., orderDetails)
  4. Present the information directly in the chat response

This creates a smooth experience where Copilot gathers inputs, runs the flow, processes the output, and delivers the response—all without leaving the chat.


Final Thoughts

Working with external data in Microsoft Copilot Studio might feel overwhelming at first, but once you understand the flow of inputs and outputs, it becomes a powerful tool for building dynamic, data-driven assistants.

Thanks for reading—and happy building!