Customer Experience Insights introduit deux fonctionnalités basées sur des règles pour améliorer le traitement des conversations :
- Règles d'ajout automatique de libellés : appliquez automatiquement des libellés clé-valeur aux conversations en fonction des conditions définies.
- Règles de corrélation : définissez comment associer des segments de conversation liés pour former des vues complètes des interactions client.
Les deux types de règles utilisent le CEL (Common Expression Language) pour fournir des définitions de règles flexibles et dynamiques. Le CEL est essentiel pour les règles d'ajout automatique de libellés et de corrélation. Vous pouvez configurer ces règles avec l'API ou la console CX Insights.
Règles d'ajout automatique de libellés
Les règles d'ajout automatique de libellés enrichissent automatiquement les conversations avec des libellés clé-valeur personnalisés lors de l'importation. Ces libellés améliorent le filtrage, la catégorisation et l'intégration avec d'autres analyses et workflows. Vous pouvez effectuer les actions suivantes avec les règles d'ajout automatique de libellés :
- Catégoriser les conversations par sujet, type de client, produit ou résultat.
- Extraire des points de données clés des métadonnées de conversation ou des paramètres Dialogflow, tels que les noms
callId,isAuthenticatedetintent, dans des libellés. - Signaler les conversations nécessitant une attention particulière, telles que
high_escalation_risk.
Étiquettes
Chaque règle d'ajout automatique de libellés définit un libellé et contient des messages de condition ordonnés. Chaque libellé utilise les expressions CEL suivantes :
- Condition : évalue si une conversation est vraie ou fausse. Une condition vide est définie par défaut sur "true".
- Valeur : génère la valeur de chaîne d'un libellé si la condition est vraie.
La première LabelingCondition correspondante détermine la valeur du libellé.
Configurer les règles
Pour configurer des règles d'ajout automatique de libellés à l'aide de l'API ou de la console CX Insights, procédez comme suit.
API
Utilisez l'opération
Createpour configurer uneAutoLabelingRule. Exemple de corps de requête :{ "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 }Commande Curl, si la requête est enregistrée dans
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"Attribuez un nom à votre règle au format suivant :
projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. L'ID[auto_labeling_rule]est lalabel_keydes règles personnalisées.
Vous pouvez également utiliser l'une des opérations suivantes avec les règles d'ajout automatique de libellés. Une règle d'ajout automatique de libellés peut comporter jusqu'à 100 libellés par conversation, avec un maximum de 256 caractères par entrée.
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. Selon les champs à mettre à jour, spécifiez leupdate_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. Votre charge utile doit contenir la règle à tester et un exemple de conversation sur lequel la règle sera évaluée. Exemple :{ "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
- Accédez à la console CX Insights, connectez-vous, puis sélectionnez votre projet. Console CX Insights
- Cliquez sur settingsSettings > Auto Labeling Rules (Règles d'ajout automatique de libellés).
- Saisissez des expressions CEL avec un éditeur Monaco.
- Cliquez sur Enregistrer.
Exemples de CEL
- Libellé par ID d'agent :
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'" } - Signaler un sentiment négatif :
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'" } - Extraire un paramètre 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()" }
Utiliser des libellés automatiques dans les filtres de règles d'analyse
Les règles d'ajout automatique de libellés peuvent appliquer des libellés qui contrôlent les conversations traitées par les règles d'analyse principales. Le champ conversation_filter d'une règle d'analyse peut référencer des libellés à l'aide du mappage des libellés.
Exemple :
// 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
Règles de corrélation
Les règles de corrélation définissent comment Customer Experience Insights identifie et associe les segments de conversation liés. Un segment de conversation représente une partie unique d'une conversation, telle qu'elle a été ingérée, comme une session Dialogflow ou une interaction unique avec un agent. Une conversation complète représente une conversation complète et associée, composée d'un ou de plusieurs segments. Par défaut, toutes les nouvelles conversations commencent en tant que segments. Les règles de corrélation vous aident à créer un historique complet de l'interaction d'un client, même lorsqu'elle s'étend sur plusieurs agents, canaux ou sessions.
Les règles de corrélation offrent les avantages suivants pour l'analyse des conversations du service client.
- Transcription unifiée : affichez une transcription unique et chronologique qui combine les énoncés provenant de plusieurs sources, comme une session de chatbot suivie d'un appel avec un agent en direct.
- Analyse multicanal : associez les interactions sur différents canaux, tels que le chat et la voix, pour analyser les tendances des sentiments et la progression des sujets tout au long d'un parcours de conversation complet.
- Précision des métriques : calculez des métriques telles que le temps de traitement total ou le taux de résolution pour l'interaction complète plutôt que pour des parties individuelles uniquement.
- Contexte pour les agents : fournissez aux agents humains l'historique complet des interactions automatisées précédentes.
Processus de corrélation
Lorsque les règles de corrélation correspondent à plusieurs segments de conversation, CX Insights les regroupe. CX Insights crée ensuite une entrée pour représenter la conversation complète avec son propre ID de conversation unique. CX Insights définit l'ID de corrélation d'une conversation complète sur la clé commune qui associe les segments, et son type sur FULL. CX Insights définit les ID de corrélation des segments d'origine sur la clé commune et leurs types sur SEGMENT. Si un segment n'est corrélé à aucun autre segment, CX Insights lui attribue les types de corrélation SEGMENT et FULL.
Associer des messages
Les règles de corrélation associent des segments de conversation liés provenant de différentes sources et de différents canaux. CX Insights procède comme suit pour associer des segments de conversation :
- Critère de regroupement par clé de jointure : CX Insights évalue une expression de clé de jointure CEL pour extraire un identifiant commun de la conversation, tel que
callId. Les conversations partageant la même clé de jointure sont des candidats potentiels pour l'association. Les clés de jointure doivent être spécifiques. Si une clé correspond à plus de 20 conversations, la corrélation peut être rejetée pour éviter les problèmes de performances. - Affiner avec des contraintes : l'expression de contrainte CEL est une vérification booléenne facultative évaluée par paires entre les candidats. Cette expression permet de confirmer si deux segments partageant une clé doivent réellement être associés. Cette vérification est bidirectionnelle. Elle peut donc inclure le segment A associé au segment B et le segment B associé au segment A.
- Lien transitif : l'association est transitive. Si la conversation A est associée à B et que B est associé à C, alors A, B et C sont fusionnés en un seul groupe de conversations
FULL.
Une conversation fusionnée peut contenir jusqu'à cinq segments.
Configurer des règles de corrélation
Vous pouvez configurer des règles de corrélation à l'aide de l'API ou de la console CX Insights.
API
- Exécutez le code suivant pour configurer 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" - Attribuez un nom à votre règle au format suivant :
projects/{project-id}/locations/{location-id}/correlationConfig. - Affichez le résultat dans le champ
Conversation.CorrelationInfo.
Vous pouvez utiliser l'une des opérations suivantes avec les règles de corrélation.
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. Exemple de corps de requête, s'il est enregistré dans unupdated_corr_config.json:{ "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.labels.uui", "active": true } ] } }TestCorrelationConfig. Votre charge utile doit spécifier les détails de l'exemple de conversation en plus de la règle de corrélation à tester. Exemple :{ "correlationConfig": { "fullConversationConfig": { "correlationRules": [ { "joinKeyExpression": "conversation.agent_id", "active": true } ] } }, "filter": "agent_id="agent_007"", "maxSampleCount": 100 }
Console
- Accédez à la console CX Insights, connectez-vous, puis sélectionnez votre projet. Console CX Insights
- Cliquez sur settingsSettings > Correlation Config (Configuration de la corrélation).
- Cliquez sur Enregistrer.
Les administrateurs peuvent définir et gérer des entrées CorrelationRule dans le CorrelationConfig. Vous pouvez tester vos règles de corrélation en sélectionnant des conversations. Les résultats des tests sont ajoutés à un ensemble de données pour examen.
Exemple de CEL
Associer par callId à partir de 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)
Fonctions utilitaires CEL
CX Insights fournit plusieurs fonctions utilitaires que vous pouvez utiliser dans des expressions CEL pour évaluer les conversations.
| Signature de la fonction | Description |
|---|---|
get_label(string key) |
Renvoie la valeur de chaîne du libellé associé à la key donnée à partir de la conversation actuelle. |
exists_call_back_conversation( |
Renvoie true si une conversation de rappel existe et correspond au filter fourni. Il recherche les conversations avec le même ID utilisateur (ID utilisateur obscurci ou libellé d'ID utilisateur prédéfini) dans une fenêtre future par défaut (24 heures). Le filter fourni est ajouté à ce critère. |
has_same_caller_conversation_in_n_hours(has_same_caller_conversation_in_n_hours( |
Renvoie true s'il existe des conversations du même appelant/utilisateur dans le nombre d'hours spécifié (positif pour l'avenir, négatif pour le passé). Un filter facultatif peut être fourni pour limiter davantage la recherche. |
get_same_caller_conversations_in_n_hours(get_same_caller_conversations_in_n_hours( |
Renvoie une liste de conversations du même appelant/utilisateur dans le nombre d'hours spécifié. Un filter facultatif peut être fourni. |
get_session_params(string key) |
Récupère la valeur de chaîne d'un paramètre de session (à partir de Dialogflow ou de CES) associé à la key donnée. Il effectue une recherche dans les annotations d'exécution et les annotations de tour CES dans l'ordre chronologique inverse. Renvoie une chaîne vide si aucun résultat n'est trouvé. |
get_last_subagent()get_last_subagent(list excludes) |
Renvoie le nom à afficher du dernier sous-agent impliqué dans la conversation. Peut éventuellement exclure les sous-agents listés dans la liste excludes (qui inclut généralement le sous-agent gérant spécifiquement l'escalade), sauf s'il s'agit du seul sous-agent. |
get_last_subagent_id()get_last_subagent_id(list excludes) |
Renvoie l'ID du dernier sous-agent impliqué dans la conversation. Peut éventuellement exclure les sous-agents listés dans la liste excludes (qui inclut généralement le sous-agent gérant spécifiquement l'escalade), sauf s'il s'agit du seul sous-agent. |
list.first_element_or_empty_string() |
Disponible sur les listes de chaînes. Renvoie le premier élément de la liste s'il s'agit d'une chaîne. Sinon (ou si la liste est vide), renvoie une chaîne vide. |
Analyse au niveau du segment et de la conversation
Avec CX Insights, vous pouvez analyser les conversations à différents niveaux de granularité, y compris l'analyse par segment et par conversation pour toutes les fonctionnalités. Les pages Conversation Hub (Plate-forme de conversation) et Quality AI (IA de qualité) de la console comparent les données au niveau de la conversation et du segment, en indiquant la structure multisegment des conversations associées.
Pour cibler des niveaux d'analyse spécifiques, utilisez les filtres suivants avec une règle d'analyse.
Vue au niveau du segment
L'objectif de cette vue est d'analyser des parties spécifiques d'une interaction, comme le tour d'un seul agent. Utilisez le paramètre correlation_info.correlation_types:SEGMENT pour filtrer la vue au niveau du segment.
Mode Conversation complet
Utilisez cette vue pour analyser le parcours client complet, qu'il s'agisse de conversations associées ou autonomes. Utilisez le paramètre correlation_info.correlation_types:FULL pour filtrer le mode Conversation complet.