Freigeben über


Laden Sie Dynamics 365 Contact Center-Transkripte in großen Mengen herunter

Dynamics 365 Contact Center-Transkripte werden im base64-codierten Format in der Anmerkungstabelle in Microsoft Dataverse gespeichert. Anhänge werden als separate Datensätze in der Anmerkungstabelle gespeichert. Wenn in einer Konversation zwei Dateien zwischen dem Agenten und dem Kunden ausgetauscht werden, werden insgesamt drei Datensätze erstellt, die sich auf diese Konversation beziehen. Für jede Konversation sind immer n+1-Datensätze in der Anmerkungstabelle gespeichert, wobei n die Anzahl der Anhänge in der Konversation ist. Anhänge werden ebenfalls base64-codiert, bevor sie gespeichert werden.

Die Option zum gleichzeitigen Herunterladen von Transkripten ist nicht standardmäßig verfügbar. Sie können die folgenden Web-API-Anforderungen verwenden, um alle Transkripte und Anlagen abzurufen, die im letzten Monat ausgetauscht wurden.

Die folgende Web-API-Anforderung ruft alle Texttranskripte ab:

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

Die folgende Web-API-Anforderung ruft alle Anmerkungen zu Dateianhängen ab:

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

Das documentBody Attribut in der Antwort, die von jeder der Web-API-Anforderungen abgerufen wird, enthält das base64-codierte Transkript oder den Anhang.

Sie können die APIs mithilfe von C#-Code aufrufen und dann über jeden der zurückgegebenen Datensätze iterieren, auf das documentBody Attribut zugreifen und es verarbeiten, um die vollständigen Transkripte abzurufen.

Mindestens eine von einem Kunden gesendete Nachricht ist erforderlich, um ein Transkript zu generieren.

Aufbau des JSON-Transkripts

Die Transkripte, die Sie im Link sehen, können verschiedene Arten von Nachrichten enthalten:

  • Meldungen steuern
  • Systemmeldungen
  • Textnachrichten (z. B. Hallo, Hallo und Wie geht es Ihnen)
  • Metadaten von Dateianhängen

Bei jedem dieser Nachrichtentypen wird ein createdDateTime Feld angezeigt, das den genauen Zeitpunkt angibt, zu dem diese Nachricht veröffentlicht oder erstellt wurde.

Eine Steuernachricht hat keinen visuellen Wert und weist auf ein Ereignis hin, z. B. dass ein Agent der Konversation beigetreten ist oder sie verlassen hat. Es hat normalerweise ein Flag namens isControlMessage set to 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
},

Eine Systemnachricht ist eine spezielle Art von Nachricht, die dem Kunden in Bezug auf Ereignisse während der Konversationen angezeigt wird. Zum Beispiel, wenn ein Agent beitritt, wenn ein Agent die Verbindung trennt und wenn ein neuer Agent beitritt.

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

Textnachrichten, die während des Chats zwischen Agent und Kunde ausgetauscht werden, sehen wie folgt aus:

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

Wie im vorherigen Code zu sehen ist, haben Nachrichten, die vom Kunden gesendet werden, den Anzeigenamen "Kunde", wenn es sich um einen nicht identifizierten Kunden handelt, oder ihren tatsächlichen Namen, wenn sie Dynamics 365 Contact Center bekannt sind.

Für Nachrichten, die der Agent an einen Kunden sendet, gibt es Tags, die angeben, dass es sich um eine "öffentliche" Nachricht handelt. Nachrichten, die in den Tags mit "privat" gekennzeichnet sind, sind Nachrichten, die zwischen zwei Agenten ausgetauscht werden und für den Kunden nicht sichtbar sind.

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

Eine FileAttachment Nachricht sieht wie der folgende Codeausschnitt im JSON-Code aus:

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

Es verfügt in der Regel über Metadaten, die sich auf die während des Chats ausgetauschten Anhänge beziehen. Dies annotationid ist der Schlüssel zum base64-codierten Datensatz in der Anmerkungstabelle für diesen Dateianhang. Sie können den Datensatz mithilfe der folgenden Web-API-Anforderung abrufen. Die Web-API-Anforderung stellt Ihnen den base64-codierten Anhang zur Verfügung, den Sie decodieren und nach Belieben verwenden können.

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

Dynamics 365 Contact Center für Entwickler