En este documento, se describe el esquema del registro de metadatos de la sesión de chat. El registro de metadatos es el documento JSON que Contact Center AI Platform crea para una sesión de chat de asistencia. CCAI Platform entrega el registro de metadatos a tu integración de CRM como parte del comando session-end del chat. Cuando habilitas el almacenamiento externo, la plataforma de la CCAI también escribe el registro en tu configuración de almacenamiento externo con un archivo metadata.json. Cada chat genera un registro, que el id de nivel superior identifica de forma única. Usa este esquema para transferir registros a sistemas posteriores, validar cargas útiles recibidas o asignar campos a columnas de almacenes de datos.
Raíz del esquema
El registro de metadatos de la sesión de chat es un solo objeto JSON que representa una sesión de chat. Tres conceptos de nivel superior determinan la identidad y la forma del registro.
Clave primaria: id (número entero)
Identifica de forma única la sesión de chat dentro de tu organización. Existe un registro por chat. Todos los demás campos, arrays y objetos anidados de nivel superior describen atributos del chat que identifica este id.
Discriminador de controlador: agent_info (objeto, oneOf)
Un solo objeto cuya forma varía según el último controlador del chat. Las dos variantes son mutuamente excluyentes: solo una está presente a la vez:
Variante de agente humano: Se presenta cuando el último controlador del chat fue un agente humano. Incluye
email,first_name,last_nameyagent_number, además de los campos compartidosid,nameyavatar_url.Variante de agente virtual: Se presenta cuando el último controlador del chat fue un agente virtual. Incluye
va_aliasy omiteemail,first_name,last_nameyagent_number.
Para detectar qué variante contiene un registro, verifica la presencia de un campo específico de la variante, por lo general, agent_info.email para la variante de agente humano o agent_info.va_alias para la variante de agente virtual. Las definiciones completas de cada variante aparecen en Definiciones: agent y Definiciones: virtual_agent.
Discriminadores de forma de chat: chat_type, session_type, session_type_v2
(cadena)
Tres vistas paralelas del mismo tipo de chat subyacente. Nunca discrepan sobre qué tipo de chat representa un registro; solo difieren en el vocabulario que se usa para nombrarlo.
chat_type: Usa el vocabulario de enumeración heredado, como Messaging Inbound (chat en la app), Messaging (SMS) y Messaging (WhatsApp).session_type: Siempre devuelve la misma cadena quechat_type. Existe para la retrocompatibilidad con las integraciones que se basan en este campo. Trátalo como un alias obsoleto dechat_type.session_type_v2: Usa el vocabulario de enumeración actual, que puede incluir distinciones más detalladas, como Mensajería entrante (chat para dispositivos móviles). Para los tipos de chat que no tienen un valor específico de la versión 2,session_type_v2devuelve la misma cadena quechat_type. Las nuevas integraciones deben analizarsession_type_v2.
Para conocer los valores de cada campo, consulta Información principal.
Información básica
id(número entero): Es un identificador único para cada sesión de chat. Esta clave primaria distingue un chat de otro.lang(cadena): Es el código de idioma ISO 639 que se usó durante el chat (por ejemplo,"en"para inglés y"es"para español).chat_type(cadena): Es el tipo de chat, que usa el vocabulario de tipo heredado. Los valores incluyen"Messaging Inbound (App Chat)","Messaging Inbound (Web Chat)","Messaging (SMS)","Messaging (WhatsApp)"y"Messaging (Apple Messaging for Business)".session_type(cadena): Es un duplicado dechat_type(mismos valores) que se conserva para la retrocompatibilidad. Consulta Control de versiones y bajas: Duplicados heredados.session_type_v2(cadena): Es el tipo de chat, que usa el vocabulario de tipo actual. Refina los valores dechat_typecon distinciones más detalladas. Los valores incluyen"Messaging Inbound (Mobile Chat)","Messaging Inbound (Web Chat)","Messaging (WhatsApp)","Messaging (Apple Messaging for Business)","Messaging (SMS)","Messaging Inbound (SMS)","Messaging Outbound (SMS)","Messaging Outbound (SMS using the API)","Messaging Inbound (SMS Direct)","Messaging Outbound (SMS Direct)"y"Messaging Outbound (SMS Direct using the API)".status(cadena): Es el estado actual del chat. Valores posibles:"queued","selecting","assigned","va_assigned","dismissed","va_dismissed","check_in_timeout","finished","no_response","canceled"y"failed". (CCAI Platform informa que un chat finalizado que no recibió respuesta del consumidor como"no_response").sub_status(cadena o nulo): Es un detalle de estado más específico para el chat, cuando está disponible. Valores posibles:"selecting","queued","ongoing","dismissed","finished","timeout","deflected","abandoned","expired","failed","disconnected_by_agent","disconnected_by_end_user","no_messages","no_messages_disconnected_by_agent","no_messages_disconnected_by_end_user"y"end_user_opt_out".created_at(cadena, fecha y hora): Es la marca de tiempo en la que CCAI Platform creó la sesión de chat.assigned_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que la plataforma de CCAI asignó el chat a un agente o nulo si no se asignó.ends_at(cadena, fecha y hora o nulo): Es la marca de tiempo que indica cuándo finalizó la sesión de chat.updated_at(cadena, fecha y hora): Es la marca de tiempo en la que CCAI Platform actualizó por última vez los datos del chat.first_msg_sent_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que un participante envió el primer mensaje en el chat.last_msg_sent_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que un participante envió el último mensaje en el chat.wait_duration(número entero): Es el tiempo total que el consumidor esperó, en segundos.chat_duration(número entero): Duración total del chat en segundos.verified(booleano): Indica si la acción inteligente de verificación verificó la interacción.rating(número entero o nulo): Es la calificación de satisfacción del cliente (CSAT) que proporcionó el consumidor o nulo si el consumidor no proporcionó una calificación.has_feedback(booleano): Indica si el consumidor proporcionó comentarios después del chat.out_ticket_id(cadena o nulo): Es el identificador del ticket que creó la plataforma de CCAI en el sistema de CRM externo.out_ticket_url(cadena, URI o nulo): Es la URL del ticket del CRM.is_out_ticket_account(booleano o nulo): Indica si el ticket del CRM representa a un cliente (verdadero) o una interacción de chat (falso).fail_reason(cadena): Es el motivo de cualquier falla durante el chat o"nothing"cuando no hubo fallas. Valores posibles:"nothing","unknown","expired","after_hours","escalation_failed","check_in_timed_out","check_in_timed_out_expired","expired_menu_selection","end_user_opt_out","over_cap_email","group_deleted_no_substitute","presession_deflection_unknown","presession_deflection_timeout","presession_deflection_message_delivery_failed","sms_error"y"force_ended".provider_type(cadena): Es el tipo de proveedor de chat que se usa. Valores posibles:"unknown","messaging","twilio_conversations","nexmo_conversations"y"ujet_conversations".provider_channel_id(cadena o nulo): Es el identificador específico del proveedor para el canal de chat.message_count(número entero): Es la cantidad total de mensajes intercambiados en el chat.average_response_time(número entero): Es el tiempo promedio que tardaron los agentes en responder durante el chat, en segundos.longest_response_time(número entero): Es el tiempo más largo que tardó un agente en responder durante el chat, en segundos.transcript(booleano): Indica si existe una transcripción de chat para la sesión.
Información del agente y del agente virtual
agent_info(objeto): Es información sobre el agente humano o virtual que atendió el chat por última vez. Este campo usa la palabra claveoneOfpara especificar que puede ser de uno de dos tipos.agent(objeto): Es información sobre el agente humano:id(número entero): Es el ID único del agente.agent_number(cadena o nulo): Es un identificador asignado al agente.email(cadena, correo electrónico): Es la dirección de correo electrónico del agente.name(cadena): Es el nombre completo del agente.last_name(cadena): Es el apellido del agente.first_name(cadena): Es el nombre del agente.avatar_url(cadena, URI o nulo): Es la URL de la imagen del avatar del agente.
virtual_agent(objeto): Es información sobre el agente virtual:id(número entero): Es el ID único del agente virtual.name(cadena): Es el nombre del agente virtual.avatar_url(cadena, URI o nulo): Es la URL de la imagen del avatar del agente virtual.va_alias(cadena o nulo): Es el alias visible del agente virtual, si se configuró uno. Siempre está presente en la carga útil; es nulo cuando no se establece ningún alias.
Navegación del menú
selected_menu(objeto o nulo): Es información sobre el menú que seleccionó el consumidor durante el chat.id(número entero): ID único del menú.name(cadena): Nombre del menú.parent_id(número entero o nulo): Es el ID del menú principal, si hay alguno.position(número entero o nulo): Es la posición del menú en relación con otros menús del mismo nivel.deleted(booleano): Indica si un administrador borró el menú.menu_type(cadena): Es el tipo de menú (por ejemplo,"sms_menu","web_menu").hidden(booleano): Indica si el menú está visible o disponible para su uso.menu_path(objeto o nulo): Describe la ruta jerárquica de los menús por los que navegó el cliente.items_count(número entero): Es la cantidad de menús en la ruta de acceso.name(cadena o nulo): Cadena separada por barras que contiene los nombres de los menús (por ejemplo,"Support/Billing") o nulo si la ruta de acceso al menú no está disponible.materialized_path(cadena): Es una cadena de IDs de menú separados por barras.
queue_priority_level(número entero): Es la prioridad de la cola asignada a la cola seleccionada del chat. Solo está presente cuando la prioridad de la cola está habilitada en tu cuenta.
Detalles del usuario final
end_user(objeto o nulo): Es la información sobre el consumidor:id(número entero o nulo): Es el ID interno del consumidor.identifier(cadena o nulo): Es un identificador externo para el consumidor.out_contact_id(cadena o nulo): Es el ID del consumidor en el CRM.
Marcas del cliente y datos proporcionados por el SDK
customer_flag(objeto): Marcas que indican atributos notables del consumidor que los sistemas externos proporcionaron o actualizaron durante la sesión. Solo se presenta cuando los sistemas externos proporcionaron o actualizaron marcas del cliente relacionadas con la autenticación durante la sesión.verified_customer(booleano): Indica si un sistema externo marcó al consumidor como verificado.bad_actor(booleano): Indica si un sistema externo marcó al consumidor como infractor.repeat_customer(booleano): Indica si un sistema externo marcó al consumidor como cliente recurrente.
custom_data_secured(objeto o nulo): Son datos personalizados y firmados de forma segura que proporcionaron el SDK o la API de Apps.custom_data_not_secured(objeto o nulo): Son datos personalizados y no firmados de forma segura que proporcionaron el SDK o la API de Apps.sip_headers(objeto): Son los encabezados SIP entrantes capturados para el chat. Las claves y los valores reflejan los encabezados SIP que se reciben del proveedor upstream. Solo está presente cuando habilitas la captura de encabezados SIP en tu cuenta y la configuras para que aparezca en los metadatos de la sesión.
Archivos adjuntos de medios
photos(array): Fotos o capturas de pantalla asociadas con el chat.id(número entero): Es el identificador único de la foto.photo_type(cadena): Es el tipo de foto. Los valores posibles son"photo"y"screenshot".url(cadena, URI): URL de la foto almacenada.smart_action_type(cadena o nulo): Es la acción inteligente asociada con la foto, si corresponde.transfer_id(número entero o nulo): Es el identificador del evento de transferencia asociado a la foto, si un participante la subió después de que se completó la transferencia.
videos(matriz): Videos asociados con el chat.id(número entero): Es el identificador único del video.url(cadena, URI): URL del video almacenado.smart_action_type(cadena o nulo): Es la acción inteligente asociada al video, si corresponde.transfer_id(número entero o nulo): Es el identificador del evento de transferencia asociado con el video, si un participante lo subió después de que se completó la transferencia.
Transferencias de chat
transfers(array): Una entrada por cada evento de transferencia durante el chat. Registra las transferencias entre agentes, agentes virtuales y menús.id(número entero): Es el identificador único de la transferencia.status(cadena): Es el estado actual de la transferencia. Los valores posibles son"transferring","transferred","failed"y"deflected".fail_reason(cadena): Es el motivo por el que falló la transferencia o"nothing"si no falló. Valores posibles:"nothing","timeout","canceled","ag_connection_timeout","va_failure","agent_detection_missed","unknown"y"unreachable_phone_number".created_at(cadena, fecha y hora): Es la marca de tiempo del momento en que comenzó la transferencia.assigned_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que la plataforma de la CCAI asignó la transferencia.connected_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que se conectó la transferencia.updated_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que CCAI Platform actualizó por última vez el registro de transferencia.call_duration(número entero o nulo): Duración del segmento de chat transferido, en segundos.wait_duration(número entero o nulo): Tiempo que esperó el consumidor durante la transferencia, en segundos.deflection(cadena): Es el tipo de desvío asociado a la transferencia. Consulta Definiciones:deflectionpara obtener los valores permitidos.answer_type_path(cadena o nulo): Es la ruta que describe cómo los agentes o los menús respondieron los chats de origen y destino.from_menu_path/to_menu_path(objeto o nulo): Es la ruta de acceso al menú antes y después de la transferencia. Tiene la misma forma quemenu_pathen Definitions.from_agent/to_agent(objeto o nulo): Es el agente humano en cada lado de la transferencia. Tiene la misma forma que el objetoagenten Definitions.from_virtual_agent/to_virtual_agent(objeto o nulo): Es el agente virtual en cada lado de la transferencia. Tiene la misma forma que el objetovirtual_agenten Definitions.from_queue_priority_level/to_queue_priority_level(número entero o nulo): Prioridad de la cola antes y después de la transferencia.
Duraciones de la administración del chat
handle_durations(array): Es un array de objetos, cada uno de los cuales representa un segmento del chat que controló un agente.id(número entero): Es el identificador único de la duración del identificador.agent_id(número entero o nulo): Es el identificador del agente.acw_duration(número entero): Duración del trabajo posterior al chat, en segundos.chat_duration(número entero): Duración del chat durante este segmento, en segundos.menu_path_id(número entero o nulo): Es el ID de la ruta del menú.menu_path(cadena): Nombre de la ruta de acceso del menú.lang(cadena): Idioma utilizado.transfer(booleano): Indica si se produjo una transferencia.transfer_id(número entero o nulo): Es el ID de la transferencia.started_at(cadena, fecha y hora o nulo): Es la marca de tiempo de inicio.ended_at(cadena, fecha y hora o nulo): Es la marca de tiempo de finalización.response_count(número entero): Cantidad de respuestas del agente.response_time_total(número entero): Tiempo total de respuesta del agente, en segundos.response_time_max(número entero): Es el tiempo de respuesta más largo del agente, en segundos.response_time_avg(número o nulo): Es el tiempo de respuesta promedio del agente en segundos. Este valor puede incluir precisión decimal.assigned_connection_duration(número entero): Es la duración que esperó el consumidor mientras el agente asignado se conectaba durante este segmento.
Duraciones de la cola
queue_durations(array): Es un array de objetos, cada uno de los cuales representa un segmento del chat en el que el cliente esperaba en una fila.id(número entero): Es el identificador único.agent_id(número entero o nulo): Es el identificador del agente.ended_at(cadena, fecha y hora): Es la marca de tiempo de finalización.lang(cadena): Idioma.menu_path_id(número entero o nulo): Es el identificador de la ruta de acceso del menú.menu_path(cadena): Ruta de acceso al menú.queue_duration(número entero o nulo): Duración de la cola, en segundos.started_at(cadena, fecha y hora): Marca de tiempo de inicio.transfer_cold(booleano o nulo): Indica si se realizó una transferencia en frío del chat.transfer(booleano): Indica si se produjo una transferencia.transfer_id(número entero o nulo): Es el identificador de transferencia.service_level_abandon_time_threshold(número entero): Umbral de abandono del nivel de servicio, en segundos.service_level_event(cadena): Es el estado del evento a nivel del servicio. Los valores posibles son"excluded","in_sla"y"not_in_sla".service_level_target_percent(número entero): Porcentaje objetivo del nivel de servicio.service_level_target_time(número entero): Tiempo objetivo de nivel de servicio, en segundos.
Derivaciones de agentes virtuales a humanos
escalations(array): Cada entrada representa una derivación de un agente virtual a un agente humano.id(número entero): Es el identificador único de la derivación.status(cadena): Es el estado actual de la derivación. Los valores posibles son"escalating","escalated","canceled","deflecting"y"deflected".reason(cadena): Es el motivo por el que se derivó el chat. Valores posibles:"unknown","by_end_user_ask","by_end_user_message","by_virtual_agent","payload_failure","could_not_resume","by_human_agent","invalid_queue"y"dismissed".created_at(cadena, fecha y hora): Es la marca de tiempo del momento en que comenzó la derivación.escalated_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que se completó la derivación.from_virtual_agent(objeto o nulo): Es el agente virtual que derivó el chat. Tiene la misma forma que el objetovirtual_agenten Definitions.to_agent(objeto o nulo): Agente humano al que se derivó el chat. Tiene la misma forma que el objetoagenten Definitions.from_menu_path/to_menu_path(objeto o nulo): Es la ruta de acceso al menú antes y después de la derivación.
Derivaciones rechazadas por el agente virtual
virtual_agent_deflected_escalations(array): Detalles de las derivaciones de agentes virtuales que se desviaron a otro destino.id(número entero): Es el identificador único.deflection(cadena): Es el tipo de desvío de la derivación desviada. Valores posibles:"no_deflection","over_cap","over_cap_email","over_cap_virtual_agent","over_cap_human_agent","over_cap_sip","over_cap_extension","after_hours","after_hours_email"y"after_hours_virtual_agent".escalation_id(número entero): Es el identificador del evento de derivación.escalation_reason(cadena): Es el motivo de la derivación. Los mismos valores queescalations[].reason(consulta 10. Derivaciones de agente virtual a humano).escalated_at(cadena, fecha y hora): Es la marca de tiempo de la derivación.menu_path_id(número entero): ID de la ruta de acceso del menú.menu_path(cadena): Ruta de acceso al menú.lang(cadena): Idioma.virtual_agent(objeto): Detalles del agente virtual. Consulta Definiciones:virtual_agent.
Duraciones de atención de agentes virtuales
virtual_agent_handle_durations(matriz): Son los segmentos de tiempo en los que un agente virtual se encargó del chat.id(número entero): Es el identificador único.virtual_agent(objeto): Detalles del agente virtual. Consulta Definiciones:virtual_agent.chat_duration(número entero): Duración del segmento en segundos.escalation_reason(cadena): Es el motivo de la derivación.finish_reason(cadena): Es el motivo por el que finalizó la interacción.response_count(número entero): Recuento de respuestas del agente virtual.response_time_total(número entero): Tiempo total de respuesta del agente virtual, en segundos.response_time_max(número entero): Es el tiempo de respuesta más largo del agente virtual, en segundos.response_time_avg(número o nulo): Es el tiempo de respuesta promedio del agente virtual, en segundos. Este valor puede incluir precisión decimal.fallback_response_count(número entero): Es el recuento de respuestas de resguardo.initiated_by(cadena): Indica cómo se inició la sesión del agente virtual. Los valores posibles son"end_user","human_agent"y"post_session".menu_path_id(número entero): ID de la ruta de acceso del menú.menu_path(cadena): Ruta de acceso al menú.lang(cadena): Idioma.transfer(booleano): Indica si se transfirió el chat.transfer_id(número entero o nulo): Es el identificador del evento de transferencia.started_at(cadena, fecha y hora): Marca de tiempo de inicio.ended_at(cadena, fecha y hora): Es la marca de tiempo de finalización.
Duraciones de la manipulación del consumidor
consumer_handle_durations(matriz): Son los períodos durante los que el consumidor estuvo en el chat.id(número entero): Es el identificador único.chat_duration(número entero): Duración del segmento de consumidores, en segundos.started_at(cadena, fecha y hora o nulo): Es la marca de tiempo de inicio.ended_at(cadena, fecha y hora o nulo): Es la marca de tiempo de finalización.message_count(número entero): Es la cantidad de mensajes del consumidor.response_count(número entero): Es la cantidad de respuestas de los consumidores.response_time_total(número entero): Tiempo total de respuesta del consumidor, en segundos.response_time_max(número entero): Es el tiempo de respuesta más largo del consumidor, en segundos.response_time_avg(número entero): Tiempo de respuesta promedio del consumidor, en segundos.
Duraciones de los eventos de consumo
consumer_event_durations(array): Detalles de los eventos de chat del consumidor (por ejemplo, CSAT, pago).id(número entero): Es el identificador único.duration(número entero): Duración del evento en segundos.type(cadena): Tipo de evento. Valores posibles:"csat".event(cadena): Es el resultado del evento. Los valores posibles son"finished"y"abandoned".menu_path_id(número entero): ID de la ruta de acceso del menú.menu_path(cadena): Ruta de acceso al menú.lang(cadena): Idioma.started_at(cadena, fecha y hora): Marca de tiempo de inicio.ended_at(cadena, fecha y hora): Es la marca de tiempo de finalización.
Participantes
participants(matriz): Es información sobre cada participante del chat (por ejemplo, usuario final, agente o agente virtual).id(número entero): Es el identificador único del participante.type(cadena): Tipo de participante. Los valores posibles son"end_user","agent","manager","virtual_agent","external_agent"y"task_virtual_agent".entry_type(cadena): Indica cómo ingresó el participante al chat. Valores posibles:"queue_or_transfer","barge"y"post_session".user_id(número entero o nulo): ID de usuario si el participante es un agente.end_user_id(número entero o nulo): Es el identificador del consumidor, si el participante es el consumidor.virtual_agent_id(número entero o nulo): ID del agente virtual si el participante es un agente virtual.virtual_agent_params(objeto): Metadatos personalizados que usa el agente virtual. Solo está presente cuando configuras la inclusión de metadatos personalizados del agente virtual.status(cadena): Es el estado del participante. Valores posibles:"waiting","connecting","invited","connected","wrapping_up","finished","failed","resuming"y"post_session_in_progress".fail_reason(cadena): Es el motivo de la falla, si corresponde. Los valores posibles son"nothing","canceled","ag_connection_timeout"y"unknown".connected_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que se conectó el participante.phone_number(cadena): Número de teléfono del participante. Solo está presente en los participantes consumidores.chat_id(número entero): Es el identificador del chat.chat_duration(número entero o nulo): Duración del chat para el participante, en segundos.finished_at(cadena, fecha y hora o nulo): Es la marca de tiempo del momento en que finalizó la participación del participante.agent_assist(objeto): Es la configuración de Agent Assist activa para el participante. Siempre presente; un objeto vacío predeterminado cuando Agent Assist no está configurado.virtual_agent(objeto o nulo): Detalles del agente virtual que actúa como este participante; distinto deagent_infode nivel superior y devirtual_agent_params.sip_headers(objeto o nulo): Son los encabezados SIP asociados a este participante. Siempre está presente en la carga útil; es nulo cuando la Plataforma de CCAI no captura ninguno.location(cadena o nulo): Es la ubicación configurada del agente. Solo está presente en los participantes agentes.location_id(número entero o nulo): Es el identificador de la ubicación. Solo está presente en los participantes del agente.email(cadena, correo electrónico): Es la dirección de correo electrónico del agente. Solo está presente en los participantes del agente.first_name(cadena o nulo): Es el nombre del agente. Solo está presente en los participantes del agente.last_name(cadena o nulo): Es el apellido del agente. Solo está presente en los participantes del agente.middle_name(cadena o nulo): Es el segundo nombre del agente. Solo está presente en los participantes del agente.teams(array): Es un array de objetos{ id, name }que describen los equipos a los que pertenece el agente. Solo está presente en los participantes del agente.
Registros de check-in
check_in_logs(matriz): Son los eventos de registro grabados durante la sesión de chat. Cada elemento agrupa los eventos de registro para un flujo de registro.check_in_id(número entero): Es el identificador del flujo de registro.check_in_modal_displayed(cadena, fecha y hora): Es la marca de tiempo en la que CCAI Platform mostró la ventana modal de registro al consumidor. Solo está presente cuando la plataforma de CCAI mostró el diálogo modal de registro.check_in_modal_confirmed(cadena, fecha y hora): Marca de tiempo en la que el consumidor confirmó que seguía presente. Solo está presente cuando el consumidor confirmó la ventana modal de registro.check_in_modal_timed_out(cadena, fecha y hora): Es la marca de tiempo en la que se agotó el tiempo de espera del mensaje de registro. Solo está presente cuando se agotó el tiempo de espera del modal de confirmación.timeout_modal_rejoin_success(cadena, fecha y hora): Es la marca de tiempo en la que se completó correctamente la acción de volver a unirse. Solo está presente cuando el consumidor se unió correctamente después del tiempo de espera.timeout_modal_rejoin_failed_after_hour(cadena, fecha y hora): Es la marca de tiempo en la que falló la acción de volver a unirse debido al comportamiento fuera del horario de atención. Solo está presente cuando no se pudo volver a unirse porque la fila estaba fuera de horario.timeout_modal_exit_chat(cadena, fecha y hora): Es la marca de tiempo en la que el consumidor eligió salir del chat. Solo está presente cuando el consumidor salió del chat desde el modal de tiempo de espera.timeout_modal_time_out_sdk_closed(cadena, fecha y hora): Marca de tiempo en la que finalizó el flujo modal de tiempo de espera porque se cerró el SDK. Solo está presente cuando el SDK se cerró después de que se agotó el tiempo de espera.
Eventos de ofertas
offer_type(cadena o nulo): Es la manera en que la plataforma de CCAI ofreció el chat al agente.offer_events(matriz): Son los eventos en los que la CCAI Platform ofreció el chat a los agentes.casting_time(cadena, fecha y hora): Fecha y hora en que CCAI Platform ofreció el chat.group(cadena): Es el grupo al que CCAI Platform ofreció el chat.
Otros detalles
dismiss_duration(número entero): Es la duración en segundos que el chat permaneció en el estado de descartado. Solo está presente cuando el chat pasó tiempo en el estado descartado.answer_type(cadena o nulo): Indica cómo se respondió el chat. Los valores posibles son"manual","auto","outbound"y"deflection".inbound_number(cadena): Es el número de teléfono entrante asociado con el chat. Solo está presente cuando hay un número de teléfono entrante asociado al chat.outbound_number(cadena): Es el número de teléfono saliente asociado con el chat. Solo está presente cuando hay un número de teléfono saliente asociado al chat.after_hours(booleano): Indica si el chat se produjo fuera del horario de atención.dispositions(matriz): Son los códigos de resumen y las notas que registraron los agentes. Solo se presenta cuando habilitas los códigos o las notas de resumen en tu cuenta. Cada entrada puede contener campos renderizados de forma condicional según la configuración del resumen:user_id(número entero): Es el identificador del agente.transfer_id(número entero o nulo): Es el identificador del evento de transferencia, si se registró después de una transferencia.participant_id(número entero): Es el identificador del participante.note(cadena): Nota de texto libre del agente.original_note(cadena): Es la versión original (anterior a la edición) de la nota.code(cadena): Es el nombre del código de disposición.ujet_code_id(número entero o cadena vacía): Es el identificador del código de disposición asignado por la plataforma de la CCAI, una clave estable para el código (el nombre visible del código puede cambiar). Cadena vacía cuando no está disponible.list(cadena): Nombre de la lista a la que pertenece el código.list_path(cadena): Es la ruta de acceso separada por barras diagonales de la lista de códigos.ujet_list_id(número entero o cadena vacía): Es el identificador de la lista al que pertenece el código de disposición, asignado por la plataforma de la CCAI. Es una clave estable para la lista. Cadena vacía cuando no está disponible.custom_list_id(cadena o número entero): Es el identificador de la lista definida por el cliente, si se asignó.custom_code_id(cadena o número entero): Es el identificador de código definido por el cliente, si se asignó.
auto_session_summaries(matriz): Son los resúmenes de sesiones generados por IA que se guardan en el registro del CRM. Solo se presenta cuando habilitas el resumen de conversaciones en tu cuenta y la IA genera un resumen correctamente. Cada entrada contiene lo siguiente:user_id(número entero): Es el identificador del participante del agente con el que se asocia el resumen.participant_id(número entero): Es el identificador del participante.session_summary(cadena): Es el texto del resumen.session_summary_sections(matriz o objeto): Es el resumen dividido en secciones estructuradas, cuando está disponible.
transfer_limit(objeto o nulo): Son los datos del límite de transferencia para el chat.enabled(booleano): Indica si se habilitó el seguimiento del límite de transferencia para el chat.limit_count(número entero): Es la cantidad de transferencias permitidas.limit_reached(booleano): Indica si el chat alcanzó el límite de transferencia configurado.
email(cadena, correo electrónico o nulo): Es la dirección de correo electrónico del consumidor.feedback(cadena o nulo): Comentarios del consumidor.smart_action_text(cadena o nulo): Es el texto de cualquier acción inteligente que se haya realizado.
Definiciones
Los siguientes subesquemas aparecen en varios puntos del documento de metadatos de la sesión de chat. Cada subesquema aparece una vez. Los grupos de propiedades que hacen referencia a ellos apuntan a esta sección en lugar de redefinir su forma de forma intercalada.
menu_path (objeto)
Describe una ruta de menú jerárquica por la que navegó el chat. Consulta Navegación por el menú para ver la lista completa de sus campos.
Se hace referencia desde: El campo menu_path de nivel superior; cada transfers[].from_menu_path y transfers[].to_menu_path; cada escalations[].from_menu_path y escalations[].to_menu_path.
agent (objeto)
Describe a un agente humano. Este es uno de los dos discriminadores agent_info de nivel superior (consulta Raíz del esquema). Consulta Información del agente y del agente virtual para obtener la lista completa de sus campos.
Referenced from: El campo agent_info cuando el último controlador del chat fue un agente humano; cada transfers[].from_agent y transfers[].to_agent; cada escalations[].to_agent.
virtual_agent (objeto)
Describe un agente virtual. Este es uno de los dos discriminadores agent_info de nivel superior (consulta Raíz del esquema). Consulta Información del agente y del agente virtual para obtener la lista completa de sus campos.
Se hace referencia desde: El campo agent_info cuando el último controlador del chat fue un agente virtual; cada transfers[].from_virtual_agent y transfers[].to_virtual_agent; cada escalations[].from_virtual_agent; cada virtual_agent_handle_durations[].virtual_agent; cada virtual_agent_deflected_escalations[].virtual_agent; cada participants[].virtual_agent.
deflection (cadena, enum)
Es el estado de desvío asociado a una transferencia. Los valores siguen un patrón de <trigger>_<destination>, en el que el prefijo identifica la condición que activó la desviación y el sufijo identifica el destino o el tratamiento (por ejemplo, _phone, _voicemail, _message, _queue, _sip, _extension, _callback, _wait).
Valores permitidos, agrupados por familia de activadores:
Sin desvío:
no_deflection,deflectingExceso de capacidad, cuando la fila superó su umbral de capacidad:
over_cap_phone,over_cap_voicemail,over_cap_callback,over_cap_wait,over_cap_message,over_cap_ewt_only,over_cap_queue,over_cap_sip,over_cap_extension,over_cap_phone_with_extensionFuera del horario de atención, cuando el chat llegó fuera del horario de atención configurado del menú:
after_hours_voicemail,after_hours_phone,after_hours_message_only,after_hours_message,after_hours_queue,after_hours_sip,after_hours_extension,after_hours_phone_with_extensionRedireccionamiento temporal, cuando se configuró un redireccionamiento temporal en el menú:
temp_redirection_phone,temp_redirection_message,temp_redirection_voicemail,temp_redirection_queue,temp_redirection_sip,temp_redirection_extension,temp_redirection_phone_with_extensionIVR previo a la sesión:
ivr_presession_deflectionRedireccionamiento del agente virtual, cuando un agente virtual redireccionó el chat:
va_redirection_phone,va_redirection_sip
Referenciada desde: Cada transfers[].deflection. (Las derivaciones rechazadas por el agente virtual en Derivaciones rechazadas por el agente virtual usan un vocabulario de rechazo independiente y más pequeño, que se documenta de forma intercalada allí).
transfer (objeto)
Describe una transferencia que ocurrió durante el chat. Una transferencia puede mover un chat entre menús, agentes y agentes virtuales. Consulta Transferencias de chat para obtener la lista completa de sus campos.
Referencia de: El array transfers de nivel superior. (Otros campos denominados transfer_id en todo el documento son referencias de números enteros a un id de transferencia, no objetos transfer intercalados).
participant (objeto)
Describe a un participante del chat. La forma del participante varía según el tipo de participante. Los participantes agentes pueden incluir el perfil, la ubicación, el equipo y los campos de Agent Assist del agente, mientras que los participantes consumidores y agentes virtuales incluyen identificadores específicos del tipo. Consulta Participantes para ver la lista completa de campos documentados.
Referenced from: El array participants de nivel superior; auto_session_summaries[].participant_id; registros de disposición.
Fila de duración (objeto)
Describe un intervalo medido dentro del chat, como el tiempo de atención del agente, el tiempo en la fila, el tiempo de atención del cliente, el tiempo del evento del cliente o el tiempo de atención del agente virtual. Cada array de duración tiene su propia forma de fila, ya que los campos con nombres similares pueden tener diferente precisión o nulabilidad en las distintas tablas.
Referenciado desde: handle_durations, queue_durations, virtual_agent_handle_durations, consumer_handle_durations y consumer_event_durations.
Control de versiones y bajas
El documento de metadatos de la sesión de chat está diseñado para la evolución del esquema compatible con versiones anteriores. Se pueden agregar campos y arrays nuevos en cualquier momento, y las integraciones deben ignorar las claves no reconocidas para garantizar la continuidad de la funcionalidad. Los siguientes campos son heredados o se reemplazaron de forma parcial. Permanecen en la carga útil para garantizar la retrocompatibilidad, pero las nuevas integraciones deben seguir las instrucciones para cada uno.
Duplicados heredados
session_type(cadena): Es el alias heredado dechat_type. Siempre devuelve el mismo valor quechat_typey usa el mismo vocabulario de enumeración heredado. Se retiene para la retrocompatibilidad con las integraciones que se basan ensession_type. Las nuevas integraciones deben analizarchat_typedirectamente o, para distinciones más detalladas,session_type_v2(consulta Evolución del vocabulario a continuación).
Evolución del vocabulario
chat_type y session_type_v2 describen el mismo tipo de chat subyacente con dos vocabularios diferentes. CCAI Platform emite ambos campos en cada registro, y no son duplicados entre sí:
chat_typeusa el vocabulario de enumeración heredado. Los valores, como Mensajería entrante (chat en la app) y Mensajería (SMS), describen las categorías originales de tipo de chat.session_type_v2usa el vocabulario de enumeración actual. Puede introducir distinciones más detalladas para los tipos de chat que tienen valores específicos de la versión 2. Para los tipos de chat que no tienen un valor específico de la versión 2,session_type_v2devuelve la misma cadena quechat_type.
Las nuevas integraciones deben analizar session_type_v2. Los valores de cada campo se indican en Información principal.
Campos aditivos
Con el tiempo, es posible que la carga útil de metadatos de la sesión de chat obtenga nuevos campos de nivel superior, campos anidados, campos de elementos de array o valores de enumeración. Las integraciones deben ignorar las claves no reconocidas y conservar los registros sin procesar siempre que sea posible. Evita el análisis estricto que falla cuando aparece una propiedad nueva.