Ce document explique le schéma JSON utilisé pour structurer les métadonnées des sessions d'appel. Ce schéma est essentiel pour représenter et traiter précisément les sessions d'appel.
Schéma des métadonnées de session d'appel
Ce schéma décrit la structure des données liées aux métadonnées de session d'appel. Les composants clés sont décrits dans les sections suivantes.
Informations essentielles
Ces propriétés capturent les informations de base de l'appel :
id(entier). Identifiant de chaque session d'appel. Il s'agit de la clé primaire qui distingue un appel d'un autre.lang(chaîne). Code de langue ISO 689 utilisé lors de l'appel, par exempleenpour l'anglais ouespour l'espagnol. C'est essentiel pour les analyses et les rapports spécifiques à une langue.call_type(chaîne). Type d'appel, à l'aide d'un ancien ensemble de types. Par exemple, "Voix entrante (application)", "Voix sortante" et "Voix interne". Cela permet de classer les appels en fonction de leur origine et de leur objectif.session_type(chaîne) : doublon de call_typesession_type_v2(chaîne). Type d'appel, à l'aide de l'ensemble actuel de types. Ce champ est semblable à call_type, mais peut inclure des distinctions plus précises, comme "Voix entrante (mobile)" ou "Voix entrante (SVI sur mobile)".status(chaîne). État actuel de l'appel. Les valeurs possibles sontscheduled,queued,connected,finished,failedetdeflected. Cela permet de suivre la progression de l'appel tout au long de son cycle de vie.subStatus(chaîne). Fournit un état plus détaillé de l'appel. Les valeurs possibles sontwaiting_for_agent,in_queueetconnected_with_agent.created_at(string, date-time) : horodatage précis de la création de l'enregistrement d'appelqueued_at(chaîne, date et heure ou valeur nulle) : code temporel indiquant le moment où l'appel a été placé dans la file d'attente, ou valeur nulle s'il n'a jamais été mis en file d'attente.assigned_at(chaîne, date et heure ou valeur nulle) : code temporel indiquant quand l'appel a été attribué à un agent, ou valeur nulle s'il ne l'a pas été.connected_at(chaîne, date et heure ou null) : code temporel indiquant le moment où l'appel a été établiends_at(chaîne, date et heure ou null) : code temporel de la fin de l'appelscheduled_at(chaîne, date et heure ou null) : code temporel de la planification de l'appel ou null s'il s'agissait d'un appel immédiatupdated_at(chaîne, date et heure) : code temporel de la dernière modification des données d'appelwait_duration(entier) : temps d'attente total du client, en secondescall_duration(entier) : durée totale de l'appel, en secondeshold_duration(entier) : durée totale pendant laquelle le client a été mis en attente, en secondes, ou valeur nulle si aucune durée d'attente n'a été enregistréerating(entier ou null) : note de satisfaction client (CSAT) fournie par le client, ou null si aucune note n'a été attribuéehas_feedback(booléen) : indicateur indiquant si le client a fourni des commentaires après l'appelvoip_provider(chaîne) : fournisseur VoIP utilisé pour l'appel. Ce champ est obsolète et renverra toujoursdeprecated.out_ticket_id(chaîne) : identifiant de la demande créée dans le système CRM externeout_ticket_url(chaîne, uri) : URL de la demande CRMis_out_ticket_account(booléen) : indique si la demande CRM représente un client (true) ou une interaction téléphonique (false)verified(booléen) : indique si l'interaction a été validée par l'action intelligente de validationrecording_url(chaîne, URI ou null) : URL de l'enregistrement de l'appel ou null si aucun enregistrement n'est disponiblerecording_permission(chaîne). État de l'autorisation d'enregistrement du client. Les valeurs possibles sontnot_asked,grantedoudenied.voicemail_reason(chaîne). Le motif du message vocal, le cas échéant. Les options incluentnot_voicemail,temporary_redirectionetafter_hour_deflection.
Informations sur les agents et les agents virtuels
Ces sections expliquent qui ou quoi a géré l'appel :
agent_info(objet). Ce champ peut contenir des informations sur un agent humain ou un agent virtuel. Il utilise le mot clé "one of" pour spécifier qu'il peut s'agir de l'un des deux types.agent(objet) : informations sur l'agent humain :id(entier) : ID de l'agentagent_number(chaîne ou null) : identifiant attribué à l'agentemail(string, email) : adresse e-mail de l'agentname(chaîne) : nom complet de l'agentlast_name(chaîne) : nom de famille de l'agentfirst_name(chaîne) : prénom de l'agentavatar_url(chaîne, uri) : URL de l'image de l'avatar de l'agent
virtual_agent(objet) : informations sur l'agent virtuel :id(entier) : ID de l'agent virtuelname(chaîne) : nom de l'agent virtuelavatar_url(chaîne, uri) : URL de l'image de l'avatar de l'agent virtuel
Navigation au sein du menu
selected_menu(objet ou null) : informations sur le menu sélectionné par le client pendant l'appelid(entier) : ID du menuname(chaîne) : nom du menuparent_id(entier ou nul) : ID du menu parent, le cas échéantposition(entier) : position du menu par rapport aux autres menus du même niveau.deleted(booléen) : indique si le menu a été supprimé.menu_type(chaîne) : type de menu. Par exemple,ivr_menuousms_menu.hidden(booléen) : indique si le menu est visible et disponible
menu_path(objet ou null) : décrit le chemin hiérarchique des menus parcourus par le client.items_count(entier) : nombre de menus dans le chemin d'accèsname(chaîne) : chaîne de noms de menus séparés par une barre oblique. Par exemple, "assistance" ou "facturation".materialized_path(chaîne) : chaîne d'ID de menu séparés par une barre oblique
Informations sur l'utilisateur final
end_user(objet) : informations sur le clientid(entier) : ID interne du clientidentifier(chaîne ou null) : identifiant externe du clientout_contact_id(chaîne ou null) : ID du client dans le CRM
Redirection d'appel
deflection(chaîne) : indique si et comment l'appel a été redirigé. Par exemple :no_deflection,over_cap_phone,after_hours_voicemail.deflection_details(tableau) : fournit un journal détaillé des déviations qui se sont produites pendant l'appel. Chaque entrée inclut :id(entier) : identifiant de l'enregistrement du journal de déviation.call_id(entier) : identifiant de l'appel.transfer_id(entier ou null) : identifiant du transfert associé à la déviation, le cas échéantdeflection(chaîne) : type de déviationcreated_at(chaîne, date et heure) : code temporel indiquant quand la déviation s'est produitefrom_menu_path(objet ou null) : chemin de menu à partir duquel l'appel a été redirigéto_menu_path(objet ou null) : chemin de menu vers lequel l'appel a été redirigéto_sip_uri(chaîne ou null) : URI SIP vers lequel l'appel a été redirigé, le cas échéantto_sip_headers(objet) : en-têtes SIP avec lesquels l'appel a été redirigé, le cas échéant
Durées de gestion des appels
handle_durations(tableau) : tableau d'objets, chacun représentant un segment de l'appel géré par un agent. Cela permet d'analyser le temps de traitement des agents.id(entier) : identifiant de la durée du handle.agent_id(entier) : ID de l'agentacw_duration(entier) : durée du travail après appelbcw_duration(entier) : durée du travail avant l'appelcall_duration(entier) : durée de l'appel pendant ce segmentmenu_path_id(chaîne ou null) : ID du chemin de menumenu_path(chaîne) : nom du chemin d'accès au menulang(chaîne) : langue utiliséebarged(booléen) : indique si l'appel a été interrompu.transfer(booléen) : indique si un transfert a eu lieutransfer_id(chaîne ou null) : ID du transferttransfer_cold(booléen ou nul) : indique si le transfert était non annoncé.started_at(chaîne, date et heure) : code temporel de débutended_at(chaîne, date et heure) : code temporel de finscheduled_at(chaîne, date et heure ou null) : horodatage programméhold_duration(entier ou nul) : durée de la mise en attente pendant ce segmentassigned_connection_duration(entier) : durée pendant laquelle l'utilisateur final a attendu que l'agent soit connecté au cours de cette phasesession_breakthrough(objet) : informations sur l'attribution de la rupture d'appel en raison de l'état "Indisponible" d'un agent, le cas échéant
Durées des files d'attente
queue_durations(tableau) : tableau d'objets, chacun représentant un segment de l'appel où le client était dans une file d'attente. Cela est essentiel pour analyser les temps d'attente et les niveaux de service.id(entier) : identifiant de la durée de la file d'attenteagent_id(entier) : ID de l'agentended_at(chaîne, date et heure) : code temporel de finlang(chaîne) : langue utiliséemenu_path_id(entier) : ID du chemin de menumenu_path(chaîne) : nom du chemin d'accès au menuqueue_duration(entier) : durée du segment de file d'attentestarted_at(chaîne, date et heure) : code temporel de débuttransfer_cold(booléen) : indique si l'appel a été transféré sans annoncetransfer(booléen) : indique si un transfert a eu lieutransfer_id(entier) : ID du transfertservice_level_abandon_time_threshold(entier) : seuil de temps pour l'abandon du niveau de serviceservice_level_event(chaîne) : état de l'événement au niveau du service. Par exemple :excluded,in_sla,not_in_sla.service_level_target_percent(entier) : pourcentage cible de conformité au niveau de serviceservice_level_target_time(entier) : temps cible pour la conformité au niveau de service
Escalades d'agents virtuels
virtual_agent_deflected_escalations(tableau) : détails des escalades d'agents virtuels qui ont été évitéesid(entier) : identifiantdeflection(chaîne) : type de déviationescalation_id(entier) : identifiant de l'événement d'escaladeescalation_reason(chaîne) : motif de la transmissionescalated_at(chaîne, date et heure) : code temporel de l'escalademenu_path_id(entier) : ID du chemin du menumenu_path(chaîne) : chemin d'accès au menulang(chaîne) : languevirtual_agent(objet) : informations sur l'agent virtuel
Durées de traitement des agents virtuels
virtual_agent_handle_durations(tableau) : segments temporels pendant lesquels l'appel a été traité par un agent virtuelid(entier) : identifiantvirtual_agent(objet) : informations sur l'agent virtuelcall_duration(entier) : durée du segmentescalation_reason(chaîne) : motif de la transmissionfinish_reason(chaîne) : raison pour laquelle l'interaction s'est terminéesentiment(entier) : sentiment de l'utilisateur finalresponse_count(entier) : nombre de réponses de l'agent virtuelfallback_response_count(entier) : nombre de réponses de remplacementinitiated_by(chaîne) : comment la session d'agent virtuel a été lancéemenu_path_id(entier) : ID du chemin du menumenu_path(chaîne) : chemin d'accès au menulang(chaîne) : languetransfer(booléen) : indique si l'appel a été transféré.transfer_id(entier) : identifiant de l'événement de transfertstarted_at(chaîne, date et heure) : code temporel de débutended_at(chaîne, date et heure) : code temporel de fin
Durées de traitement des utilisateurs finaux
consumer_handle_durations(tableau) : durées pendant lesquelles l'utilisateur final était en appelid(entier) : identifiantcall_duration(entier) : durée du segment de l'utilisateur finalhold_duration(entier) : durée de la température fixe de l'utilisateur finalstarted_at(chaîne, date et heure) : code temporel de débutended_at(chaîne, date et heure) : code temporel de fin
Durées des événements utilisateur final
consumer_event_durations(tableau) : détails des événements d'appel de l'utilisateur final. Par exemple, la satisfaction client ou le paiement.id(entier) : identifiantduration(entier) : durée de l'événementtype(chaîne) : type d'événementevent(chaîne) : résultat de l'événementmenu_path_id(entier) : ID du chemin du menumenu_path(chaîne) : chemin d'accès au menulang(chaîne) : languestarted_at(chaîne, date et heure) : code temporel de débutended_at(chaîne, date et heure) : code temporel de fin
Durées dans le menu pour les utilisateurs finaux
consumer_in_menu_durations(tableau) : durées des interactions des utilisateurs finaux dans les menusid(entier) : identifiantduration(entier) : durée dans le menuevent(chaîne) : résultat de l'interaction avec le menumenu_path_id(entier) : ID du chemin du menumenu_path(chaîne) : chemin d'accès au menulang(chaîne) : languestarted_at(chaîne, date et heure) : code temporel de débutended_at(chaîne, date et heure) : code temporel de fin
Nombre de participants
participants(tableau) : informations sur chaque participant à l'appel. Par exemple : client, agent, agent virtuel.id(entier) : identifiant du participanttype(chaîne) : type de participant. Par exemple : end_user, agent, virtual_agent, etc.entry_type(chaîne) : comment le participant a rejoint l'appeluser_id(entier ou null) : ID utilisateur si le participant est un agentend_user_id(entier ou null) : ID de l'utilisateur final si le participant est le clientvirtual_agent_id(entier ou nul) : ID de l'agent virtuel si le participant est un agent virtuelvirtual_agent_params(objet) : métadonnées personnalisées utilisées par l'agent virtuelstatus(chaîne) : état du participant. Par exemple : "en attente", "connecté", "terminé", etc.fail_reason(chaîne) : motif de l'échec, le cas échéantconnected_at(chaîne, date et heure) : code temporel indiquant quand le participant s'est connectéphone_number(chaîne) : numéro de téléphone du participantcall_id(entier) : identifiant de l'appelcall_duration(entier) : durée de l'appel pour le participanthold_duration(entier ou nul) : durée de la retenue pour le participantended_at(chaîne, date et heure) : code temporel indiquant la fin de la participation de l'utilisateuradapter_fail_code(entier ou null) : code numérique correspondant au motif d'échecadapter_fail_message(chaîne ou null) : description lisible defail_reason, si disponible.
Enregistrements
recordings(tableau) : informations sur les enregistrements d'appelsid(entier) : identifiant de l'enregistrement.call_id(entier) : identifiant de l'appelconference_sid(chaîne) : identifiant d'appel du fournisseur VoIPduration(entier) : durée de l'enregistrementrecording_type(chaîne) : type d'enregistrementredaction_times(tableau) : segments temporels masquésstarted_at(chaîne, date et heure) : code temporel de début de l'enregistrement
Proposer des événements
offer_type(chaîne ou null) : manière dont l'appel a été proposé à l'agentoffer_events(tableau) : événements où l'appel a été proposé aux agentscasting_time(date-time) : heure à laquelle l'appel a été proposégroup(chaîne) : groupe auquel l'appel a été proposé
Autres informations
answer_type(chaîne ou null) : comment l'appel a été pris. (par exemple, manuelle ou automatique).outbound_number(chaîne) : numéro de téléphone sortant utiliséwait_time_sms(tableau) : interactions par SMS sur le temps d'attentein_call_sms(tableau) : interactions par SMS pendant l'appeldispositions(tableau) : dispositions enregistrées pendant l'appelemail(chaîne, adresse e-mail ou valeur nulle) : adresse e-mail du clientfeedback(chaîne ou null) : commentaires des clientssmart_action_text(chaîne ou null) : texte de toute action intelligente effectuéecustom_data_secured(objet ou null) : données personnalisées et signées de manière sécuriséecustom_data_not_secured(objet ou null) : données personnalisées non signées de manière sécurisée
Définitions clés
Le schéma inclut également une section de définitions qui définit les composants de schéma réutilisables :
menu_path: chemin de menu hiérarchiqueagent: un agent humainvirtual_agent: un agent virtueldeflection: définit les états de déviation possibles.