Mit Customer Experience Insights werden zwei regelbasierte Funktionen eingeführt, um die Verarbeitung von Konversationen zu optimieren:
- Regeln für automatisches Labeling:Schlüssel-Wert-Labels werden basierend auf definierten Bedingungen automatisch auf Unterhaltungen angewendet.
- Korrelationsregeln:Hier legen Sie fest, wie zusammengehörige Gesprächssegmente verknüpft werden, um vollständige Ansichten der Kundeninteraktion zu erstellen.
Für beide Regeltypen wird die Common Expression Language (CEL) verwendet, um flexible und dynamische Regeldefinitionen zu ermöglichen. CEL ist sowohl für die automatische Kennzeichnung als auch für Korrelationsregeln von grundlegender Bedeutung. Sie können diese Regeln mit der API oder der CX Insights-Konsole konfigurieren.
Regeln für automatisches Labeling
Mit Regeln für das automatische Labeling werden beim Import nur Unterhaltungen mit benutzerdefinierten Schlüssel/Wert-Labels angereichert. Diese Labels verbessern die Filterung, Kategorisierung und Integration mit anderen Analysen und Workflows. Sie können mit Regeln für die automatische Kennzeichnung folgende Aktionen ausführen:
- Unterhaltungen nach Thema, Kundentyp, Produkt oder Ergebnis kategorisieren.
- Extrahieren Sie wichtige Datenpunkte aus Konversationsmetadaten oder Dialogflow-Parametern wie
callId-,isAuthenticated- undintent-Namen in Labels. - Unterhaltungen, die besondere Aufmerksamkeit erfordern, z. B.
high_escalation_risk, können Sie kennzeichnen.
Labels
Jede Regel für das automatische Labeling definiert ein Label und enthält geordnete Bedingungsnachrichten. Für jedes Label werden die folgenden CEL-Ausdrücke verwendet:
- Bedingung: Hier wird ausgewertet, ob eine Konversation wahr oder falsch ist. Eine leere Bedingung wird standardmäßig als „true“ betrachtet.
- Wert: Gibt den Stringwert für ein Label zurück, wenn die Bedingung zutrifft.
Der Wert des Labels wird durch das erste übereinstimmende LabelingCondition bestimmt.
Standardregeln
In CX Insights werden automatisch Standardregeln für die folgenden Labels angewendet.
sessionEscalated
Dieses Label kombiniert Dialogflow- und Standard-Eskalierungssignale, um festzustellen, ob der Endnutzer oder der Kundenservicemitarbeiter die Unterhaltung eskaliert hat. Der Wert dieses Labels wird für den Messwert „Escalation Rate“ in einem konfigurierbaren Dashboard verwendet. Sie können eine eigene Regel konfigurieren, um dieses Label zu überschreiben, wenn Sie einen benutzerdefinierten Eskalierungstool-Aufruf verwenden.
sessionContained
Dieses Label gibt an, dass keine Eskalierung erfolgt ist. Wenn der Wert true ist, kann das Ergebnis der Quality AI-Konversation nicht eskaliert werden. Sie können eine eigene Regel konfigurieren, um dieses Label zu überschreiben.
isRepeatedCallerConversation
Mit diesem Label wird berechnet, wie oft ein Nutzer innerhalb von 24 Stunden zurückruft. Dabei wird das Label userIdentifier verwendet, um festzustellen, ob ein Rückruf vom selben Nutzer stammt. Sie können eine eigene Regel konfigurieren, um dieses Label zu überschreiben.
userIdentifier
Dieses Label gibt an, ob derselbe Nutzer innerhalb einer bestimmten Anzahl von Stunden zurückruft. Dazu wird die Variable obfuscated_external_user_id entweder aus session_params in Dialogflow und Customer Experience Agent Studio oder aus der CreateParticipant-Anfrage in Agent Assist verwendet. Wenn Sie unterschiedliche Sitzungsparametervariablen für die Nutzeridentifizierung verwenden, müssen Sie dieses Label mit get_session_params() überschreiben.\
lastTransferSubAgentNames
Dieses Label enthält den Namen des endgültigen untergeordneten KI-Agenten von Customer Experience Agent Studio, bevor ein Nutzer eine Unterhaltung eskaliert. Der Standardwert verwendet get_last_subagent([entry_subagent]). Es wird davon ausgegangen, dass der benannte untergeordnete Kundenservicemitarbeiter die Eskalierung übernimmt. Wenn Sie einen bestimmten Eskalierungs-Kundenservicemitarbeiter haben, müssen Sie eine eigene Regel konfigurieren, um den Standardwert mit get_last_subagent([escalation_agent_name]) zu überschreiben.
Regeln konfigurieren
Sie können auch eigene Regeln für die automatische Kennzeichnung mit der API oder der CX Insights-Konsole konfigurieren.
API
Verwenden Sie den Vorgang
Create, um eineAutoLabelingRulezu konfigurieren. Beispiel für einen Anfragetext:{ "displayName": "$DISPLAY_NAME", "labelKey": "$UNIQUE_KEY_NAME", "labelKeyType": LABEL_KEY_TYPE_CUSTOM "conditions": [ { "condition": "conversation.turn_count > 10 && conversation.duration > "60s"", "value": "'long_call'" }, { "condition": "conversation.agent_id == "agent_007"", "value": "'special_agent'" } ], "active": true }Curl-Befehl, wenn die Anfrage in
auto_labeling_rule.jsongespeichert ist:curl-X POST
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @auto_labeling_rule.json
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules?auto_labeling_rule_id=$RULE_ID"Geben Sie Ihrer Regel einen Namen im folgenden Format:
projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. Die[auto_labeling_rule]-ID ist dielabel_keyfür benutzerdefinierte Regeln.
Sie können auch die folgenden Vorgänge mit Regeln für die automatische Kennzeichnung verwenden. Eine automatische Labeling-Regel kann maximal 100 Labels pro Unterhaltung mit maximal 256 Zeichen pro Eintrag enthalten.
Get.curl -X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID"List.curl -X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8" \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules"Update. Geben Sie je nach den zu aktualisierenden Feldern dieupdate_maskan.curl -X PATCH
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @update_payload.json \ "https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/autoLabelingRules/$RULE_ID?update_mask=displayName,active"TestAutoLabelingRule. Ihre Nutzlast sollte die zu testende Regel und eine Beispielunterhaltung enthalten, anhand derer die Regel bewertet wird. Beispiel:{ "conversation": { "agentId": "agent_007", "turnCount": 15, "duration": "75s" /# Add other conversation fields relevant to the rule }, "autoLabelingRule": { "displayName": "Test Rule", "labelKey": "test_category", "conditions": [ { "condition": "conversation.turn_count > 10 && conversation.duration > "60s"", "value": "'long_call_test'" } ], "active": true } }
Console
- Rufen Sie die CX Insights-Konsole auf, melden Sie sich an und wählen Sie Ihr Projekt aus. CX Insights-Konsole
- Klicken Sie auf die EinstellungenEinstellungen > Regeln für die automatische Kennzeichnung.
- Geben Sie CEL-Ausdrücke mit einem Monaco-Editor ein.
- Klicken Sie auf Speichern.
CEL-Beispiele
- Label nach KI-Agent-ID:
label_key: "agent_category" conditions { condition: "conversation.agent_id == '007'" value: "'special_agent'" } conditions { condition: "conversation.agent_id.startsWith('team_a')" value: "'tier_1_support'" } conditions { condition: "" // Default value: "'standard'" } - Negative Stimmung kennzeichnen:
label_key: "needs_review" conditions { // This example assumes sentiment scores are present in the conversation's latest_analysis condition: "has(conversation.latest_analysis.analysis_result.call_analysis_metadata.sentiments) && conversation.latest_analysis. analysis_result.call_analysis_metadata.sentiments.exists(s, s. sentiment_data.score < -0.5)" value: "'true'" } - Dialogflow-Parameter extrahieren:
label_key: "df_session_outcome" conditions { condition: "" // Always try to extract value: "conversation.runtime_annotations.map(a, a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters).filter(p, has(p.outcome)).map(p, p.outcome).first_element_or_empty_string()" }
Automatische Labels in Filtern für Analyseregeln verwenden
Mit Regeln für die automatische Kennzeichnung können Labels angewendet werden, mit denen gesteuert wird, welche Unterhaltungen von den Hauptanalyseregeln verarbeitet werden. Im Feld conversation_filter einer Analyseregel kann mit der Labelzuordnung auf Labels verwiesen werden.
Beispiel:
// AnalysisRule to run detailed analysis on conversations labeled 'needs_review: true'
display_name: "Detailed Analysis for Reviewed Conversations"
conversation_filter: "labels.needs_review = \"true\""
annotator_selector: {
run_summarization_annotator: true
// ... other annotators
}
analysis_percentage: 1.0
active: true
Korrelationsregeln
Mit Korrelationsregeln wird definiert, wie Customer Experience Insights zusammengehörige Gesprächssegmente identifiziert und verknüpft. Ein Unterhaltungssegment stellt einen einzelnen Teil einer Unterhaltung dar, wie er aufgenommen wurde, z. B. eine Dialogflow-Sitzung oder eine einzelne Agent-Interaktion. Eine vollständige Unterhaltung ist eine vollständige, verknüpfte Unterhaltung, die aus einem oder mehreren Segmenten besteht. Standardmäßig werden alle neuen Unterhaltungen als Segmente gestartet. Mithilfe von Korrelationsregeln können Sie einen vollständigen Verlauf der Kundeninteraktion erstellen, auch wenn diese mehrere Kundenservicemitarbeiter, Kanäle oder Sitzungen umfasst.
Korrelationsregeln bieten die folgenden Vorteile für die Analyse von Kundenservice-Unterhaltungen.
- Einheitliches Transkript:Sie können ein einzelnes, chronologisches Transkript aufrufen, in dem Äußerungen aus mehreren Quellen kombiniert werden, z. B. aus einer Chatbot-Sitzung und einem anschließenden Anruf bei einem Kundenservicemitarbeiter.
- Channelübergreifende Analyse:Verknüpfen Sie Interaktionen über verschiedene Kanäle wie Chat und Sprache hinweg, um Sentiment-Trends und die Entwicklung von Themen während eines gesamten Gesprächs zu analysieren.
- Messwertgenauigkeit:Berechnen Sie Messwerte wie die gesamte Bearbeitungszeit oder die Lösungsrate für die gesamte Interaktion und nicht nur für einzelne Teile.
- Kontext für Kundenservicemitarbeiter:Kundenservicemitarbeitern wird der vollständige Verlauf der bisherigen automatisierten Interaktionen zur Verfügung gestellt.
Korrelationsprozess
Wenn Korrelationsregeln mit mehreren Konversationssegmenten übereinstimmen, werden sie in CX Insights gruppiert. CX Insights erstellt dann einen neuen Eintrag für die gesamte Unterhaltung mit einer eigenen eindeutigen Unterhaltungs-ID. In CX Insights wird die Korrelations-ID einer vollständigen Unterhaltung auf den gemeinsamen Schlüssel gesetzt, der die Segmente verknüpft, und der Typ auf FULL. In CX Insights wird die Korrelations-ID der ursprünglichen Segmente auf den gemeinsamen Schlüssel und ihr Typ auf SEGMENT festgelegt. Wenn ein Segment mit keinem anderen Segment korreliert ist, werden ihm in CX Insights sowohl der Korrelationstyp SEGMENT als auch FULL zugewiesen.
Nachrichten verknüpfen
Mit Korrelationsregeln werden zusammengehörige Gesprächssegmente aus verschiedenen Quellen und Kanälen verknüpft. So verknüpft CX Insights Konversationssegmente:
- Nach Join-Schlüssel gruppieren:CX Insights wertet einen CEL-Join-Schlüssel-Ausdruck aus, um einen gemeinsamen Identifier aus der Unterhaltung zu extrahieren, z. B.
callId. Unterhaltungen mit demselben Join-Schlüssel sind potenzielle Kandidaten für die Verknüpfung. Join-Schlüssel müssen spezifisch sein. Wenn ein Schlüssel mit mehr als 20 Unterhaltungen übereinstimmt, wird die Korrelation möglicherweise abgelehnt, um Leistungsprobleme zu vermeiden. - Mit Einschränkungen verfeinern:Der CEL-Einschränkungsausdruck ist eine optionale boolesche Prüfung, die paarweise zwischen Kandidaten ausgewertet wird. Mit diesem Ausdruck lässt sich bestätigen, ob zwei Segmente mit einem gemeinsamen Schlüssel tatsächlich verknüpft werden sollten. Diese Prüfung ist bidirektional. Sie kann also Segment A, das mit Segment B verknüpft ist, und Segment B, das mit Segment A verknüpft ist, umfassen.
- Transitive Verknüpfung:Die Verknüpfung ist transitiv. Wenn Unterhaltung A mit B und B mit C verknüpft ist, werden A, B und C in einer einzigen
FULL-Unterhaltungsgruppe zusammengeführt.
Eine zusammengeführte Unterhaltung kann maximal fünf Segmente enthalten.
Korrelationsregeln konfigurieren
Sie können Korrelationsregeln entweder über die API oder die CX Insights-Konsole konfigurieren.
API
- Führen Sie den folgenden Code aus, um eine
CorrelationConfigeinzurichten.curl -X PATCH
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
-d @update_corr_config.json
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig?update_mask=fullConversationConfig" - Geben Sie der Regel einen Namen im folgenden Format:
projects/{project-id}/locations/{location-id}/correlationConfig. - Sehen Sie sich das Ergebnis im Feld
Conversation.CorrelationInfoan.
Sie können die folgenden Vorgänge mit Korrelationsregeln verwenden.
GetCorrelationConfig.curl-X GET
-H "Authorization: Bearer $(gcloud auth --impersonate-service-account=$SA_EMAIL print-access-token)"
-H "Content-Type: application/json; charset=utf-8"
"https://$ENDPOINT/v1/projects/$PROJECT/locations/$LOCATION/correlationConfig"UpdateCorrelationConfig. Beispiel für einen Anfragetext, wenn er in einerupdated_corr_config.jsongespeichert ist:{ "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.labels.uui", "active": true } ] } }TestCorrelationConfig. Ihre Nutzlast sollte neben der zu testenden Korrelationsregel auch die Details der Beispielunterhaltung enthalten. Beispiel:{ "correlationConfig": { "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.agent_id", "active": true } ] } }, "filter": "agent_id="agent_007"", "maxSampleCount": 100 }
Console
- Rufen Sie die CX Insights-Konsole auf, melden Sie sich an und wählen Sie Ihr Projekt aus. CX Insights-Konsole
- Klicken Sie auf die EinstellungenEinstellungen > Correlation Config (Konfiguration für die Korrelation).
- Klicken Sie auf Speichern.
Administratoren können CorrelationRule-Einträge in der CorrelationConfig definieren und verwalten. Sie können Ihre Korrelationsregeln testen, indem Sie Unterhaltungen auswählen. Die Testergebnisse werden einem Dataset zur Überprüfung hinzugefügt.
CEL-Beispiel
Link von callId aus Dialogflow:
join_key_expression:
// Extracts 'callId' from Dialogflow parameters, falls back to conversation name.
default(conversation.runtime_annotations.map(a,
a.dialogflow_interaction.detect_intent_response_v3.query_result.parameters)
.filter(p, has(p.callId))
.map(p, p.callId)
.first_element_or_empty_string(), conversation.name)
CEL-Hilfsfunktionen
CX Insights bietet mehrere Hilfsfunktionen, die Sie in CEL-Ausdrücken verwenden können, um Unterhaltungen auszuwerten.
| Funktionssignatur | Beschreibung |
|---|---|
get_label(string key) |
Gibt den Stringwert des Labels zurück, das mit dem angegebenen key aus der aktuellen Unterhaltung verknüpft ist. |
exists_call_back_conversation( |
Gibt true zurück, wenn eine „Rückruf“-Unterhaltung vorhanden ist, die mit dem angegebenen filter übereinstimmt. Es wird nach Unterhaltungen mit derselben Nutzer-ID (verschleierte Nutzer-ID oder vordefiniertes Nutzer-ID-Label) innerhalb eines standardmäßigen zukünftigen Zeitraums (24 Stunden) gesucht. Der angegebene filter wird an dieses Kriterium angehängt. |
has_same_caller_conversation_in_n_hours(has_same_caller_conversation_in_n_hours( |
Gibt true zurück, wenn es innerhalb der angegebenen Anzahl von hours (positiv für die Zukunft, negativ für die Vergangenheit) Unterhaltungen vom selben Anrufer/Nutzer gibt. Optional kann ein filter angegeben werden, um die Suche weiter einzuschränken. |
get_same_caller_conversations_in_n_hours(get_same_caller_conversations_in_n_hours( |
Gibt eine Liste von Unterhaltungen vom selben Anrufer/Nutzer innerhalb der angegebenen Anzahl von hours zurück. Optional kann ein filter angegeben werden. |
get_session_params(string key) |
Ruft den Stringwert eines Sitzungsparameters (aus Dialogflow oder CES) ab, der mit dem angegebenen key verknüpft ist. Es wird in umgekehrter chronologischer Reihenfolge nach Laufzeit- und CES-Turn-Anmerkungen gesucht. Gibt einen leeren String zurück, wenn nichts gefunden wird. |
get_last_subagent()get_last_subagent(list excludes) |
Gibt den Anzeigenamen des letzten untergeordneten Agents zurück, der an der Unterhaltung beteiligt war. Untergeordnete Vertreter, die in der Liste excludes aufgeführt sind (in der Regel der untergeordnete Vertreter, der sich speziell um die Eskalierung kümmert), können optional ausgeschlossen werden, sofern es sich nicht um den einzigen untergeordneten Vertreter handelt. |
get_last_subagent_id()get_last_subagent_id(list excludes) |
Gibt die ID des letzten untergeordneten Agents zurück, der an der Unterhaltung beteiligt war. Untergeordnete Vertreter, die in der Liste excludes aufgeführt sind (in der Regel der untergeordnete Vertreter, der sich speziell um die Eskalierung kümmert), können optional ausgeschlossen werden, sofern es sich nicht um den einzigen untergeordneten Vertreter handelt. |
list.first_element_or_empty_string() |
Verfügbar für Listen von Strings. Gibt das erste Element der Liste zurück, wenn es ein String ist. Andernfalls (oder wenn die Liste leer ist) wird ein leerer String zurückgegeben. |
Analyse auf Segment- und Konversationsebene
Mit CX Insights können Sie Unterhaltungen mit unterschiedlicher Granularität analysieren, einschließlich Segment- und Unterhaltungsanalysen für alle Funktionen. Auf den Seiten Conversation Hub und Quality AI in der Konsole werden Daten auf Unterhaltungs- und Segmentebene verglichen, um die Multisegmentstruktur verknüpfter Unterhaltungen zu verdeutlichen.
Wenn Sie bestimmte Analyseebenen anvisieren möchten, verwenden Sie die folgenden Filter mit einer Analyseregel.
Ansicht auf Segmentebene
Ziel dieser Ansicht ist es, bestimmte Teile einer Interaktion zu analysieren, z. B. den Zug eines einzelnen Kundenservicemitarbeiters. Mit dem Parameter correlation_info.correlation_types:SEGMENT können Sie die Ansicht auf Segmentebene filtern.
Vollständige Konversationsansicht
In dieser Ansicht können Sie den gesamten Kundenlebenszyklus analysieren, unabhängig davon, ob er aus verknüpften oder eigenständigen Unterhaltungen besteht. Mit dem Parameter correlation_info.correlation_types:FULL können Sie die vollständige Konversationsansicht filtern.