Regole di etichettatura automatica e correlazione

Customer Experience Insights introduce due funzionalità basate su regole per migliorare l'elaborazione delle conversazioni:

  • Regole di etichettatura automatica:applica automaticamente le etichette chiave-valore alle conversazioni in base alle condizioni definite.
  • Regole di correlazione:definisci come collegare i segmenti di conversazione correlati per formare visualizzazioni complete dell'interazione con i clienti.

Entrambi i tipi di regole utilizzano il Common Expression Language (CEL) per fornire definizioni di regole flessibili e dinamiche. CEL è fondamentale sia per le regole di etichettatura automatica sia per quelle di correlazione. Puoi configurare queste regole con l'API o la console CX Insights.

Regole di etichettatura automatica

Le regole di etichettatura automatica arricchiscono automaticamente le conversazioni con etichette chiave-valore personalizzate durante l'importazione. Queste etichette migliorano il filtraggio, la categorizzazione e l'integrazione con altre analisi e altri flussi di lavoro. Puoi eseguire le seguenti azioni con le regole di etichettatura automatica:

  • Classifica le conversazioni per argomento, tipo di cliente, prodotto o risultato.
  • Estrai i punti dati chiave dai metadati della conversazione o dai parametri di Dialogflow, ad esempio i nomi di callId, isAuthenticated e intent, nelle etichette.
  • Contrassegna le conversazioni che richiedono un'attenzione specifica, ad esempio high_escalation_risk.

Etichette

Ogni regola di etichettatura automatica definisce un'etichetta e contiene messaggi di condizione ordinati. Ogni etichetta utilizza le seguenti espressioni CEL:

  • Condizione: valuta se una conversazione è vera o falsa. Una condizione vuota viene impostata su true per impostazione predefinita.
  • Valore: produce il valore stringa per un'etichetta se la condizione è vera.

Il primo LabelingCondition corrispondente determina il valore dell'etichetta.

Configura le regole

Segui questi passaggi per configurare le regole di etichettatura automatica utilizzando l'API o la console CX Insights.

API

  1. Utilizza l'operazione Create per configurare un AutoLabelingRule. Esempio di corpo della richiesta:

    {
      "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
    }

    Comando curl, se la richiesta è salvata in auto_labeling_rule.json:

      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"

  2. Assegna un nome alla regola nel seguente formato: projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. L'ID [auto_labeling_rule] è l'label_key per le regole personalizzate.

Puoi anche utilizzare una delle seguenti operazioni con le regole di etichettatura automatica. Una regola di etichettatura automatica può avere un massimo di 100 etichette per conversazione con un massimo di 256 caratteri per voce.

  • 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. A seconda dei campi da aggiornare, specifica update_mask.
    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. Il payload deve contenere la regola da testare e una conversazione di esempio su cui verrà valutata la regola. Esempio:
    {
    "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

  1. Vai alla console CX Insights, accedi e seleziona il tuo progetto. Console CX Insights
  2. Fai clic su ImpostazioniImpostazioni > Regole di etichettatura automatica.
  3. Inserisci espressioni CEL con un editor Monaco.
  4. Fai clic su Salva.

Esempi di CEL

  • Etichetta per ID agente:
    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'"
    }
  • Segnala sentiment negativo:
    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'"
    }
  • Estrarre un parametro Dialogflow:
    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()"
    }

Utilizzare le etichette automatiche nei filtri delle regole di analisi

Le regole di etichettatura automatica possono applicare etichette che controllano quali conversazioni vengono elaborate dalle regole di analisi principali. Il campo conversation_filter in una regola di analisi può fare riferimento alle etichette utilizzando la mappa delle etichette.

Esempio:

// 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

Regole di correlazione

Le regole di correlazione definiscono il modo in cui Customer Experience Insights identifica e collega i segmenti di conversazione correlati. Un segmento di conversazione rappresenta una singola parte di una conversazione, così come è stata acquisita, ad esempio una sessione Dialogflow o una singola interazione con l'agente. Una conversazione completa rappresenta una conversazione completa e collegata composta da uno o più segmenti. Per impostazione predefinita, tutte le nuove conversazioni iniziano come segmenti. Le regole di correlazione ti aiutano a creare una cronologia completa dell'interazione di un cliente, anche quando si estende a più agenti, canali o sessioni.

Le regole di correlazione offrono i seguenti vantaggi per l'analisi delle conversazioni del servizio clienti.

  • Trascrizione unificata:visualizza una singola trascrizione cronologica che combina le espressioni di più fonti, ad esempio una sessione di chatbot seguita da una chiamata con un operatore in carne e ossa.
  • Analisi cross-channel:collega le interazioni su diversi canali, come chat e voce, per analizzare le tendenze del sentiment e la progressione degli argomenti durante l'intero percorso della conversazione.
  • Accuratezza delle metriche:calcola metriche come il tempo di gestione totale o il tasso di risoluzione per l'intera interazione anziché solo per le singole parti.
  • Contesto per gli agenti:fornisci agli agenti umani la cronologia completa delle precedenti interazioni automatizzate.

Procedura di correlazione

Quando le regole di correlazione corrispondono a più segmenti di conversazione, CX Insights li raggruppa. CX Insights crea quindi una nuova voce per rappresentare l'intera conversazione con il proprio ID conversazione univoco. CX Insights imposta l'ID correlazione di un'intera conversazione sulla chiave comune che collega i segmenti e il relativo tipo su FULL. CX Insights imposta gli ID correlazione dei segmenti originali sulla chiave comune e i relativi tipi su SEGMENT. Se un segmento non è correlato ad altri segmenti, CX Insights gli assegna entrambi i tipi di correlazione SEGMENT e FULL.

Le regole di correlazione collegano segmenti di conversazione correlati provenienti da origini e canali diversi. CX Insights segue questi passaggi per collegare i segmenti di conversazione:

  1. Raggruppa per chiave di join:CX Insights valuta un'espressione della chiave di join CEL per estrarre un identificatore comune dalla conversazione, ad esempio callId. Le conversazioni che condividono la stessa chiave di join sono potenziali candidati per il collegamento. Le chiavi di join devono essere specifiche. Se una chiave corrisponde a più di 20 conversazioni, la correlazione potrebbe essere rifiutata per evitare problemi di prestazioni.
  2. Perfeziona con i vincoli:l'espressione di vincolo CEL è un controllo booleano facoltativo valutato a coppie tra i candidati. Questa espressione consente di verificare se due segmenti che condividono una chiave devono essere effettivamente collegati. Questo controllo è bidirezionale, quindi potrebbe includere il segmento A collegato al segmento B e il segmento B collegato al segmento A.
  3. Link transitivo:il collegamento è transitivo. Se la conversazione A è collegata alla conversazione B e la conversazione B è collegata alla conversazione C, A, B e C vengono unite in un unico gruppo di conversazioni FULL.

Una conversazione unita può contenere un massimo di cinque segmenti.

Configurare le regole di correlazione

Puoi configurare le regole di correlazione utilizzando l'API o la console CX Insights.

API

  1. Esegui il seguente codice per configurare un CorrelationConfig.
    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"
  2. Assegna alla regola un nome nel seguente formato: projects/{project-id}/locations/{location-id}/correlationConfig.
  3. Visualizza il risultato nel campo Conversation.CorrelationInfo.

Puoi utilizzare una qualsiasi delle seguenti operazioni con le regole di correlazione.

  • 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. Corpo della richiesta di esempio, se salvato in un updated_corr_config.json:
    {
    "fullConversationConfig": {
    "correlationRules": [
      {
        "joinKeyExpression": "conversation.labels.uui",
        "active": true
      }
    ]
    }
    }
  • TestCorrelationConfig. Il payload deve specificare i dettagli della conversazione di esempio oltre alla regola di correlazione da testare. Esempio:
    {
    "correlationConfig": {
    "fullConversationConfig": {
      "correlationRules": [
       {
          "joinKeyExpression": "conversation.agent_id",
         "active": true
        }
      ]
    }
    },
    "filter": "agent_id="agent_007"",
    "maxSampleCount": 100
    }

Console

  1. Vai alla console CX Insights, accedi e seleziona il tuo progetto. Console CX Insights
  2. Fai clic su ImpostazioniImpostazioni > Configurazione correlazione.
  3. Fai clic su Salva.

Gli amministratori possono definire e gestire le voci CorrelationRule all'interno di CorrelationConfig. Puoi testare le regole di correlazione selezionando le conversazioni. I risultati del test vengono aggiunti a un set di dati per la revisione.

Esempio di CEL

Link di callId da 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)

Analisi a livello di segmento e conversazione

Con CX Insights puoi analizzare le conversazioni a diversi livelli di granularità, inclusa l'analisi per segmento e per conversazione per tutte le funzionalità.

  1. Vai alla console CX Insights, accedi e seleziona il tuo progetto. Console CX Insights
  2. Fai clic su ImpostazioniImpostazioni e scegli la granularità dell'analisi. La tua scelta si applica alle analisi future e può essere applicata retroattivamente, con potenziali costi aggiuntivi.
  3. Fai clic su Salva.

Le pagine Hub delle conversazioni e AI per la qualità nella console confrontano i dati a livello di conversazione e segmento e indicano la struttura multisegmento delle conversazioni collegate.

Filtrare metriche e analisi

Per scegliere come target livelli specifici di analisi nell'API o nella console, utilizza i seguenti filtri.

Visualizzazione a livello di segmento

Lo scopo di questa visualizzazione è analizzare parti specifiche di un'interazione, ad esempio il turno di un singolo agente. Utilizza il parametro correlation_info.correlation_types:SEGMENT per filtrare la visualizzazione a livello di segmento.

Visualizzazione della conversazione completa

Utilizza questa visualizzazione per analizzare l'intero customer journey, indipendentemente dal fatto che sia costituito da conversazioni collegate o autonome. Utilizza il parametro correlation_info.correlation_types:FULL per filtrare la visualizzazione della conversazione completa.