- Documentos de la API
- Introducción
- Uso de la API
- Tutorial de la API
- Resumen
- Fuentes
- Conjuntos de datos
- Comentarios
- Archivos adjuntos
- Predictions
- Crear una transmisión
- Actualizar una transmisión
- Obtener una transmisión por nombre
- Obtener todas las transmisiones
- Eliminar una transmisión
- Obtener resultados de la transmisión
- Obtener comentarios de una transmisión (heredado)
- Avanzar una transmisión
- Restablecer una transmisión
- Etiquetar una excepción
- Desetiquetar una excepción
- Eventos de auditoría
- Obtener todos los usuarios
- CLI
- Guías de integración
- Integración de Exchange con el usuario del servicio de Azure
- Integración de Exchange con la autenticación de aplicaciones de Azure
- Automatización en tiempo real
- Obtener datos para Tableau con Python
- Integración de Elasticsearch
- Integración de EWS autohospedado
- Marco de automatización de UiPath
- Actividades de UiPath Marketplace
- Actividades oficiales de UiPath
- Blog
- Cómo aprenden las máquinas a entender palabras: una guía para las incrustaciones en PNL
- Aprendizaje basado en solicitudes con Transformers
- Efficient Transformers II: destilación de conocimientos y ajuste
- Transformadores eficientes I: mecanismos de atención
- Modelado de intenciones jerárquico profundo no supervisado: obtener valor sin datos de entrenamiento
- Corrección del sesgo de anotación con Communications Mining
- Aprendizaje activo: mejores modelos ML en menos tiempo
- Todo está en los números: evaluar el rendimiento del modelo con métricas
- Por qué es importante la validación del modelo
- Comparación de Communications Mining y Google AutoML para la inteligencia de datos conversacional
Guía para desarrolladores de Communications Mining
Comentarios
comments
, mientras que la guía del usuario y la IU de Communications Mining se referirán principalmente a messages
.
comments
para prepararlos para la carga, y cómo entender los datos obtenidos de Communications Mining.
La sección Información general describe la estructura general de un objeto de comentario. Si quieres cargar datos en Communications Mining a través de la API, o para entender cómo procesar los datos cargados en Communications Mining a través de la API, consulta la sección Comentarios creados a través de la API . Puedes encontrar descripciones detalladas para cada uno de los tipos de comentarios más utilizados (correos electrónicos o tickets de soporte). Si quieres entender mejor cómo procesar los datos cargados en Communications Mining a través de una integración, consulta la sección Comentarios creados por integraciones . Por último, para obtener una lista completa de los campos de objeto de comentario disponibles, consulta la sección Referencia .
Communications Mining funciona con varios tipos de datos de texto, como correos electrónicos, respuestas a encuestas, tickets de soporte o reseñas de clientes. Lo que estos tipos de datos tienen en común es que todos consisten en unidades de comunicación (un correo electrónico, una respuesta a una encuesta, un ticket de soporte, una reseña de un cliente). En Communications Mining, un único mensaje se representa como un comentario, por ejemplo.
Independientemente del tipo de unidad de comunicación que simbolice un comentario, este mantiene de forma coherente esta estructura fundamental:
{
"id": <UNIQUE ID>,
"timestamp": <TIMESTAMP>,
"messages": [
{
"body": { "text": <TEXT> },
...
}
],
"user_properties": { ... },
}
{
"id": <UNIQUE ID>,
"timestamp": <TIMESTAMP>,
"messages": [
{
"body": { "text": <TEXT> },
...
}
],
"user_properties": { ... },
}
Como se muestra en el fragmento de código anterior, además del texto real, un comentario siempre tiene un ID y una marca de tiempo. El ID debe ser único dentro de la fuente que contiene el mensaje. La marca de tiempo se utiliza en la interfaz de usuario de la plataforma para filtrar y ordenar por fecha, y para generar análisis basados en fechas.
Además de estos campos obligatorios, se deben establecer otros campos en función del tipo de comentario. Si tus datos se han cargado en Communications Mining a través de una integración, Communications Mining rellena automáticamente todos los campos necesarios. Consulta las siguientes secciones para obtener una descripción más detallada.
Correos electrónicos
sync-raw-emails
para los correos electrónicos sin procesar y el punto final sync
para los correos electrónicos procesados.
Al sincronizar correos electrónicos sin procesar, proporciona los encabezados de correo electrónico MIME extraídos y el cuerpo del correo electrónico tal cual (consulta la Referencia para obtener una descripción del formato de correo electrónico sin procesar). Communications Mining analiza los encabezados y limpia el cuerpo del correo electrónico.
¿Cómo procesa Communications Mining los correos electrónicos sin procesar?
- Establece los campos específicos del correo electrónico en el objeto de mensaje
messages[0]
- Establece el campo
thread_id
y el objetothread_properties
- Limpia el cuerpo del correo electrónico eliminando los correos electrónicos entre comillas y colocando la firma en un campo
signature
independiente - Rellena el objeto
user_properties
con metadatos extraídos de los encabezados de correo electrónico.
BCC:
.
Si enriqueces los correos electrónicos con otros datos antes de cargarlos en Communications Mining, puedes proporcionar estos datos adicionales en las propiedades de usuario del comentario.
{
"raw_email": {
"body": {
"plain": "Hi Bob,\n\nCould you send me the figures for today?\n\nThanks,\nAlice"
},
"headers": {
"raw": "From: Alice Smith <alice@example.com>\nDate: Tue, 3 Aug 2021 10:57:42 +0100\nMessage-ID: <e7784b5b@mail.example.com>\nSubject: Figures for today\nTo: Bob <bob@company.com>\nCc: Joe <joe@company.com>"
}
},
"user_properties": {
"string:Team": "Team XYZ"
}
}
{
"raw_email": {
"body": {
"plain": "Hi Bob,\n\nCould you send me the figures for today?\n\nThanks,\nAlice"
},
"headers": {
"raw": "From: Alice Smith <alice@example.com>\nDate: Tue, 3 Aug 2021 10:57:42 +0100\nMessage-ID: <e7784b5b@mail.example.com>\nSubject: Figures for today\nTo: Bob <bob@company.com>\nCc: Joe <joe@company.com>"
}
},
"user_properties": {
"string:Team": "Team XYZ"
}
}
{
"comment": {
"id": "3c6537373834623562406d61696c2e6578616d706c652e636f6d3e",
"timestamp": "2021-08-03T09:57:42Z",
"user_properties": {
"string:Has Signature": "Yes",
"string:Sender": "alice@example.com",
"string:Thread": "<e7784b5b@mail.example.com>",
"string:Message ID": "<e7784b5b@mail.example.com>",
"number:Recipient Count": 2,
"number:Participant Count": 3,
"number:Position in Thread": 1,
"string:Sender Domain": "example.com",
"string:Team": "Team XYZ"
},
"messages": [
{
"body": {
"text": "Hi Bob,\n\nCould you send me the figures for today?"
},
"signature": {
"text": "Thanks,\nAlice"
},
"subject": {
"text": "Figures for today"
},
"to": ["\"Bob\" <bob@company.com>"],
"cc": ["\"Joe\" <joe@company.com>"],
"sent_at": "2021-08-03T09:57:42Z",
"from": "\"Alice Smith\" <alice@example.com>"
}
],
"thread_id": "3c6537373834623562406d61696c2e6578616d706c652e636f6d3e"
},
"thread_properties": {
"duration": null,
"response_time": null,
"num_messages": 1,
"num_participants": 3,
"first_sender": "alice@example.com",
"thread_position": 0
}
}
{
"comment": {
"id": "3c6537373834623562406d61696c2e6578616d706c652e636f6d3e",
"timestamp": "2021-08-03T09:57:42Z",
"user_properties": {
"string:Has Signature": "Yes",
"string:Sender": "alice@example.com",
"string:Thread": "<e7784b5b@mail.example.com>",
"string:Message ID": "<e7784b5b@mail.example.com>",
"number:Recipient Count": 2,
"number:Participant Count": 3,
"number:Position in Thread": 1,
"string:Sender Domain": "example.com",
"string:Team": "Team XYZ"
},
"messages": [
{
"body": {
"text": "Hi Bob,\n\nCould you send me the figures for today?"
},
"signature": {
"text": "Thanks,\nAlice"
},
"subject": {
"text": "Figures for today"
},
"to": ["\"Bob\" <bob@company.com>"],
"cc": ["\"Joe\" <joe@company.com>"],
"sent_at": "2021-08-03T09:57:42Z",
"from": "\"Alice Smith\" <alice@example.com>"
}
],
"thread_id": "3c6537373834623562406d61696c2e6578616d706c652e636f6d3e"
},
"thread_properties": {
"duration": null,
"response_time": null,
"num_messages": 1,
"num_participants": 3,
"first_sender": "alice@example.com",
"thread_position": 0
}
}
Propiedades del hilo
Las siguientes propiedades de hilo están disponibles.
Nombre | Descripción |
---|---|
thread_position | Posición del comentario en el hilo, calculada ordenando el comentario por timestamp . Comienza en 0 .
|
num_messages | Número de comentarios en el hilo. |
num_participants | Número total de participantes únicos (De, Para, CC, CCO) en el hilo. |
first_sender | Remitente del primer comentario en el hilo. |
duration | Diferencia (en segundos) entre el timestamps del primer y último comentario en el hilo. Se establecerá en null si num_messages es 1 (es decir, hilo contiene solo 1 comentario). Nota: El
timestamp de un comentario corresponde al campo sent_at del correo electrónico sin procesar correspondiente.
|
response_time | Diferencia (en segundos) entre el primer comentario del hilo y la primera respuesta del hilo. La primera respuesta en el hilo es el comentario más antiguo en el que el remitente no es first_sender . Se establecerá en null si no hay respuestas en el hilo (es decir, si todos los correos electrónicos en el hilo son del mismo remitente).
|
Cada vez que se añade un nuevo comentario a la plataforma, se actualizan las propiedades del hilo correspondiente.
thread_position
, todas las propiedades son las mismas para cada comentario en el hilo.
Además del texto principal, un ticket de soporte típico enviado a través de un formulario puede tener un asunto, información sobre el remitente (como el nombre o la dirección de correo electrónico) y datos estructurados adicionales (como el tema del ticket) que se pueden cargar como parte de las propiedades de usuario del comentario.
{
"id": "dbcb03ad",
"timestamp": "2020-02-26T16:09:00Z",
"messages": [
{
"body": {
"text": "Hi Support Team\n\nPlease could you look into my broadband service network status. I don't have any signal."
},
"subject": {
"text": "Network Outage for over 24 hours - Customer account number 1234567"
},
"from": "alice.smith@example.com"
}
],
"user_properties": {
"string:Customer Name": "Alice Smith",
"string:Source": "Support Form",
"string:Topic": "Broadband"
}
}
{
"id": "dbcb03ad",
"timestamp": "2020-02-26T16:09:00Z",
"messages": [
{
"body": {
"text": "Hi Support Team\n\nPlease could you look into my broadband service network status. I don't have any signal."
},
"subject": {
"text": "Network Outage for over 24 hours - Customer account number 1234567"
},
"from": "alice.smith@example.com"
}
],
"user_properties": {
"string:Customer Name": "Alice Smith",
"string:Source": "Support Form",
"string:Topic": "Broadband"
}
}
Correos electrónicos (Microsoft Exchange)
Los correos electrónicos de Microsoft Exchange incorporados a Communications Mining a través de la integración de Exchange se convierten automáticamente en objetos de comentario de la misma manera que los correos electrónicos sin procesar.
attachments
contiene metadatos sobre ellos:```json
{
"id": "3c484531505230324d423",
"attachments": [
{
"name": "account-statement.pdf",
"size": 49078,
"content_type": "application/pdf",
}
],
// other comment fields omitted
...
},
```
```json
{
"id": "3c484531505230324d423",
"attachments": [
{
"name": "account-statement.pdf",
"size": 49078,
"content_type": "application/pdf",
}
],
// other comment fields omitted
...
},
```
attachment_reference
:
```json
{
"id": "3c484531505230324d423",
"attachments": [
{
"name": "account-statement.pdf",
"size": 49078,
"content_type": "application/pdf",
"attachment_reference": "CjQSEIExTHEqtdntoxz2WtbZDNEiIIVqcP1Sfx2L4epyRQDasa1RSODvheQ3bvLhj3L-_81G"
}
],
// other comment fields omitted
...
},
```
```json
{
"id": "3c484531505230324d423",
"attachments": [
{
"name": "account-statement.pdf",
"size": 49078,
"content_type": "application/pdf",
"attachment_reference": "CjQSEIExTHEqtdntoxz2WtbZDNEiIIVqcP1Sfx2L4epyRQDasa1RSODvheQ3bvLhj3L-_81G"
}
],
// other comment fields omitted
...
},
```
attachment_reference
para recuperar el contenido del archivo binario de [la API de archivos adjuntos] (#FIXME). Para el ejemplo anterior, obtienes la siguiente URL: https://cloud.uipath.com/<organisation>/<tenant>/reinfer_/api/v1/attachments/CjQSEIExTHEqtdntoxz2WtbZDNEiIIVqcP1Sfx2L4epyRQDasa1RSODvheQ3bvLhj3L-_81G.
Consulta la [Referencia de la API] (#FIXME) para obtener más información sobre este tipo de solicitud.
attachment_reference
, no puedes descargar el contenido del archivo adjunto. Esto puede deberse a que:
- Communications Mining no ha recibido el contenido del archivo adjunto.
- El contenido del archivo adjunto superó el límite de tamaño para cargarlo en Communications Mining.
- Communications Mining procesó el archivo adjunto antes de que admitiera el contenido del archivo.
Más información sobre el contenido de los archivos adjuntos en la página Archivos adjuntos.
Comentarios
Consulta la siguiente tabla para ver una lista de los campos de comentarios disponibles. Si no estás familiarizado con los objetos de comentario de Communications Mining, consulta la Información general.
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
id | String | Sí | Identifica un comentario de forma única dentro de una fuente. Cualquier cadena hexadecimal de hasta 1024 caracteres es válida (se ajusta a /[0-9a-f]{1,1024}/). |
timestamp | String | Sí | Una marca de tiempo ISO-8601 que indica cuándo se creó el comentario. Si la marca de tiempo no especifica una zona horaria, se asumirá UTC. La marca de tiempo debe estar en el rango 1950-01-01T00:00:00Z a 2049-12-31T23:59:59Z inclusive. |
messages | array<Message> | Sí | Una matriz de cero o un mensaje. |
user_properties | map<string, string | number> | No | Cualquier metadato definido por el usuario que se aplique al comentario. Hay dos tipos posibles: string y number . La clave de una propiedad de usuario tiene el formato "tipo:nombre", por ejemplo. "string:Domain Name" o "number:Star Rating". El nombre de la propiedad del usuario puede constar de letras, números, espacios y guiones bajos, y puede contener hasta 32 caracteres (conforme a /\w([\w ]{0,30}\w)?/). El valor debe ser una cadena o un número, dependiendo del tipo de propiedad del usuario.
|
thread_id | String | No | Un ID que identifica de forma única un hilo de correo electrónico. Cualquier cadena hexadecimal de hasta 1024 caracteres es válida (se ajusta a /[0-9a-f]{1,1024}/). |
uid | String | establecido por Communications Mining | Un ID combinado de fuente y comentario en forma de source_id.comment_id . No deberías establecer este campo directamente, ya que Communications Mining lo genera automáticamente para los comentarios cargados.
|
created_at | String | establecido por Communications Mining | Una marca de tiempo ISO-8601 con las mismas restricciones que el campo timestamp . No debes establecer este campo directamente, ya que Communications Mining lo genera automáticamente cuando se crea el comentario.
|
updated_at | String | establecido por Communications Mining | Una marca de tiempo ISO-8601 con las mismas restricciones que el campo timestamp . No deberías establecer este campo directamente, ya que Communications Mining lo genera automáticamente cuando se actualiza el comentario.
|
attachments | array<Attachment> | No | Una matriz de cero o más archivos adjuntos. Un archivo adjunto representa un archivo adjunto a un comentario. |
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
name | String | Sí | El nombre del archivo adjunto. |
size | Número | Sí | El tamaño del contenido del archivo adjunto en bytes. |
content_type | String | Sí | El [Tipo de medio](https://en.wikipedia.org/wiki/Media_type) del archivo adjunto. Para obtener una lista de valores posibles, consulta la lista [Tipos de medios de IANA] (https://www.iana.org/assignments/media-types/media-types.xhtml). |
attachment_reference | String | No | Se utiliza para recuperar el contenido del archivo binario de [la API de archivos adjuntos] (#FIXME) |
Message
tiene el siguiente formato:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
body | Contenido | Sí | Un objeto que contiene el texto del cuerpo principal del mensaje. |
subject | Contenido | No | Un objeto que contiene el asunto del mensaje. |
signature | Contenido | No | Un objeto que contiene la firma del mensaje. |
from | String | No | El remitente del mensaje. |
to | array<string> | No | Una matriz de destinatarios principales. |
cc | array<string> | No | Una matriz de destinatarios en copia carbón. |
bcc | array<string> | No | Una matriz de destinatarios en copia oculta. |
sent_at | String | No | Una marca de tiempo ISO-8601 que indica cuándo se creó el mensaje. Si la marca de tiempo no especifica una zona horaria, se asumirá UTC. |
language | String | No | El idioma original del mensaje. Si se proporciona, tanto text como translated_from deben proporcionarse para los campos Contenido .
|
Content
tiene el siguiente formato:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
text | String | Sí | Si se ha proporcionado language (que no sea language del origen), este debería ser el texto traducido del contenido. De lo contrario, debe estar en el idioma original en el que se recopiló; se traducirá si no está en el language del origen y el origen tiene should_translate establecido en true . Máximo 65536 caracteres.
|
translated_from | String | No | Si se ha proporcionado language (que no sea language del origen), debería ser el texto original del contenido. Si se proporciona este campo sin haber proporcionado un language , se producirá un error. Como máximo 65536 caracteres.
|
Correos electrónicos sin procesar
Consulta la siguiente tabla para ver una lista de los campos de correo electrónico sin formato disponibles.
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
headers | Encabezados | Sí | Un objeto que contiene los encabezados del correo electrónico. |
body | Cuerpo | Sí | Un objeto que contiene el cuerpo principal del correo electrónico. |
Headers
tiene el siguiente formato:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
raw | String | No | Se requiere uno de raw y parsed . Los encabezados de correo electrónico sin formato, proporcionados como una sola cadena, con cada encabezado en su propia línea.
|
parsed | map<cadena, cadena | matriz<string>> | No |
Se requiere uno de
raw y parsed . Los encabezados de correo electrónico analizados, proporcionados como un objeto con claves de cadena y valores de cadena o matriz<string> .
Cada clave debe ser ASCII y representa un encabezado de correo electrónico. Las cadenas de valor pueden ser cualquier UTF-8 válido. Las listas de valores se concatenarán con
, antes de establecerse como un solo valor de encabezado. Si necesita claves de encabezado duplicadas, utilice raw en su lugar.
|
Body
tiene el siguiente formato:
Nombre | Tipo | Obligatorio | Descripción |
---|---|---|---|
plain | String | No | Se requiere al menos uno de plain y html . El contenido de texto sin formato del correo electrónico. Como máximo 65536 caracteres.
|
html | String | No | Se requiere al menos uno de plain y html . El contenido HTML del correo electrónico.
|