In diesem Dokument wird das Schema des Metadatensatzes für Chat-Transkripte erläutert. Dies ist die JSON-Datei, die von der Contact Center AI Platform (CCAI Platform) für ein abgeschlossenes Chat-Transkript generiert wird. Der Metadatensatz für das Chat-Transkript wird durch den JSON-Export des Chatverlaufs erstellt und kann je nach Instanzkonfiguration über CRM-Transkript-Uploads und Transkriptdateien im externen Speicher bereitgestellt werden. Mit diesem Schema können Sie JSON-Transkripte parsen, empfangene Nutzlasten validieren oder Transkriptnachrichten in Downstream-Systeme übertragen.
Schemastamm
Der Metadatensatz für das Chat-Transkript ist ein einzelnes JSON-Objekt, das ein Chat-Transkript-Artefakt darstellt. Die Felder auf der Stammebene identifizieren die Kommunikation, die Version des Transkriptformats und die geordnete Menge der Transkripteinträge.
Kommunikations-IDs comm_type und comm_id
comm_type und comm_id identifizieren zusammen die Kommunikation, die in diesem Transkript aufgezeichnet wird.
comm_typegibt den Kommunikationstyp an. Der Wert ist in der Regelchat. Es kanncallfür einen Sprachanruf sein, der gemischte SMS-Transkriptinhalte enthält.comm_idist die Kennzeichnung des Chats oder Anrufs, der im Transkript dargestellt wird.
Formatversion transcript_version
Gibt die Version des JSON-Transkriptformats an. Integrationen sollten dieses Feld für das zukunftssichere Parsen verwenden und unbekannte Felder ignorieren.
Eintragsdiskriminator – entries[].type und entries[].body.type
Jedes Element in entries steht für eine Transkriptnachricht oder ein Transkriptereignis. Das Feld type auf Einstiegsniveau entspricht dem Nachrichtentyp. Das verschachtelte body-Objekt enthält die Nutzlast, deren Form je nach Typ variiert, z. B. text, markdown, photo, noti oder action.
Metadatenschema für Chattranskripte
In diesem Schema wird die Datenstruktur von Chat-Transkripten beschrieben. In den folgenden Abschnitten werden die wichtigsten Komponenten beschrieben.
Wichtige Transkriptinformationen
Die folgenden Eigenschaften enthalten die grundlegenden Informationen zum Transkript selbst:
comm_type(String): Der Kommunikationstyp, den das Transkript darstellt. Mögliche Werte:chat,call. Der Wertcallgibt einen Sprachanruf mit gemischten SMS-Transkriptinhalten an.comm_id(Ganzzahl): Eindeutige Kennung der Kommunikation, die durch das Transkript dargestellt wird.transcript_version(String): Version des JSON-Formats für das Transkript. Der aktuelle Wert ist"1.0". Weitere Informationen finden Sie unter Versionsverwaltung und Einstellung.assigned_at(string, date-time): Zeitstempel für die Zuweisung des Chats.timezone(String): Zeitzone für den Transkriptkontext, z. B."America/Los_Angeles".
Transkripteinträge
entries(Array): Geordnete Liste der Transkript-Einträge. Jeder Eintrag steht für eine Nachricht, Benachrichtigung oder Aktion in der Unterhaltung.timestamp(Ganzzahl): Unix-Epochen-Zeitstempel in Sekunden, als der Eintrag vom System erstellt wurde.type(String): Typ des Inhalts der Nachricht. Dieser Wert entsprichtbody.type. Informationen zu den unterstützten Body-Typen finden Sie unter Definitionen.body(Objekt): Nutzlast des Eintrags. Die Form hängt vom Wert vontype/body.typeab.role(String): Rolle des Teilnehmers oder der Systemkomponente, die den Eintrag erstellt hat. Mögliche Werte:end_user,agent,manager,virtual_agent,external_agent,task_virtual_agent,system.user_data(Objekt): Metadaten des Absenders. Für Einträge vom Typagent,manager,virtual_agent,external_agentundtask_virtual_agententhält dieses Objekt die Anzeigedaten des Absenders. Beiend_user- undsystem-Einträgen ist dieses Objekt leer.name(String; nur vorhanden, wenn Metadaten des Absenders verfügbar sind): Anzeigename des Absenders.id(Ganzzahl; nur vorhanden, wenn Absender-Metadaten verfügbar sind): Kennung des Absenders.avatar_url(string, uri; nur vorhanden, wenn Metadaten des Absenders verfügbar sind): URL des Avatarbilds des Absenders.
Nachrichtentexte
text(Objekt): Nur-Text-Nachrichtentext.type(String): Immertext.content(String): Nachrichtentext.lang(String; nur vorhanden, wenn Sprachmetadaten verfügbar sind): Der mit der Nachricht verknüpfte Sprachcode.
text_template(Objekt): Inhalt der Nachricht mit Vorlagen.type(String): Immertext_template.content(String): Vorlagentext.
markdown(Objekt): Markdown-formatierter Inhalt der Nachricht.type(String): Immermarkdown.content(String): Markdown-Inhalt.lang(String; nur vorhanden, wenn Sprachmetadaten verfügbar sind): Der mit der Nachricht verknüpfte Sprachcode.
markdown_template(object): Vorlagenbasierter Markdown-Inhalt der Nachricht.type(String): Immermarkdown_template.content(String): Markdown-Vorlageninhalt.
Inhalte von Medien- und Dateinachrichten
photo(Objekt): Inhalt der Nachricht für Foto oder Screenshot.type(String): Immerphoto.media_id(Ganzzahl): Kennung der gespeicherten Fotomedien.
video(Objekt): Inhalt der Videonachricht.type(String): Immervideo.media_id(Ganzzahl; vorhanden, wenn das System das Video als CCAI Platform-Media speichert): Kennung der gespeicherten Videomedia.title(String; vorhanden, wenn ein eingebettetes Videoobjekt das Video darstellt): Titel des Videos.video(Objekt; vorhanden, wenn ein eingebettetes Videoobjekt das Video darstellt): Videodetails.url(string, uri): URL des Videos.text(String): Textalternative oder Fallback-URL für das Video.
image(Objekt): Inhalt der Bildnachricht.type(String): Immerimage.title(String; vorhanden, wenn der Absender der Nachricht ihn angibt): Titel des Bildes.image(Objekt): Bilddetails.url(String, URI): URL des Bildes.text(String): Textalternative oder Fallback-URL für das Bild.
document(Objekt): Inhalt der Nachricht des Dokuments.type(String): Immerdocument.media_id(Ganzzahl; vorhanden, wenn das System das Dokument als CCAI Platform-Media speichert): Kennung der gespeicherten Dokument-Media.title(String; vorhanden, wenn ein eingebettetes Dokumentobjekt das Dokument darstellt): Titel des Dokuments.document(Objekt; vorhanden, wenn ein eingebettetes Dokumentobjekt das Dokument darstellt): Dokumentdetails.url(string, uri): URL des Dokuments.text(String): Textalternative oder Fallback-URL für das Dokument.
audio(object): Der Inhalt der Audionachricht.type(String): Immeraudio.media_id(Ganzzahl; vorhanden, wenn das System die Audioinhalte als CCAI Platform-Medien speichert): Kennung der gespeicherten Audioinhalte.title(String; vorhanden, wenn ein eingebettetes Audioobjekt die Audiodatei darstellt): Titel der Audiodatei.audio(Objekt; vorhanden, wenn ein eingebettetes Audioobjekt die Audiodatei darstellt): Audiodetails.url(string, uri): URL der Audiodatei.text(String): Textalternative oder Fallback-URL für die Audiodatei.
Interaktive Nachrichtentexte
inline_button(Objekt): Textkörper der Inline-Schaltflächennachricht.type(String): Immerinline_button.title(String): Titel, der über den Schaltflächen angezeigt werden soll.buttons(Array): Liste der Schaltflächendefinitionen.title(String): Beschriftung der Schaltfläche.action(String): Die mit dem Button verknüpfte Aktion.link(String, URI; nur bei Kurzantworten im Linkstil vorhanden): URL, die der Schaltfläche zugeordnet ist.
sticky_button(Objekt): Inhalt der Nachricht mit fixiertem Button.type(String): Immersticky_button.title(String): Titel, der über den Schaltflächen angezeigt werden soll.buttons(Array): Liste der Schaltflächendefinitionen.title(String): Beschriftung der Schaltfläche.action(String): Die mit dem Button verknüpfte Aktion.link(String, URI; nur bei Kurzantworten im Linkstil vorhanden): URL, die der Schaltfläche zugeordnet ist.
content_card(Objekt): Inhalt der Nachricht der Inhaltskarte.type(String): Immercontent_card.cards(Array): Liste der Inhaltskarten.title(String): Titel der Karte.body(String; nur vorhanden, wenn Sie den Text des Karteninhalts konfigurieren): Text des Karteninhalts.
form_complete(object): Nachrichtentext für den Abschluss des Formulars, den der Client sendet, wenn ein Nutzer ein Formular ausfüllt, nicht ausfüllt oder abbricht.type(String): Immerform_complete.signature(String; nur vorhanden, wenn das Abschlussereignis eine Signatur enthält): Signatur für die Nutzlast zum Abschließen des Formulars.data(Objekt): Details zum Ausfüllen des Formulars.status(String): Abschlussstatus. Mögliche Werte:success,error,cancelled.smart_action_id(Ganzzahl): Die Kennung der mit dem Formular verknüpften Smart Action.timestamp(String, Datum/Uhrzeit): Zeitstempel für das Ereignis „Formular ausgefüllt“. Das unterscheidet sich vom Einstiegs-timestamp, der ein ganzzahliger Unix-Epochen-Zeitstempel in Sekunden ist.details(Objekt; nur vorhanden, wenn die Nutzlast zusätzliche Abschlussdetails enthält): Zusätzliche Statusdetails.error_code(String; nur bei Fehlern mit einem Code vorhanden): Fehlercode, der dem Vervollständigungsergebnis zugeordnet ist.message(String): Für Menschen lesbare Statusdetails.
Vom Server generierte und durchgeleitete Nachrichtentexte
server_message(Objekt): Vom Server generierter Inhalt der Nachricht. Das Transkript enthältserver_message-Einträge nur, wenn Sie die Inhalte von Transkripten des virtuellen Kundenservicemitarbeiters für Ihr Konto aktivieren. Andernfalls werden diese Einträge im Transkript ausgelassen. Verwenden Sie dieses Objekt, wenn sich das Transkript auf eine gespeicherte serverseitige Nachricht bezieht.type(String): Immerserver_message.message_id(Ganzzahl): Kennzeichnung der gespeicherten Servernachricht.visibility(string oder null): Sichtbarkeitseinstellung für die gespeicherte Servernachricht.
passthrough(object): Eine benutzerdefinierte Nutzlast, die das System über die CCAI-Plattform für eine Integration mit einem virtuellen Kundenservicemitarbeiter oder CCaaS weiterleitet. Ihre Integration definiert ihrecontent, die nicht Teil des CCAI-Plattformschemas ist. Behandeln Sie sie als undurchsichtig.type(String): Immerpassthrough.content(String oder Objekt): Integrationsdefinierte Nutzlast. Die Struktur variiert je nach Integration und wird von der CCAI Platform nicht interpretiert.
Nachrichtentexte für Aktionen
action(Objekt): Aktion, die von einem virtuellen Kundenservicemitarbeiter oder Chatbot-Ablauf angefordert wird. Das Feldactionbestimmt die Form der Aktionsnutzlast.type(String): Immeraction.action(String): Aktionstyp. Mögliche Werte sindescalation,deflectionundend.escalation_reason(String; nur vorhanden, wennactionescalationist): Grund für die Eskalierung der Unterhaltung.menu_id(Ganzzahl; nur vorhanden, wennactiongleichescalationist): Kennung des Menüs, an das die Unterhaltung eskaliert werden soll.language(String; nur vorhanden, wennactiongleichescalationist): Sprachcode der Zielwarteschlange.deflection_type(String; nur vorhanden, wennactiongleichdeflectionist): Typ der angeforderten Umleitung.sip_parameters(Objekt oder Null; nur vorhanden, wennactiongleichdeflectionist): SIP-Parameter, die als Teil der Umleitung weitergeleitet werden sollen.
Nachrichtentexte von Benachrichtigungen
noti(object): Inhalt der Nachricht. Benachrichtigungen beschreiben Systemereignisse, die während des Chats aufgetreten sind.type(String): Immernoti.event(String): Name des Benachrichtigungsereignisses.agent(Objekt; nur für Ereignisse, die mit einem menschlichen Kundenservicemitarbeiter verknüpft sind): Der mit dem Ereignis verknüpfte Kundenservicemitarbeiter.id(Ganzzahl): Agent-ID.email(String, E-Mail): E-Mail-Adresse des Kundenservicemitarbeiters.name(String): Anzeigename des Agents.
from_agent(Objekt; nur für Übertragungsereignisse mit einem Quell-Agent vorhanden): Quell-Agent für das Ereignis.id(Ganzzahl): Agent-ID.email(String, E-Mail): E-Mail-Adresse des Kundenservicemitarbeiters.name(String): Anzeigename des Agents.
to_agent(Objekt; nur für Transfer- oder Eskalierungsereignisse mit einem Ziel-Kundenservicemitarbeiter vorhanden): Ziel-Kundenservicemitarbeiter für das Ereignis.id(Ganzzahl): Agent-ID.email(String, E-Mail): E-Mail-Adresse des Kundenservicemitarbeiters.name(String): Anzeigename des Agents.
from_virtual_agent(object; present only for escalation events from a virtual agent): Source virtual agent for the event.id(Ganzzahl): Kennung des virtuellen Kundenservicemitarbeiters.name(String): Anzeigename des virtuellen Agenten.avatar_url(String, URI oder Null): URL des Avatarbilds des virtuellen Kundenservicemitarbeiters.
to_virtual_agent(object; nur für Transferereignisse an einen virtuellen Kundenservicemitarbeiter vorhanden): Ziel-Virtual Agent für das Ereignis.id(Ganzzahl): Kennung des virtuellen Kundenservicemitarbeiters.name(String): Anzeigename des virtuellen Agenten.avatar_url(String, URI oder Null): URL des Avatarbilds des virtuellen Kundenservicemitarbeiters.
target(String; nur für Übertragungsereignisse vorhanden): Zieltyp der Übertragung. Mögliche Werte sindmenuundagent.status(String; nur für Ereignisse mit Chatstatus vorhanden): Der mit dem Ereignis verknüpfte Chatstatus.timeout(boolesch; nur bei Ereignissen im Zusammenhang mit Zeitüberschreitungen vorhanden): Gibt an, ob das Ereignis durch eine Zeitüberschreitung verursacht wurde.memberIdentity(String; nur bei Ereignissen zum Beitreten oder Verlassen von Teilnehmern vorhanden): Identität des Teilnehmers.memberName(String; nur bei Ereignissen zum Beitreten oder Verlassen von Teilnehmern vorhanden): Anzeigename des Teilnehmers.name(String; nur für Ereignisse vom Typ „virtual-agent“ oder „task-va“): Anzeigename, der dem Ereignis zugeordnet ist.reason(String; nur bei Ereignissen zum Abschluss von Task-VA vorhanden): Grund für das Ende der Task-VA-Sitzung.escalation_reason(String; nur bei Eskalierungsereignissen vorhanden): Grund für die Eskalierung.deflection(Objekt; nur für Ablenkungsereignisse vorhanden): Details zur Ablenkung.detail(Objekt; nur für benutzerdefinierte Benachrichtigungsereignisse vorhanden): Details zum benutzerdefinierten Ereignis.key(String): Schlüssel für benutzerdefiniertes Ereignis.data(Objekt): Nutzlast des benutzerdefinierten Ereignisses.
Namen von Benachrichtigungsereignissen
Das Feld event gibt das Benachrichtigungsereignis an. Der Chat-Anbieter, der als zentrale Informationsquelle dient, speichert alle Benachrichtigungsereignisse in der folgenden Liste im Transkript-JSON. In der Liste werden diese Ereignisse nach Familie gruppiert.
Anfragen für Smart Actions
verificationRequestedphotoRequestedvideoRequestedscreenshotRequestedtextRequestedcobrowseRequestedFromAgent
Ergebnisse von Smart Actions
Abgeschlossen:
photoFinished,videoFinished,screenshotFinished,textFinishedAbgebrochen:
photoCanceled,videoCanceled,screenshotCanceled,textCanceled,cobrowseCanceledFehler:
photoFailed,videoFailed,screenshotFailed,textFailed,verificationFailed
Überprüfung
endUserVerified
Co-Browsing
cobrowseRequestedFromEndUsercobrowseCodeGeneratedcobrowseStartedcobrowseEndedcobrowseFailed
Formulare
formRequestedformSentformCompleted
Übertragungen
transferStartedtransferAcceptedtransferFailed
Eskalierungen durch virtuelle Kundenservicemitarbeiter
escalationStartedescalationAcceptedescalationDeflectedescalationFailed
Virtueller Kundenservicemitarbeiter für Aufgaben
taskVaStartedtaskVaFinished
Mitgliedschaft
memberJoinedmemberLeft
Sitzungslebenszyklus
chatEndedchatEndedWithPostSessionchatDismissedcheckInRequiredcheckInTimedOuttranscriptRequestedtranscriptUpdated
Benutzerdefiniert
custom
Bei Datensätzen, bei denen comm_type auf call gesetzt ist, können zusätzliche Benachrichtigungsereignisse für Anruftranskripte angezeigt werden. Diese Ereignisse sind mit der Verarbeitung von Anruf- oder Agent Assist-Transkripten verknüpft und nicht mit den üblichen Chat-Ereignisfamilien.
Definitionen
Die folgenden Unterschemas sind im Metadatendokument für das Chat-Transkript enthalten. In diesem Abschnitt wird jedes Unterschema einmal definiert. Auf Eigenschaftsgruppen, die darauf verweisen, wird in diesem Abschnitt verwiesen, anstatt ihre Form inline neu zu definieren.
Eintrag (Objekt)
Stellt eine Transkriptnachricht, ‑benachrichtigung oder ‑aktion dar. Jeder Eintrag hat eine timestamp im Unix-Epoch-Format, eine type auf oberster Ebene, ein body-Objekt, dessen Typ mit dieser Form übereinstimmt, einen Absender role und ein user_data-Objekt. Eine vollständige Liste der Felder finden Sie unter Transkriptions-Einträge.
user_data (Objekt)
Beschreibt den Absender eines Transkriptionsbeitrags, wenn Absendermetadaten verfügbar sind. Einträge für Kundenservicemitarbeiter, Manager, virtuelle Kundenservicemitarbeiter, externe Kundenservicemitarbeiter und virtuelle Kundenservicemitarbeiter für Aufgaben können name, id und avatar_url enthalten. Einträge für Verbraucher und Systeme enthalten ein leeres Objekt.
Inhalt der Nachricht (Objekt, oneOf)
Das body-Objekt in jedem Eintrag verwendet den Wert von body.type, um eine der unterstützten Formen für den Nachrichtentext auszuwählen. Unterstützte Textkörper sind Textkörper, Media- oder Dateikörper, interaktive Körper, servergenerierte Körper, Aktionskörper und Benachrichtigungskörper. Eine vollständige Liste der dokumentierten Varianten finden Sie unter Nachrichtentexte bis Benachrichtigungstexte.
participant role (String, Enum)
Gibt die Absenderkategorie für einen Transkriptionsbeitrag an.
Zulässige Werte
end_user– Der Verbraucher.agent: Ein menschlicher Kundenservicemitarbeiter.manager: Ein Teilnehmer mit Administratorrolle.virtual_agent: Ein virtueller Kundenservicemitarbeiter.external_agent– Ein Teilnehmer mit einem externen KI-Agenten.task_virtual_agent: Ein virtueller Kundenservicemitarbeiter für Aufgaben.system: Ein vom System generierter Eintrag.
Versionsverwaltung und Einstellung
Das Metadatendokument für Chat-Transkripte unterstützt die abwärtskompatible Schemaentwicklung. Das System kann im Laufe der Zeit neue Felder und Varianten für den Nachrichtentext hinzufügen. Integrationen sollten alle nicht erkannten Schlüssel ignorieren, um die Funktionalität aufrechtzuerhalten.
Aktuelle Formatversion
transcript_version(String) – Aktueller Wert:"1.0". Integrationen sollten das Transkript anhand der in der Nutzlast vorhandenen Felder parsen und nicht fehlschlagen, wenn in zukünftigen Versionen neue Felder oder Nachrichtentypen hinzugefügt werden.
Unbekannte Nachrichtentypen
Wenn ein Transkript-Eintrag ein nicht erkanntes type oder body.type enthält, behalten Sie den Rohdateneintrag nach Möglichkeit bei und setzen Sie die Analyse des restlichen Transkripts fort. Das System kann neue Nachrichtentypen hinzufügen, ohne die Bedeutung vorhandener Felder zu ändern.
Eingestellte Felder
In diesem Dokument sind keine eingestellten Felder für den Metadatensatz des Chat-Transkripts aufgeführt.