Udostępnij przez


Zbiorcze pobieranie transkrypcji Dynamics 365 Contact Center

Transkrypcje Dynamics 365 Contact Center są przechowywane w formacie zakodowanym w formacie base64 w tabeli adnotacji w Microsoft Dataverse. Załączniki są przechowywane jako osobne rekordy w tabeli adnotacji. Jeśli konwersacja ma dwa pliki wymieniane między agentem a klientem, tworzone są łącznie trzy rekordy związane z tą konwersacją. Każda konwersacja zawsze ma rekordy n+1 zapisane dla niej w tabeli adnotacji, gdzie n to liczba załączników w konwersacji. Załączniki są również kodowane w formacie base64 przed zapisaniem.

Opcja zbiorczego pobierania transkrypcji nie jest dostępna od razu po wyjęciu z pudełka. Możesz użyć następujących żądań internetowego interfejsu API, aby pobrać wszystkie transkrypcje i załączniki wymienione w ciągu ostatniego miesiąca.

Następujące żądanie internetowego interfejsu API pobiera wszystkie transkrypcje tekstowe:

GET [Organization URI]/api/data/v9.1/annotations?$filter=objecttypecode eq 'msdyn_transcript'
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

Następujące żądanie internetowego interfejsu API pobiera wszystkie adnotacje załączników plików:

GET [Organization URI]/api/data/v9.1/annotations?$filter=objecttypecode eq 'msdyn_ocliveworkitem'
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

Atrybut documentBody w odpowiedzi uzyskanej z każdego żądania internetowego interfejsu API zawiera transkrypcję lub załącznik zakodowany w formacie base64.

Możesz wywołać interfejsy API przy użyciu kodu C#, a następnie iterować po każdym ze zwróconych rekordów, uzyskać dostęp do atrybutu documentBody i przetworzyć go, aby uzyskać całe transkrypcje.

Do wygenerowania transkrypcji wymagana jest co najmniej jedna wiadomość wysłana przez klienta.

Struktura transkrypcji JSON

Transkrypcje, które widzisz w linku, mogą zawierać różne typy wiadomości:

  • Komunikaty sterujące
  • Komunikaty systemowe
  • Wiadomości tekstowe (na przykład Cześć, Witam i Jak się masz)
  • Metadane załączników plików

W każdym z tych typów wiadomości można zobaczyć pole wskazujące createdDateTime dokładny czas, w którym dana wiadomość została opublikowana lub utworzona.

Komunikat kontrolny nie ma żadnej wartości wizualnej i wskazuje zdarzenie, takie jak agent dołączył do konwersacji lub ją opuścił. Zwykle ma flagę o nazwie isControlMessage ustawioną na true.

{
    "content": "<addmember><eventtime>1589863236124</eventtime><initiator>28:bc81db89-c4d7-4763-91fe-086fcc2e6daf</initiator><rosterVersion>1589863235629</rosterVersion><lastRosterVersion>1589801089959</lastRosterVersion><target>8:orgid:04fd615d-586d-4866-9791-b24c5f7a9e78</target></addmember>",
    "contentType": "text",
    "createdDateTime": "2020-05-19T04:40:36.124+00:00",
    "likes": [],
    "attachments": [],
    "id": "1589863236124",
    "created": "2020-05-19T04:40:36.124Z",
    "culture": null,
    "deleted": null,
    "important": null,
    "modified": null,
    "modifiedDateTime": null,
    "isControlMessage": true,
    "from": null
},

Komunikat systemowy to specjalny rodzaj komunikatu, który jest wyświetlany klientowi w związku ze zdarzeniami podczas konwersacji. Na przykład, gdy agent dołącza, gdy agent rozłącza się i gdy dołącza nowy agent.

{
	"content": "Alan Steiner has left the conversation.",
	"contentType": "text",
	"createdDateTime": "2020-05-19T04:43:12.976+00:00",
	"from": {
		"application": {
			"displayName": "DynamicsBot",
			"id": "bc81db89-c4d7-4763-91fe-086fcc2e6daf"
		},
		"user": null,
		"phone": null,
		"guest": null,
		"encrypted": null,
		"onPremises": null,
		"azureApplicationInstance": null,
		"applicationInstance": null,
		"device": null
	},
	"likes": [],
	"attachments": [],
	"id": "1589863392976",
	"created": "2020-05-19T04:43:12.976Z",
	"culture": null,
	"deleted": null,
	"important": null,
	"modified": null,
	"modifiedDateTime": null,
	"tags": "system"
},

Wiadomości tekstowe wymieniane podczas czatu między agentem a klientem wyglądają następująco:

{
	"content": "I am using product A",
	"contentType": "text",
	"createdDateTime": "2020-05-19T04:43:03.979+00:00",
	"from": {
		"user": {
			"displayName": "Customer",
			"id": "04fd615d-586d-4866-9791-b24c5f7a9e78"
		},
		"phone": null,
		"guest": null,
		"encrypted": null,
		"onPremises": null,
		"azureApplicationInstance": null,
		"applicationInstance": null,
		"application": null,
		"device": null
	},
	"likes": [],
	"attachments": [],
	"id": "1589863384036",
	"created": "2020-05-19T04:43:03.979Z",
	"culture": null,
	"deleted": null,
	"important": null,
	"modified": null,
	"modifiedDateTime": null,
	"tags": "private,parentID-5493180821148088016",
	"deliveryMode": "unbridged"
},

Jak pokazano w poprzednim kodzie, wiadomości wysyłane przez klienta mają nazwę wyświetlaną "Klient", jeśli jest to niezidentyfikowany klient, lub ich rzeczywistą nazwę, jeśli są znani Dynamics 365 Contact Center.

W przypadku wiadomości, które agent wysyła do klienta, istnieją tagi oznaczające, że jest to wiadomość "publiczna". Wiadomości oznaczone jako "prywatne" w tagach to wiadomości wymieniane między dwoma agentami i nie są widoczne dla klienta.

{
	"content": "Great! Just give me a moment. \\nWhich product are you using currently?",
	"contentType": "text",
	"createdDateTime": "2020-05-19T04:42:44.202+00:00",
	"from": {
		"user": {
			"displayName": "Alan Steiner",
			"id": "04fd615d-586d-4866-9791-b24c5f7a9e78"
		},
		"phone": null,
		"guest": null,
		"encrypted": null,
		"onPremises": null,
		"azureApplicationInstance": null,
		"applicationInstance": null,
		"application": null,
		"device": null
	},
	"likes": [],
	"attachments": [],
	"id": "1589863364220",
	"created": "2020-05-19T04:42:44.202Z",
	"culture": null,
	"deleted": null,
	"important": null,
	"modified": null,
	"modifiedDateTime": null,
	"tags": "public,messageId-1589863364202,RTT-C1",
	"deliveryMode": "unbridged"
},

Komunikat FileAttachment wygląda podobnie do następującego fragmentu kodu w formacie JSON:

{
    "content": "",
    "contentType": "text",
    "createdDateTime": "2020-05-06T21:31:37.316+00:00",
    "from": {
      "application": {
        "displayName": "Customer",
        "id": "6cc05310-05d9-4ce5-8fc0-d606c478f896"
      },
      "user": null,
      "phone": null,
      "guest": null,
      "encrypted": null,
      "onPremises": null,
      "azureApplicationInstance": null,
      "applicationInstance": null,
      "device": null
    },
    "likes": [
    ],
    "attachments": [
      {
        "id": "0-wus-d3-37f4fa3cd63945c526799ae5b4e009f5",
        "index": 0,
        "fileType": "docx",
        "name": "mr Hand goes to the moon, By contoso.docx",
        "sourceUrl": "https://us-api.asm.contoso.com/v1/objects/0-wus-d3-37f4fa3cd63945c526799ae5b4e009f5/",
        "annotationid": "cfb551a8-ef4f-431a-871f-9b027ff940e3"
      }
    ],
    "id": "1588800697316",
    "created": "2020-05-06T21:31:37.316Z",
    "culture": null,
    "deleted": null,
    "important": null,
    "modified": null,
    "modifiedDateTime": null,
    "deliveryMode": "bridged"
  },

Zwykle zawiera metadane związane z załącznikami wymienianymi podczas czatu. Jest annotationid to klucz do rekordu zakodowanego w formacie base64 w tabeli Adnotacje dla tego załącznika pliku. Rekord można pobrać przy użyciu następującego żądania internetowego interfejsu API. Żądanie internetowego interfejsu API zapewnia załącznik zakodowany w formacie base64, który można zdekodować i używać w żądany sposób.

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

Dynamics 365 Contact Center dla deweloperów