CopilotScopeWork in progress

StudioLens documentation

Dataverse (Direct) setup guide

The Dataverse (Direct) build parses Copilot Studio conversation transcripts live in the Power BI model — no infrastructure to stand up. The template is pre-set to Dataverse, so you supply two inputs, sign in, and refresh.

1. Set the two required inputs

The template is pre-set to Dataverse — the Source Mode parameter defaults to Dataverse. You set two required inputs:

Input What it is
Dataverse Url Your Dataverse environment URL. Accepts several URLs separated by ; for multi-environment.
Org Data CSV A CSV of user and department context for the report’s breakdowns.

There is no “Agent 365 CSV” input on this build. (Transcript CSV Path exists in the model as an alternate/shared-model expression, but it is not a required startup input for the Direct path.)

IDSL-DIRECT-001

CaptureCapture the StudioLens - Dataverse template's Edit Parameters dialog using synthetic values. Show the Dataverse Url and Org Data CSV inputs; exclude real environment URLs, tenant names, file paths that reveal identities, credentials, secrets, and customer records.

Proposed altStudioLens Dataverse template parameters with synthetic Dataverse Url and Org Data CSV values.

2. How the model reads Dataverse

The model reads Dataverse through OData.Feed against the Dataverse Web API at /api/data/v9.2/ (built from your Dataverse Url). It does not use the native Dataverse connector.

3. Authenticate

On the first refresh, choose Organizational account and sign in with an org login that can Read the Conversation Transcript table. Set the source privacy level to Organizational. This path uses no app registration and no client secret.

IDSL-DIRECT-002

CaptureCapture the Power BI data source sign-in showing Organizational account selected and the privacy level set to Organizational, using a synthetic account. Exclude real usernames, tenant names, environment URLs, credentials, and secrets.

Proposed altStudioLens Dataverse Organizational-account sign-in with Organizational privacy level.

4. Multiple environments

The Dataverse Url accepts several environment URLs separated by ;. The model pulls conversationtranscripts from each environment — each fetched inside a try ... otherwise so an unreachable environment is skipped, not fatal — tags each row with its environment, and unions them.

In the Service, configure per-environment credentials under Settings – Data source credentials, and keep privacy levels consistent (all Organizational). If privacy levels differ, Power Query’s Formula.Firewall may block combining the sources.

5. Org Data CSV — path options

The Org Data CSV can live in several places; the connector and gateway needs differ:

Org Data CSV location Connector Gateway
SharePoint file URL Web.Contents None (cloud-to-cloud)
Local / synced path File.Contents On-premises data gateway required
UNC path File.Contents Gateway required

6. What the parser produces

The Direct model’s M functions parse the raw transcripts into the transcript tables:

M function Output table
RawTranscripts() Raw transcripts
ParsedBase() Parsed activities
Parse_Sessions() Agent Sessions
Parse_Turns() Agent Turns
Parse_Errors() Agent Errors
Parse_SubAgents() Agent Sub-Agent Calls
Parse_Performance() Agent Performance

The Agent Catalogue self-derives from the parsed transcripts.

7. Verify the connection

The built-in Dataverse Diagnostic table returns live row counts of conversationtranscripts and systemusers. If conversationtranscripts is 0 but systemusers is greater than 0, the connection is fine — the environment simply has no transcripts in scope.

Note on credits

Message-credit / consumption analysis is not part of the Dataverse (Direct) build. The PPAC message-credit pages are available on the Fabric path only.