> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/destinations/categories/ai/ms_copilot_studio.md).

# Microsoft Copilot Studio

Connect business data to Microsoft Copilot Studio agents as an MCP tool. Ask agents about your data across any Coupler.io source—no SQL required.

Microsoft Copilot Studio lets you build and extend AI agents that answer questions and take action on your behalf. By connecting Coupler.io as a Model Context Protocol (MCP) tool, your Copilot Studio agents can read business data from any Coupler.io source and answer questions about it in plain language — no SQL or code required.

## Why use Microsoft Copilot Studio as a destination?

* **Extend your agents with live data** — let your Copilot Studio agents query marketing, sales, or operational data on demand
* **Any source, one agent** — connect Google Ads, TikTok Ads, Google Drive, or any other Coupler.io source, and make it all available to the agent
* **No client ID or secret to manage** — Copilot Studio registers itself with Coupler.io automatically through OAuth dynamic discovery
* **Always fresh data** — schedule your data flow to refresh automatically so the agent always works with up-to-date data

## Prerequisites

* A Microsoft Copilot Studio environment with an agent you want to extend
* [Generative orchestration](https://learn.microsoft.com/en-us/microsoft-copilot-studio/advanced-generative-actions) enabled on the agent (the default for new agents)

## Quick start

{% hint style="success" %}
Add the Coupler.io MCP tool to your agent first, then create and run your data flow. Only data flows with the Microsoft Copilot Studio destination will be available to the agent.
{% endhint %}

### How to connect

{% stepper %}
{% step %}
**Add a source to your data flow.** In Coupler.io, create a new data flow and add at least one source — for example, Google Ads, TikTok Ads, or any other supported integration.
{% endstep %}

{% step %}
**Select Microsoft Copilot Studio as the destination.** In the destination step of your data flow, choose **Microsoft Copilot Studio** from the list of available destinations.
{% endstep %}

{% step %}
**Open your agent in Copilot Studio.** Go to [Microsoft Copilot Studio](https://copilotstudio.microsoft.com), pick the agent you want to extend, and confirm generative orchestration is turned on.
{% endstep %}

{% step %}
**Add the Coupler.io MCP tool.** Go to **Tools → Add a tool → New tool → Model Context Protocol**, then paste the **Coupler.io MCP server URL** shown in the destination step.
{% endstep %}

{% step %}
**Set authentication.** Choose **OAuth 2.0** and pick **Dynamic discovery**. No client ID or secret is needed — Copilot Studio registers itself with Coupler.io automatically. Click **Create**.

{% hint style="info" %}
The first time someone uses the tool, they'll see a consent card in chat and sign in to Coupler.io once. See Microsoft's [Connect your agent to an existing MCP server](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-existing-server-to-agent) guide for the full walkthrough.
{% endhint %}
{% endstep %}

{% step %}
**Run the data flow.** Click **Run** to execute the data flow manually. Once it completes successfully, ask the agent in Copilot Studio about your data — it will call the Coupler.io tools as needed.
{% endstep %}
{% endstepper %}

## Supported features

| Feature              | Supported |
| -------------------- | --------- |
| Replace mode         | Yes       |
| Append mode          | No        |
| Automatic scheduling | Yes       |
| Type enforcement     | No        |
| Templates            | No        |

## Microsoft Copilot Studio common issues

### Connection issues

<details>

<summary>The agent doesn't call the Coupler.io tool</summary>

If your agent ignores the Coupler.io tool or says it can't access the data, check the following:

* Confirm **generative orchestration** is turned on for the agent — without it, the agent won't decide to call MCP tools on its own.
* Verify the tool was added under **Tools → Add a tool → New tool → Model Context Protocol** with the correct Coupler.io MCP server URL.
* Make sure at least one data flow with the **Microsoft Copilot Studio** destination has completed a successful run.

</details>

<details>

<summary>Authentication or consent fails when using the tool</summary>

The Coupler.io MCP tool uses **OAuth 2.0** with **Dynamic discovery**, so Copilot Studio registers itself automatically — you don't add a client ID or secret. If sign-in fails:

* Confirm the tool's authentication is set to **OAuth 2.0** with **Dynamic discovery**, not a manual client ID/secret setup.
* When the consent card appears in chat, sign in to Coupler.io to authorize the tool. Each user signs in once.

{% hint style="warning" %}
If you re-created the tool or changed its authentication settings, users may need to sign in again through a fresh consent card.
{% endhint %}

</details>

<details>

<summary>The agent can't see a data flow I just created</summary>

Only data flows that use the **Microsoft Copilot Studio** destination are available to the agent. If a data flow uses a different destination, the agent won't see it. Confirm the destination and that the flow has completed a successful run.

</details>

### Data issues

<details>

<summary>The agent sees fewer rows than the Coupler.io preview shows</summary>

A mismatch between the Preview in Coupler.io and the data the agent receives can occur when the same identifier appears multiple times and deduplication affects the export differently than the preview.

{% hint style="danger" %}
Don't rely on the Preview tab alone to confirm what the agent will receive. Always verify the actual row count after running the flow. You can also configure a Google Sheets export to cross-check the number of rows and see what's missing.
{% endhint %}

If specific rows are missing, note the relevant IDs and contact Coupler.io support with the data flow details — this type of discrepancy requires engineering investigation.

</details>

### Permission errors

<details>

<summary>"You've reached your destination limit" or AI usage is restricted</summary>

Coupler.io plans have limits on **destination type**. If you're using Microsoft Copilot Studio as a destination and also sending data elsewhere (for example, Google Sheets), you may hit this limit.

To resolve this, either:

* Remove the other destination and use only Microsoft Copilot Studio, or
* Upgrade to a higher Coupler.io plan that supports multiple destination types.

{% hint style="info" %}
Each active data flow counts toward your plan limits. If you created a test flow with a different destination, delete it to free up your destination slot or upgrade to a higher plan.
{% endhint %}

</details>

## Microsoft Copilot Studio FAQ

<details>

<summary>What is Microsoft Copilot Studio?</summary>

Microsoft Copilot Studio is a platform for building and extending AI agents that answer questions and take action. When connected to Coupler.io through an MCP (Model Context Protocol) tool, your agents can access business data from any supported source and answer questions about it in plain language.

</details>

<details>

<summary>How does my data get to the agent?</summary>

Coupler.io exposes your data through an MCP server. You add that server to your Copilot Studio agent as a tool, and the agent calls it on demand when you ask about your data. When you run a data flow with Microsoft Copilot Studio as the destination, the data becomes available to the agent through this tool.

</details>

<details>

<summary>Do I need a client ID or secret to connect?</summary>

No. The Coupler.io MCP tool uses **OAuth 2.0** with **Dynamic discovery**, so Copilot Studio registers itself with Coupler.io automatically. The first time someone uses the tool, they see a consent card in chat and sign in to Coupler.io once.

</details>

<details>

<summary>Why doesn't my agent use the Coupler.io tool automatically?</summary>

The agent needs **generative orchestration** enabled to decide when to call MCP tools on its own. This is the default for new agents. If it's turned off, enable it on the agent's settings so it can use the Coupler.io tool.

</details>

<details>

<summary>Which data flows are available to the agent?</summary>

Only data flows that use the **Microsoft Copilot Studio** destination are available to the agent. Data flows sent to other destinations won't appear.

</details>

<details>

<summary>Can I send data from multiple sources to one agent?</summary>

Yes. A single Coupler.io data flow supports multiple sources, and you can combine them using **Join** or **Append** transformations before the data reaches the agent. You can also run several data flows with the Microsoft Copilot Studio destination.

</details>

<details>

<summary>How do I keep the agent's data up to date without re-running manually?</summary>

Once your data flow has completed a successful manual run, set up a **schedule** in Coupler.io to refresh the data automatically — hourly, daily, or at a custom interval. The agent will then have access to fresh data whenever it queries the tool.

</details>

{% hint style="info" %}
For help setting up specific data sources for Microsoft Copilot Studio, see the individual source articles in the **Sources** section of this Help Center.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.coupler.io/destinations/categories/ai/ms_copilot_studio.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
