This document provides a detailed reference for configuring the D365 Copilot Toolbox.
Navigate to System Administration > Setup > Copilot Toolbox > Agent Parameters to manage agent configurations.
| Name | Required | Description |
|---|---|---|
| Entra ID Tenant | Yes | The Azure AD / Entra ID tenant GUID. Found in Azure Portal > Microsoft Entra ID > Overview. |
| Entra ID App Registration | Yes | The Application (client) ID of the SPA app registration. Found in Azure Portal > App registrations. |
| Name | Required | Description |
|---|---|---|
| Agent Schema Name | Yes | The schema name of your Copilot Studio agent. Found in Copilot Studio > Agent settings > Advanced. Format: cr123_agentName |
| Dataverse Environment | Yes | The Dataverse environment GUID. Found in Power Platform Admin Center > Environments > [Environment Name] > Environment details, or in Copilot Studio agent settings. Format: a1b2c3d4-1234-5678-90ab-cdef12345678 |
| Name | Description |
|---|---|
| Send Global FSCM Context | When enabled (Yes), the global side panel sends ERP context (legal entity, current form, record info) with each message to the agent. |
| Name | Description |
|---|---|
| Show tool usage | When enabled (Yes), tool call details are displayed as Adaptive Cards in the chat, showing which tools the agent invoked as a debug/progress aid. This may surface internal implementation details. |
| Show thoughts | When enabled (Yes), intermediate agent progress/thought summaries are rendered as subtle chat bubbles to help with debugging and monitoring. This may expose sensitive or internal model information. |
| Keep connection alive | When enabled (Yes), the Direct Line connection is preserved when the form closes. This avoids re-authentication latency when the form is re-opened quickly. Useful as a work-around for long-running agents. |
This tab maps application areas to the current agent configuration. Each row associates a COTXCopilotAgentApplicationArea enum value with this parameter record.
| Application Area | Description |
|---|---|
| Fallback | Default fallback agent. Used when no specific mapping exists for a requested application area. |
| Side Panel | The global Copilot side panel accessible from the Settings menu. |
| (Custom areas) | Additional areas defined via enum extensions in other models. |
Important: If a control requests an application area that has no mapping, the system falls back to the
Fallbackarea. Always ensure a Fallback mapping exists.
- Go to Azure Portal > Microsoft Entra ID > App registrations
- Click New registration
- Configure:
- Name:
D365 Copilot Toolbox(or your preferred name) - Supported account types: Accounts in this organizational directory only (Single tenant)
- Redirect URI: Select Single-page application (SPA) and enter the redirect bridge URL:
https://yourenv.operations.dynamics.com/resources/html/COTXMsalRedirectBridge.html
- Name:
- Click Register
- In the app registration, go to API permissions
- Click Add a permission > APIs my organization uses
- Search for Power Platform API
- Select Application permissions
- Check CopilotStudio.Copilots.Invoke (Allows Invoking Copilots)
- Click Add permissions
- Click Grant admin consent
| Value | Where to Find | Maps To |
|---|---|---|
| Application (client) ID | App registration > Overview | Entra ID App Registration field |
| Directory (tenant) ID | App registration > Overview | Entra ID Tenant field |
The Copilot Studio agent should be:
- Published to a Dataverse environment
- Configured with appropriate topics and actions (tools)
- Optionally configured to read the
channelData.contextfrom incoming messages
When Send Global FSCM Context is enabled, every user message includes a context object in channelData. In Copilot Studio, you can access this via:
- Power Automate actions that read the conversation context
- Custom topics that extract context variables
- Plugin actions that receive the full turn context
- Variable reference in your agent instructions
The context structure is:
{
"userLanguage": "en-us",
"userTimeZone": "GMT Standard Time",
"legalEntity": "USMF",
"currentUser": "Admin",
"currentForm": "All Sales Orders",
"currentMenuItem": "Sales order",
"currentRecord": {
"tableName": "Sales order",
"naturalKey": "Sales order",
"naturalValue": "SO-000123"
}
}You can configure multiple agent parameter records, each connected to a different Copilot Studio agent and mapped to different application areas.
Example setup:
| Parameter Name | Agent | Application Areas |
|---|---|---|
| General Assistant | cr123_generalAgent |
Fallback, Side Panel |
| Sales Agent | cr456_salesAgent |
SalesTable |
| Inventory Agent | cr789_invAgent |
InventOnhand |
When a form control requests the SalesTable area, it gets the Sales Agent. When it requests an unmapped area, it falls back to the General Assistant.
When different agents belong to different Entra ID tenants, create a separate app registration per tenant and a separate Agent Parameters record for each. The control’s MSAL logic automatically selects the cached account whose tenantId matches the agent’s configured tenant, preventing cross-tenant identity issues.
The tab limit of 8 is a built-in safeguard to manage browser memory and CPU. Each tab creates a separate React tree, Redux store, and WebSocket connection.
Tip: Users can rename tabs by double-clicking the tab label. This is useful when running parallel conversations for different topics (e.g. “Sales Order Query” vs “Inventory Check”).