Customer Experience Insights introduce due funzionalità basate su regole per migliorare l'elaborazione delle conversazioni:
- Regole di etichettatura automatica:applica automaticamente etichette coppia 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 l'assegnazione automatica delle etichette sia per le regole 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 solo le conversazioni con etichette coppia chiave-valore personalizzate durante l'importazione. Queste etichette migliorano il filtraggio, la classificazione e l'integrazione con altre analisi e altri workflow. Puoi eseguire le seguenti azioni con le regole di etichettatura automatica:
- Classifica le conversazioni in base all'argomento, al tipo di cliente, al prodotto o al risultato.
- Estrai i punti dati chiave dai metadati della conversazione o dai parametri di Dialogflow, ad esempio i nomi di
callId,isAuthenticatedeintent, 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 è 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.
Regole predefinite
CX Insights applica automaticamente le regole predefinite per le seguenti etichette.
sessionEscalated
Questa etichetta combina Dialogflow e gli indicatori di riassegnazione predefiniti per identificare se la conversazione è stata riassegnata dall'utente finale o dall'agente. Il valore di questa etichetta informa la metrica del tasso di riassegnazione in una dashboard configurabile. Puoi configurare una regola personalizzata per sovrascrivere questa etichetta se utilizzi una chiamata di strumento di riassegnazione personalizzato.
sessionContained
Questa etichetta identifica i casi in cui non si è verificata alcuna riassegnazione. Quando il valore è true, il risultato della conversazione con l'AI per la qualità non può essere riassegnato. Puoi configurare una regola personalizzata per sovrascrivere questa etichetta.
isRepeatedCallerConversation
Questa etichetta calcola la frequenza con cui un utente richiama entro 24 ore e si basa sull'etichetta userIdentifier per determinare se una richiamata proviene dallo stesso utente. Puoi configurare una regola personalizzata per sovrascrivere questa etichetta.
userIdentifier
Questa etichetta determina se lo stesso utente richiama entro un numero specificato di ore. A questo scopo, utilizza la variabile obfuscated_external_user_id di session_params in Dialogflow e Customer Experience Agent Studio oppure la richiesta CreateParticipant in Agent Assist. Se utilizzi variabili di parametri di sessione diverse per l'identificazione degli utenti, devi utilizzare get_session_params() per sovrascrivere questa etichetta.\
lastTransferSubAgentNames
Questa etichetta fornisce il nome del subagente finale di Customer Experience Agent Studio prima che qualcuno riassegni una conversazione. Il valore predefinito utilizza get_last_subagent([entry_subagent]), che presuppone che la riassegnazione venga gestita dal subagente designato. Se hai un agente di riassegnazione specifico, devi configurare una regola personalizzata per sovrascrivere il valore predefinito con get_last_subagent([escalation_agent_name]).
Configura le regole
Puoi anche configurare le tue regole di etichettatura automatica con l'API o la console CX Insights.
API
Utilizza l'operazione
Createper configurare unAutoLabelingRule. Corpo della richiesta di esempio:{ "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"Assegna alla regola un nome nel seguente formato:
projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. L'ID[auto_labeling_rule]è l'label_keyper le regole personalizzate.
Puoi anche utilizzare una delle seguenti operazioni con le regole di classificazione 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, specificaupdate_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
- Vai alla console CX Insights, accedi e seleziona il tuo progetto. Console CX Insights
- Fai clic su ImpostazioniImpostazioni > Regole di etichettatura automatica.
- Inserisci espressioni CEL con un editor Monaco.
- 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'" } - Estrai 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 collegata completa 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 elaborazione 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 interazioni automatizzate precedenti.
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.
Messaggi con link
Le regole di correlazione collegano segmenti di conversazione correlati provenienti da diverse origini e canali. CX Insights segue questi passaggi per collegare i segmenti di conversazione:
- 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. - Perfeziona con i vincoli:l'espressione di vincolo CEL è un controllo booleano facoltativo valutato a coppie tra i candidati. Questa espressione aiuta a 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.
- Link transitivo:il collegamento è transitivo. Se la conversazione A è collegata alla conversazione B e la conversazione B è collegata alla conversazione C, le conversazioni A, B e C vengono unite in un unico gruppo di conversazioni
FULL.
Una conversazione unita può contenere un massimo di cinque segmenti.
Configura le regole di correlazione
Puoi configurare le regole di correlazione utilizzando l'API o la console CX Insights.
API
- 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" - Assegna alla regola un nome nel seguente formato:
projects/{project-id}/locations/{location-id}/correlationConfig. - 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 unupdated_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
- Vai alla console CX Insights, accedi e seleziona il tuo progetto. Console CX Insights
- Fai clic su ImpostazioniImpostazioni > Configurazione correlazione.
- 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
Collegamento creato da 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)
Funzioni di utilità CEL
CX Insights fornisce diverse funzioni di utilità che puoi utilizzare nelle espressioni CEL per valutare le conversazioni.
| Firma della funzione | Descrizione |
|---|---|
get_label(string key) |
Restituisce il valore stringa dell'etichetta associata al key specificato della conversazione corrente. |
exists_call_back_conversation( |
Restituisce true se esiste una conversazione "richiamami" corrispondente al filter fornito. Cerca le conversazioni con lo stesso ID utente (ID utente offuscato o etichetta ID utente predefinita) all'interno di una finestra futura predefinita (24 ore). Il filter fornito viene aggiunto a questi criteri. |
has_same_caller_conversation_in_n_hours(has_same_caller_conversation_in_n_hours( |
Restituisce true se ci sono conversazioni dello stesso chiamante/utente entro il numero specificato di hours (positivo per il futuro, negativo per il passato). Per limitare ulteriormente la ricerca, è possibile fornire un filter facoltativo. |
get_same_caller_conversations_in_n_hours(get_same_caller_conversations_in_n_hours( |
Restituisce un elenco di conversazioni dello stesso chiamante/utente entro il numero specificato di hours. Puoi fornire un filter facoltativo. |
get_session_params(string key) |
Recupera il valore stringa di un parametro di sessione (da Dialogflow o CES) associato al key specificato. Esegue la ricerca nelle annotazioni di runtime e nelle annotazioni di attivazione di CES in ordine cronologico inverso. Restituisce una stringa vuota se non viene trovato. |
get_last_subagent()get_last_subagent(list excludes) |
Restituisce il nome visualizzato dell'ultimo subagente coinvolto nella conversazione. Può facoltativamente escludere i subagenti elencati nell'elenco excludes (che in genere include il subagente che gestisce specificamente la riassegnazione) a meno che non sia l'unico subagente. |
get_last_subagent_id()get_last_subagent_id(list excludes) |
Restituisce l'ID dell'ultimo subagente coinvolto nella conversazione. Può facoltativamente escludere i subagenti elencati nell'elenco excludes (che in genere include il subagente che gestisce specificamente la riassegnazione) a meno che non sia l'unico subagente. |
list.first_element_or_empty_string() |
Disponibile negli elenchi di stringhe. Restituisce il primo elemento dell'elenco se è una stringa; in caso contrario (o se è vuoto), restituisce una stringa vuota. |
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à. Le pagine Hub delle conversazioni e Quality AI nella console confrontano i dati a livello di conversazione e segmento, indicando la struttura multisegmento delle conversazioni collegate.
Per scegliere come target livelli di analisi specifici, utilizza i seguenti filtri con una regola di analisi.
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 per 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 per conversazione completa.