Règles de corrélation et d'ajout automatique de libellés

Customer Experience Insights propose deux fonctionnalités basées sur des règles pour améliorer le traitement des conversations :

  • Règles d'étiquetage automatique : appliquez automatiquement des libellés clé-valeur aux conversations en fonction de conditions définies.
  • Règles de corrélation : définissez comment associer des segments de conversation connexes pour former des vues complètes des interactions avec les clients.

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 fondamental pour les règles de corrélation et de taggage automatique. Vous pouvez configurer ces règles avec l'API ou la console CX Insights.

Règles d'étiquetage automatique

Les règles d'étiquetage automatique enrichissent automatiquement les conversations avec des étiquettes clé-valeur personnalisées lors de l'importation. Ces libellés améliorent le filtrage, la catégorisation et l'intégration avec d'autres analyses et workflows. Voici les actions que vous pouvez effectuer avec les règles d'étiquetage automatique :

  • Catégorisez les conversations par thème, type de client, produit ou résultat.
  • Extrayez des points de données clés des métadonnées de conversation ou des paramètres Dialogflow, tels que les noms callId, isAuthenticated et intent, dans des libellés.
  • Signalez les conversations qui nécessitent une attention particulière, comme high_escalation_risk.

Étiquettes

Chaque règle d'étiquetage automatique 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 pour un libellé si la condition est vraie.

La première LabelingCondition correspondante détermine la valeur du libellé.

Configurer les règles

Suivez ces étapes pour configurer des règles d'étiquetage automatique à l'aide de l'API ou de la console CX Insights.

API

  1. Utilisez l'opération Create pour configurer un AutoLabelingRule. 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"

  2. Donnez un nom à votre règle au format suivant : projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. L'ID [auto_labeling_rule] correspond à label_key pour les règles personnalisées.

Vous pouvez également utiliser l'une des opérations suivantes avec les règles d'étiquetage automatique. Une règle d'étiquetage automatique peut comporter jusqu'à 100 libellés par conversation, chacun comptant 256 caractères maximum.

  • 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. En fonction des champs à mettre à jour, spécifiez 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. 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

  1. Accédez à la console CX Insights, connectez-vous et sélectionnez votre projet. Console CX Insights
  2. Cliquez sur ParamètresParamètres > Règles d'étiquetage automatique.
  3. Saisissez des expressions CEL avec un éditeur Monaco.
  4. 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'"
    }
  • Extrayez 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'étiquetage automatique 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 la façon dont les insights sur l'expérience client identifient et associent les segments de conversation associés. Un segment de conversation représente une partie 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 plusieurs segments. Par défaut, toutes les nouvelles conversations commencent sous forme de segments. Les règles de corrélation vous aident à créer un historique complet des interactions d'un client, même lorsqu'elles s'étendent 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 à un agent en direct.
  • Analyse cross-canal : associez les interactions sur différents canaux, comme le chat et la voix, pour analyser les tendances des sentiments et la progression des thèmes tout au long d'un parcours de conversation complet.
  • Précision des métriques : calculez des métriques comme le temps de traitement total ou le taux de résolution pour l'intégralité de l'interaction plutôt que pour des parties individuelles.
  • Contexte pour les agents : fournissez aux agents humains l'historique complet des interactions automatisées précédentes.

Processus de corrélation

Lorsque des 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 l'intégralité de la conversation, 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 relie 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 deux types de corrélation, SEGMENT et FULL.

Les règles de corrélation associent les segments de conversation associés provenant de différentes sources et différents canaux. CX Insights suit les étapes suivantes pour associer les segments de conversation :

  1. Regrouper par clé de jointure : CX Insights évalue une expression CEL de clé de jointure pour extraire un identifiant commun de la conversation, tel que callId. Les conversations partageant la même clé de connexion peuvent être associées. Les clés de jointure doivent être spécifiques. Si une clé correspond à plus de 20 conversations, la corrélation peut être refusée pour éviter les problèmes de performances.
  2. 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.
  3. Lien transitif : l'association est transitive. Si la conversation A est associée à la conversation B, et que la conversation B est associée à la conversation C, alors les conversations A, B et C sont fusionnées 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

  1. 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"
  2. Donnez un nom à votre règle au format suivant : projects/{project-id}/locations/{location-id}/correlationConfig.
  3. Consultez 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 un updated_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

  1. Accédez à la console CX Insights, connectez-vous et sélectionnez votre projet. Console CX Insights
  2. Cliquez sur settingsSettings > Correlation Config (Paramètres > Configuration de la corrélation).
  3. Cliquez sur Enregistrer.

Les administrateurs peuvent définir et gérer les entrées CorrelationRule dans 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

Lien par callId depuis 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)

Analyse au niveau des segments et des conversations

CX Insights vous permet d'analyser les conversations à différents niveaux de précision, y compris par segment et par conversation pour toutes les fonctionnalités.

  1. Accédez à la console CX Insights, connectez-vous et sélectionnez votre projet. Console CX Insights
  2. Cliquez sur ParamètresParamètres, puis choisissez la précision de votre analyse. Votre choix s'applique aux futures analyses et peut être appliqué rétroactivement, avec des coûts supplémentaires potentiels.
  3. Cliquez sur Enregistrer.

Les pages Conversation Hub et Qualité de l'IA de la console comparent les données au niveau des conversations et des segments, et indiquent la structure multisegment des conversations associées.

Filtrer les métriques et les analyses

Pour cibler des niveaux d'analyse spécifiques dans l'API ou la console, utilisez les filtres suivants.

Vue au niveau du segment

L'objectif de cette vue est d'analyser des parties spécifiques d'une interaction, comme le tour de parole d'un agent. Utilisez le paramètre correlation_info.correlation_types:SEGMENT pour filtrer la vue au niveau du segment.

Mode Conversation complète

Utilisez cette vue pour analyser l'intégralité du parcours client, qu'il s'agisse de conversations associées ou autonomes. Utilisez le paramètre correlation_info.correlation_types:FULL pour filtrer la vue complète de la conversation.