Ce document explique le schéma de l'enregistrement de métadonnées de transcription de chat. Il s'agit du fichier JSON généré par Contact Center AI Platform (CCAI Platform) pour une transcription de chat terminée. L'enregistrement des métadonnées de la transcription du chat est produit par l'exportation JSON de l'historique des discussions. Il peut être fourni via des importations de transcriptions CRM et des fichiers de transcription 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 de métadonnées de 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é d'entrées de transcription.
Identifiants de communication comm_type et comm_id
Ensemble, comm_type et comm_id identifient la communication que cet enregistrement de transcription représente.
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 de SMS combiné.comm_idest l'identifiant du chat ou de l'appel représenté par la transcription.
Version du format transcript_version
Identifie la version du format de transcription JSON. 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 d'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 de 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 un contenu de transcription SMS mixte.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-heure) : code temporel de l'attribution du chat.timezone(chaîne) : fuseau horaire du contexte de la transcription, par exemple"America/Los_Angeles".
Entrées de transcription
entries(tableau) : liste numéroté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'epoch Unix, en secondes, indiquant quand le système a créé l'entrée.type(chaîne) : type de corps du message. Cette valeur reflètebody.type. Consultez la section Définitions pour connaître les types de carrosserie acceptés.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 qui a 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 textuel 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 multimédias et des fichiers
photo(objet) : corps du message de la photo ou de la capture d'écran.type(chaîne) : toujoursphoto.media_id(entier) : identifiant du contenu photo stocké.
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 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 du document stocké.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) : détails 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 du 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 persistant.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 fiche 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 de fin 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 de finalisation contient une signature) : signature de la charge utile de finalisation du formulaire.data(objet) : détails du 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-heure) : code temporel de l'événement de remplissage du formulaire. Il est différent de l'élémenttimestampd'entrée, qui est un code temporel d'époque Unix entier en secondes.details(objet ; présent uniquement lorsque la charge utile fournit des détails supplémentaires sur l'achèvement) : détails 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 complétion.message(chaîne) : détails de l'état lisibles par l'humain.
Corps de message générés par le serveur et de type passthrough
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 de tâche 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 stocké sur le serveur.visibility(chaîne ou valeur nulle) : paramètre de visibilité du message du serveur stocké.
passthrough(objet) : charge utile personnalisée que le système transmet via 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 CCAI Platform. 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 lorsqueactionestescalation) : 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 escaladé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 lorsqueactionestdeflection) : type de déviation demandé.sip_parameters(objet ou valeur nulle ; présent uniquement lorsqueactionest défini surdeflection) : paramètres SIP à transférer dans le cadre de la déviation.
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 la discussion.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 valeur nulle) : 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 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 valeur nulle) : 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 comportant un état de chat) : état de chat associé à l'événement.timeout(booléen ; présent uniquement pour les événements liés à un délai d'inactivité) : indique si un délai d'inactivité a provoqué l'événement.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 d'un participant) : 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 tâche-va) : raison pour laquelle la session de tâche-va s'est terminée.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 de vérité, 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.
Requêtes d'actions intelligentes
verificationRequestedphotoRequestedvideoRequestedscreenshotRequestedtextRequestedcobrowseRequestedFromAgent
Résultats des actions intelligentes
- Terminé :
photoFinished,videoFinished,screenshotFinished,textFinished - Annulé :
photoCanceled,videoCanceled,screenshotCanceled,textCanceled - Éléments non importés :
photoFailed,videoFailed,screenshotFailed,textFailed,verificationFailed
Validation
endUserVerified
Co-navigation
cobrowseRequestedFromEndUsercobrowseCodeGeneratedcobrowseStartedcobrowseEndedcobrowseFailed
Forms
formRequestedformSentformCompleted
Transferts
transferStartedtransferAcceptedtransferFailed
Escalades d'agent virtuel
escalationStartedescalationAcceptedescalationDeflectedescalationFailed
Agent virtuel de tâches
taskVaStartedtaskVaFinished
Abonnement
agentJoinedmemberJoinedmemberLeft
Cycle de vie de la session
chatEndedchatEndedWithPostSessionchatDismissedchatReactivatedcheckInRequiredcheckInTimedOuttranscriptRequestedtranscriptUpdated
Personnalisé
custom
Pour les enregistrements dont le champ 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 au traitement 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 transcription de chat. Cette section définit chaque sous-schéma une seule fois. Les groupes de propriétés qui les référencent renvoient à cette section plutôt que de redéfinir leur forme de manière intégrée.
entry (objet)
Représente un message, une notification ou une action de transcription. Chaque entrée comporte un timestamp d'epoch 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 contenir name, id et avatar_url. Les entrées de consommateur et de 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 acceptés incluent les corps de texte, les corps de mé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 les sections Corps des messages texte à 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: un agent externe participant.task_virtual_agent: agent virtuel de tâches.system: entrée générée par le système.
Gestion des versions et abandons
Le document de métadonnées de transcription de chat est compatible avec l'évolution du schéma rétrocompatible. Le système peut ajouter de nouveaux champs et des variantes de corps de message au fil du temps. Les intégrations doivent ignorer les clés non reconnues pour garantir un fonctionnement continu.
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 futures 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 de métadonnées de transcription de chat.