
How it works
Copilot Studio stores conversation transcripts in theConversationTranscript table in Dataverse. Openlayer provides a dedicated API endpoint that accepts these transcripts and automatically:
- Parses conversations into structured trace data
- Extracts LLM calls, tool executions, and plan steps
- Captures latency, token usage, and cost estimates
- Logs RAG citations and retrieved documents
- Auto-creates projects and pipelines per bot
Automatic project creation
Openlayer automatically creates a new project for each unique Copilot Studio agent the first time it receives conversation data. Each unique combination ofBotName + AADTenantId maps to a dedicated Openlayer project and data source.
This means that as your organization creates new Copilot Studio agents, they will automatically appear in Openlayer without any additional configuration—simply send the conversation transcripts to the API endpoint and Openlayer handles the rest.
Manual project configuration
Alternatively, you can create projects directly in the Openlayer platform and configure them for Microsoft Copilot Studio:- Navigate to your workspace and create a new project
- Select Monitoring mode
- Choose Microsoft Copilot Studio as the data source
- Enter your agent details:
- Schema name (bot name)
- Tenant ID
Finding your bot name and tenant ID
You can retrieve these values from your Copilot Studio agent:- In Copilot Studio, navigate to Settings → Advanced
- Expand the Metadata section
- Copy the Schema name (this is your bot name)
- Copy the Tenant ID

Prerequisites
Enable enhanced transcripts
To get the most detailed traces in Openlayer, you must enable Enhanced Transcripts in your Copilot Studio agent settings. This setting allows Openlayer to capture node-level details such as name, type, and start and end times. To enable it:- In Copilot Studio, navigate to Settings → Advanced
- Expand the Enhance Transcripts section
- Toggle on Include node-level details in transcripts
- Click Save

Without this setting enabled, Openlayer will still capture basic conversation
data, but you won’t get the full execution traces showing individual node
executions and timing information.
Integration options
There are two ways to send Copilot Studio data to Openlayer:| Option | Best for | Latency |
|---|---|---|
| Azure Logic App (Recommended) | Production, real-time monitoring | Near real-time |
| Batch API Script | Historical analysis, backfills | Scheduled |
Option 1: Azure Logic App (Recommended)
Use an Azure Logic App with a Dataverse trigger for near real-time, low-maintenance integration.Architecture overview
The Logic App integration follows this flow:
- User interacts with Copilot Studio workflows/agents
- Copilot Studio stores session data in the
ConversationTranscripttable in Dataverse - A Logic App triggers on Add/Update/Delete events in the
ConversationTranscripttable - The Logic App’s HTTP action sends the transcript data to Openlayer’s REST API
Step 1: Create the Logic App
- In the Azure Portal, create a new Logic App (Consumption).
- In the Logic App designer, search for Dataverse in the triggers.
- Select the When a row is added, modified or deleted trigger.
- Configure the trigger:
- Table name:
ConversationTranscript - Scope:
Organization - Filter rows: (Optional) Add filters to exclude test/design mode conversations
- Table name:

Step 2: Configure the HTTP action
Add an HTTP action after the trigger with the following configuration:- Method:
POST - URI:
https://api.openlayer.com/copilot-studio/sessions - Headers:
Authorization:Bearer <YOUR_OPENLAYER_API_KEY>Content-Type:application/json
- Body:
@{triggerBody()}

On-premise deployments: If you’re using a self-hosted Openlayer instance,
replace
api.openlayer.com with your deployment’s base URL (e.g.,
openlayer.yourcompany.com).Step 3: (Optional) Add error handling
Add a Scope action around the HTTP call and configure Run after settings to handle failures:- Send alerts to a Teams channel or email on failure
- Use a dead-letter queue for failed transcripts
Option 2: Batch integration via Python
For teams that prefer a code-first approach or need scheduled batch syncs.Prerequisites
Example script
Use cases for batch integration
- Nightly or hourly jobs that backfill conversations
- Historical analysis with new evaluation pipelines
- Environments where Logic Apps are restricted
On-premise deployments: If you’re using a self-hosted Openlayer instance,
replace
api.openlayer.com in the script with your deployment’s base URL.Monitoring in Openlayer
Once integrated, Copilot Studio conversations will automatically appear in your Openlayer project.View conversation traces
Navigate to your project’s Records tab to see detailed conversation traces:
- User queries and bot responses
- Latency and token usage per turn
- Nested execution steps (LLM calls, tool executions, plan steps)
- RAG citations and knowledge source references
Analyze RAG quality
For bots using knowledge sources:- View retrieved citations per response
- Evaluate relevance of retrieved documents
- Track knowledge source utilization
Monitor session outcomes
Track conversation-level metrics:- Resolution rates (
session_outcome) - CSAT scores
- Turn counts and engagement
Run evaluations
Create evaluation pipelines to:- Score response quality
- Detect hallucinations
- Measure citation accuracy
- Track safety and compliance

