En este documento, se proporciona una explicación del esquema JSON que se usa para estructurar los metadatos de las sesiones de llamadas. Este esquema es fundamental para representar y procesar con precisión las sesiones de llamadas.
Esquema de metadatos de la sesión de llamada
Este esquema describe la estructura de los datos relacionados con los metadatos de la sesión de llamadas. Los componentes clave se describen en las siguientes secciones.
Información básica
Estas propiedades capturan la información principal de la llamada:
id(número entero). Es el identificador de cada sesión de llamada. Esta es la clave primaria que distingue una llamada de otra.lang(cadena). Es el código de idioma ISO 639 que se usó durante la llamada, por ejemplo,enpara inglés oespara español. Esto es fundamental para el análisis y la generación de informes específicos del idioma.call_type(cadena). Es el tipo de llamada, que usa un conjunto heredado de tipos. Entre los ejemplos, se incluyen Voice Inbound (App), Voice Outbound y Voice Internal. Esto ayuda a categorizar las llamadas según su origen y propósito.session_type(cadena): Es un duplicado de call_type.session_type_v2(cadena). Es el tipo de llamada, que usa el conjunto actual de tipos. Es similar a call_type, pero puede incluir distinciones más detalladas, como Voice Inbound (Mobile) o Voice Inbound (IVR using Mobile).status(cadena). Es el estado actual de la llamada. Los valores posibles sonscheduled,queued,connected,finished,failedydeflected. Esto hace un seguimiento del progreso de la llamada a lo largo de su ciclo de vida.subStatus(cadena). Proporciona un estado más detallado de la llamada. Los valores posibles sonwaiting_for_agent,in_queueyconnected_with_agent.created_at(cadena, fecha y hora): Es la marca de tiempo precisa en la que se creó el registro de llamadas.queued_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que la llamada entró en la cola o nulo si nunca se puso en cola.assigned_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que se asignó la llamada a un agente o nulo si no se asignó.connected_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que se conectó correctamente la llamada.ends_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que finalizó la llamada.scheduled_at(cadena, fecha y hora o nulo): Es la marca de tiempo en la que se programó la llamada o nulo si fue una llamada inmediata.updated_at(cadena, fecha y hora): Es la marca de tiempo en la que se modificaron los datos de la llamada por última vez.wait_duration(número entero): Es el tiempo total que el cliente pasó esperando, en segundos.call_duration(número entero): Es la duración total de la llamada en segundos.hold_duration(número entero): Es el tiempo total que el cliente estuvo en espera, en segundos, o bien es nulo si no hubo tiempo de espera.rating(número entero o nulo): Calificación de satisfacción del cliente (CSAT) proporcionada por el cliente o nula si no se proporcionó una calificaciónhas_feedback(booleano): Es una marca que indica si el cliente proporcionó comentarios después de la llamada.voip_provider(cadena): Es el proveedor de VoIP que se usó para la llamada. Este campo dejó de estar disponible y siempre devolverádeprecated.out_ticket_id(cadena): Es el identificador del ticket creado en el sistema de CRM externo.out_ticket_url(cadena, URI): URL del ticket del CRMis_out_ticket_account(booleano): Indica si el ticket de CRM representa a un cliente (verdadero) o una interacción de llamada (falso).verified(booleano): Indica si la interacción se verificó a través de la acción inteligente de verificación.recording_url(cadena, URI o nulo): Es la URL de la grabación de llamadas o nulo si no hay ninguna grabación disponible.recording_permission(cadena). Es el estado del permiso de grabación del cliente. Los valores posibles sonnot_asked,grantedodenied.voicemail_reason(cadena). Es el motivo por el que se dejó un mensaje de voz, si corresponde. Las opciones incluyennot_voicemail,temporary_redirectionyafter_hour_deflection.
Información del agente y del agente virtual
En estas secciones, se explica quién o qué controló la llamada:
agent_info(objeto). En este campo, se puede incluir información sobre un agente humano o un agente virtual. Usa la palabra clave one of para especificar que puede ser uno de dos tipos.agent(objeto): Es información sobre el agente humano:id(número entero): ID del agenteagent_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): Nombre completo del agentelast_name(cadena): Apellido del agentefirst_name(cadena): El nombre del agenteavatar_url(cadena, URI): URL de la imagen del avatar del agente
virtual_agent(objeto): Es información sobre el agente virtual:id(número entero): ID del agente virtualname(cadena): Nombre del agente virtualavatar_url(cadena, URI): URL de la imagen del avatar del agente virtual
Navegación del menú
selected_menu(objeto o nulo): Es la información sobre el menú que seleccionó el cliente durante la llamada.id(número entero): ID del menúname(cadena): El nombre del menúparent_id(número entero o nulo): ID del menú principal, si hay algunoposition(número entero): Posición del menú en relación con otros menús del mismo niveldeleted(booleano): Indica si se borró el menú.menu_type(cadena): Es el tipo de menú. Por ejemplo,ivr_menuosms_menu.hidden(booleano): Indica si el menú está visible y 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): Cantidad de menús en la rutaname(cadena): Cadena de nombres de menú separados por barras. Por ejemplo, asistencia o facturación.materialized_path(cadena): Cadena de IDs de menú separados por barras
Detalles del usuario final
end_user(objeto): Es la información sobre el cliente.id(número entero): ID interno del clienteidentifier(cadena o nulo): Es un identificador externo del cliente.out_contact_id(cadena o nulo): Es el ID del cliente en el CRM.
Desvío de llamadas
deflection(cadena): Indica si se desvió la llamada y cómo se hizo. Por ejemplo,no_deflection,over_cap_phone,after_hours_voicemail.deflection_details(matriz): Proporciona un registro detallado de los desvíos que se produjeron durante la llamada. Cada entrada incluye lo siguiente:id(número entero): Es el identificador del registro de registro de desvío.call_id(número entero): Es el identificador de la llamada.transfer_id(número entero o nulo): Es el identificador de la transferencia asociada con la desviación, si corresponde.deflection(cadena): Es el tipo de desvío.created_at(cadena, fecha y hora): Marca de tiempo en la que se produjo la desviaciónfrom_menu_path(objeto o nulo): Es la ruta de acceso al menú desde la que se desvió la llamada.to_menu_path(objeto o nulo): Es la ruta de acceso del menú a la que se desvió la llamada.to_sip_uri(cadena o nulo): Es el URI de SIP al que se desvió la llamada, si corresponde.to_sip_headers(objeto): Encabezados SIP con los que se desvió la llamada, si corresponde
Duraciones de manejo de llamadas
handle_durations(array): Es un array de objetos, cada uno de los cuales representa un segmento de la llamada que controló un agente. Esto es útil para analizar el tiempo de atención del agente.id(número entero): Es el identificador de la duración del identificador.agent_id(número entero): ID del agenteacw_duration(número entero): Duración del trabajo después de la llamadabcw_duration(número entero): Duración del trabajo previo a la llamadacall_duration(número entero): Duración de la llamada durante este segmentomenu_path_id(cadena o nulo): ID de la ruta de acceso del menúmenu_path(cadena): Nombre de la ruta de acceso al menúlang(cadena): Idioma utilizadobarged(booleano): Indica si se interrumpió la llamada.transfer(booleano): Indica si se produjo una transferencia.transfer_id(cadena o nulo): ID de la transferenciatransfer_cold(booleano o nulo): Indica si la transferencia fue directa.started_at(cadena, fecha y hora): Marca de tiempo de inicioended_at(cadena, fecha y hora): Marca de tiempo de finalizaciónscheduled_at(cadena, fecha y hora o nulo): Marca de tiempo programadahold_duration(número entero o nulo): Duración de la espera durante este segmentoassigned_connection_duration(número entero): Duración de la espera del usuario final mientras el agente estuvo conectado durante esta fasesession_breakthrough(objeto): Detalles sobre la asignación de la interrupción de la llamada a través del estado no disponible de un agente, si corresponde
Duraciones de la cola
queue_durations(array): Es un array de objetos, cada uno de los cuales representa un segmento de la llamada en el que el cliente estuvo en una cola. Esto es fundamental para analizar los tiempos de espera y los niveles de servicio.id(número entero): Es el identificador de la duración de la fila.agent_id(número entero): ID del agenteended_at(cadena, fecha y hora): Marca de tiempo de finalizaciónlang(cadena): Idioma utilizadomenu_path_id(número entero): ID de la ruta de acceso del menúmenu_path(cadena): Nombre de la ruta de acceso al menúqueue_duration(número entero): Duración del segmento de la colastarted_at(cadena, fecha y hora): Marca de tiempo de iniciotransfer_cold(booleano): Indica si la llamada se transfirió en frío.transfer(booleano): Indica si se produjo una transferencia.transfer_id(número entero): ID de la transferenciaservice_level_abandon_time_threshold(número entero): Límite de tiempo para el abandono del nivel de servicioservice_level_event(cadena): Es el estado del evento a nivel del servicio. Por ejemplo,excluded,in_sla,not_in_sla.service_level_target_percent(número entero): Porcentaje objetivo de cumplimiento del nivel de servicioservice_level_target_time(número entero): Hora objetivo para el cumplimiento del nivel de servicio
Derivaciones de agentes virtuales
virtual_agent_deflected_escalations(array): Detalles de las derivaciones de agentes virtuales que se rechazaronid(número entero): Es el identificador.deflection(cadena): Tipo de desvíoescalation_id(número entero): Es el identificador del evento de derivación.escalation_reason(cadena): motivo de la derivaciónescalated_at(cadena, fecha y hora): Marca de tiempo de la derivaciónmenu_path_id(número entero): ID de la ruta de acceso del menúmenu_path(cadena): ruta de acceso al menúlang(cadena): idiomavirtual_agent(objeto): Detalles del agente virtual
Duraciones de atención del agente virtual
virtual_agent_handle_durations(matriz): Segmentos de tiempo en los que un agente virtual atendió la llamadaid(número entero): Es el identificador.virtual_agent(objeto): Detalles del agente virtualcall_duration(número entero): duración del segmentoescalation_reason(cadena): motivo de la derivaciónfinish_reason(cadena): Es el motivo por el que finalizó la interacción.sentiment(número entero): Opinión del usuario finalresponse_count(número entero): Recuento de respuestas del agente virtualfallback_response_count(número entero): Recuento de respuestas de resguardoinitiated_by(cadena): Cómo se inició la sesión del agente virtualmenu_path_id(número entero): ID de la ruta de acceso del menúmenu_path(cadena): ruta de acceso al menúlang(cadena): idiomatransfer(booleano): Indica si se transfirió la llamada.transfer_id(número entero): Es el identificador del evento de transferencia.started_at(cadena, fecha y hora): Marca de tiempo de inicioended_at(cadena, fecha y hora): Marca de tiempo de finalización
Duraciones de atención al usuario final
consumer_handle_durations(matriz): Duraciones en las que el usuario final estuvo en la llamadaid(número entero): Es el identificador.call_duration(número entero): Duración del segmento del usuario finalhold_duration(número entero): Duración de la conservación para el usuario finalstarted_at(cadena, fecha y hora): Marca de tiempo de inicioended_at(cadena, fecha y hora): Marca de tiempo de finalización
Duraciones de eventos de usuario final
consumer_event_durations(array): Son los detalles de los eventos de llamadas del usuario final. Por ejemplo, CSAT o pago.id(número entero): Es el identificador.duration(número entero): duración del eventotype(cadena): Tipo de eventoevent(cadena): Resultado del eventomenu_path_id(número entero): ID de la ruta de acceso del menúmenu_path(cadena): ruta de acceso al menúlang(cadena): idiomastarted_at(cadena, fecha y hora): Marca de tiempo de inicioended_at(cadena, fecha y hora): Marca de tiempo de finalización
Duraciones en el menú para el usuario final
consumer_in_menu_durations(matriz): Duraciones de las interacciones del usuario final en los menúsid(número entero): Es el identificador.duration(número entero): Duración dentro del menúevent(cadena): Resultado de la interacción del menúmenu_path_id(número entero): ID de la ruta de acceso del menúmenu_path(cadena): ruta de acceso al menúlang(cadena): idiomastarted_at(cadena, fecha y hora): Marca de tiempo de inicioended_at(cadena, fecha y hora): Marca de tiempo de finalización
Participantes
participants(array): Es información sobre cada participante de la llamada. Por ejemplo, cliente, agente y agente virtual.id(número entero): Es el identificador del participante.type(cadena): Tipo de participante. Por ejemplo, end_user, agent, virtual_agent, etc.entry_type(cadena): Cómo ingresó el participante a la llamadauser_id(número entero o nulo): ID de usuario si el participante es un agenteend_user_id(número entero o nulo): ID del usuario final si el participante es el clientevirtual_agent_id(número entero o nulo): ID del agente virtual si el participante es un agente virtualvirtual_agent_params(objeto): Metadatos personalizados que usa el agente virtualstatus(cadena): Estado del participante. Por ejemplo, en espera, conectado, finalizado, etcétera.fail_reason(cadena): Es el motivo del error, si corresponde.connected_at(cadena, fecha y hora): Marca de tiempo en la que se conectó el participantephone_number(cadena): Número de teléfono del participantecall_id(número entero): Es el identificador de la llamada.call_duration(número entero): Duración de la llamada para el participantehold_duration(número entero o nulo): Duración de la retención para el participanteended_at(cadena, fecha y hora): Marca de tiempo en la que finalizó la participación del participanteadapter_fail_code(número entero o nulo): Código numérico correspondiente al motivo del erroradapter_fail_message(cadena o nulo): Es la descripción legible defail_reason, si está disponible.
Grabaciones
recordings(array): Es información sobre las grabaciones de llamadas.id(número entero): Es el identificador de la grabación.call_id(número entero): Es el identificador de la llamada.conference_sid(cadena): Es el identificador de llamada del proveedor de VoIP.duration(número entero): Duración de la grabaciónrecording_type(cadena): Tipo de grabaciónredaction_times(array): Segmentos de tiempo que se censuraronstarted_at(cadena, fecha y hora): Marca de tiempo de inicio de la grabación
Eventos de oferta
offer_type(cadena o nulo): Es la manera en que se ofreció la llamada al agente.offer_events(array): Eventos en los que se ofreció la llamada a los agentescasting_time(fecha y hora): Hora en que se ofreció la llamadagroup(cadena): Grupo al que se ofreció la llamada
Otros detalles
answer_type(cadena o nulo): Indica cómo se respondió la llamada. Por ejemplo, manual o automático.outbound_number(cadena): Número de teléfono saliente utilizadowait_time_sms(matriz): Interacciones por SMS sobre el tiempo de esperain_call_sms(matriz): Interacciones de SMS durante la llamadadispositions(array): Disposiciones registradas durante la llamadaemail(cadena, correo electrónico o nulo): Dirección de correo electrónico del clientefeedback(cadena o nulo): Comentarios de los clientessmart_action_text(cadena o nulo): Texto de cualquier acción inteligente realizadacustom_data_secured(objeto o nulo): Datos personalizados y firmados de forma seguracustom_data_not_secured(objeto o nulo): Datos personalizados no firmados de forma segura
Definiciones clave
El esquema también incluye una sección de definiciones, que define componentes de esquema reutilizables:
menu_path: Ruta de menú jerárquicaagent: Un agente humanovirtual_agent: Un agente virtualdeflection: Define los posibles estados de desvío.