Ce document explique le schéma de l'enregistrement des métadonnées de la transcription de chat. Il s'agit du fichier JSON que Contact Center AI Platform (CCAI Platform) génère pour une transcription de chat terminée. L'enregistrement des métadonnées de la transcription de chat est produit par l'exportation JSON de l'historique des chats. Il peut être fourni par le biais d'importations de transcriptions CRM et de fichiers de transcriptions de stockage externe, en fonction de la configuration de votre instance. Utilisez ce schéma pour analyser le fichier JSON de la transcription, valider les charges utiles reçues ou mapper les messages de transcription dans les systèmes en aval.
Racine du schéma
L'enregistrement des métadonnées de la transcription de chat est un objet JSON unique représentant un artefact de transcription de chat. Les champs à la racine identifient la communication, la version du format de transcription et l'ensemble ordonné des entrées de transcription.
Identifiants de communication comm_type et comm_id
comm_type et comm_id identifient ensemble la communication que représente cet enregistrement de transcription.
comm_typeidentifie le type de communication. La valeur est généralementchat. Il peut s'agir decallpour un appel vocal incluant du contenu de transcription SMS combiné.comm_idest l'identifiant de la discussion ou de l'appel représenté par la transcription.
Version du format : transcript_version
Identifie la version du format JSON de la transcription. Les intégrations doivent utiliser ce champ pour l'analyse compatible avec les versions ultérieures et ignorer les champs non reconnus.
Discriminateur d'entrée : entries[].type et entries[].body.type
Chaque élément de entries représente un message ou un événement de transcription. Le champ type de l'entrée reflète le type de corps du message. L'objet body imbriqué contient la charge utile dont la forme varie selon le type (par exemple, text, markdown, photo, noti ou action).
Schéma des métadonnées de transcription de chat
Ce schéma décrit la structure des données des transcriptions de chat. Les sections suivantes décrivent les composants principaux.
Informations essentielles sur la transcription
Les propriétés suivantes fournissent les informations de base sur la transcription elle-même :
comm_type(chaîne) : type de communication représenté par la transcription. Valeurs possibles :chat,call. La valeurcallindique un appel vocal avec du contenu de transcription SMS combiné.comm_id(entier) : identifiant unique de la communication représentée par la transcription.transcript_version(chaîne) : version du format JSON de la transcription. La valeur actuelle est"1.0". Consultez Gestion des versions et abandons.assigned_at(chaîne, date et heure) : code temporel de l'attribution du chat.timezone(chaîne) : fuseau horaire du contexte de la transcription, tel que"America/Los_Angeles".
Entrées de transcription
entries(tableau) : liste ordonnée des entrées de transcription. Chaque entrée représente un message, une notification ou une action dans la conversation.timestamp(entier) : code temporel d'époque Unix, en secondes, indiquant le moment où le système a créé l'entrée.type(chaîne) : type de corps du message. Cette valeur reflètebody.type. Consultez Définitions pour connaître les types de corps compatibles.body(objet) : charge utile de l'entrée. Sa forme dépend de la valeur detype/body.type.role(chaîne) : rôle du participant ou du composant système ayant produit l'entrée. Valeurs possibles :end_user,agent,manager,virtual_agent,external_agent,task_virtual_agent,system.user_data(objet) : métadonnées de l'expéditeur. Pour les entréesagent,manager,virtual_agent,external_agentettask_virtual_agent, cet objet contient les données d'affichage de l'expéditeur. Pour les entréesend_useretsystem, cet objet est vide.name(chaîne ; présent uniquement lorsque les métadonnées de l'expéditeur sont disponibles) : nom à afficher de l'expéditeur.id(entier ; présent uniquement lorsque les métadonnées de l'expéditeur sont disponibles) : identifiant de l'expéditeur.avatar_url(chaîne, uri ; présent uniquement lorsque les métadonnées de l'expéditeur sont disponibles) : URL de l'image de l'avatar de l'expéditeur.
Corps des messages
text(objet) : corps du message en texte brut.type(chaîne) : toujourstext.content(chaîne) : texte du message.lang(chaîne ; présent uniquement lorsque les métadonnées de langue sont disponibles) : code de langue associé au message.
text_template(objet) : corps du message texte basé sur un modèle.type(chaîne) : toujourstext_template.content(chaîne) : texte du modèle.
markdown(objet) : corps du message au format Markdown.type(chaîne) : toujoursmarkdown.content(chaîne) : contenu Markdown.lang(chaîne ; présent uniquement lorsque les métadonnées de langue sont disponibles) : code de langue associé au message.
markdown_template(objet) : corps du message Markdown basé sur un modèle.type(chaîne) : toujoursmarkdown_template.content(chaîne) : contenu du modèle Markdown.
Corps des messages contenant des fichiers et des éléments multimédias
photo(objet) : corps du message photo ou de la capture d'écran.type(chaîne) : toujoursphoto.media_id(entier) : identifiant de la photo stockée.
video(objet) : corps du message vidéo.type(chaîne) : toujoursvideo.media_id(entier ; présent lorsque le système stocke la vidéo en tant que contenu multimédia CCAI Platform) : identifiant du contenu multimédia vidéo stocké.title(chaîne ; présent lorsqu'un objet vidéo intégré représente la vidéo) : titre de la vidéo.video(objet ; présent lorsqu'un objet vidéo intégré représente la vidéo) : détails de la vidéo.url(chaîne, uri) : URL de la vidéo.text(chaîne) : texte alternatif ou URL de remplacement pour la vidéo.
image(objet) : corps du message avec image.type(chaîne) : toujoursimage.title(chaîne ; présent lorsque l'expéditeur du message le fournit) : titre de l'image.image(objet) : détails de l'image.url(chaîne, uri) : URL de l'image.text(chaîne) : texte alternatif ou URL de remplacement pour l'image.
document(objet) : corps du message du document.type(chaîne) : toujoursdocument.media_id(entier ; présent lorsque le système stocke le document en tant que contenu multimédia CCAI Platform) : identifiant du contenu multimédia stocké du document.title(chaîne ; présent lorsqu'un objet de document intégré représente le document) : titre du document.document(objet ; présent lorsqu'un objet de document intégré représente le document) : détails du document.url(chaîne, uri) : URL du document.text(chaîne) : texte alternatif ou URL de remplacement pour le document.
audio(objet) : corps du message audio.type(chaîne) : toujoursaudio.media_id(entier ; présent lorsque le système stocke l'audio en tant que contenu multimédia CCAI Platform) : identifiant du contenu multimédia audio stocké.title(chaîne ; présent lorsqu'un objet audio intégré représente le fichier audio) : titre du fichier audio.audio(objet ; présent lorsqu'un objet audio intégré représente le fichier audio) : informations audio.url(chaîne, uri) : URL du fichier audio.text(chaîne) : texte alternatif ou URL de remplacement pour le fichier audio.
Corps de message interactifs
inline_button(objet) : corps du message avec bouton intégré.type(chaîne) : toujoursinline_button.title(chaîne) : titre à afficher au-dessus des boutons.buttons(tableau) : liste des définitions de boutons.title(chaîne) : libellé du bouton.action(chaîne) : action associée au bouton.link(chaîne, uri ; présent uniquement pour les réponses rapides de type lien) : URL associée au bouton.
sticky_button(objet) : corps du message du bouton fixe.type(chaîne) : toujourssticky_button.title(chaîne) : titre à afficher au-dessus des boutons.buttons(tableau) : liste des définitions de boutons.title(chaîne) : libellé du bouton.action(chaîne) : action associée au bouton.link(chaîne, uri ; présent uniquement pour les réponses rapides de type lien) : URL associée au bouton.
content_card(objet) : corps du message de la carte de contenu.type(chaîne) : toujourscontent_card.cards(tableau) : liste des fiches de contenu.title(chaîne) : titre de la fiche.body(chaîne ; présent uniquement lorsque vous configurez le corps de texte de la fiche) : corps de texte de la fiche.
form_complete(objet) : corps du message d'envoi de formulaire que le client envoie lorsqu'un consommateur remplit, échoue ou annule un formulaire.type(chaîne) : toujoursform_complete.signature(chaîne ; présent uniquement lorsque l'événement d'achèvement contient une signature) : signature de la charge utile de remplissage du formulaire.data(objet) : détails sur le remplissage du formulaire.status(chaîne) : état d'achèvement. Valeurs possibles :success,error,cancelled.smart_action_id(entier) : identifiant de l'action intelligente associée au formulaire.timestamp(chaîne, date et heure) : code temporel indiquant quand l'événement de remplissage du formulaire s'est produit. Il est différent detimestamp, qui est un code temporel Unix entier exprimé en secondes.details(objet ; présent uniquement lorsque la charge utile fournit des informations supplémentaires sur l'état) : informations supplémentaires sur l'état.error_code(chaîne ; présent uniquement pour les erreurs avec un code) : code d'erreur associé au résultat de la saisie semi-automatique.message(chaîne) : informations sur l'état lisibles par l'utilisateur.
Corps de message générés par le serveur et transmis
server_message(objet) : corps du message généré par le serveur. La transcription n'inclut les entréesserver_messageque si vous activez le contenu de la transcription de l'agent virtuel pour votre compte. Sinon, la transcription omet ces entrées. Utilisez cet objet lorsque la transcription fait référence à un message stocké côté serveur.type(chaîne) : toujoursserver_message.message_id(entier) : identifiant du message serveur stocké.visibility(chaîne ou null) : paramètre de visibilité du message serveur stocké.
passthrough(objet) : charge utile personnalisée que le système transmet à CCAI Platform pour une intégration d'agent virtuel ou de CCaaS. Votre intégration définit soncontent, qui ne fait pas partie du schéma de la plate-forme CCAI. Traitez-le comme opaque.type(chaîne) : toujourspassthrough.content(chaîne ou objet) : charge utile définie par l'intégration. Sa structure varie selon l'intégration, et CCAI Platform ne l'interprète pas.
Corps des messages d'action
action(objet) : action demandée par un agent virtuel ou un flux de chatbot. Le champactiondétermine la forme de la charge utile de l'action.type(chaîne) : toujoursaction.action(chaîne) : type d'action. Les valeurs possibles sontescalation,deflectionetend.escalation_reason(chaîne ; présent uniquement lorsqueactionest défini surescalation) : raison pour laquelle la conversation a été escaladée.menu_id(entier ; présent uniquement lorsqueactionest défini surescalation) : identifiant du menu vers lequel la conversation doit être transférée.language(chaîne ; présent uniquement lorsqueactionest défini surescalation) : code de langue de la file d'attente de destination.deflection_type(chaîne ; présent uniquement lorsqueactionest défini surdeflection) : type de déviation demandé.sip_parameters(objet ou null ; présent uniquement lorsqueactionestdeflection) : paramètres SIP à transférer dans le cadre de la redirection.
Corps des messages de notification
noti(objet) : corps du message de notification. Les notifications décrivent les événements système qui se sont produits pendant le chat.type(chaîne) : toujoursnoti.event(chaîne) : nom de l'événement de notification.agent(objet ; présent uniquement pour les événements associés à un agent humain) : agent associé à l'événement.id(entier) : identifiant de l'agent.email(chaîne, adresse e-mail) : adresse e-mail de l'agent.name(chaîne) : nom à afficher de l'agent.
from_agent(objet ; présent uniquement pour les événements de transfert avec un agent source) : agent source de l'événement.id(entier) : identifiant de l'agent.email(chaîne, adresse e-mail) : adresse e-mail de l'agent.name(chaîne) : nom à afficher de l'agent.
to_agent(objet ; présent uniquement pour les événements de transfert ou d'escalade avec un agent humain de destination) : agent humain de destination pour l'événement.id(entier) : identifiant de l'agent.email(chaîne, adresse e-mail) : adresse e-mail de l'agent.name(chaîne) : nom à afficher de l'agent.
from_virtual_agent(objet ; présent uniquement pour les événements d'escalade d'un agent virtuel) : agent virtuel source de l'événement.id(entier) : identifiant de l'agent virtuel.name(chaîne) : nom à afficher de l'agent virtuel.avatar_url(chaîne, URI ou null) : URL de l'image de l'avatar de l'agent virtuel.
to_virtual_agent(objet ; présent uniquement pour les événements de transfert vers un agent virtuel) : agent virtuel de destination pour l'événement.id(entier) : identifiant de l'agent virtuel.name(chaîne) : nom à afficher de l'agent virtuel.avatar_url(chaîne, URI ou null) : URL de l'image de l'avatar de l'agent virtuel.
target(chaîne ; présent uniquement pour les événements de transfert) : type de destination du transfert. Les valeurs possibles sontmenuetagent.status(chaîne ; présent uniquement pour les événements associés à un état de chat) : état de chat associé à l'événement.timeout(booléen ; présent uniquement pour les événements liés au délai d'inactivité) : indique si l'événement a été causé par un délai d'inactivité.memberIdentity(chaîne ; présent uniquement pour les événements de participation ou de départ d'un participant) : identité du participant.memberName(chaîne ; présent uniquement pour les événements de participation ou de départ) : nom à afficher du participant.name(chaîne ; présent uniquement pour les événements virtual-agent ou task-va) : nom à afficher associé à l'événement.reason(chaîne ; présent uniquement pour les événements de fin de session task-va) : motif de fin de la session task-va.escalation_reason(chaîne ; présent uniquement pour les événements d'escalade) : motif de l'escalade.deflection(objet ; présent uniquement pour les événements de déviation) : détails de la déviation.detail(objet ; présent uniquement pour les événements de notification personnalisés) : détails de l'événement personnalisé.key(chaîne) : clé d'événement personnalisé.data(objet) : charge utile de l'événement personnalisé.
Noms des événements de notification
Le champ event identifie l'événement de notification. Le fournisseur de chat, qui sert de source unique et fiable, conserve tous les événements de notification de la liste suivante dans le fichier JSON de la transcription. La liste regroupe ces événements par famille.
Demandes d'actions intelligentes
verificationRequestedphotoRequestedvideoRequestedscreenshotRequestedtextRequestedcobrowseRequestedFromAgent
Résultats des actions intelligentes
Terminé :
photoFinished,videoFinished,screenshotFinished,textFinishedAnnulée :
photoCanceled,videoCanceled,screenshotCanceled,textCanceled,cobrowseCanceledÉchec :
photoFailed,videoFailed,screenshotFailed,textFailed,verificationFailed
Validation
endUserVerified
Conavigation
cobrowseRequestedFromEndUsercobrowseCodeGeneratedcobrowseStartedcobrowseEndedcobrowseFailed
Forms
formRequestedformSentformCompleted
Transferts
transferStartedtransferAcceptedtransferFailed
Escalades d'agents virtuels
escalationStartedescalationAcceptedescalationDeflectedescalationFailed
Agent virtuel de tâches
taskVaStartedtaskVaFinished
Abonnement
memberJoinedmemberLeft
Cycle de vie d'une session
chatEndedchatEndedWithPostSessionchatDismissedcheckInRequiredcheckInTimedOuttranscriptRequestedtranscriptUpdated
Personnalisé
custom
Pour les enregistrements dont comm_type est défini sur call, des événements de notification de transcription d'appel supplémentaires peuvent s'afficher. Ces événements sont associés à la gestion des transcriptions d'appels ou d'Agent Assist, plutôt qu'aux familles d'événements de chat ordinaires.
Définitions
Les sous-schémas suivants apparaissent dans le document de métadonnées de la transcription du chat. Cette section définit chaque sous-schéma une seule fois. Les groupes de propriétés qui y font référence renvoient à cette section plutôt que de redéfinir leur forme en ligne.
entry (objet)
Représente un message, une notification ou une action de transcription. Chaque entrée comporte un timestamp d'époque Unix, un type de premier niveau, un objet body dont le type correspond à cette forme, un role d'expéditeur et un objet user_data. Pour obtenir la liste complète des champs, consultez Entrées de transcription.
user_data (objet)
Décrit l'expéditeur d'une entrée de transcription lorsque les métadonnées de l'expéditeur sont disponibles. Les entrées "agent", "manager", "virtual-agent", "external-agent" et "task-virtual-agent" peuvent comporter name, id et avatar_url. Les entrées utilisateur et système contiennent un objet vide.
corps du message (objet, oneOf)
L'objet body de chaque entrée utilise la valeur de body.type pour sélectionner l'une des formes de corps de message compatibles. Les types de corps de message acceptés incluent les corps de texte, les corps de contenu multimédia ou de fichier, les corps interactifs, les corps générés par le serveur, les corps d'action et les corps de notification. Consultez Corps des messages texte et Corps des messages de notification pour obtenir la liste complète des variantes documentées.
Rôle du participant (chaîne, énumération)
Identifie la catégorie de l'expéditeur pour une entrée de transcription.
Valeurs autorisées
end_user: le consommateur.agent: un agent humain.manager: participant administrateur.virtual_agent: un agent virtuel.external_agent: participant agent externe.task_virtual_agent: un agent virtuel de tâches.system: entrée générée par le système.
Gestion des versions et obsolescence
Le document de métadonnées de transcription de chat est compatible avec l'évolution du schéma. Le système peut ajouter de nouveaux champs et de nouvelles variantes de corps de message au fil du temps. Les intégrations doivent ignorer les clés non reconnues pour assurer la continuité des fonctionnalités.
Version actuelle du format
transcript_version(chaîne) : valeur actuelle :"1.0". Les intégrations doivent analyser la transcription en fonction des champs présents dans la charge utile et ne doivent pas échouer si de nouvelles versions ajoutent de nouveaux champs ou types de corps de message.
Types de corps de message inconnus
Lorsqu'une entrée de transcription contient un type ou un body.type non reconnu, conservez l'entrée brute si possible et continuez à analyser le reste de la transcription. Le système peut ajouter de nouveaux types de corps de message sans modifier la signification des champs existants.
Champs obsolètes
Ce document ne liste aucun champ obsolète pour l'enregistrement des métadonnées de la transcription de chat.