---
title: Cloud Agents
description: Bring agents and conversations from cloud agent platforms, such as Microsoft Copilot Studio and Cursor Cloud Agents, into Surface.
---

_[console.superalign.ai/hub](https://console.superalign.ai/hub) → **Cloud Agents**_

Like [Data Sources](/surface/hub/data-sources/overview), Cloud Agents run in SuperAlign's backend, not on an endpoint.

[AI Tools](/surface/hub/ai-tools/overview) record what happens on endpoints. Some AI products run entirely in the cloud, so there is nothing on an endpoint to record. **Cloud Agents** connect to those products directly and pull their agents and conversations into Surface every 15 minutes.

| Platform | What it syncs |
| --- | --- |
| **Microsoft Copilot Studio** | The agents built in each Power Platform environment, and their conversations |
| **Cursor Cloud Agents** | The agents a team or user runs in Cursor's cloud, and their conversations |

Synced agents appear in [Inventory](/surface/overview/inventory) alongside assets found on endpoints. Synced conversations appear on the [Sessions](/surface/activity/session-trace) page with the product as the source.

## Content policy

Each platform asks what to collect:

- **Collect conversation text** stores the full conversation, like session recording on an endpoint does.
- **Metadata only** records that a conversation happened and when, but keeps its text in the product. The console shows "Content not available" in place of the text.

Switching from metadata only to full text later does not fill in conversations already synced.

## Before you begin

- You have the **Admin** role in Surface.
- **Copilot Studio:** an app registration in Microsoft Entra ID with a client secret. To discover every environment, a Power Platform admin registers the app with `New-PowerAppManagementApp`. Without that, list the Dataverse URLs to read instead.
- **Cursor:** a Cursor API key. A team key reaches every member's agents; a personal key reaches only its own.

## Connect

1. **Open the setup panel**

    **Hub**, then the **Microsoft Copilot Studio** or **Cursor Cloud Agents** card under **Cloud Agents**.

2. **Choose the content policy**

    **Collect conversation text** or **Metadata only**. See [Content policy](#content-policy).

3. **Fill in the required fields**

    | Platform | Field | Notes |
    | --- | --- | --- |
    | Copilot Studio | **Directory (tenant) ID** | The Entra tenant the app registration lives in |
    | Copilot Studio | **Application (client) ID** | The app registration Surface signs in as |
    | Copilot Studio | **Client secret** | Secret |
    | Cursor | **API key** | Secret |

4. **Test and save**

    Click **Test Connection**, then **Save**. The first save turns it on.

## Advanced options

| Platform | Field | Change it when |
| --- | --- | --- |
| Copilot Studio | **Dataverse URLs** | The app is not registered with Power Platform. Comma-separated, for example `https://org12345.crm.dynamics.com`. Only these environments are read |
| Copilot Studio | **Environments** | You want only some environments. Comma-separated environment IDs. Ignored when Dataverse URLs are set |
| Copilot Studio | **Login endpoint**, **Power Platform API endpoint** | You use a sovereign cloud |
| Cursor | **API endpoint** | Cursor gave you a different host. Defaults to `https://api.cursor.com` |

## What happens next

Within 15 minutes, the product's agents appear in Inventory and their conversations on the Sessions page. An agent deleted in the product keeps the conversations already synced.

## Next steps

- [Session Trace](/surface/activity/session-trace) to open a synced conversation
- [Amazon S3](/surface/hub/data-sources/s3) to keep synced conversations in your own bucket
