En este documento, se explica el esquema del registro de metadatos de la transcripción del chat. Este es el archivo JSON que Contact Center AI Platform (CCAI Platform) genera para una transcripción de chat completada. El registro de metadatos de la transcripción del chat se produce con la exportación de JSON del historial de chat y se puede entregar a través de cargas de transcripciones de CRM y archivos de transcripción de almacenamiento externo, según la configuración de tu instancia. Usa este esquema para analizar el JSON de la transcripción, validar las cargas útiles recibidas o asignar mensajes de transcripción a sistemas downstream.
Raíz del esquema
El registro de metadatos de la transcripción del chat es un solo objeto JSON que representa un artefacto de transcripción del chat. Los campos de la raíz identifican la comunicación, la versión del formato de la transcripción y el conjunto ordenado de entradas de la transcripción.
Identificadores de comunicación comm_type y comm_id
En conjunto, comm_type y comm_id identifican la comunicación que representa este registro de transcripción.
comm_typeidentifica el tipo de comunicación. Por lo general, el valor eschat. Puede sercallpara una llamada de voz que incluya contenido de transcripción de SMS combinado.comm_ides el identificador del chat o de la llamada que representa la transcripción.
Versión del formato transcript_version
Identifica la versión del formato de transcripción JSON. Las integraciones deben usar este campo para el análisis compatible con versiones posteriores y deben ignorar los campos no reconocidos.
Discriminador de entrada: entries[].type y entries[].body.type
Cada elemento de entries representa un mensaje o evento de transcripción. El campo type de nivel básico refleja el tipo de cuerpo del mensaje. El objeto body anidado contiene la carga útil, cuya forma varía según el tipo, por ejemplo, text, markdown, photo, noti o action.
Esquema de metadatos de transcripción del chat
Este esquema describe la estructura de datos de las transcripciones de chat. En las siguientes secciones, se describen los componentes principales.
Información básica de la transcripción
Las siguientes propiedades proporcionan la información fundamental sobre la transcripción en sí:
comm_type(cadena): Es el tipo de comunicación que representa la transcripción. Valores posibles:chat,call. El valorcallindica una llamada de voz con contenido de transcripción de SMS combinado.comm_id(número entero): Es el identificador único de la comunicación que representa la transcripción.transcript_version(cadena): Es la versión del formato JSON de la transcripción. El valor actual es"1.0". Consulta Control de versiones y bajas.assigned_at(cadena, fecha y hora): Es la marca de tiempo de cuando se asignó el chat.timezone(cadena): Es la zona horaria del contexto de la transcripción, como"America/Los_Angeles".
Entradas de transcripción
entries(array): Es una lista ordenada de entradas de transcripción. Cada entrada representa un mensaje, una notificación o una acción en la conversación.timestamp(número entero): Es la marca de tiempo Unix epoch, en segundos, en la que el sistema creó la entrada.type(string): Es el tipo de cuerpo del mensaje. Este valor reflejabody.type. Consulta Definiciones para conocer los tipos de cuerpo admitidos.body(objeto): Es la carga útil de la entrada. Su forma depende del valor detype/body.type.role(string): Es el rol del participante o componente del sistema que produjo la entrada. Valores posibles:end_user,agent,manager,virtual_agent,external_agent,task_virtual_agent,system.user_data(objeto): Metadatos del remitente. Para las entradasagent,manager,virtual_agent,external_agentytask_virtual_agent, este objeto contiene los datos de visualización del remitente. Para las entradasend_userysystem, este objeto está vacío.name(cadena; solo está presente cuando los metadatos del remitente están disponibles): Es el nombre visible del remitente.id(número entero; solo está presente cuando los metadatos del remitente están disponibles): Es el identificador del remitente.avatar_url(cadena, URI; solo está presente cuando los metadatos del remitente están disponibles): Es la URL de la imagen de avatar del remitente.
Cuerpos de mensajes de texto
text(objeto): Es el cuerpo del mensaje de texto sin formato.type(string): Siempre estext.content(cadena): Es el texto del mensaje.lang(cadena; solo está presente cuando los metadatos de idioma están disponibles): Es el código de idioma asociado con el mensaje.
text_template(objeto): Es el cuerpo del mensaje de texto con plantilla.type(string): Siempre estext_template.content(cadena): Es el texto de la plantilla.
markdown(objeto): Es el cuerpo del mensaje con formato de Markdown.type(string): Siempre esmarkdown.content(string): Es el contenido de Markdown.lang(cadena; solo está presente cuando los metadatos de idioma están disponibles): Es el código de idioma asociado con el mensaje.
markdown_template(objeto): Es el cuerpo del mensaje de Markdown con plantilla.type(string): Siempre esmarkdown_template.content(string): Es el contenido de la plantilla de Markdown.
Cuerpos de mensajes de contenido multimedia y archivos
photo(objeto): Es el cuerpo del mensaje de la foto o la captura de pantalla.type(string): Siempre esphoto.media_id(número entero): Es el identificador del contenido multimedia de la foto almacenada.
video(objeto): Es el cuerpo del mensaje de video.type(string): Siempre esvideo.media_id(número entero; presente cuando el sistema almacena el video como contenido multimedia de CCAI Platform): Es el identificador del contenido multimedia de video almacenado.title(cadena; presente cuando un objeto de video incorporado representa el video): Es el título del video.video(objeto; presente cuando un objeto de video incorporado representa el video): Son los detalles del video.url(cadena, URI): Es la URL del video.text(cadena): Es el texto alternativo o la URL de respaldo del video.
image(objeto): Es el cuerpo del mensaje de imagen.type(string): Siempre esimage.title(cadena; presente cuando el remitente del mensaje la proporciona): Es el título de la imagen.image(objeto): Son los detalles de la imagen.url(cadena, URI): Es la URL de la imagen.text(cadena): Es el texto alternativo o la URL de respaldo de la imagen.
document(objeto): Es el cuerpo del mensaje del documento.type(string): Siempre esdocument.media_id(número entero; presente cuando el sistema almacena el documento como contenido multimedia de CCAI Platform): Es el identificador del contenido multimedia del documento almacenado.title(cadena; presente cuando un objeto de documento incorporado representa el documento): Es el título del documento.document(objeto; presente cuando un objeto de documento incorporado representa el documento): Detalles del documento.url(string, uri): Es la URL del documento.text(cadena): Es el texto alternativo o la URL de respaldo del documento.
audio(objeto): Es el cuerpo del mensaje de audio.type(string): Siempre esaudio.media_id(número entero; presente cuando el sistema almacena el audio como contenido multimedia de CCAI Platform): Es el identificador del contenido multimedia de audio almacenado.title(cadena; presente cuando un objeto de audio incorporado representa el archivo de audio): Es el título del archivo de audio.audio(objeto; presente cuando un objeto de audio incorporado representa el archivo de audio): Son los detalles del audio.url(string, uri): Es la URL del archivo de audio.text(cadena): Es el texto alternativo o la URL de respaldo del archivo de audio.
Cuerpos de mensajes interactivos
inline_button(objeto): Es el cuerpo del mensaje del botón intercalado.type(string): Siempre esinline_button.title(cadena): Es el título que se mostrará sobre los botones.buttons(array): Es una lista de definiciones de botones.title(cadena): Es la etiqueta del botón.action(cadena): Es la acción asociada al botón.link(cadena, URI; solo se presenta para respuestas rápidas de estilo de vínculo): Es la URL asociada con el botón.
sticky_button(objeto): Es el cuerpo del mensaje del botón fijo.type(string): Siempre essticky_button.title(cadena): Es el título que se mostrará sobre los botones.buttons(array): Es una lista de definiciones de botones.title(cadena): Es la etiqueta del botón.action(cadena): Es la acción asociada al botón.link(cadena, URI; solo se presenta para respuestas rápidas de estilo de vínculo): Es la URL asociada con el botón.
content_card(objeto): Es el cuerpo del mensaje de la tarjeta de contenido.type(string): Siempre escontent_card.cards(array): Es una lista de tarjetas de contenido.title(cadena): Es el título de la tarjeta.body(cadena; solo está presente cuando configuras el texto del cuerpo de la tarjeta): Es el texto del cuerpo de la tarjeta.
form_complete(objeto): Es el cuerpo del mensaje de finalización del formulario que envía el cliente cuando un consumidor completa, falla o cancela un formulario.type(string): Siempre esform_complete.signature(cadena; solo está presente cuando el evento de finalización contiene una firma): Es la firma de la carga útil de finalización del formulario.data(objeto): Son los detalles de la finalización del formulario.status(string): Es el estado de finalización. Valores posibles:success,error,cancelled.smart_action_id(número entero): Es el identificador de la acción inteligente asociada con el formulario.timestamp(cadena, fecha y hora): Es la marca de tiempo de cuando se produjo el evento de finalización del formulario. Esto es diferente de latimestampde nivel de entrada, que es una marca de tiempo de tiempo Unix de número entero en segundos.details(objeto; solo está presente cuando la carga útil proporciona detalles adicionales de finalización): Son detalles adicionales del estado.error_code(cadena; solo se presenta para errores con un código): Es el código de error asociado con el resultado de la finalización.message(string): Es el detalle del estado legible por humanos.
Cuerpos de mensajes generados por el servidor y de transferencia
server_message(objeto): Es el cuerpo del mensaje generado por el servidor. La transcripción incluye entradasserver_messagesolo si habilitas el contenido de la transcripción del agente virtual de tareas para tu cuenta; de lo contrario, la transcripción omite estas entradas. Usa este objeto cuando la transcripción haga referencia a un mensaje almacenado del servidor.type(string): Siempre esserver_message.message_id(número entero): Es el identificador del mensaje del servidor almacenado.visibility(cadena o nulo): Es el parámetro de configuración de visibilidad del mensaje del servidor almacenado.
passthrough(objeto): Es una carga útil personalizada que el sistema pasa a través de CCAI Platform para una integración de agente virtual o CCaaS. Tu integración define sucontent, que no forma parte del esquema de CCAI Platform. Trátalo como opaco.type(string): Siempre espassthrough.content(cadena o un objeto): Es la carga útil definida por la integración. Su estructura varía según la integración, y CCAI Platform no la interpreta.
Cuerpos de los mensajes de acción
action(objeto): Es la acción que solicita un agente virtual o un flujo de chatbot. El campoactiondetermina la forma de la carga útil de la acción.type(string): Siempre esaction.action(cadena): Es el tipo de acción. Los valores posibles incluyenescalation,deflectionyend.escalation_reason(cadena; solo está presente cuandoactionesescalation): Es el motivo por el que se derivó la conversación.menu_id(número entero; solo está presente cuandoactionesescalation): Es el identificador del menú al que se debe derivar la conversación.language(cadena; solo presente cuandoactionesescalation): Es el código de idioma de la fila de destino.deflection_type(cadena; solo está presente cuandoactionesdeflection): Es el tipo de desvío solicitado.sip_parameters(objeto o nulo; presente solo cuandoactionesdeflection): Son los parámetros de SIP que se reenviarán como parte del desvío.
Cuerpos de los mensajes de notificación
noti(objeto): Es el cuerpo del mensaje de notificación. Las notificaciones describen los eventos del sistema que ocurrieron durante el chat.type(string): Siempre esnoti.event(cadena): Es el nombre del evento de notificación.agent(objeto; solo está presente en los eventos asociados con un agente humano): Es el agente asociado con el evento.id(número entero): Es el identificador del agente.email(cadena, correo electrónico): Es la dirección de correo electrónico del agente.name(string): Es el nombre visible del agente.
from_agent(objeto; solo se presenta para eventos de transferencia con un agente de origen): Es el agente de origen del evento.id(número entero): Es el identificador del agente.email(cadena, correo electrónico): Es la dirección de correo electrónico del agente.name(string): Es el nombre visible del agente.
to_agent(objeto; solo está presente para eventos de transferencia o derivación con un agente humano de destino): Es el agente humano de destino para el evento.id(número entero): Es el identificador del agente.email(cadena, correo electrónico): Es la dirección de correo electrónico del agente.name(string): Es el nombre visible del agente.
from_virtual_agent(objeto; solo está presente para los eventos de derivación de un agente virtual): Es el agente virtual de origen del evento.id(número entero): Es el identificador del agente virtual.name(string): Es el nombre visible del agente virtual.avatar_url(cadena, URI o nulo): Es la URL de la imagen de avatar del agente virtual.
to_virtual_agent(objeto; solo está presente en los eventos de transferencia a un agente virtual): Es el agente virtual de destino del evento.id(número entero): Es el identificador del agente virtual.name(string): Es el nombre visible del agente virtual.avatar_url(cadena, URI o nulo): Es la URL de la imagen de avatar del agente virtual.
target(cadena; solo se muestra en los eventos de transferencia): Es el tipo de destino de la transferencia. Los valores posibles incluyenmenuyagent.status(cadena; solo presente para los eventos que tienen un estado de chat): Es el estado del chat asociado con el evento.timeout(booleano; solo presente para eventos relacionados con el tiempo de espera): Indica si un tiempo de espera causó el evento.memberIdentity(cadena; solo está presente en los eventos de unión o salida de participantes): Es la identidad del participante.memberName(cadena; solo presente para los eventos de unión o salida de participantes): Es el nombre visible del participante.name(cadena; solo presente para eventos de virtual-agent o task-va): Es el nombre visible asociado con el evento.reason(cadena; solo presente para los eventos de finalización de task-va): Es el motivo por el que finalizó la sesión de task-va.escalation_reason(cadena; solo se presenta en los eventos de derivación): Es el motivo de la derivación.deflection(objeto; solo presente en los eventos de desvío): Son los detalles del desvío.detail(objeto; solo está presente para los eventos de notificación personalizados): Es el detalle del evento personalizado.key(cadena): Es la clave del evento personalizado.data(objeto): Es la carga útil del evento personalizado.
Nombres de eventos de notificación
El campo event identifica el evento de notificación. El proveedor de chat, que funciona como la fuente única de información, conserva todos los eventos de notificación de la siguiente lista en el JSON de la transcripción. La lista agrupa estos eventos por familia.
Solicitudes de acciones inteligentes
verificationRequestedphotoRequestedvideoRequestedscreenshotRequestedtextRequestedcobrowseRequestedFromAgent
Resultados de las acciones inteligentes
- Finalización:
photoFinished,videoFinished,screenshotFinishedytextFinished - Cancelado:
photoCanceled,videoCanceled,screenshotCanceled,textCanceled - Error:
photoFailed,videoFailed,screenshotFailed,textFailed,verificationFailed
Verificación
endUserVerified
Conavegar
cobrowseRequestedFromEndUsercobrowseCodeGeneratedcobrowseStartedcobrowseEndedcobrowseFailed
Formularios
formRequestedformSentformCompleted
Transferencias
transferStartedtransferAcceptedtransferFailed
Derivaciones de agentes virtuales
escalationStartedescalationAcceptedescalationDeflectedescalationFailed
Agente virtual de tareas
taskVaStartedtaskVaFinished
Membresía
agentJoinedmemberJoinedmemberLeft
Ciclo de vida de la sesión
chatEndedchatEndedWithPostSessionchatDismissedchatReactivatedcheckInRequiredcheckInTimedOuttranscriptRequestedtranscriptUpdated
Personalizado
custom
En el caso de los registros con comm_type establecido en call, es posible que aparezcan eventos de notificación de transcripción de llamadas adicionales. Estos eventos se asocian con el manejo de transcripciones de llamadas o de Agent Assist, en lugar de las familias de eventos de chat comunes.
Definiciones
Los siguientes subesquemas aparecen en el documento de metadatos de la transcripción del chat. En esta sección, se define cada subesquema una vez. Los grupos de propiedades que hacen referencia a ellos apuntan a esta sección en lugar de redefinir su forma de manera intercalada.
entry (objeto)
Representa un mensaje, una notificación o una acción de la transcripción. Cada entrada tiene un timestamp de tiempo Unix, un type de nivel superior, un objeto body cuyo tipo coincide con esa forma, un role de remitente y un objeto user_data. Consulta Entradas de transcripción para obtener la lista completa de campos.
user_data (objeto)
Describe al remitente de una entrada de transcripción cuando los metadatos del remitente están disponibles. Las entradas de agente, administrador, agente virtual, agente externo y agente virtual de tareas pueden contener name, id y avatar_url. Las entradas de consumidor y del sistema llevan un objeto vacío.
cuerpo del mensaje (objeto, oneOf)
El objeto body de cada entrada usa el valor de body.type para seleccionar una de
las formas de cuerpo de mensaje admitidas. Entre los tipos de cuerpo admitidos, se incluyen los cuerpos de texto, los cuerpos de contenido multimedia o de archivos, los cuerpos interactivos, los cuerpos generados por el servidor, los cuerpos de acción
y los cuerpos de notificación. Consulta Cuerpos de mensajes de texto
hasta Cuerpos de mensajes de notificación para obtener la lista completa
de las variantes documentadas.
rol del participante (cadena, enum)
Identifica la categoría del remitente de una entrada de transcripción.
Valores permitidos
end_user: El consumidor.agent: Un agente humano.manager: Un participante administrador.virtual_agent: Un agente virtual.external_agent: Es un participante agente externo.task_virtual_agent: Es un agente virtual de tareas.system: Es una entrada generada por el sistema.
Control de versiones y bajas
El documento de metadatos de la transcripción del chat admite la evolución del esquema retrocompatible. Es posible que el sistema agregue campos nuevos y variantes del cuerpo del mensaje con el tiempo, y las integraciones deben ignorar las claves no reconocidas para garantizar que sigan funcionando.
Versión actual del formato
transcript_version(cadena) - Valor actual:"1.0". Las integraciones deben analizar la transcripción en función de los campos presentes en la carga útil y no deben fallar si las versiones futuras agregan campos nuevos o tipos de cuerpo de mensaje.
Tipos de cuerpo de mensaje desconocidos
Cuando una entrada de transcripción contenga un type o body.type no reconocido, conserva la entrada sin procesar si es posible y continúa analizando el resto de la transcripción. El sistema puede agregar tipos de cuerpo de mensaje nuevos sin cambiar el significado de los campos existentes.
Campos obsoletos
En este documento, no se incluye ningún campo obsoleto para el registro de metadatos de la transcripción del chat.