Download Copilot transcripts and interaction data
When agents use Copilot, agent interactions with Copilot such as copying summaries, using a suggested reply, feedback, and chat transcripts are stored in the msdyn_copilotinteraction, msdyn_copilotinteractiondata, msdyn_copilottranscript, and msdyn_copilottranscriptdata tables in Dataverse. You can download the transcripts and interaction data using Web API requests.
Prerequisites
- Make sure that the Agent experience data checkbox is selected in Copilot help pane, so that the transaction and interaction data is stored by the system in Dataverse.
- Make sure you're logged in with the Administrator or Supervisor role.
- Get the interaction id.
Download chat transcripts
When an agent asks Copilot a question, the chat is saved as a transcript encoded in the base64 encoded format in the msdyn_transcriptdata
table in Dataverse. You can download the transcripts to review the conversation and responses provided by Copilot.
For example, while working on a case, the agent asks Copilot "How can I book a trip?". Copilot generates a response based on a knowledge base article. If you want to download the chat transcript, perform the following steps:
Use the web API call to get the interaction id.
Filter the msdyn_copilotinteractions table with the required interaction ID to get to the DataID. Use the following Web API request to filter the data by interaction ID.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractions(<msdyn_copilotinteractionid>) Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
The key attributes from the record are as follows.
Attribute Definition Value for our scenario msdyn_copilotinteractionid F0970641-C1E7-EE11-904C-000D3A3BB867 msdyn_scenariorequestid Groups multiple related Copilot interactions.
For example: an agent asks Copilot a question and then marks the response received with thumbs up. These are considered as two interactions, but are part of the same scenario.93893746-e203-e9b6-18b9-887d68d18daf msdyn_scenariotype Refers to the feature used by agent. Ask a question msdyn_interactiontypename Refers to the specific agent interaction with Copilot. Generated msdyn_interactionforid The case or conversation from which the agent interacted with Copilot 1cd6023d-d326-ee11-9966-000d3a3411cf (case from which the interaction was initiated) msdyn_interactioncontext Additional context such as reference to transcripts. msdyn_interactiondataid Refers to msdyn_copilotinteractiondata entity that contains interaction data Copy the value of the DataId from the
msdyn_interactioncontext
. Here's a sample JSON context.{ "ResponseStatusCode": 20000, "Plugins": { }, "Transcript": { "Id": "c477c6dd-d877-c6d1-9337-31e5b54e4a1b", "DataId": "0a7a438f-c2a5-58d7-e03d-c932812b3095" }, "Filters": { "AgentContextFilters": [ ], "DynamicFilters": { "IsApplied": false } } }
In our example, this value is 0a7a438f-c2a5-58d7-e03d-c932812b3095.
The following Web API request retrieves the transcript in the base64 encoded transcript.
[Organization URI]/api/data/v9.1/msdyn_copilottranscriptdatas(<Trascript:DataID>)/msdyn_transcriptdata) Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
In our example, the Web API request is as follows.
[Organization URI]/api/data/v9.1/msdyn_copilottranscriptdatas(0a7a438f-c2a5-58d7-e03d-c932812b3095)/msdyn_transcriptdata
Decode the base64 encoded data to get the transcript. You can use an online base64 decoder tool to decode the data. For our example, the decoded transcript is displayed as follows.
{ "messages": [ { "id": "283c2269-b131-dac2-3aed-847bd99402e7", "requestId": "93893746-e203-e9b6-18b9-887d68d18daf", "message": "How can I book a trip?", "sequence": 0, "user": "user", "timestamp": 1711052758750, "isActivityError": false, "context": {} }, { "id": "eba9e9d5-71e2-9502-0bca-9387246fb094", "requestId": "93893746-e203-e9b6-18b9-887d68d18daf", "message": "To book a trip, follow these steps:\n\n1. Go to the travel portal.\n2. Click on \"Travel\" and then select \"Book a Trip\".\n3. Fill in your name, contact information, and the dates of your trip.\n4. Choose your destination from the drop-down menu. Here's the data you'll be working with:\n\n```json\n{\n \"id\": \"11bb11bb-cc22-dd33-ee44-55ff55ff55ff\",\n \"title\": \"Booking Travel\",\n \"source\": \"internal_kb\"\n}\n```\n\n5. Select a hotel from the drop-down menu and specify the check-in and check-out dates. If you don't want to book a hotel, you can check the \"I do not want to book a hotel\" box.\n6. Choose the type of rental car you want. If you don't want to rent a car, you can check the \"I do not want to rent a car\" box.\n7. Click \"Submit\".\n\nOnce you've submitted your booking request, you will receive a follow-up communication from an agent with a quote. You can also add any notes or additional information by clicking on the case from the My Bookings screen.", "sequence": 1, "user": "bot", "timestamp": 1711052776968, "isActivityError": false, "sources": [ { "id": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff", "title": "Booking Travel", "source": "internal_kb" } ], "context": { "customerIntent": "How to book a trip?" } } ], "context": { "chatId": "21b27e83-299d-a639-3e4a-8dcd6332e184", "sessionId": "session-id-2", "entityId": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff", "entityName": "knowledgearticle" } }
Retrieve verbatim feedback
When an agent interacts with Copilot, they can provide feedback on the responses that Copilot provides. The feedback is stored in the msdyn_copilotinteraction
table in Dataverse.
For example, the Copilot's response isn't accurate and the agent selects the thumbs-down icon to provide feedback. The agent also provides verbatim feedback. The application creates a record in the msdyn_copilotinteraction
table with the msdyn_interactiontypename
set to ThumbsDown.
The key attributes for the record are as follows.
Attribute | Sample data for our example |
---|---|
msdyn_copilotinteractionid | 817ff9e4-cbe7-ee11-904c-000d3a3bb867 |
msdyn_scenariorequestid | 93893746-e203-e9b6-18b9-887d68d18daf |
msdyn_scenariotype | Ask a question |
msdyn_interactiontypename | ThumbsDown |
msdyn_interactionforid | 1cd6023d-d326-ee11-9966-000d3a3411cf |
msdyn_interactioncontext | |
msdyn_interactiondataid | 807ff9e4-cbe7-ee11-904c-000d3a3bb867 |
You can get the verbatim feedback provided by the agent as follows.
Get the required
msdyn_interactiondataid
value from themsdyn_copilotinteraction
table.Run the following Web API request to retrieve the verbatim feedback in the base64 encoded format.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(<msdyn_copilotinteractiondataid>) Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
In our example, the Web API request is as follows.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(807ff9e4-cbe7-ee11-904c-000d3a3bb867)
Decode the base64 encoded data to get the verbatim feedback. You can use an online base64 decoder tool to decode the data. For our example, the verbatim feedback is available in the
msdyn_verbatim
column.{ "@odata.context": "https://ocrealtimeperftest001.crm.dynamics.com/api/data/v9.1/$metadata#msdyn_copilotinteractiondatas/$entity", "@odata.etag": "W/\"29538313\"", "_owningbusinessunit_value": "0e9ec0a2-eb6a-ed11-9561-000d3a336228", "statecode": 0, "statuscode": 1, "_createdby_value": "586cb7a8-eb6a-ed11-9561-000d3a336228", "msdyn_copilotinteractiondataid": "807ff9e4-cbe7-ee11-904c-000d3a3bb867", "_ownerid_value": "586cb7a8-eb6a-ed11-9561-000d3a336228", "modifiedon": "2024-03-21T21:42:21Z", "msdyn_verbatim": "Article is outdated", "_owninguser_value": "586cb7a8-eb6a-ed11-9561-000d3a336228", "_modifiedby_value": "586cb7a8-eb6a-ed11-9561-000d3a336228", "versionnumber": 29538313, "createdon": "2024-03-21T21:42:21Z", "msdyn_interactiondata_name": null, "overriddencreatedon": null, "importsequencenumber": null, "_modifiedonbehalfby_value": null, "msdyn_interactiondata": null, "utcconversiontimezonecode": null, "_createdonbehalfby_value": null, "msdyn_name": null, "_owningteam_value": null, "timezoneruleversionnumber": null }
Download interaction data
For all other interactions between agents and Copilot, data is stored in the msdyn_copilotinteractiondata
table in Dataverse.
For example, an interaction can be an agent using Copilot to generate an email and a case summary. The key attributes for our example are as follows.
Attribute | Value for our scenario |
---|---|
msdyn_copilotinteractionid | 0dd941e5-34e7-ee11-904c-000d3a3bb867 |
msdyn_scenariorequestid | 42ae7f8e-736f-1cea-035b-6bf970b48e9c |
msdyn_scenariotype | Case summary |
msdyn_interactiontypename | Generated |
msdyn_interactionforid | 1cd6023d-d326-ee11-9966-000d3a3411cf |
msdyn_interactioncontext | {"Filters":{"AgentContextFilters":[],"DynamicFilters":{"IsApplied":false}}} |
msdyn_interactiondataid | f9d841e5-34e7-ee11-904c-000d3a3bb867 |
You can download the interaction data as follows.
Use the web API call to get the interaction id.
Run the following Web API request to retrieve the interactions data from the
msdyn_copilotinteraction
table in the base64 encoded format:[Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(<msdyn_interactiondataid>)/msdyn_copilotinteractiondata Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
In our example, the Web API request is as follows.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatasf9d841e5-34e7-ee11-904c-000d3a3bb867)/msdyn_interactiondata
Decode the base64 encoded data to get the transcript. You can use an online base64 decoder tool to decode the data. For our email example, the decoded interaction data is displayed as follows.
Get interaction ID
Each agent interaction with Copilot is stored in the msdyn_copilotinteraction
table with a unique interaction ID. You can use the following Web API call to obtain the interaction ID in the msdyn_copilotinteractionid
field.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractions
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
The interactions are displayed in the response as follows.
{
"@odata.context": "https://copilotchatorg260224.crm10.dynamics.com/api/data/v9.1/$metadata#msdyn_copilotinteractions",
"value": [
{
"_createdby_value": "78866530-afd0-ee11-904d-6045bdff74d5",
"createdon": "2024-03-06T06:30:58Z",
"_createdonbehalfby_value": null,
"importsequencenumber": null,
"_modifiedby_value": "78866530-afd0-ee11-904d-6045bdff74d5",
"modifiedon": "2024-03-06T06:30:58Z",
"_modifiedonbehalfby_value": null,
"msdyn_clienttimestamp": "2024-03-06T06:30:51Z",
"msdyn_copilotinteractionid": "1be35d14-83db-ee11-904c-000d3a100664",
"msdyn_interactioncontext": "{}",
"_msdyn_interactiondataid_value": null,
"msdyn_interactionforid": "78866530-afd0-ee11-904d-6045bdff74d5",
"msdyn_interactionforlogicalname": "systemuser",
"msdyn_interactiontype": 100230309,
"msdyn_name": null,
"msdyn_scenariorequestid": null,
"msdyn_scenariotype": 100230201,
"_organizationid_value": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"overriddencreatedon": null,
"statecode": 0,
"statuscode": 1,
"timezoneruleversionnumber": 4,
"utcconversiontimezonecode": 92,
"versionnumber": 7002510,
"@odata.etag": "W/\"7002510\""
},
{
"_createdby_value": "f691f2d2-6fd4-ee11-904c-6045bdd8b8c9",
"createdon": "2024-03-11T04:45:40Z",
"_createdonbehalfby_value": null,
"importsequencenumber": null,
"_modifiedby_value": "f691f2d2-6fd4-ee11-904c-6045bdd8b8c9",
"modifiedon": "2024-03-11T04:45:40Z",
"_modifiedonbehalfby_value": null,
"msdyn_clienttimestamp": "2024-03-11T04:45:38Z",
"msdyn_copilotinteractionid": "d44ad235-62df-ee11-904c-000d3a100664",
"msdyn_interactioncontext": "{}",
"_msdyn_interactiondataid_value": null,
"msdyn_interactionforid": "f691f2d2-6fd4-ee11-904c-6045bdd8b8c9",
"msdyn_interactionforlogicalname": "systemuser",
"msdyn_interactiontype": 100230309,
"msdyn_name": null,
"msdyn_scenariorequestid": null,
"msdyn_scenariotype": 100230201,
"_organizationid_value": "11bb11bb-cc22-dd33-ee44-55ff55ff55ff",
"overriddencreatedon": null,
"statecode": 0,
"statuscode": 1,
"timezoneruleversionnumber": 4,
"utcconversiontimezonecode": 92,
"versionnumber": 7310986,
"@odata.etag": "W/\"7310986\""
},
Related information
Use Copilot to solve customer issues
View copilot analytics report