Mit Customer Experience Insights können Sie Unterhaltungen aus Agent Assist importieren, um sie zu analysieren. In diesem Dokument wird beschrieben, wie Sie mehrere wichtige Konversationsmesswerte für importierte Agent Assist-Daten berechnen.
Vorbereitung
Verwenden Sie Agent Assist, um Unterhaltungsdaten mit den Funktionen Smart Reply oder Zusammenfassung zu generieren.
Aktivieren Sie die Dialogflow-Laufzeitintegration in Customer Experience Insights.
Exportieren Sie Ihre Daten aus CX Insights nach BigQuery.
Trigger rate
Die Triggerrate gibt an, wie oft ein Annotationstyp in einem Gespräch vorkommt.
Triggerrate auf Satzebene
Für Anmerkungen, die mindestens einmal pro Satz angezeigt werden können, gilt eine Triggerrate auf Satzebene.
| Annotationsname | Annotationstyp | Kriterium |
|---|---|---|
| Artikelvorschlag | 'ARTICLE_SUGGESTION' |
Für jede Nachricht in der Konversation wird mindestens eine SuggestArticles-Anfrage gesendet. |
| FAQ-Assistenz | 'FAQ' |
Für jede Nachricht in der Konversation wird mindestens eine SuggestFaqAnswers- oder AnalyzeContent-Anfrage gesendet. |
| Intelligente Antwort | 'SMART_REPLY' |
Für jede Nachricht in der Konversation wird mindestens eine SuggestSmartReplies- oder AnalyzeContent-Anfrage gesendet. |

WITH calculation AS ( SELECT COUNTIF( ( SELECT COUNT(*) FROM UNNEST (sen.annotations) AS annotation WHERE annotation.type = 'ANNOTATION_TYPE' ) > 0 ) AS numSentencesAtLeastOneAnnotation, COUNT(*) AS numSentencesTotal FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen ) SELECT numSentencesAtLeastOneAnnotation, numSentencesTotal, numSentencesAtLeastOneAnnotation / numSentencesTotal AS triggerRate FROM calculation;
Triggerrate auf Konversationsebene
Eine Triggerrate auf Unterhaltungsebene gilt für Anmerkungen, die höchstens einmal pro Unterhaltung angezeigt werden können.
| Annotationsname | Annotationstyp | Kriterium |
|---|
| Generative Wissensunterstützung (Generative Knowledge Assist, GKA) | 'KNOWLEDGE_SEARCH' | Für jede Nachricht im Gespräch wird mindestens eine SearchKnowledge-Anfrage gesendet. |
| Proaktive Unterstützung durch generative KI | 'KNOWLEDGE_SEARCH' | Für jede Nachricht in der Konversation wird mindestens eine SearchKnowledge- oder AnalyzeContent-Anfrage gesendet. |
| Zusammenfassung | 'CONVERSATION_SUMMARIZATION' | Für jede Unterhaltung wird mindestens eine SuggestConversationSummary-Anfrage gesendet. |

WITH calculation AS ( SELECT COUNTIF( ( SELECT COUNT(*) FROM UNNEST (sentences) AS sen, UNNEST (sen.annotations) AS annotation WHERE annotation.type = 'ANNOTATION_TYPE' ) > 0 ) AS numConversationsAtLeastOneAnnotation, COUNT(*) AS numConversationsTotal FROM BIGQUERY_TABLE ) SELECT numConversationsAtLeastOneAnnotation, numConversationsTotal, numConversationsAtLeastOneAnnotation / numConversationsTotal AS triggerRate FROM calculation;
Klickrate (Click-through-Rate, CTR)
Die Klickrate gibt an, wie oft Kundenservicemitarbeiter auf die vorgeschlagenen Anmerkungen klicken.
Klickrate auf Satzebene
Die Klickrate auf Satzebene gilt für Anmerkungen, auf die Kundenservicemitarbeiter mehrmals pro Satz klicken können.
| Annotationsname | Annotationstyp | Kriterium |
|---|---|---|
| Artikelvorschlag | 'ARTICLE_SUGGESTION' |
Für jede Nachricht in der Konversation wird mindestens eine SuggestArticles-Anfrage gesendet. |
| FAQ-Assistenz | 'FAQ' |
Für jede Nachricht in der Konversation wird mindestens eine SuggestFaqAnswers- oder AnalyzeContent-Anfrage gesendet. |
| Intelligente Antwort | 'SMART_REPLY' |
Für jede Nachricht in der Konversation wird mindestens eine SuggestSmartReplies- oder AnalyzeContent-Anfrage gesendet. |

WITH calculation AS ( SELECT COUNTIF( ( SELECT COUNT(*) FROM UNNEST (sen.annotations) AS annotation WHERE annotation.type = 'ANNOTATION_TYPE' AND annotation.displayed = TRUE AND annotation.clicked = TRUE ) > 0 ) AS numSentencesAtLeastOneClickedAndDisplayedAnnotation, COUNTIF( ( SELECT COUNT(*) FROM UNNEST (sen.annotations) AS annotation WHERE annotation.type = 'ANNOTATION_TYPE' AND annotation.displayed = TRUE ) > 0 ) AS numSentencesAtLeastOneDisplayedAnnotation, FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen ) SELECT numSentencesAtLeastOneClickedAndDisplayedAnnotation, numSentencesAtLeastOneDisplayedAnnotation, numSentencesAtLeastOneClickedAndDisplayedAnnotation / numSentencesAtLeastOneDisplayedAnnotation AS clickThroughRate FROM calculation;
Klickrate auf Konversationsebene
Die Klickrate auf Unterhaltungsebene gilt für Anmerkungen, auf die Kundenservicemitarbeiter mehrmals pro Unterhaltung klicken können. Kundenservicemitarbeiter müssen proaktiv eine Anfrage senden, mit der eine Anmerkung auf Unterhaltungsebene erstellt wird.
| Annotationsname | Annotationstyp | Kriterium |
|---|---|---|
| Generative Knowledge Assist (GKA) | 'KNOWLEDGE_SEARCH' |
Für jede Nachricht in der Konversation wird mindestens eine SearchKnowledge-Anfrage gesendet. |
| Proaktive Unterstützung durch generative KI | 'KNOWLEDGE_SEARCH' |
Für jede Nachricht in der Konversation wird mindestens eine SearchKnowledge- oder AnalyzeContent-Anfrage gesendet. |
Funktionsspezifische Messwerte
In diesem Abschnitt werden Messwerte aufgeführt, die für die einzelnen Funktionen spezifisch sind.
Generative Knowledge Assist
Generative Knowledge Assist (GKA) liefert Antworten auf die Fragen eines Kundenservicemitarbeiters basierend auf Informationen in von Ihnen bereitgestellten Dokumenten. Wenn der Kundenservicemitarbeiter keine Antwort findet, schlägt GKA eine ähnliche Frage vor und liefert die Antwort. Mit dieser Funktion werden die folgenden Messwerte für die Wissenssuche generiert:
| Messwertname | Definition | Berechnung |
|---|---|---|
| Anzahl der Ergebnisse | Gesamtzahl der Antworten, die für alle Unterhaltungen für einen einzelnen Agenten bereitgestellt wurden. | |
| Verhältnis der Quellen für KI-Agentenabfragen | Anteil der Agent-Fragen an der Gesamtzahl der Fragen. | Berechnen Sie die Anzahl der Fragen des Kundenservicemitarbeiters geteilt durch die Gesamtzahl der Fragen. |
| Vorgeschlagenes Verhältnis von Quellen für Abfragen | Anteil der vorgeschlagenen Fragen an der Gesamtzahl der Fragen. | Berechnen Sie die Anzahl der vorgeschlagenen Fragen geteilt durch die Gesamtzahl der Fragen. |
| URI-Klickrate | Anteil der Antworten, bei denen mindestens einmal auf eine URI geklickt wurde, an der Gesamtzahl der Antworten. | Berechnen Sie die Anzahl der Antworten, für die ein Kundenservicemitarbeiter auf den URI geklickt hat, geteilt durch die Gesamtzahl der Antworten. |
| Verhältnis von positivem Feedback | Anteil des positiven Feedbacks zu Antworten an der Gesamtzahl der Antworten. | Berechnen Sie die Anzahl der Antworten, die positives Feedback erhalten haben, geteilt durch die Gesamtzahl der Antworten. |
| Verhältnis von negativem Feedback | Anteil des negativen Feedbacks zu Antworten an der Gesamtzahl der Antworten. | Berechnen Sie die Anzahl der Antworten, die negatives Feedback erhalten haben, geteilt durch die Gesamtzahl der Antworten. |
Proaktive generative Knowledge Assist-Funktion
Proaktive Unterstützung durch generative KI schlägt Fragen basierend auf dem aktuellen Gesprächskontext vor und liefert Antworten basierend auf Informationen in den von Ihnen bereitgestellten Dokumenten. Für die proaktive generative Wissensunterstützung ist keine Interaktion mit einem Kundenservicemitarbeiter erforderlich. Mit dieser Funktion werden die folgenden Messwerte für die Wissensunterstützung generiert:
| Messwertname | Definition | Berechnung |
|---|---|---|
| Anzahl der Ergebnisse | Die Gesamtzahl der Vorschläge, die einem einzelnen Agenten für alle Unterhaltungen bereitgestellt wurden. | |
| URI-Klickrate | Anteil der Vorschläge, bei denen mindestens ein URI angeklickt wurde, an der Gesamtzahl der bereitgestellten Vorschläge. | Berechnen Sie die Anzahl der Vorschläge, für die ein Kundenservicemitarbeiter auf den URI geklickt hat, geteilt durch die Gesamtzahl der Vorschläge. |
| Verhältnis von positivem Feedback | Anteil des positiven Feedbacks zu Vorschlägen an der Gesamtzahl der Vorschläge. | Berechnen Sie die Anzahl der Vorschläge, die positives Feedback erhalten haben, geteilt durch die Gesamtzahl der Vorschläge. |
| Verhältnis von negativem Feedback | Anteil des negativen Feedbacks zu Vorschlägen an der Gesamtzahl der Vorschläge. | Berechnen Sie die Anzahl der Vorschläge, die negatives Feedback erhalten haben, geteilt durch die Gesamtzahl der Vorschläge. |
Intelligente Antwort
In diesem Abschnitt werden Messwerte aufgeführt, die speziell für intelligente Antworten gelten.
Effektive Klickrate (effektive CTR)
Die effektive Klickrate gibt genauer an, wie oft Kundenservicemitarbeiter auf Smart Reply-Anmerkungen klicken, als der reguläre Messwert für die Klickrate. Mit der folgenden Abfrage werden die Antworten der einzelnen Kundenservicemitarbeiter und die Smart Reply-Anmerkungen abgerufen, die speziell für die Antwort des jeweiligen Kundenservicemitarbeiters erstellt und von diesem angeklickt wurden. Anschließend wird die Anzahl der Fälle gezählt, in denen der Kundenservicemitarbeiter seine Antwort mithilfe von Vorschlägen für intelligente Antworten verfasst hat. Diese Zahl wird dann durch die Gesamtzahl der Antworten des Kundenservicemitarbeiters geteilt.

WITH calculation AS ( SELECT sen.sentence AS agentResponse, ( # Get a list of effective smart replies that map to each agent response. SELECT ARRAY_AGG(JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.reply")) FROM UNNEST (sentences) AS sen2, UNNEST (sen2.annotations) AS annotation WHERE annotation.type='SMART_REPLY' AND annotation.clicked=TRUE AND annotation.annotationRecord IS NOT NULL AND annotation.createTimeNanos >= ( # Get the timestamp of the agent response that immediately precedes # the current agent response. The timestamp of the effective smart # reply must be greater than this timestamp. SELECT MAX(sen3.createTimeNanos) FROM UNNEST(sentences) AS sen3 WHERE sen3.participantRole = 'HUMAN_AGENT' AND sen3.createTimeNanos < sen.createTimeNanos ) AND annotation.createTimeNanos <= sen.createTimeNanos ) AS effectiveSmartRepliesPerAgentResponse FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen WHERE sen.participantRole = 'HUMAN_AGENT' ) SELECT COUNTIF(ARRAY_LENGTH(effectiveSmartRepliesPerAgentResponse) > 0) / COUNT(agentResponse) AS effectiveCTR FROM calculation;
Rate bearbeiten
Kundenservicemitarbeiter können die vorgeschlagenen Smart Reply-Antworten entweder unverändert verwenden oder vor dem Senden an Kunden bearbeiten. Wenn Sie die Bearbeitungsrate von Smart Reply-Antworten berechnen, können Sie sehen, wie oft die vorgeschlagenen Antworten bearbeitet werden. Mit der folgenden Abfrage werden alle vorgeschlagenen intelligenten Antworten und die Antwort des Kundenservicemitarbeiters abgerufen, die unmittelbar auf die intelligente Antwort folgt. Anschließend wird die Anzahl der Fälle gezählt, in denen die Antwort des Kundenservicemitarbeiters nicht die entsprechende intelligente Antwort enthält. Dieser Wert wird dann durch die Gesamtzahl der intelligenten Antworten geteilt.

WITH calculation AS ( SELECT JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord), wide_number_mode=>'round'), "$.reply") AS smartReply, ( # Get the agent response that immediately follows the smart reply. SELECT sen2.sentence FROM UNNEST (sentences) AS sen2 WHERE sen2.createTimeNanos = ( SELECT MIN(sen3.createTimeNanos) FROM UNNEST (sentences) AS sen3 WHERE sen3.createTimeNanos > sen.createTimeNanos AND sen3.participantRole = 'HUMAN_AGENT' ) ) AS agentResponseThatFollows, FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen, UNNEST (sen.annotations) AS annotation WHERE annotation.type='SMART_REPLY' AND annotation.clicked=TRUE AND annotation.annotationRecord IS NOT NULL ) SELECT COUNTIF(REGEXP_CONTAINS(agentResponseThatFollows, smartReply)) / COUNT(smartReply) AS editRate FROM calculation;
Zusammenfassung
In diesem Abschnitt werden Messwerte aufgeführt, die speziell für die Zusammenfassung gelten.
- Der Typ
GENERATOR_SUGGESTION_RESULTenthält alle Generatorergebnisse, einschließlich Zusammenfassungen. - Der Typ
CONVERSATION_SUMMARIZATION_SUGGESTIONenthält alte Zusammenfassungen.
Zusammenfassung des Generators
Beispielabfrage für den Zugriff auf die Zusammenfassung des Generators und die Bearbeitungen des KI-Agents an der Zusammenfassung als JSON:
SELECT IF (JSON_VALUE(annotation.annotationRecord) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.generatorSuggestion.summarySuggestion"), NULL) AS generator_summary, IF (JSON_VALUE(annotation.detailedFeedback) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"), NULL) AS feedback, FROM BIGQUERY_TABLE AS c, UNNEST(c.sentences) AS sentences, UNNEST(sentences.annotations) AS annotation WHERE annotation.type = 'GENERATOR_SUGGESTION_RESULT' AND JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.generatorSuggestion.summarySuggestion") IS NOT NULL LIMIT 10 ;
Bearbeitungsdistanz
Die Bearbeitungsdistanz der Zusammenfassung ist ein Maß dafür, wie stark sich die vom Agenten bearbeiteten Zusammenfassungen von den vorgeschlagenen Zusammenfassungen unterscheiden. Dieser Messwert entspricht der Zeit, die der Agent mit dem Bearbeiten der vorgeschlagenen Zusammenfassungen verbracht hat.
Fragen Sie die Zusammenfassungen und die überarbeiteten Zusammenfassungen (falls vorhanden) ab.
Da Kundenservicemitarbeiter Zusammenfassungsüberarbeitungen einreichen können, ohne den booleschen Wert
clickedauftruezu setzen, werden Zusammenfassungen von Anfragen unabhängig von ihremclicked-Status abgefragt. Wenn die Zusammenfassung des Agents null ist, hat der Agent die vorgeschlagene Zusammenfassung nicht überarbeitet oder die überarbeitete Zusammenfassung wurde nicht über den bevorzugten Feedbackweg an Agent Assist gesendet.Vergleichen Sie die vorgeschlagenen Zusammenfassungen mit den überarbeiteten Zusammenfassungen der Kundenservicemitarbeiter. Verwenden Sie dazu Ihre bevorzugten Algorithmen für die Bearbeitungsdistanz, um die Bearbeitungsdistanz der Zusammenfassung zu berechnen. Beispiel: Levenshtein-Distanz mit gleicher Strafe für Einfügung, Löschung und Ersetzung.

SELECT JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.text") AS suggestedSummary, IF (JSON_VALUE(annotation.detailedFeedback) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"), NULL) AS feedback, FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen, UNNEST (sen.annotations) as annotation WHERE type='CONVERSATION_SUMMARIZATION_SUGGESTION';
Rate bearbeiten
Sie können die Bearbeitungsrate für die Zusammenfassung berechnen, indem Sie die Bearbeitungsdistanz durch die Stringlänge der bearbeiteten Zusammenfassung dividieren. Dieser Messwert gibt an, wie viel von der Zusammenfassung vom Agent bearbeitet wurde. Für diese Bearbeitungsrate gibt es keine Obergrenze. Wenn der Wert jedoch gleich oder größer als 1 ist, sind die generierten Zusammenfassungen schlecht und die Funktion sollte wahrscheinlich deaktiviert werden.
Prozentsatz bearbeiten
Der Bearbeitungsprozentsatz gibt an, wie viel Prozent der Gesamtzahl der vorgeschlagenen Zusammenfassungen von Kundenservicemitarbeitern bearbeitet wurden, anstatt unverändert verwendet zu werden. Sie wird berechnet, indem die Anzahl der von Kundenservicemitarbeitern bearbeiteten Zusammenfassungen durch die Anzahl der vorgeschlagenen Zusammenfassungen geteilt wird. Dieser Messwert ist ein guter Indikator für die Modellqualität, wenn der Wert nahe 0 liegt. Wenn der Wert nahe 1 liegt, bedeutet das nicht unbedingt, dass die Modellqualität schlecht ist, da die Bearbeitung geringfügig sein kann und trotzdem als Bearbeitung der vorgeschlagenen Zusammenfassung gezählt wird.

WITH summaryAndEdits AS ( SELECT JSON_VALUE(PARSE_JSON(JSON_VALUE(annotation.annotationRecord)), "$.text") AS suggestedSummary, IF (JSON_VALUE(annotation.detailedFeedback) != '', JSON_QUERY(PARSE_JSON(JSON_VALUE(annotation.detailedFeedback)), "$.summarizationFeedback.summaryText"), NULL) AS editedSummary, FROM BIGQUERY_TABLE, UNNEST (sentences) AS sen, UNNEST (sen.annotations) AS annotation WHERE type='CONVERSATION_SUMMARIZATION_SUGGESTION' ) SELECT countif (suggestedSummary IS NOT NULL) AS totalSummaries, countif (editedSummary IS NOT NULL) AS editedSummaries, countif (editedSummary IS NOT NULL) / countif (suggestedSummary IS NOT NULL) AS editRate FROM summaryAndEdits;