Calcolare le metriche utilizzando i dati delle conversazioni di Agent Assist

Customer Experience Insights ti consente di importare le conversazioni da Agent Assist per analizzarle. Questo documento descrive la procedura per calcolare diverse metriche conversazionali importanti sui dati importati di Assistente agente.

Prerequisiti

  1. Utilizza Agent Assist per generare dati conversazionali utilizzando le funzionalità Risposta rapida o Riepilogo.

  2. Attiva l'integrazione del runtime Dialogflow in Customer Experience Insights.

  3. Esporta i dati da CX Insights a BigQuery.

Tasso di attivazione

Il tasso di attivazione descrive la frequenza con cui un tipo di annotazione viene visualizzato in una conversazione.

Percentuale di attivazione a livello di frase

Un tasso di attivazione a livello di frase si applica alle annotazioni che possono essere visualizzate almeno una volta per frase.

Nome annotazione Tipo di annotazione Criteri
Suggerimento articoli 'ARTICLE_SUGGESTION' Per ogni messaggio della conversazione viene inviata almeno una richiesta SuggestArticles.
FAQ assist 'FAQ' Per ogni messaggio della conversazione viene inviata almeno una richiesta SuggestFaqAnswers o AnalyzeContent.
Risposta rapida 'SMART_REPLY' Per ogni messaggio della conversazione viene inviata almeno una richiesta SuggestSmartReplies o AnalyzeContent.

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;

Tasso di attivazione a livello di conversazione

Un tasso di attivazione a livello di conversazione si applica alle annotazioni che possono essere visualizzate al massimo una volta per conversazione.

Nome annotazione Tipo di annotazione Criteri

| Assistente generativo di conoscenze (GKA) | 'KNOWLEDGE_SEARCH' | Per ogni messaggio della conversazione viene inviata almeno una richiesta SearchKnowledge. | | Generative Knowledge Assist proattivo | 'KNOWLEDGE_SEARCH' | Per ogni messaggio della conversazione viene inviata almeno una richiesta SearchKnowledge o AnalyzeContent. | | Riepilogo | 'CONVERSATION_SUMMARIZATION' | Per ogni conversazione viene inviata almeno una richiesta SuggestConversationSummary. |

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;

Percentuale di clic

La percentuale di clic indica la frequenza con cui gli operatori del call center fanno clic sulle annotazioni suggerite.

Percentuale di clic a livello di frase

Una percentuale di clic a livello di frase si applica alle annotazioni su cui gli agenti del call center possono fare clic più volte per frase.

Nome annotazione Tipo di annotazione Criteri
Suggerimento articoli 'ARTICLE_SUGGESTION' Per ogni messaggio della conversazione viene inviata almeno una richiesta SuggestArticles.
FAQ assist 'FAQ' Per ogni messaggio della conversazione viene inviata almeno una richiesta SuggestFaqAnswers o AnalyzeContent.
Risposta rapida 'SMART_REPLY' Per ogni messaggio della conversazione viene inviata almeno una richiesta SuggestSmartReplies o AnalyzeContent.

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;

Percentuale di clic a livello di conversazione

Una percentuale di clic a livello di conversazione si applica alle annotazioni su cui gli agenti del call center possono fare clic più volte per conversazione. Gli agenti del call center devono inviare in modo proattivo una richiesta che crei un'annotazione a livello di conversazione.

Nome annotazione Tipo di annotazione Criteri
Assistente alla conoscenza generativa (GKA) 'KNOWLEDGE_SEARCH' Per ogni messaggio della conversazione viene inviata almeno una richiesta SearchKnowledge.
Assistenza proattiva con l'AI generativa 'KNOWLEDGE_SEARCH' Per ogni messaggio della conversazione viene inviata almeno una richiesta SearchKnowledge o AnalyzeContent.

Metriche specifiche per funzionalità

Questa sezione elenca le metriche specifiche per ogni funzionalità.

Assistenza knowledge base generativa

L'assistenza basata sulla conoscenza generativa (GKA) fornisce risposte alle domande di un agente in base alle informazioni contenute nei documenti che fornisci. Se l'agente non riesce a trovare una risposta, GKA suggerisce una domanda simile da porre e fornisce la risposta. Questa funzionalità produce le seguenti metriche di ricerca della conoscenza:

Nome metrica Definizione Calcolo
Conteggio risultati Il numero totale di risposte fornite a un singolo agente per tutte le conversazioni.
Rapporto tra origini delle query dell'agente Proporzione di domande dell'agente rispetto al numero totale di domande. Calcola il numero di domande dell'agente diviso per il numero totale di domande.
Rapporto tra query suggerite e query di origine Proporzione di domande suggerite rispetto al numero totale di domande. Calcola il numero di domande suggerite diviso per il numero totale di domande.
Tasso di clic sull'URI Proporzione di risposte in cui è stato fatto clic su almeno un URI rispetto al numero totale di risposte. Calcola il numero di risposte per le quali un agente ha fatto clic sull'URI diviso per il numero totale di risposte.
Rapporto tra feedback positivi Proporzione di feedback positivi sulle risposte rispetto al numero totale di risposte. Calcola il numero di risposte che hanno ricevuto feedback positivi diviso per il numero totale di risposte.
Rapporto tra feedback negativi Proporzione di feedback negativi sulle risposte rispetto al numero totale di risposte. Calcola il numero di risposte che hanno ricevuto feedback negativi diviso per il numero totale di risposte.

Assistenza proattiva con l'IA generativa

L'assistenza proattiva basata sull'AI generativa suggerisce le domande in base al contesto della conversazione corrente e fornisce le risposte in base alle informazioni contenute nei documenti che fornisci. L'assistenza proattiva con l'IA generativa non richiede l'interazione con un agente. Questa funzionalità produce le seguenti metriche di assistenza alla conoscenza:

Nome metrica Definizione Calcolo
Conteggio risultati Numero totale di suggerimenti forniti a un singolo agente per tutte le conversazioni.
Tasso di clic sull'URI Proporzione di suggerimenti in cui è stato fatto clic su almeno un URI rispetto al numero totale di suggerimenti forniti. Calcola il numero di suggerimenti per i quali un agente ha fatto clic sull'URI diviso per il numero totale di suggerimenti forniti.
Rapporto tra feedback positivi Proporzione di feedback positivi sui suggerimenti rispetto al numero totale di suggerimenti. Calcola il numero di suggerimenti che hanno ricevuto feedback positivi diviso per il numero totale di suggerimenti.
Rapporto tra feedback negativi Proporzione di feedback negativi sui suggerimenti rispetto al numero totale di suggerimenti. Calcola il numero di suggerimenti che hanno ricevuto feedback negativi diviso per il numero totale di suggerimenti.

Risposta rapida

Questa sezione elenca le metriche specifiche per le risposte rapide.

Percentuale di clic effettiva (CTR effettivo)

La percentuale di clic effettiva riflette in modo più preciso la frequenza con cui gli agenti del call center fanno clic sulle annotazioni di Risposta rapida rispetto alla metrica della percentuale di clic normale. La seguente query recupera la risposta di ogni agente e le annotazioni di Risposte rapide create appositamente per la risposta dell'agente e su cui l'agente ha fatto clic. Poi conta il numero di volte in cui l'agente ha redatto la risposta utilizzando i suggerimenti per le risposte rapide, quindi divide questo numero per il conteggio totale delle risposte dell'agente.

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;

Modifica frequenza

Gli agenti possono scegliere di utilizzare le risposte rapide suggerite risposte rapide alla lettera o modificarle prima di inviarle ai clienti. Il calcolo del tasso di modifica delle risposte di Risposta rapida può mostrare la frequenza con cui vengono modificate le risposte suggerite. La query seguente recupera ogni risposta rapida suggerita e la risposta dell'agente che segue immediatamente la risposta rapida. Poi conta il numero di occorrenze in cui la risposta dell'agente non contiene la risposta rapida corrispondente, quindi divide questo numero per il conteggio totale delle risposte rapide.

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;

Riassunto

Questa sezione elenca le metriche specifiche per il riepilogo.

  • Il tipo GENERATOR_SUGGESTION_RESULT conterrà tutti i risultati del generatore, inclusi i riepiloghi.
  • Il tipo CONVERSATION_SUMMARIZATION_SUGGESTION conterrà i riepiloghi precedenti.

Riepilogo del generatore

Query di esempio per accedere al riepilogo generato e alle modifiche apportate dall'agente al riepilogo in formato 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 ;

Modifica distanza

La distanza di modifica del riepilogo è una misura della differenza tra i riepiloghi modificati dall'agente e quelli suggeriti. Questa metrica è correlata alla quantità di tempo che l'agente ha dedicato alla modifica dei riepiloghi suggeriti.

  1. Esegui query sui riepiloghi e sui riepiloghi rivisti (se presenti).

  2. Poiché gli agenti del call center possono inviare revisioni del riepilogo senza impostare il valore booleano clicked su true, i riepiloghi delle query, indipendentemente dal loro stato clicked. Se il riepilogo dell'agente è nullo, l'agente non ha rivisto il riepilogo suggerito o il riepilogo rivisto non è stato inviato ad Agent Assist utilizzando il percorso di feedback preferito.

  3. Confronta i riepiloghi suggeriti con quelli rivisti dagli agenti utilizzando i tuoi algoritmi di distanza di modifica preferiti per calcolare la distanza di modifica del riepilogo. Ad esempio, Distanza di Levenshtein con penalità uguale per inserimento, eliminazione e sostituzione.

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';

Modifica frequenza

Puoi calcolare il tasso di modifica per il riepilogo dividendo la distanza di modifica per la lunghezza della stringa del riepilogo modificato. Questa metrica riflette la quantità di riepilogo modificata dall'agente. Questo tasso di modifica non ha un limite superiore, ma quando il valore è uguale o superiore a uno, significa che i riepiloghi generati non sono validi e la funzionalità dovrebbe probabilmente essere disattivata.

Modifica percentuale

La percentuale di modifiche è una misura della percentuale del numero totale di riepiloghi suggeriti che sono stati modificati dagli agenti anziché essere utilizzati letteralmente. Viene calcolato dividendo il numero di riepiloghi modificati dall'agente per il numero di riepiloghi suggeriti. Questa metrica è un buon indicatore della qualità del modello quando il valore è vicino a 0. Tuttavia, quando è vicino a 1, non significa necessariamente che la qualità del modello sia scarsa, poiché la modifica potrebbe essere minima e comunque contare come modifica del riepilogo suggerito.

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;