고객 서비스 담당자(서비스 담당자 또는 담당자)는 요약 복사, 제안된 응답, 피드백 및 채팅 사용과 같은 Copilot 기능을 사용합니다. 부조종사 상호 작용은 Dataverse의 부조종사 상호 작용(msdyn_copilotinteraction),부조종사 상호 작용 데이터(msdyn_copilotinteractiondata),부조종사 기록(msdyn_copilottranscript) 및 부조종사 기록 데이터(msdyn_copilottranscriptdata) 테이블에 저장됩니다. Dataverse 웹 API 또는 .NET용 SDK를 사용하여 대본 및 상호 작용 데이터를 다운로드할 수 있습니다.
필수 조건
- 트랜잭션 및 상호 작용 데이터가 Dataverse의 시스템에 의해 저장되도록 질문 및 이메일에 대한 Copilot에서 지원 경험 데이터 확인란이 선택되어 있는지 확인합니다.
- 옴니채널 관리자 또는 옴니채널 감독자 역할로 로그인되어 있는지 확인합니다.
대화 요약 검색
서비스 담당자가 Copilot을 사용하여 대화 요약을 생성하면 요약이 Dataverse의 테이블에 저장됩니다 msdyn_conversationinsight . 필드에 저장된 고유한 대화 ID msdyn_ConversationId 와 함께 테이블에 레코드가 생성됩니다. 요약 텍스트는 필드에 저장됩니다 msdyn_copilotsummary .
예를 들어 고객과의 대화를 마무리한 후 서비스 담당자는 Copilot을 사용하여 대화 요약을 생성합니다. 대화 요약은 다음 값으로 테이블에 저장됩니다 msdyn_conversationinsight .
| 특성 | 샘플 값 |
|---|---|
| 대화 식별자 | 70b76ab52-120b-49e6-9dce-53f235125a01 |
| 대화 요약 | "문제: 커피 머신의 추출 밸브에 문제가 있습니다. 문제 해결 단계: 고객이 문제를 보고했습니다. 결과: 추가 지원을 위해 문제가 보고되었습니다." |
다음과 같이 대화 요약을 검색할 수 있습니다.
테이블에 있는 레코드의 기본 식별자인 대화 ID를
msdyn_ocliveworkitem식별합니다. 이 예제에서 이 값은 70b76ab52-120b-49e6-9dce-53f235125a01입니다.다음 웹 API 요청을 사용하여 테이블 레코드를 필터링합니다
msdyn_conversationinsight.[Organization URI]/api/data/v9.2/msdyn_conversationinsights?$filter=_msdyn_conversationid_value eq '<conversation-ID>'이 예제에서 Web API 요청은 다음과 같습니다.
https://<yourorg>.crm.dynamics.com/api/data/v9.2/msdyn_conversationinsights?$filter=_msdyn_conversationid_value eq '70b76ab52-120b-496e-9dce-53f235125a01'이 예제에 대한 샘플 응답은 다음과 같습니다.
{ "status": { "code": 20000, "message": "Successfully fetched summary from insights" }, "summary": "Issue: Trouble with the brew valve on the coffee machine.\nTroubleshooting steps: \n- Customer reported the issue.\nOutcome: Issue reported for further assistance." }
내 부조종사 상호 작용은 어디에 저장됩니까?
Copilot과의 각 서비스 담당자 상호 작용은 고유한 상호 작용 ID와 함께 테이블에 저장됩니다 msdyn_copilotinteraction . 다음 표에는 각 상호 작용 유형에 대한 해당 상호 작용 데이터가 저장되는 위치가 나열되어 있습니다.
| 특징 | 테이블 / 표 |
|---|---|
| 질문하기 | msdyn_copilottranscriptdata |
| 피드백, 사례 요약, 이메일 작성, 답변 제안 | msdyn_copilotinteractiondata |
부조종사 상호 작용 기록에서 msdyn_copilotinteractionid 및 msdyn_interactiondataid 가져오기
대본을 다운로드하거나 축어적 피드백을 확인하는 작업을 수행하기 전에, msdyn_copilotinteractionid의 값과 해당 msdyn_copilotinteraction의 msdyn_copilotinteractiondata 레코드 ID 값을 검색해야 합니다. 다음 웹 API 호출을 사용하여, msdyn_copilotinteractionid 필드에서 상호 작용 ID와 msdyn_interactiondataid_value 필드에서 interactiondataid를 얻을 수 있습니다.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractions
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
레코드의 키 특성은 다음과 같습니다.
| 특성 | 정의 |
|---|---|
| msdyn_copilotinteractionid | Entity 인스턴스의 고유 식별자Unique identifier for entity instances |
| msdyn_scenariorequestid | 여러 관련 Copilot 상호 작용을 그룹화합니다. 예를 들어, 담당자가 Copilot에게 질문을 한 다음 받은 답변을 엄지손가락을 치켜세웁니다. 두 개의 상호 작용으로 간주되지만 동일한 시나리오의 일부입니다. |
| msdyn_scenariotype | 담당자가 사용하는 기능을 나타냅니다. |
| msdyn_interactiontype | Copilot과의 특정 대표 상호 작용을 나타냅니다. |
| msdyn_interactionforid | 담당자가 Copilot과 상호 작용한 참조된 레코드의 엔터티 ID입니다. |
| msdyn_interactionforlogicalname | 담당자가 Copilot과 상호 작용한 참조된 레코드의 엔터티 논리 이름입니다. |
| msdyn_interactioncontext | 대본에 대한 참조와 같은 추가 컨텍스트. |
| msdyn_interactiondataid | 상호 작용 데이터를 포함하는 msdyn_copilotinteractiondata 개체를 나타냅니다. |
샘플 응답
다음 응답은 담당자가 Copilot에게 질문을 한 다음 엄지 손가락 아래로 단추를 선택하여 피드백을 제공하는 시나리오를 나타냅니다. 는 msdyn_scenariorequestidmsdyn_scenariotype 두 상호 작용에 대해 동일합니다. 상호 작용의 msdyn_interactiontype 값은 100230305 및 100230302로 설정되며, 이는 생성됨 및 엄지 손가락 아래에 해당합니다.
{
"@odata.etag": "W/\"17413914\"",
"msdyn_interactiontype": 100230305,
"msdyn_clienttimestamp": "2025-03-19T08:00:34Z",
"modifiedon": "2025-03-19T08:00:34Z",
"msdyn_interactionforlogicalname": "msdyn_ocliveworkitem",
"overriddencreatedon": null,
"msdyn_scenariotype": 100230201,
"importsequencenumber": null,
"_modifiedonbehalfby_value": null,
"msdyn_interactionforid": "2cc5ea06-a4fd-4f83-8e75-0324383b953f",
"statecode": 0,
"msdyn_scenariorequestid": "cbdc1bef-6099-7f9a-f1fe-dab02e36315b",
"_organizationid_value": "7eede269-bbb1-ef11-8a64-000d3a350e1a",
"versionnumber": 17413914,
"utcconversiontimezonecode": 190,
"_msdyn_interactiondataid_value": null,
"_createdonbehalfby_value": null,
"_modifiedby_value": "864a96d6-6bb0-ef11-a730-000d3a59065a",
"createdon": "2025-03-19T08:00:34Z",
"msdyn_interactioncontext": "{\"OcSessionId\":\"28dea393-c175-4788-9494-07fd42ee0884\",\"ResponseStatusCode\":20000,\"Plugins\":{\"IsContentRedacted\":false},\"Transcript\":{\"Id\":\"8d1d70e6-3297-644a-4e86-00d8973223a0\",\"DataId\":\"a1584aaf-d5bd-357d-54a8-84dbdba547f9\"},\"Filters\":{\"AgentContextFilters\":[],\"AutomatedFilters\":[]},\"Streaming\":{\"State\":\"GENERATED\"},\"ResponseSource\":{\"category\":\"KnowledgeSearch\",\"subCategory\":\"KnowledgeSearch\"},\"IsAutoPrompt\":true,\"AutoPromptTrigger\":\"follow-up-prompt\",\"IsAutoExpanded\":false,\"IsSuggestedPrompt\":false,\"IsEmbed\":false,\"IsStandalone\":false}",
"msdyn_name": null,
"statuscode": 1,
"msdyn_copilotinteractionid": "c49dc43b-9804-f011-bae2-6045bd014292",
"_createdby_value": "864a96d6-6bb0-ef11-a730-000d3a59065a",
"timezoneruleversionnumber": 0
},
{
"@odata.etag": "W/\"17413983\"",
"msdyn_interactiontype": 100230302,
"msdyn_clienttimestamp": "2025-03-19T08:00:37Z",
"modifiedon": "2025-03-19T08:00:41Z",
"msdyn_interactionforlogicalname": "msdyn_ocliveworkitem",
"overriddencreatedon": null,
"msdyn_scenariotype": 100230201,
"importsequencenumber": null,
"_modifiedonbehalfby_value": null,
"msdyn_interactionforid": "2cc5ea06-a4fd-4f83-8e75-0324383b953f",
"statecode": 0,
"msdyn_scenariorequestid": "cbdc1bef-6099-7f9a-f1fe-dab02e36315b",
"_organizationid_value": "7eede269-bbb1-ef11-8a64-000d3a350e1a",
"versionnumber": 17413983,
"utcconversiontimezonecode": 190,
"_msdyn_interactiondataid_value": null,
"_createdonbehalfby_value": null,
"_modifiedby_value": "864a96d6-6bb0-ef11-a730-000d3a59065a",
"createdon": "2025-03-19T08:00:41Z",
"msdyn_interactioncontext": "{\"OcSessionId\":\"28dea393-c175-4788-9494-07fd42ee0884\",\"IsEmbed\":false,\"IsStandalone\":false}",
"msdyn_name": null,
"statuscode": 1,
"msdyn_copilotinteractionid": "cb9dc43b-9804-f011-bae2-6045bd014292",
"_createdby_value": "864a96d6-6bb0-ef11-a730-000d3a59065a",
"timezoneruleversionnumber": 0
},
채팅 기록 다운로드
서비스 담당자가 Copilot에게 질문을 하면 채팅은 Dataverse의 표에 있는 UTF-16LE 문자 집합을 msdyn_copilottranscriptdata 사용하여 base64로 인코딩된 형식으로 인코딩된 스크립트로 저장됩니다. 대본을 다운로드하여 Copilot에서 제공하는 대화 및 응답을 검토할 수 있습니다.
예를 들어, 케이스를 처리하는 동안 서비스 담당자는 Copilot에게 "여행을 예약하려면 어떻게 해야 합니까?"라고 묻습니다. Copilot은 기술 자료 문서를 기반으로 응답을 생성합니다. 채팅 기록을 다운로드하려면 다음 단계를 수행하십시오.
웹 API 호출을 사용하여 상호 작용 ID를 가져옵니다.
필요한 상호작용 ID로 msdyn_copilotinteraction 테이블을 필터링하여
msdyn_interactioncontext속성에서Transcript.DataID을(를) 가져옵니다. 다음 웹 API 요청을 사용하여 상호 작용 ID별로 데이터를 필터링합니다.[Organization URI]/api/data/v9.1/msdyn_copilotinteractions(<msdyn_copilotinteractionid>) Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0특성 이 시나리오의 가치 msdyn_copilotinteractionid F0970641-C1E7-EE11-904C-000D3A3BB867 msdyn_scenariorequestid 93893746-E203-E9B6-18B9-887D68D18DAF msdyn_scenariotype 질문하기 msdyn_상호작용유형명 생성된 계획 msdyn_interactionforid 1CD6023D-D326-EE11-9966-000D3A3411CF(상호 작용이 시작된 사례) msdyn_interactioncontext {\"OcSessionId\":\"28dea393-c175-4788-9494-07fd42ee0884\",\"ResponseStatusCode\":20000,\"Plugins\":{\"IsContentRedacted\":false},\"Transcript\":{\"Id\":\"8d1d70e6-3297-644a-4e86-00d8973223a0\",\"DataId\":\"a1584aaf-d5bd-357d-54a8-84dbdba547f9\"},\"Filters\":{\"AgentContextFilters\":[],\"AutomatedFilters\":[]},\"Streaming\":{\"State\":\"GENERATED\"},\"ResponseSource\":{\"category\":\"KnowledgeSearch\",\"subCategory\":\"KnowledgeSearch\"},\"IsAutoPrompt\":true,\"AutoPromptTrigger\":\"follow-up-prompt\",\"IsAutoExpanded\":false,\"IsSuggestedPrompt\":false,\"IsEmbed\":false,\"IsStandalone\":false}msdyn_interactioncontext에서Trasncript.DataId값을 복사합니다. 이 예제에서 이 값은 a1584aaf-d5bd-357d-54a8-84dbdba547f9입니다.다음 웹 API 요청은 base64/UTF-16LE 형식으로 인코딩된 대본을 검색합니다.
[Organization URI]/api/data/v9.1/msdyn_copilottranscriptdatas(<Transcript:DataID>)/msdyn_transcriptdata Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0이 예제에서 Web API 요청은 다음과 같습니다.
[Organization URI]/api/data/v9.1/msdyn_copilottranscriptdatas(a1584aaf-d5bd-357d-54a8-84dbdba547f9)/msdyn_transcriptdataUTF-16LE 문자 집합 옵션과 함께 base64 디코더를 사용하여 인코딩된 데이터를 디코딩하여 대본을 가져옵니다. 온라인 디코더 도구를 사용하여 데이터를 디코딩할 수 있습니다. 이 예에서는 디코딩된 대본이 다음과 같이 표시됩니다.
{ "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 a representative 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" } }
원본 그대로의 피드백 가져오기
담당자는 Copilot과 상호 작용할 때 Copilot이 제공하는 응답에 대한 피드백을 제공할 수 있습니다. 피드백은 Dataverse의 msdyn_copilotinteractiondata 테이블에 있는 msdyn_verbatim 열에 저장됩니다.
예를 들어, Copilot의 응답이 정확하지 않아 담당자가 엄지손가락 아래를 가리키는 아이콘을 선택하여 피드백을 제공합니다. 담당자는 또한 축어적 피드백을 제공합니다. 응용 프로그램은 msdyn_copilotinteraction 테이블에 msdyn_interactiontypename 값을 ThumbsDown으로 설정하여 레코드를 생성합니다.
레코드의 키 속성은 다음과 같습니다.
| 특성 | 예제에 대한 샘플 데이터 |
|---|---|
| msdyn_copilotinteractionid | 817ff9e4-cbe7-ee11-904c-000d3a3bb867 |
| msdyn_scenariorequestid | 93893746-E203-E9B6-18B9-887D68D18DAF |
| msdyn_scenariotype | 질문하기 |
| msdyn_interactiontype | 100230302 |
| msdyn_interactiontypename | ThumbsDown |
| msdyn_interactionforid | 1cd6023d-d326-ee11-9966-000d3a3411cf |
| msdyn_interactiondataid | 807ff9e4-cbe7-ee11-904c-000d3a3bb867 |
담당자가 제공하는 직접적인 피드백을 다음과 같이 받을 수 있습니다.
테이블에서 필요한 msdyn_copilotinteractiondata 레코드 ID 값을
msdyn_copilotinteraction가져옵니다.다음 Web API 요청을 실행하여 원문 그대로의 피드백을 가져옵니다.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(<msdyn_copilotinteractiondataid>) Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0이 예제에서 Web API 요청은 다음과 같습니다.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(807ff9e4-cbe7-ee11-904c-000d3a3bb867)msdyn_verbatim열에서 볼 수 있는 원문 그대로의 피드백을 확인하십시오. 이 예에서 검색된 피드백은 다음과 같습니다.{ "@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 }
상호 작용 데이터 다운로드
질문하기 대화 내용 기록을 제외하고, 담당자와 Copilot 간의 다른 모든 상호 작용의 경우 데이터는 Dataverse의 msdyn_copilotinteractiondata 테이블에 저장됩니다.
예를 들어, 상호 작용은 Copilot을 사용하여 이메일 또는 사례 요약을 생성하는 담당자일 수 있습니다. 이 예제의 주요 특성은 다음과 같습니다.
| 특성 | 이 시나리오의 가치 |
|---|---|
| msdyn_copilotinteractionid | 0dd941e5-34e7-ee11-904c-000d3a3bb867 |
| msdyn_scenariorequestid | 42AE7F8E-736F-1CEA-035B-6BF970B48E9C |
| msdyn_scenariotype | 케이스 요약 |
| msdyn_interactiontype | 100230305 |
| msdyn_interactiontypename | 생성된 계획 |
| msdyn_interactionforid | 1cd6023d-d326-ee11-9966-000d3a3411cf |
| msdyn_interactioncontext | {"Filters":{"AgentContextFilters":[],"DynamicFilters":{"IsApplied":false}}} |
| msdyn_interactiondataid | f9d841e5-34e7-ee11-904c-000d3a3bb867 |
다음과 같이 상호 작용 데이터를 다운로드할 수 있습니다.
테이블에서 필요한 msdyn_copilotinteractiondata 레코드 ID 값을
msdyn_copilotinteraction가져옵니다.다음 웹 API 요청을 실행하여
msdyn_copilotinteractiondata테이블에서 Base64로 인코딩된 형식으로 상호 작용 데이터를 검색합니다.[Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(<msdyn_copilotinteractiondataid>)/msdyn_interactiondata Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0이 예제에서 Web API 요청은 다음과 같습니다.
[Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(f9d841e5-34e7-ee11-904c-000d3a3bb867)/msdyn_interactiondatabase64로 인코딩된 데이터를 디코딩하여 대본을 가져옵니다. 온라인 base64 디코더 도구를 사용하여 데이터를 디코딩할 수 있습니다. 이메일 예제의 경우 디코딩된 상호 작용 데이터가 다음과 같이 표시됩니다.
비고
질문하고, 답변을 제안하고, 이메일 초안 기능을 사용하려면 UTF-16LE 문자 집합과 함께 base64 인코더를 사용합니다. 서비스 케이스 및 대화 요약은 UTF-8 문자 집합을 사용합니다. 데이터를 인코딩하는 데 사용된 것과 동일한 문자 집합을 사용하여 디코딩하는 것이 좋습니다.
