Udostępnij przez


Pobieranie transkrypcji i danych interakcji usługi Copilot

Przedstawiciele obsługi klienta (przedstawiciele lub przedstawiciele obsługi) korzystają z funkcji Copilot, takich jak kopiowanie podsumowań, korzystanie z sugerowanej odpowiedzi, opinii i czatu. System przechowuje dane interakcji pomocnik w tabelach Copilot Interakcja (msdyn_copilotinteraction), Copilot Dane interakcji (msdyn_copilotinteractiondata), Copilot Transkrypt (msdyn_copilottranscript) i Copilot Dane transkrypcji (msdyn_copilottranscriptdata) w tabeli Dataverse. Transkrypcje i dane interakcji można pobrać przy użyciu internetowego interfejsu API Dataverse lub zestawu SDK dla platformy .NET.

Wymagania wstępne

  • Upewnij się, że pole wyboru Dane środowiska pomocy technicznej jest zaznaczone w rozwiązaniu Copilot dla pytań i wiadomości e-mail, aby dane transakcji i interakcji były przechowywane przez system w Dataverse.
  • Upewnij się, że jesteś zalogowany przy użyciu roli administratora aplikacji Obsługa wielokanałowa lub Opiekuna obsługi wielokanałowej.

Pobieranie podsumowania konwersacji

Gdy przedstawiciel usługi używa rozwiązania Copilot do wygenerowania podsumowania konwersacji, podsumowanie jest przechowywane w msdyn_conversationinsight tabeli w usłudze Dataverse. W tabeli tworzony jest rekord z unikatowym identyfikatorem konwersacji, który jest przechowywany w polu msdyn_ConversationId. Tekst podsumowania jest przechowywany w polu msdyn_copilotsummary.

Na przykład po zakończeniu rozmowy z klientem przedstawiciel serwisu używa Copilot do wygenerowania podsumowania rozmowy. Podsumowanie konwersacji jest przechowywane w msdyn_conversationinsight tabeli z następującymi wartościami.

Atrybut Przykładowa wartość
Identyfikator konwersacji 70B76AB52-120B-49E6-9DCE-53F235125A01
Podsumowanie konwersacji "Problem: Problem z zaworem zaparzania w ekspresie do kawy. Kroki rozwiązywania problemów: Klient zgłosił problem. Wynik: Problem zgłoszony w celu uzyskania dalszej pomocy."

Podsumowanie konwersacji można pobrać w następujący sposób:

  1. Zidentyfikuj identyfikator konwersacji, który jest podstawowym identyfikatorem rekordu w msdyn_ocliveworkitem tabeli. W naszym przykładzie ta wartość to 70b76ab52-120b-49e6-9dce-53f235125a01.

  2. Użyj następującego żądania do interfejsu API, aby przefiltrować rekord tabeli msdyn_conversationinsight.

    
     [Organization URI]/api/data/v9.2/msdyn_conversationinsights?$filter=_msdyn_conversationid_value eq '<conversation-ID>'
    
    

    W naszym przykładzie żądanie internetowego interfejsu API jest następujące.

     https://<yourorg>.crm.dynamics.com/api/data/v9.2/msdyn_conversationinsights?$filter=_msdyn_conversationid_value eq '70b76ab52-120b-496e-9dce-53f235125a01'
    

    Przykładowa odpowiedź dla naszego przykładu jest następująca:

    {
    "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."
    }
    

Gdzie są przechowywane moje interakcje z drugim pilotem?

Każda interakcja przedstawiciela obsługi z Copilot jest przechowywana w tabeli msdyn_copilotinteraction z unikatowym identyfikatorem interakcji. W poniższej tabeli wymieniono miejsca, w których są przechowywane odpowiednie dane interakcji dla każdego typu interakcji.

Funkcja Tabela
Zadaj pytanie msdyn_copilottranscriptdata
Informacja zwrotna, podsumowanie sprawy, napisz e-mail, zaproponuj odpowiedź msdyn_copilotinteractiondata

Pobierz msdyn_copilotinteractionid i msdyn_interactiondataid z zapisów interakcji Copilot

Przed wykonaniem czynności, takich jak pobranie transkrypcji lub wyświetlenie dosłownej opinii, należy pobrać wartości msdyn_copilotinteractionid oraz odpowiadające im wartości identyfikatora rekordu msdyn_copilotinteractiondata z pliku msdyn_copilotinteraction. Możesz użyć następującego wywołania Web API, aby uzyskać identyfikator interakcji w polu msdyn_copilotinteractionid i identyfikator danych interakcji w polu msdyn_interactiondataid_value.

[Organization URI]/api/data/v9.1/msdyn_copilotinteractions
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

Kluczowe atrybuty z rekordu są następujące.

Atrybut Definicja
msdyn_copilotinteractionid Unikatowy identyfikator wystąpień encji
msdyn_scenariorequestid Grupuje wiele powiązanych interakcji z Copilot.
Na przykład: Przedstawiciel zadaje Copilot pytanie, a następnie zaznacza otrzymaną odpowiedź kciukiem w górę. Są one traktowane jako dwie interakcje, ale są częścią tego samego scenariusza.
msdyn_scenariotype Odnosi się do funkcji używanej przez przedstawiciela.
msdyn_interactiontype Odnosi się do konkretnej interakcji przedstawiciela z Copilotem.
msdyn_interactionforid Identyfikator jednostki rekordu, z którym przedstawiciel wchodził w interakcję z Copilot.
msdyn_interactionforlogicalname Identyfikator logicznej nazwy jednostki, z którym przedstawiciel wchodził w interakcję z Copilot.
msdyn_interactioncontext Dodatkowy kontekst, taki jak odniesienie do transkrypcji.
msdyn_interactiondataid Odwołuje się do encji msdyn_copilotinteractiondata, która zawiera dane interakcji

Przykładowa odpowiedź

Poniższa odpowiedź wskazuje scenariusz, w którym przedstawiciel zadaje pytanie drugiemu pilotowi, a następnie wybiera przycisk kciuka w dół, aby przekazać opinię. Parametr msdyn_scenariorequestid, msdyn_scenariotype jest taki sam dla obu interakcji. Wartości msdyn_interactiontype interakcji są ustawione na 100230305 i 100230302, które odpowiadają wartościom Wygenerowane i Kciuk w dół.


{
          "@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
      },

Pobierz transkrypcje czatu

Gdy przedstawiciel serwisu zadaje Copilotowi pytanie, czat jest zapisywany jako transkrypcja kodowana w formacie base64 przy użyciu zestawu znaków UTF-16LE w tabeli msdyn_copilottranscriptdata w Dataverse. Możesz pobrać transkrypcje, aby przejrzeć rozmowę i odpowiedzi udzielone przez Copilot.

Na przykład podczas pracy nad sprawą przedstawiciel serwisu pyta Copilota: "Jak mogę zarezerwować podróż?". Copilot generuje odpowiedź na podstawie artykułu z bazy wiedzy. Jeśli chcesz pobrać transkrypcję czatu, wykonaj następujące czynności:

  1. Użyj wywołania internetowego interfejsu API, aby uzyskać identyfikator interakcji.

  2. Przefiltruj tabelę msdyn_copilotinteraction przy użyciu wymaganego identyfikatora interakcji, aby uzyskać Transcript.DataID z atrybutu msdyn_interactioncontext. Użyj następującego żądania internetowego interfejsu API, aby przefiltrować dane według identyfikatora interakcji.

    
       [Organization URI]/api/data/v9.1/msdyn_copilotinteractions(<msdyn_copilotinteractionid>)
       Accept: application/json  
       OData-MaxVersion: 4.0  
       OData-Version: 4.0  
    
    Atrybut Wartość dla naszego scenariusza
    msdyn_copilotinteractionid F0970641-C1E7-EE11-904C-000D3A3BB867
    msdyn_scenariorequestid 93893746-e203-e9b6-18b9-887d68d18daf
    msdyn_scenariotype Zadaj pytanie
    msdyn_interactiontypename Wygenerowano
    msdyn_interactionforid 1CD6023D-D326-EE11-9966-000D3A3411CF (przypadek, z którego zainicjowano interakcję)
    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}
  3. Skopiuj wartość z msdyn_interactioncontext do Trasncript.DataId. W naszym przykładzie ta wartość to a1584aaf-d5bd-357d-54a8-84dbdba547f9.

  4. Następujące żądanie internetowego interfejsu API pobiera zakodowaną transkrypcję w formacie 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  
    

    W naszym przykładzie żądanie internetowego interfejsu API jest następujące.

     [Organization URI]/api/data/v9.1/msdyn_copilottranscriptdatas(a1584aaf-d5bd-357d-54a8-84dbdba547f9)/msdyn_transcriptdata
    
  5. Dekoduj zakodowane dane za pomocą dekodera base64 z opcją zestawu znaków UTF-16LE, aby uzyskać transkrypcję. Możesz użyć narzędzia do dekodowania online, aby odszyfrować dane. W naszym przykładzie zdekodowana transkrypcja jest wyświetlana w następujący sposób.

    
    {
      "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"
      }
    } 
    
    

Pobieranie dosłownych opinii

Gdy przedstawiciel wchodzi w interakcję z Copilotem, może przekazać informacje zwrotne na temat odpowiedzi udzielanych przez Copilot. W Dataverse opinie są przechowywane w kolumnie msdyn_verbatim tabeli msdyn_copilotinteractiondata.

Na przykład odpowiedź drugiego pilota nie jest dokładna i przedstawiciel wybiera ikonę kciuka w dół, aby przekazać opinię. Przedstawiciel udziela również dosłownej informacji zwrotnej. Aplikacja tworzy rekord w msdyn_copilotinteraction tabeli, ustawiając msdyn_interactiontypename na ThumbsDown.

Kluczowe atrybuty rekordu są następujące.

Atrybut Przykładowe dane dla naszego przykładu
msdyn_copilotinteractionid 817ff9e4-CBE7-ee11-904C-000D3A3BB867
msdyn_scenariorequestid 93893746-e203-e9b6-18b9-887d68d18daf
msdyn_scenariotype Zadaj pytanie
msdyn_interactiontype 100230302
msdyn_interactiontypename ThumbsDown
msdyn_interactionforid 1CD6023D-D326-EE11-9966-000D3A3411CF
msdyn_interactiondataid 807ff9e4-cbe7-ee11-904c-000d3a3bb867

Możesz uzyskać dosłowną informację zwrotną przekazaną przez przedstawiciela w następujący sposób.

  1. Pobierz wymaganą wartość identyfikatora rekordu msdyn_copilotinteractiondata z tabeli msdyn_copilotinteraction .

  2. Uruchom następujące żądanie internetowego interfejsu API, aby pobrać dosłowną opinię.

    
       [Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(<msdyn_copilotinteractiondataid>)
       Accept: application/json  
       OData-MaxVersion: 4.0  
       OData-Version: 4.0  
    

    W naszym przykładzie żądanie internetowego interfejsu API jest następujące.

    [Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(807ff9e4-cbe7-ee11-904c-000d3a3bb867)
    
  3. Zapoznaj się z dosłownymi opiniami dostępnymi w kolumnie msdyn_verbatim . W naszym przykładzie pobrana opinia jest następująca.

    
      {
      "@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
    }
    
    

Pobieranie danych o interakcji

Z wyjątkiem transkrypcji funkcji zadawania pytań, w przypadku wszystkich innych interakcji między przedstawicielami a Copilot dane są przechowywane w msdyn_copilotinteractiondata tabeli w Dataverse.

Na przykład interakcja może polegać na tym, że przedstawiciel używa Copilot do wygenerowania wiadomości e-mail lub podsumowania sprawy. Kluczowe atrybuty dla naszego przykładu są następujące.

Atrybut Wartość dla naszego scenariusza
msdyn_copilotinteractionid 0dd941e5-34e7-ee11-904c-000d3a3bb867
msdyn_scenariorequestid 42AE7F8E-736F-1CEA-035B-6BF970B48E9C
msdyn_scenariotype Podsumowanie przypadku
msdyn_interactiontype 100230305
msdyn_interactiontypename Wygenerowano
msdyn_interactionforid 1CD6023D-D326-EE11-9966-000D3A3411CF
msdyn_interactioncontext {"Filters":{"AgentContextFilters":[],"DynamicFilters":{"IsApplied":false}}}
msdyn_interactiondataid F9D841E5-34E7-EE11-904C-000D3A3BB867

Dane interakcji można pobrać w następujący sposób.

  1. Pobierz wymaganą wartość identyfikatora rekordu msdyn_copilotinteractiondata z tabeli msdyn_copilotinteraction .

  2. Uruchom następujące żądanie internetowego interfejsu API, aby pobrać dane interakcji z msdyn_copilotinteractiondata tabeli w formacie zakodowanym w formacie base64:

     [Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(<msdyn_copilotinteractiondataid>)/msdyn_interactiondata
     Accept: application/json  
     OData-MaxVersion: 4.0  
     OData-Version: 4.0  
    
    

    W naszym przykładzie żądanie internetowego interfejsu API jest następujące.

      [Organization URI]/api/data/v9.1/msdyn_copilotinteractiondatas(f9d841e5-34e7-ee11-904c-000d3a3bb867)/msdyn_interactiondata
    
    
  3. Dekoduj dane zakodowane w formacie base64, aby uzyskać transkrypcję. Możesz użyć internetowego narzędzia dekodującego base64 do dekodowania danych. W naszym przykładzie z wiadomością e-mail zdekodowane dane interakcji są wyświetlane w następujący sposób.

Uwaga / Notatka

Zadaj pytanie, zasugeruj odpowiedź i przygotuj wiadomość e-mail Funkcje używają kodera base64 z zestawem znaków UTF-16LE. Przypadek i podsumowanie konwersacji używają zestawu znaków UTF-8. Zalecamy użycie tego samego zestawu znaków, który został użyty do zakodowania danych, w celu ich zdekodowania.

Zrzut ekranu z zdekodowanymi danymi interakcji.

Używanie usługi Copilot do rozwiązywania problemów klientów
Wyświetlanie raportu analizy Copilot