Communications Mining
Más reciente
False
Comentarios: última versión de Automation Cloud
Imagen de fondo del banner
Logotipo
Guía para desarrolladores de Communications Mining
Última actualización 8 de febrero de 2024

Comentarios

Los datos en Communications Mining se representan como objetos de comentario . Al cargar datos en Communications Mining u obtener datos de Communications Mining, es importante entender cómo los diferentes tipos de datos (como correos electrónicos, tickets de soporte o chats) deben representarse como comentarios. Este documento explica cómo modelar tus datos como comentarios de Communications Mining para prepararlos para cargarlos en Communications Mining, y cómo entender los datos obtenidos de Communications Mining.
Ejemplo de un comentario creado a partir de un correo electrónico

Revisión de comentarios de Communications Mining

La sección Información general describe la estructura general de un objeto de comentario. Si desea cargar datos en Communications Mining a través de la API, o si desea saber cómo procesar los datos cargados en Communications Mining a través de la API, consulte la sección Comentarios creados a través de la API , que proporciona descripciones detalladas de cada uno de los tipos de comentarios (correos electrónicos, tickets de soporte y chats). Si quieres saber 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 Referencia.

Información general

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, llamamos comentario a cualquier unidad de comunicación de este tipo.

Independientemente del tipo de unidad de comunicación que represente un comentario, siempre tendrá esta estructura básica:

{
  "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 tendrá un ID y una marca de tiempo. El ID debe ser único dentro de la fuente que contiene el comentario. 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 rellenará automáticamente todos los campos necesarios. Las siguientes secciones describen esto con más detalle.

Comentarios creados a través de la API

Correos electrónicos

Aunque la forma más fácil de sincronizar correos electrónicos en Communications Mining es a través de la integración de Exchange, en los casos en los que hagas tu propia extracción de correo electrónico, puedes sincronizar los correos electrónicos a través de la API. Debes utilizar el punto final 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, debes proporcionar 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 formato). Communications Mining analizará los encabezados y limpiará el cuerpo del correo electrónico. (Ten en cuenta que el siguiente ejemplo de correo electrónico sin procesar muestra un número muy pequeño de encabezados para mayor brevedad. Debes enviar todos los encabezados extraídos a Communications Mining, que probablemente sean mucho más largos que en el ejemplo).

Importante:

¿CÓMO PROCESA COMMUNICATION MINING LOS CORREOS RAW?

Communications Mining establecerá los campos específicos del correo electrónico en el objeto de mensaje messages[0], establecerá el campo thread_id y el objeto thread_properties , limpiará el cuerpo del correo electrónico eliminando los correos electrónicos entre comillas y poniendo la firma en un campo signature independiente, y rellena el objeto user_properties con metadatos extraídos de los encabezados de correo electrónico.

Ten en cuenta que si un campo no está presente en el correo electrónico, no se establecerá en el comentario (en lugar de establecerse en un valor nulo o vacío). Por ejemplo, el comentario del siguiente ejemplo no contiene un campo 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.

El correo electrónico sin procesar procesado se parecerá al siguiente ejemplo de correo electrónico procesado: ten en cuenta el número de campos adicionales creados por Communications Mining. Si quieres cargar correos electrónicos procesados, debes estructurarlos como en el ejemplo de correo electrónico procesado.
Ejemplo de correo electrónico

  • Correo electrónico sin procesar
    {
      "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"
      }
    }
  • Correo electrónico procesado
    {
      "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.

NombreDescripción
thread_positionPosición del comentario en el hilo, calculada ordenando los comentarios por timestamp. Comienza en 0.
num_messagesNúmero de comentarios en el hilo.
num_participantsNúmero total de participantes únicos (De, Para, CC, CCO) en el hilo.
first_senderRemitente del primer comentario en el hilo.
durationDiferencia (en segundos) entre los timestampdel 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_timeDiferencia (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.

Ten en cuenta que, aparte de thread_position, todas las propiedades son las mismas para cada comentario en el hilo.

Tickets de soporte

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.

El siguiente ejemplo muestra cómo formatear un ticket de soporte como un comentario de Communications Mining y cómo se mostrará ese comentario en la interfaz de usuario de la plataforma. Por supuesto, tus propiedades de usuario pueden ser diferentes dependiendo de los datos que recopiles.
Ejemplo de ticket de soporte

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

Chat

De todos los tipos de comentarios, los chats son el único caso en el que debes establecer varios mensajes por comentario en la matriz messages (todos los demás tipos de comentarios tienen un mensaje por comentario). Además, para cada mensaje puedes establecer el remitente y la hora a la que se envió el mensaje. De forma similar a los tickets de soporte, normalmente tendrás datos estructurados (como la duración del chat o el estado de resolución) que puedes cargar como parte de las propiedades de usuario del comentario.
El siguiente ejemplo muestra cómo formatear una conversación de chat como un comentario de Communications Mining y cómo se mostrará ese comentario en la IU de la plataforma. Por supuesto, tus propiedades de usuario pueden ser diferentes dependiendo de los datos que recopiles.
Chat de ejemplo

{
  "id": "5be6a3e4",
  "timestamp": "2020-02-28T19:20:22Z",
  "user_properties": {
    "number:Duration": 542,
    "string:Close Reason": "Complete Acknowledged",
    "string:Resolution": "Unknown"
  },
  "messages": [
    {
      "body": {
        "text": "Hi, my name is Alice 👋 How can I help?"
      },
      "sent_at": "2020-02-28T19:20:01Z",
      "from": "Agent"
    },
    {
      "body": {
        "text": "Hi. I would like to close my account"
      },
      "sent_at": "2020-02-28T19:22:39Z",
      "from": "Customer"
    },
    {
      "body": {
        "text": "Thanks for waiting. Please call our account team at this number: 012-3456-7890."
      },
      "sent_at": "2020-02-28T19:27:50Z",
      "from": "Agent"
    },
    {
      "body": {
        "text": "Ok, thanks, I will follow up with them"
      },
      "sent_at": "2020-02-28T19:28:31Z",
      "from": "Customer"
    },
    {
      "body": {
        "text": "Sure thing! Anything else I can help you with today?"
      },
      "sent_at": "2020-02-28T19:28:42Z",
      "from": "Agent"
    },
    {
      "body": {
        "text": "No. Thanks."
      },
      "sent_at": "2020-02-28T19:29:03Z",
      "from": "Customer"
    }
  ]
}{
  "id": "5be6a3e4",
  "timestamp": "2020-02-28T19:20:22Z",
  "user_properties": {
    "number:Duration": 542,
    "string:Close Reason": "Complete Acknowledged",
    "string:Resolution": "Unknown"
  },
  "messages": [
    {
      "body": {
        "text": "Hi, my name is Alice 👋 How can I help?"
      },
      "sent_at": "2020-02-28T19:20:01Z",
      "from": "Agent"
    },
    {
      "body": {
        "text": "Hi. I would like to close my account"
      },
      "sent_at": "2020-02-28T19:22:39Z",
      "from": "Customer"
    },
    {
      "body": {
        "text": "Thanks for waiting. Please call our account team at this number: 012-3456-7890."
      },
      "sent_at": "2020-02-28T19:27:50Z",
      "from": "Agent"
    },
    {
      "body": {
        "text": "Ok, thanks, I will follow up with them"
      },
      "sent_at": "2020-02-28T19:28:31Z",
      "from": "Customer"
    },
    {
      "body": {
        "text": "Sure thing! Anything else I can help you with today?"
      },
      "sent_at": "2020-02-28T19:28:42Z",
      "from": "Agent"
    },
    {
      "body": {
        "text": "No. Thanks."
      },
      "sent_at": "2020-02-28T19:29:03Z",
      "from": "Customer"
    }
  ]
}

Comentarios creados por integraciones

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.

Referencia

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.

NombreTipoObligatorioDescripción
idStringIdentifica 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}/).
timestampStringUna 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.
messagesarray<Message>Una matriz de cero o más mensajes. Las conversaciones se representan como una serie cronológica de mensajes, mientras que una sola pieza de texto debe ser una matriz de un solo elemento.
user_propertiesmap<string, string | number>NoCualquier 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_idStringNoUn 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}/).
uidStringestablecido por Communications MiningUn 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_atStringestablecido por Communications MiningUna 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_atStringestablecido por Communications MiningUna 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.

Donde Message tiene el siguiente formato:

NombreTipoObligatorioDescripción
bodyContenidoUn objeto que contiene el texto del cuerpo principal del mensaje.
subjectContenidoNoUn objeto que contiene el asunto del mensaje.
signatureContenidoNoUn objeto que contiene la firma del mensaje.
fromStringNoEl remitente del mensaje.
toarray<string>NoUna matriz de destinatarios principales.
ccarray<string>NoUna matriz de destinatarios en copia carbón.
bccarray<string>NoUna matriz de destinatarios en copia oculta.
sent_atStringNoUna 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.
languageStringNoEl idioma original del mensaje. Si se proporciona, tanto text como translated_from deben proporcionarse para los campos Contenido .

Donde Content tiene el siguiente formato:

NombreTipoObligatorioDescripción
textStringSi 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. Como máximo 65536 caracteres.
translated_fromStringNoSi 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.

NombreTipoObligatorioDescripción
headersEncabezadosUn objeto que contiene los encabezados del correo electrónico.
bodyCuerpoUn objeto que contiene el cuerpo principal del correo electrónico.

Donde Headers tiene el siguiente formato:

NombreTipoObligatorioDescripción
rawStringNoSe 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.
parsedmap<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.

Donde Body tiene el siguiente formato:

NombreTipoObligatorioDescripción
plainStringNoSe requiere al menos uno de plain y html . El contenido de texto sin formato del correo electrónico. Como máximo 65536 caracteres.
htmlStringNoSe requiere al menos uno de plain y html . El contenido HTML del correo electrónico.
Icono de soporte y servicios
Obtén la ayuda que necesitas
Icono de UiPath Academy
RPA para el aprendizaje - Cursos de automatización
Icono de UiPath Forum
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.