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, CCAI Platform también escribe el registro en tu configuración de almacenamiento externo
con un archivo metadata.json. Cada chat produce un registro, que
el id de nivel superior identifica de forma única. Usa este esquema para transferir registros a
sistemas descendentes, validar las 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 en el nivel superior determinan la identidad y la forma del registro.
Clave primaria: id (número entero)
Identifica de forma inequívoca la sesión de chat dentro de tu usuario. Existe un registro por
chat. Todos los demás campos de nivel superior, arrays y objetos anidados describen los 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:
Variante de agente humano: Está presente cuando el último controlador del chat fue un agente humano. Contiene
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. Lleva
va_aliasy omiteemail,first_name,last_nameyagent_number.
Para detectar qué variante tiene 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 el tipo de chat que representa un registro; solo difieren en el vocabulario que se usa para nombrarlo.
chat_type: Usa el vocabulario de enumeración heredado, como Mensajería entrante (App Chat), Mensajería (SMS) y Mensajería (WhatsApp).session_type: Siempre devuelve la misma cadena quechat_type. Existe para la retrocompatibilidad con integraciones que se basan en este campo. Se debe tratar 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 integraciones nuevas 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,"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(string): Es un duplicado dechat_type(mismos valores), que se conserva para la retrocompatibilidad. Consulta Control de versiones y bajas: Duplicados heredados.session_type_v2(string): Es el tipo de chat, que usa el vocabulario de tipo actual. Define mejor 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 via API)","Messaging Inbound (SMS Direct)","Messaging Outbound (SMS Direct)"y"Messaging Outbound (SMS Direct via 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 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 hay uno disponible. Los valores posibles son"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 CCAI Platform 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 de cuando finalizó la sesión de chat.updated_at(string, date-time): Es la marca de tiempo de la última vez que CCAI Platform actualizó los datos del chat.first_msg_sent_at(cadena, fecha y hora, o nulo): Es la marca de tiempo de cuando un participante envió el primer mensaje en el chat.last_msg_sent_at(cadena, fecha y hora, o nulo): Es la marca de tiempo de cuando un participante envió el último mensaje en el chat.wait_duration(número entero): Es el tiempo total que el consumidor pasó esperando, en segundos.chat_duration(número entero): Es la 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ó CCAI Platform en el sistema de CRM externo.out_ticket_url(cadena, URI o nulo): Es la URL del ticket de CRM.is_out_ticket_account(booleano o nulo): Indica si el ticket de 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 el chat no falló. 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. Los valores posibles son los siguientes:"unknown","messaging","twilio_conversations","nexmo_conversations"y"ujet_conversations".provider_channel_id(cadena o nulo): Es el identificador de canal específico del proveedor para el 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 del chat para la sesión.
Información del agente y del agente virtual
agent_info(objeto): Es la información sobre el agente humano o virtual que manejó el chat por última vez. Este campo usa la palabra claveoneOfpara especificar que puede ser uno de dos tipos.agent(objeto): 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(string): Es el nombre del agente.avatar_url(cadena, URI o nulo): Es la URL de la imagen del avatar del agente.
virtual_agent(objeto): 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(string o null): 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 la información sobre el menú que el consumidor seleccionó durante el chat.id(número entero): Es el ID único del menú.name(cadena): Es el nombre del menú.parent_id(número entero o nulo): Es el ID del menú superior, si lo hay.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): Es una cadena de nombres de menú separados por barras diagonales (por ejemplo,"Support/Billing") o nulo si la ruta de acceso del 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 se muestra cuando la prioridad de la fila está habilitada en tu cuenta.
Detalles del usuario final
end_user(objeto o nulo): Es 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.
Parámetros de configuración del cliente y datos proporcionados por el SDK
customer_flag(objeto): Son marcas que indican atributos notables del consumidor que los sistemas externos proporcionaron o actualizaron durante la sesión. Solo está presente cuando los sistemas externos proporcionaron o actualizaron los indicadores de clientes relacionados 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 un actor de mala fe.repeat_customer(booleano): Indica si un sistema externo marcó al consumidor como cliente recurrente.
custom_data_secured(objeto o nulo): Son datos personalizados firmados de forma segura que proporcionó el SDK o la API de Apps.custom_data_not_secured(objeto o nulo): Son datos personalizados con firma no segura que proporcionó 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 recibidos 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 multimedia adjuntos
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 incluyen"photo"y"screenshot".url(cadena, URI): Es la URL de la foto almacenada.smart_action_type(cadena o nulo): Es la acción inteligente asociada con la foto, si la hay.transfer_id(número entero o nulo): Es el identificador del evento de transferencia asociado con la foto, si un participante la subió después de que se completó la transferencia.
videos(array): Son los videos asociados con el chat.id(número entero): Es el identificador único del video.url(string, uri): Es la URL del video almacenado.smart_action_type(cadena o nulo): Es la acción inteligente asociada con el video, si la hay.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 una transferencia completada.
Transferencias de chats
transfers(array): Una entrada por 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(string): Es el estado actual de la transferencia. Los valores posibles incluyen"transferring","transferred","failed"y"deflected".fail_reason(cadena): Es el motivo por el que falló la transferencia o"nothing"si no falló. Los valores posibles son"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 de cuando comenzó la transferencia.assigned_at(cadena, fecha y hora, o nulo): Es la marca de tiempo en la que CCAI Platform asignó la transferencia.connected_at(string, fecha y hora, o nulo): Es la marca de tiempo de cuando se conectó la transferencia.updated_at(cadena, fecha y hora, o nulo): Es la marca de tiempo de la última vez que CCAI Platform actualizó el registro de transferencia.call_duration(número entero o nulo): Es la duración del segmento de chat transferido, en segundos.wait_duration(número entero o nulo): Es el tiempo que el consumidor esperó durante la transferencia, en segundos.deflection(string): Es el tipo de desvío asociado con la transferencia. Consulta Definiciones:deflectionpara conocer 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 del menú antes y después de la transferencia; tiene la misma forma quemenu_pathen Definiciones.from_agent/to_agent(objeto o nulo): Es el agente humano de cada lado de la transferencia; tiene la misma forma que el objetoagenten Definiciones.from_virtual_agent/to_virtual_agent(objeto o nulo): Agente virtual en cada lado de la transferencia; tiene la misma forma que el objetovirtual_agenten Definiciones.from_queue_priority_level/to_queue_priority_level(número entero o nulo): Es la prioridad de la cola antes y después de la transferencia.
Duración de la administración de chats
handle_durations(array): Es un array de objetos, cada uno de los cuales representa un segmento del chat que controla un agente.id(número entero): Es el identificador único de la duración de la atención.agent_id(número entero o nulo): Es el identificador del agente.acw_duration(número entero): Es la duración del trabajo posterior al chat, en segundos.chat_duration(número entero): Es la duración del chat durante este segmento, en segundos.menu_path_id(número entero o nulo): Es el ID de la ruta de acceso del menú.menu_path(cadena): Es el nombre de la ruta de acceso del menú.lang(cadena): Es el idioma que se usó.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): Es la cantidad de respuestas del agente.response_time_total(número entero): Es el 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 el consumidor esperó mientras el agente asignado se conectaba durante este segmento.
Duraciones de las colas
queue_durations(array): Es un array de objetos, cada uno de los cuales representa un segmento del chat en el que el consumidor 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): Es el idioma.menu_path_id(número entero o nulo): Es el identificador de la ruta de acceso del menú.menu_path(cadena): Es la ruta de acceso al menú.queue_duration(número entero o nulo): Es la duración de la fila, en segundos.started_at(cadena, fecha y hora): Es la marca de tiempo de inicio.transfer_cold(booleano o nulo): Indica si el chat se transfirió de forma directa.transfer(booleano): Indica si se produjo una transferencia.transfer_id(entero o nulo): Es el identificador de la transferencia.service_level_abandon_time_threshold(número entero): Es el umbral de abandono del nivel de servicio, en segundos.service_level_event(cadena): Es el estado del evento de nivel de servicio. Los valores posibles son"excluded","in_sla"y"not_in_sla".service_level_target_percent(entero): Porcentaje objetivo del nivel de servicio.service_level_target_time(número entero): Es el tiempo objetivo del 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(string): 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. Los valores posibles son los siguientes:"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 de cuando comenzó la derivación.escalated_at(cadena, fecha y hora, o nulo): Es la marca de tiempo de cuando 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 Definiciones.to_agent(objeto o nulo): Es el agente humano al que se derivó el chat. Tiene la misma forma que el objetoagenten Definiciones.from_menu_path/to_menu_path(objeto o nulo): Es la ruta de acceso del menú antes y después del escalamiento.
Derivaciones desviadas por el agente virtual
virtual_agent_deflected_escalations(array): Son los detalles de las derivaciones de los agentes virtuales que se desviaron a otro destino.id(número entero): Es el identificador único.deflection(cadena): Es el tipo de desvío para la derivación desviada. Los valores posibles son"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 elevación de privilegios.escalation_reason(cadena): Es el motivo de la derivación. Son los mismos valores queescalations[].reason(consulta 10. Derivaciones de agentes virtuales a humanos).escalated_at(cadena, fecha y hora): Es la marca de tiempo de la derivación.menu_path_id(número entero): Es el ID de la ruta de acceso del menú.menu_path(cadena): Es la ruta de acceso al menú.lang(cadena): Es el idioma.virtual_agent(objeto): Son los detalles del agente virtual. Consulta las Definiciones:virtual_agent.
Duraciones de la administración de agentes virtuales
virtual_agent_handle_durations(array): Son los segmentos de tiempo en los que un agente virtual controló el chat.id(número entero): Es el identificador único.virtual_agent(objeto): Son los detalles del agente virtual. Consulta las Definiciones:virtual_agent.chat_duration(número entero): Es la duración del segmento, en segundos.escalation_reason(cadena): Es el motivo de la derivación.finish_reason(string): Es el motivo por el que finalizó la interacción.response_count(número entero): Es el recuento de respuestas del agente virtual.response_time_total(número entero): Es el tiempo de respuesta total 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): Es la forma en que 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): Es el ID de la ruta de acceso del menú.menu_path(cadena): Es la ruta de acceso al menú.lang(cadena): Es el idioma.transfer(booleano): Indica si se transfirió el chat.transfer_id(entero o nulo): Es el identificador del evento de transferencia.started_at(cadena, fecha y hora): Es la marca de tiempo de inicio.ended_at(cadena, fecha y hora): Es la marca de tiempo de finalización.
Duración del procesamiento de los consumidores
consumer_handle_durations(array): Duraciones de la presencia del consumidor en el chat.id(número entero): Es el identificador único.chat_duration(número entero): Es la duración del segmento de consumidor, 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 de consumidores.response_count(número entero): Es la cantidad de respuestas de los consumidores.response_time_total(número entero): Es el 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): Es el tiempo de respuesta promedio del consumidor, en segundos.
Duraciones de los eventos de consumidores
consumer_event_durations(array): Son los detalles de los eventos de chat del consumidor (por ejemplo, CSAT, pago).id(número entero): Es el identificador único.duration(número entero): Es la duración del evento, en segundos.type(cadena): Es el tipo de evento. Valores posibles:"csat".event(string): Es el resultado del evento. Los valores posibles son"finished"y"abandoned".menu_path_id(número entero): Es el ID de la ruta de acceso del menú.menu_path(cadena): Es la ruta de acceso al menú.lang(cadena): Es el idioma.started_at(cadena, fecha y hora): Es la marca de tiempo de inicio.ended_at(cadena, fecha y hora): Es la marca de tiempo de finalización.
Participantes
participants(array): Es la información sobre cada participante en el chat (por ejemplo, usuario final, agente o agente virtual).id(número entero): Es el identificador único del participante.type(cadena): Es el tipo de participante. Los valores posibles son"end_user","agent","manager","virtual_agent","external_agent"y"task_virtual_agent".entry_type(cadena): Es la forma en que el participante ingresó al chat. Valores posibles:"queue_or_transfer","barge"y"post_session".user_id(número entero o nulo): Es el 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): Es el ID del agente virtual si el participante es un agente virtual.virtual_agent_params(objeto): Son los metadatos personalizados que usa el agente virtual. Solo está presente cuando configuras la inclusión de metadatos personalizados del agente virtual.status(string): Es el estado del participante. Los valores posibles son los siguientes:"waiting","connecting","invited","connected","wrapping_up","finished","failed","resuming"y"post_session_in_progress".fail_reason(string): Es el motivo de la falla, si lo hay. Los valores posibles son los siguientes:"nothing","canceled","ag_connection_timeout"y"unknown".connected_at(cadena, fecha-hora o nulo): Es la marca de tiempo de cuando se conectó el participante.phone_number(cadena): Es el 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): Es la duración del chat para el participante, en segundos.finished_at(cadena, fecha y hora, o nulo): Es la marca de tiempo que indica cuándo 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): Son los detalles del agente virtual que actúa como este participante, que es distinto de los objetosagent_infoyvirtual_agent_paramsde nivel superior.sip_headers(objeto o nulo): Son los encabezados SIP asociados con este participante. Siempre está presente en la carga útil; es nulo cuando CCAI Platform no captura ninguno.location(string o nulo): Es la ubicación configurada del agente. Solo está presente en los participantes que son agentes.location_id(número entero o nulo): Es el identificador de la ubicación. Solo se presenta en los participantes agentes.email(cadena, correo electrónico): Es la dirección de correo electrónico del agente. Solo está presente en los participantes agentes.first_name(cadena o nulo): Es el nombre del agente. Solo está presente en los participantes agentes.last_name(cadena o nulo): Es el apellido del agente. Solo está presente en los participantes agentes.middle_name(cadena o nulo): Es el segundo nombre del agente. Solo está presente en los participantes agentes.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 agentes.
Registros de entrada
check_in_logs(array): Son los eventos de registro que se registraron durante la sesión de chat. Cada elemento agrupa los eventos de registro de 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 CCAI Platform mostró el modal de registro.check_in_modal_confirmed(string, date-time): Es la marca de tiempo que indica cuándo el consumidor confirmó que aún estaba presente. Solo se muestra cuando el consumidor confirmó el modal de registro.check_in_modal_timed_out(cadena, fecha y hora): Es la marca de tiempo de cuando se agotó el tiempo de espera del mensaje de confirmación de llegada. Solo está presente cuando se agota el tiempo de espera del modal de registro.timeout_modal_rejoin_success(cadena, fecha y hora): Es la marca de tiempo de cuando se completó correctamente la acción de volver a unirse. Solo se presenta cuando el consumidor se vuelve a unir correctamente después del tiempo de espera.timeout_modal_rejoin_failed_after_hour(string, 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 se presenta cuando no se pudo volver a unir porque la cola estaba fuera de horario.timeout_modal_exit_chat(cadena, fecha y hora): Es la marca de tiempo que indica cuándo el consumidor decidió salir del chat. Solo se presenta cuando el consumidor sale del chat desde el modal de tiempo de espera.timeout_modal_time_out_sdk_closed(cadena, fecha y hora): Es la marca de tiempo que indica cuándo finalizó el flujo modal de tiempo de espera porque se cerró el SDK. Solo está presente cuando el SDK se cerró después del tiempo de espera.
Ofrece eventos
offer_type(cadena o nulo): Es la manera en que CCAI Platform ofreció el chat al agente.offer_events(array): Eventos en los que CCAI Platform ofreció el chat a los agentes.casting_time(string, date-time): Es la 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 del chat en el estado descartado, en segundos. 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 los siguientes:"manual","auto","outbound"y"deflection".inbound_number(cadena): Es el número de teléfono entrante asociado con el chat. Solo está presente cuando se asocia un número de teléfono entrante con el chat.outbound_number(cadena): Es el número de teléfono saliente asociado con el chat. Solo está presente cuando se asocia un número de teléfono saliente con el chat.after_hours(booleano): Indica si el chat se produjo fuera del horario de atención.dispositions(array): Son los códigos y las notas de cierre que registraron los agentes. Solo está presente cuando habilitas los códigos o las notas de cierre en tu cuenta. Cada entrada puede contener campos renderizados de forma condicional según tu configuración de cierre: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 registra después de una transferencia.participant_id(número entero): Es el identificador del participante.note(cadena): Nota del agente en texto libre.original_note(cadena): Es la versión original (antes de 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 asignado por la plataforma de CCAI del código de disposición, una clave estable para el código (el nombre visible del código puede cambiar). Cadena vacía cuando no está disponible.list(cadena): Es el nombre de la lista a la que pertenece el código.list_path(string): Es la ruta de acceso separada por barras de la lista de códigos.ujet_list_id(número entero o cadena vacía): Es el identificador asignado por CCAI Platform de la lista a la que pertenece el código de disposición, una clave estable para la lista. Es una cadena vacía cuando no está disponible.custom_list_id(cadena o número entero): Es el identificador de la lista definido por el cliente, si está asignado.custom_code_id(cadena o número entero): Es el identificador de código definido por el cliente, si está asignado.
auto_session_summaries(array): Son resúmenes de sesiones generados por IA que se guardan en el registro de CRM. Solo está presente 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 agente con el que se asocia el resumen.participant_id(número entero): Es el identificador del participante.session_summary(cadena): Es el texto de resumen.session_summary_sections(array u 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 transferencias para el chat.limit_count(número entero): Es la cantidad de transbordos permitidos.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): Son los 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 manera intercalada.
menu_path (objeto)
Describe una ruta de menú jerárquica que recorrió el chat. Consulta Navegación por el menú para obtener la lista completa de sus campos.
Referencia: 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 un agente humano. Esta es una de las dos variantes del discriminador agent_info de nivel superior (consulta Raíz del esquema). Consulta Información sobre el agente y el agente virtual para obtener la lista completa de sus campos.
Referencia: 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. Esta es una de las dos variantes del discriminador agent_info de nivel superior (consulta Raíz del esquema). Consulta Información sobre el agente y el 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 con una transferencia. Los valores siguen un patrón
<trigger>_<destination>, en el que el prefijo identifica la condición
que activó el desvío 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,deflectingCapacidad excesiva, cuando la cola 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 para el menú:
after_hours_voicemail,after_hours_phone,after_hours_message_only,after_hours_message,after_hours_queue,after_hours_sip,after_hours_extensionyafter_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_extensionSesión previa de IVR:
ivr_presession_deflectionRedireccionamiento del agente virtual, cuando un agente virtual redireccionó el chat:
va_redirection_phone,va_redirection_sip
Referencia de: cada transfers[].deflection. (Los desvíos de agentes virtuales en Desvíos de agentes virtuales usan un vocabulario de desvío independiente y más pequeño, que se documenta de forma intercalada allí).
transfer (objeto)
Describe una transferencia que se produjo durante el chat. Una transferencia puede mover un chat entre menús, agentes y agentes virtuales. Consulta Transferencias de chat para ver la lista completa de sus campos.
Referencia: el array transfers de nivel superior. (Otros campos llamados
transfer_id en todo el documento son referencias de números enteros al id de una transferencia, no objetos transfer intercalados).
participant (objeto)
Describe a un participante en el chat. La forma del participante varía según el tipo de participante. Los participantes agentes pueden incluir campos de perfil de agente, ubicación, equipo y Agent Assist, mientras que los participantes consumidores y agentes virtuales incluyen identificadores específicos del tipo. Consulta Participantes para obtener la lista completa de los campos documentados.
Referencia: 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 cola, el tiempo de atención del consumidor, el tiempo del evento del consumidor 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 una precisión o nulabilidad diferente en las tablas.
Se hace referencia 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 retrocompatible. Se pueden agregar campos y arrays nuevos en cualquier momento, y las integraciones deben ignorar las claves no reconocidas para garantizar que sigan funcionando. Los siguientes campos son heredados o se reemplazaron de forma parcial. Permanecen en la carga útil para mantener la retrocompatibilidad, pero las integraciones nuevas deben seguir la guía de cada uno.
Duplicados heredados
session_type(string): Es el alias heredado dechat_type. Siempre devuelve el mismo valor quechat_typey usa el mismo vocabulario de enumeración heredado. Se conserva por retrocompatibilidad con integraciones que se basan ensession_type. Las integraciones nuevas 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; no son duplicados entre sí:
chat_typeusa el vocabulario de enumeración heredado. Los valores como Mensajería entrante (chat de 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 integraciones nuevas deben analizar session_type_v2. Los valores de cada campo se
indican en Información básica.
Campos aditivos
La carga útil de los metadatos de la sesión de chat puede obtener nuevos campos de nivel superior, campos anidados, campos de elementos de array o valores de enumeración con el tiempo. 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.