Descargar de forma masiva transcripciones de Plataforma omnicanal para Customer Service
Las transcripciones de Plataforma omnicanal para Customer Service se almacenan en formato codificado en base64 en la tabla de anotaciones en Microsoft Dataverse. Los archivos adjuntos se almacenan como registros separados en la tabla de anotaciones. Si una conversación tiene dos archivos intercambiados entre el agente y el cliente, se crean un total de tres registros relacionados con esta conversación. Cualquier conversación siempre tiene n + 1 registros almacenados en la tabla de anotaciones, donde n es el número de archivos adjuntos en la conversación. Los archivos adjuntos también se codifican en base64 antes de ser guardados.
La opción de descargar transcripciones en bloque no está disponible de forma inmediata. Puede utilizar las siguientes solicitudes de API web para recuperar todas las transcripciones y archivos adjuntos intercambiados en el último mes.
La siguiente solicitud de API web recupera todas las transcripciones textuales:
GET [Organization URI]/api/data/v9.1/annotations?$filter=objecttypecode eq 'msdyn_transcript'
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
La siguiente solicitud de API web recupera todas las anotaciones de adjunto de archivo:
GET [Organization URI]/api/data/v9.1/annotations?$filter=objecttypecode eq 'msdyn_ocliveworkitem'
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
El atributo documentBody
de la respuesta obtenida de cada una de las solicitudes de API web contiene la transcripción o archivo adjunto codificado en base64.
Puede llamar a las API utilizando código C# y luego iterar sobre cada uno de los registros devueltos, acceder al atributo documentBody
y procesarlo para obtener las transcripciones completas.
Estructura de la transcripción JSON
Las transcripciones que ve en el vínculo pueden contener diferentes tipos de mensajes:
- Mensajes de control
- Mensajes del sistema
- Mensajes de texto (por ejemplo, Hola, Hola y Cómo estás)
- Metadatos de archivos adjuntos
En cada uno de estos tipos de mensajes puede ver un campo createdDateTime
que indica la hora exacta en la que se publicó o se creó este mensaje.
Un mensaje de control no tiene valor visual e indica que un evento como un agente se unió o abandonó la conversación. Suele tener un indicador llamado isControlMessage
ajustado a 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
},
Un mensaje del sistema es un tipo especial de mensaje que se muestra al cliente con respecto a los eventos durante las conversaciones. Por ejemplo, cuando un agente se une, cuando un agente se desconecta y cuando se une un nuevo agente.
{
"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"
},
Los mensajes de texto intercambiados durante el chat entre el agente y el cliente aparecen de la siguiente manera:
{
"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"
},
Como se ve en el código anterior, los mensajes enviados por el cliente tienen un nombre "Cliente" en el caso de un cliente no identificado o su nombre real si la Plataforma omnicanal para Customer Service los conoce.
Para el mensaje que envía un agente a un cliente, hay etiquetas que indican que es un mensaje "público" enviado por el agente. Si las etiquetas contienen "privado", se tratará de mensajes internos intercambiados entre dos agentes y no serán visibles para el cliente.
{
"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"
},
Un mensaje FileAttachment
se parece al siguiente fragmento de código en 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"
},
Por lo general, tiene metadatos relacionados con los archivos adjuntos intercambiados durante el chat. El annotationid
es la clave para el registro codificado en base64 en la tabla Anotaciones para ese archivo adjunto. Puede recuperar el registro mediante la siguiente solicitud de API web. La solicitud de la API web le brinda el adjunto codificado en base64 que puede decodificar y usar de la manera que desee.
GET [Organization URI]/api/data/v9.1/annotations(<annotationid>)
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0