In diesem Dokument wird das JSON-Schema erläutert, das zum Strukturieren von Metadaten für Anrufsitzungen verwendet wird. Dieses Schema ist entscheidend für die genaue Darstellung und Verarbeitung von Anrufsitzungen.
Schema für Metadaten von Anrufsitzungen
Dieses Schema beschreibt die Struktur von Daten, die sich auf Metadaten von Anrufsitzungen beziehen. Die wichtigsten Komponenten werden in den folgenden Abschnitten beschrieben.
Wichtige Informationen
Diese Properties enthalten die wichtigsten Informationen zum Anruf:
id(Ganzzahl). Die Kennung für jede Anrufsitzung. Dies ist der Primärschlüssel, der einen Anruf von einem anderen unterscheidet.lang(String). Der während des Anrufs verwendete ISO 689-Sprachcode, z. B.enfür Englisch oderesfür Spanisch. Das ist für sprachspezifische Analysen und Berichte unerlässlich.call_type(String). Der Typ des Anrufs, der eine Legacy-Gruppe von Typen verwendet. Beispiele sind „Voice Inbound (App)“, „Voice Outbound“ und „Voice Internal“. So lassen sich Anrufe nach Herkunft und Zweck kategorisieren.session_type(String): ein Duplikat von „call_type“session_type_v2(String). Der Typ des Anrufs, der mit dem aktuellen Satz von Typen verwendet wird. Ähnlich wie „call_type“, aber mit detaillierteren Unterscheidungen, z. B. „Voice Inbound (Mobile)“ oder „Voice Inbound (IVR using Mobile)“.status(String). Der aktuelle Status des Anrufs. Mögliche Werte sindscheduled,queued,connected,finished,failedunddeflected. So wird der Fortschritt des Anrufs im Laufe seines Lebenszyklus verfolgt.subStatus(String). Bietet einen detaillierteren Status des Anrufs. Mögliche Werte sindwaiting_for_agent,in_queueundconnected_with_agent.created_at(string, date-time): Der genaue Zeitstempel, zu dem der Anrufdatensatz erstellt wurde.queued_at(String, Datum/Uhrzeit oder Null): Der Zeitstempel, zu dem der Anruf in die Warteschlange eingegangen ist, oder Null, wenn er nie in die Warteschlange eingereiht wurde.assigned_at(String, Datums-/Zeitangabe oder Null): Der Zeitstempel, als der Anruf einem Kundenservicemitarbeiter zugewiesen wurde, oder Null, wenn er nicht zugewiesen wurde.connected_at(String, Datum/Uhrzeit oder Null): Der Zeitstempel, zu dem die Verbindung erfolgreich hergestellt wurde.ends_at(String, Datum/Uhrzeit oder null): Der Zeitstempel, zu dem der Anruf beendet wurde.scheduled_at(String, Datum/Uhrzeit oder null): Der Zeitstempel, an dem der Anruf geplant wurde, oder null, wenn es sich um einen sofortigen Anruf handelte.updated_at(string, date-time): Der Zeitstempel der letzten Änderung der Anrufdaten.wait_duration(Ganzzahl): Die Gesamtzeit, die der Kunde gewartet hat, in Sekunden.call_duration(Ganzzahl): die Gesamtdauer des Anrufs in Sekundenhold_duration(Ganzzahl): Die Gesamtzeit, die der Kunde in der Warteschleife verbracht hat, in Sekunden, oder „null“, wenn es keine Wartezeit gab.rating(Ganzzahl oder „null“): Die vom Kunden angegebene Bewertung der Kundenzufriedenheit (CSAT) oder „null“, wenn keine Bewertung abgegeben wurdehas_feedback(boolesch): Ein Flag, das angibt, ob der Kunde nach dem Anruf Feedback gegeben hat.voip_provider(String): Der für den Anruf verwendete VoIP-Anbieter. Dieses Feld ist veraltet und gibt immerdeprecatedzurück.out_ticket_id(String): Die Kennung des im externen CRM-System erstellten Tickets.out_ticket_url(string, uri): die URL des CRM-Ticketsis_out_ticket_account(boolesch): Gibt an, ob das CRM-Ticket einen Kunden (true) oder eine Anrufinteraktion (false) darstellt.verified(boolesch): Gibt an, ob die Interaktion über die Smart Action zur Bestätigung bestätigt wurde.recording_url(String, URI oder Null): Die URL der Anrufaufzeichnung oder Null, wenn keine Aufzeichnung verfügbar ist.recording_permission(String). Der Status der Aufzeichnungsberechtigung des Kunden. Mögliche Werte sindnot_asked,grantedoderdenied.voicemail_reason(String). Der Grund, warum eine Mailboxnachricht hinterlassen wurde (falls zutreffend). Zu den Optionen gehörennot_voicemail,temporary_redirectionundafter_hour_deflection.
Informationen zu Agenten und virtuellen Kundenservicemitarbeitern
In diesen Abschnitten wird erläutert, wer oder was den Anruf bearbeitet hat:
agent_info(Objekt). Dieses Feld kann Informationen zu einem menschlichen oder virtuellen Kundenservicemitarbeiter enthalten. Mit dem Keyword „one of“ wird angegeben, dass es sich um einen von zwei Typen handeln kann.agent(Objekt): Informationen zum menschlichen Kundenservicemitarbeiter:id(Ganzzahl): die ID des Agentenagent_number(String oder null): Eine dem Agenten zugewiesene Kennung.email(string, email): die E-Mail-Adresse des KI-Agentenname(String): Der vollständige Name des Kundenservicemitarbeiterslast_name(String): Der Nachname des Kundenservicemitarbeitersfirst_name(String): Der Vorname des Kundenservicemitarbeitersavatar_url(String, URI): Die URL des Avatarbilds des Agenten.
virtual_agent(Objekt): Informationen zum virtuellen Kundenservicemitarbeiter:id(Ganzzahl): die ID des virtuellen Agentenname(String): Der Name des virtuellen Kundenservicemitarbeitersavatar_url(string, uri): Die URL des Avatarbilds des virtuellen Kundenservicemitarbeiters.
Menünavigation
selected_menu(Objekt oder Null): Informationen zum Menü, das der Kunde während des Anrufs ausgewählt hatid(Ganzzahl): die ID des Menüsname(String): Der Name des Menüsparent_id(Ganzzahl oder null): die ID des übergeordneten Menüs, sofern vorhandenposition(Ganzzahl): Die Menüposition relativ zu anderen Menüs auf derselben Ebene.deleted(boolesch): Gibt an, ob das Menü gelöscht wurde.menu_type(String): Der Menütyp. Beispiel:ivr_menuodersms_menu.hidden(boolesch): Gibt an, ob das Menü sichtbar und verfügbar ist.
menu_path(Objekt oder null): Beschreibt den hierarchischen Pfad der Menüs, die der Kunde aufgerufen hat.items_count(Ganzzahl): Die Anzahl der Menüs im Pfad.name(String): Ein durch Schrägstriche getrennter String mit Menünamen. Beispiel: dupport oder billing.materialized_path(String): ein durch Schrägstriche getrennter String mit Menü-IDs
Endnutzerdetails
end_user(Objekt): Informationen zum Kundenid(Ganzzahl): die interne ID des Kundenidentifier(String oder Null): Eine externe Kennung für den Kundenout_contact_id(String oder null): Die ID des Kunden im CRM
Anrufumleitung
deflection(String): Gibt an, ob und wie der Anruf umgeleitet wurde. Beispiele:no_deflection,over_cap_phone,after_hours_voicemail.deflection_details(Array): Enthält ein detailliertes Protokoll der Umleitungen, die während des Anrufs aufgetreten sind. Jeder Eintrag enthält:id(Ganzzahl): die ID des Datensatzes für die Ablenkungsprotokollierungcall_id(Ganzzahl): die ID des Anrufstransfer_id(Ganzzahl oder null): Die ID des Transfers, der mit der Weiterleitung verknüpft ist, falls zutreffend.deflection(String): Der Typ der Ablenkungcreated_at(string, date-time): Zeitstempel für den Zeitpunkt, zu dem die Ablenkung aufgetreten istfrom_menu_path(object oder null): Menüpfad, von dem der Anruf abgeleitet wurdeto_menu_path(Objekt oder Null): Menüpfad, zu dem der Anruf umgeleitet wurdeto_sip_uri(String oder null): SIP-URI, an die der Anruf weitergeleitet wurde, falls zutreffendto_sip_headers(Objekt): SIP-Header, mit denen der Anruf weitergeleitet wurde, falls zutreffend
Dauer der Anrufbehandlung
handle_durations(Array): Ein Array von Objekten, die jeweils ein Segment des Anrufs darstellen, das von einem Kundenservicemitarbeiter bearbeitet wurde. Das ist nützlich, um die Bearbeitungszeit von Kundenservicemitarbeitern zu analysieren.id(Ganzzahl): Die Kennzeichnung für die Dauer des Vorgangsagent_id(Ganzzahl): ID des Agentenacw_duration(Ganzzahl): Dauer der Anrufnachbereitungbcw_duration(Ganzzahl): Dauer der Arbeit vor dem Anrufcall_duration(Ganzzahl): Anrufdauer während dieses Segmentsmenu_path_id(String oder null): ID des Menüpfadsmenu_path(String): Name des Menüpfadslang(String): verwendete Sprachebarged(boolesch): Gibt an, ob in den Anruf eingegriffen wurde.transfer(boolesch): Gibt an, ob eine Übertragung stattgefunden hat.transfer_id(String oder null): ID der Übertragungtransfer_cold(boolesch oder null): Gibt an, ob die Weiterleitung ohne Rücksprache erfolgte.started_at(String, Datum/Uhrzeit): Start-Zeitstempelended_at(String, Datum/Uhrzeit): End-Timestampscheduled_at(string, date-time oder null): geplanter Zeitstempelhold_duration(Ganzzahl oder null): Dauer der Hold-Phase während dieses Segmentsassigned_connection_duration(Ganzzahl): Dauer, die der Endnutzer gewartet hat, während der Agent in dieser Phase verbunden warsession_breakthrough(Objekt): Details zur Zuweisung des Anrufs, der den Status „Nicht verfügbar“ eines Kundenservicemitarbeiters durchbricht, sofern zutreffend
Warteschlangendauer
queue_durations(Array): Ein Array von Objekten, die jeweils ein Segment des Anrufs darstellen, in dem sich der Kunde in einer Warteschleife befand. Das ist entscheidend für die Analyse von Wartezeiten und Servicelevels.id(Ganzzahl): Die Kennzeichnung für die Warteschlangendaueragent_id(Ganzzahl): ID des Agentenended_at(String, Datum/Uhrzeit): End-Timestamplang(String): verwendete Sprachemenu_path_id(Ganzzahl): ID des Menüpfadsmenu_path(String): Name des Menüpfadsqueue_duration(Ganzzahl): Dauer des Warteschlangensegmentsstarted_at(String, Datum/Uhrzeit): Start-Zeitstempeltransfer_cold(boolesch): Gibt an, ob der Anruf ohne Rücksprache weitergeleitet wurde.transfer(boolesch): Gibt an, ob eine Übertragung stattgefunden hat.transfer_id(Ganzzahl): ID des Transfersservice_level_abandon_time_threshold(Ganzzahl): Zeitgrenzwert für das Verlassen des Servicelevelsservice_level_event(String): Der Status des Ereignisses auf Serviceebene. Beispiele: —excluded,in_sla,not_in_sla.service_level_target_percent(Ganzzahl): Zielprozentsatz für die Einhaltung des Service-Levelsservice_level_target_time(Ganzzahl): Zielzeit für die Einhaltung des Servicelevels
Eskalierungen durch virtuelle Kundenservicemitarbeiter
virtual_agent_deflected_escalations(Array): Details zu Eskalierungen von virtuellen Kundenservicemitarbeitern, die abgewiesen wurdenid(Ganzzahl): die IDdeflection(String): Ablenkungstypescalation_id(Ganzzahl): ID des Eskalierungsereignissesescalation_reason(String): Grund für die Eskalationescalated_at(string, date-time): Eskalierungs-Zeitstempelmenu_path_id(Ganzzahl): Menüpfad-IDmenu_path(String): Menüpfadlang(String): Sprachevirtual_agent(Objekt): Details zum virtuellen Kundenservicemitarbeiter
Dauer der Verarbeitung durch virtuelle Kundenservicemitarbeiter
virtual_agent_handle_durations(Array): Zeitsegmente, in denen der Anruf von einem virtuellen Kundenservicemitarbeiter bearbeitet wurdeid(Ganzzahl): die IDvirtual_agent(Objekt): Details zum virtuellen Kundenservicemitarbeitercall_duration(Ganzzahl): Dauer des Segmentsescalation_reason(String): Grund für die Eskalationfinish_reason(String): Grund für das Ende der Interaktionsentiment(Ganzzahl): Stimmung des Endnutzersresponse_count(Ganzzahl): Anzahl der Antworten des virtuellen Kundenservicemitarbeitersfallback_response_count(Ganzzahl): Anzahl der Fallback-Antworteninitiated_by(String): Gibt an, wie die Sitzung mit dem virtuellen Kundenservicemitarbeiter initiiert wurde.menu_path_id(Ganzzahl): Menüpfad-IDmenu_path(String): Menüpfadlang(String): Sprachetransfer(boolesch): Gibt an, ob der Anruf weitergeleitet wurde.transfer_id(Ganzzahl): Kennung des Übertragungsereignissesstarted_at(String, Datum/Uhrzeit): Start-Zeitstempelended_at(String, Datum/Uhrzeit): End-Timestamp
Bearbeitungszeiten für Endnutzer
consumer_handle_durations(Array): Dauer des Anrufs für den Endnutzerid(Ganzzahl): die IDcall_duration(Ganzzahl): Dauer des Endnutzersegmentshold_duration(Ganzzahl): Dauer des Holds für den Endnutzerstarted_at(String, Datum/Uhrzeit): Start-Zeitstempelended_at(String, Datum/Uhrzeit): End-Timestamp
Dauer von Endnutzerereignissen
consumer_event_durations(Array): Details zu Anrufereignissen von Endnutzern. Zum Beispiel CSAT oder Zahlung.id(Ganzzahl): die IDduration(Ganzzahl): Ereignisdauertype(String): Ereignistypevent(String): Ereignisergebnismenu_path_id(Ganzzahl): Menüpfad-IDmenu_path(String): Menüpfadlang(String): Sprachestarted_at(String, Datum/Uhrzeit): Start-Zeitstempelended_at(String, Datum/Uhrzeit): End-Timestamp
Dauer der Menüaufrufe durch Endnutzer
consumer_in_menu_durations(Array): Dauer der Endnutzerinteraktionen in Menüsid(Ganzzahl): die IDduration(Ganzzahl): Dauer im Menüevent(String): Ergebnis der Menüinteraktionmenu_path_id(Ganzzahl): Menüpfad-IDmenu_path(String): Menüpfadlang(String): Sprachestarted_at(String, Datum/Uhrzeit): Start-Zeitstempelended_at(String, Datum/Uhrzeit): End-Timestamp
Teilnehmer*innen
participants(Array): Informationen zu jedem Teilnehmer des Anrufs. Beispiele: Kunde, Kundenservicemitarbeiter, virtueller Kundenservicemitarbeiter.id(Ganzzahl): Die Kennzeichnung für den Teilnehmertype(String): Typ des Teilnehmers. Beispiel: end_user, agent, virtual_agent usw.entry_type(String): Wie der Teilnehmer dem Anruf beigetreten istuser_id(Ganzzahl oder null): Nutzer-ID, wenn der Teilnehmer ein Kundenservicemitarbeiter istend_user_id(Ganzzahl oder null): Endnutzer-ID, wenn der Teilnehmer der Kunde istvirtual_agent_id(Ganzzahl oder null): ID des virtuellen Kundenservicemitarbeiters, wenn der Teilnehmer ein virtueller Kundenservicemitarbeiter istvirtual_agent_params(Objekt): benutzerdefinierte Metadaten, die vom virtuellen Kundenservicemitarbeiter verwendet werdenstatus(String): Status des Teilnehmers. Zum Beispiel „Warten“, „Verbunden“, „Abgeschlossen“ usw.fail_reason(String): Grund für den Fehler, falls vorhandenconnected_at(string, date-time): Zeitstempel, zu dem der Teilnehmer eine Verbindung hergestellt hatphone_number(String): Telefonnummer des Teilnehmerscall_id(Ganzzahl): Kennung für den Anrufcall_duration(Ganzzahl): Anrufdauer für den Teilnehmerhold_duration(Ganzzahl oder null): Dauer der Holdout-Gruppe für den Teilnehmerended_at(string, date-time): Zeitstempel für das Ende der Teilnahme des Teilnehmersadapter_fail_code(Ganzzahl oder null): Numerischer Code, der dem Grund für den Fehler entsprichtadapter_fail_message(String oder null): menschenlesbare Beschreibung vonfail_reason, falls verfügbar.
Aufzeichnungen
recordings(Array): Informationen zu Anrufaufzeichnungenid(Ganzzahl): die Kennung für die Aufzeichnungcall_id(Ganzzahl): Anrufer-IDconference_sid(String): Anrufer-ID des VoIP-Anbietersduration(Ganzzahl): Aufnahmedauerrecording_type(String): Aufzeichnungstypredaction_times(Array): Zeitsegmente, die entfernt wurdenstarted_at(string, date-time): Zeitstempel für den Beginn der Aufzeichnung
Events anbieten
offer_type(String oder null): Art und Weise, wie der Anruf dem Kundenservicemitarbeiter angeboten wurdeoffer_events(Array): Ereignisse, bei denen der Anruf an Kundenservicemitarbeiter weitergeleitet wurdecasting_time(date-time): Zeitpunkt, zu dem der Anruf angeboten wurdegroup(String): Gruppe, an die der Anruf weitergeleitet wurde
Sonstige Details
answer_type(String oder Null): Gibt an, wie der Anruf entgegengenommen wurde. Zum Beispiel manuell oder automatisch.outbound_number(String): verwendete abgehende Telefonnummerwait_time_sms(Array): SMS-Interaktionen zur Wartezeitin_call_sms(Array): SMS-Interaktionen während des Anrufsdispositions(Array): während des Anrufs aufgezeichnete Dispositionenemail(String, E-Mail oder Null): E-Mail-Adresse des Kundenfeedback(String oder null): Kundenfeedbacksmart_action_text(String oder Null): Text einer beliebigen ausgeführten Smart Actioncustom_data_secured(object oder null): benutzerdefinierte, sicher signierte Datencustom_data_not_secured(Objekt oder Null): benutzerdefinierte, nicht sicher signierte Daten
Wichtige Definitionen
Das Schema enthält auch einen Definitionsabschnitt, in dem wiederverwendbare Schemakomponenten definiert werden:
menu_path: ein hierarchischer Menüpfadagent: ein menschlicher Kundenservicemitarbeitervirtual_agent: ein virtueller Kundenservicemitarbeiterdeflection: Definiert die möglichen Status für die Ablenkung.