Reglas de correlación y etiquetado automático

Customer Experience Insights presenta dos funciones basadas en reglas para mejorar el procesamiento de conversaciones:

  • Reglas de etiquetado automático: Aplica automáticamente etiquetas de clave-valor a las conversaciones según las condiciones definidas.
  • Reglas de correlación: Definen cómo vincular segmentos de conversación relacionados para formar vistas completas de las interacciones con los clientes.

Ambos tipos de reglas usan Common Expression Language (CEL) para proporcionar definiciones de reglas flexibles y dinámicas. CEL es fundamental para las reglas de correlación y el etiquetado automático. Puedes configurar estas reglas con la API o la consola de CX Insights.

Reglas de etiquetado automático

Las reglas de etiquetado automático enriquecen automáticamente las conversaciones con etiquetas personalizadas de clave-valor durante la importación. Estas etiquetas mejoran el filtrado, la categorización y la integración con otros análisis y flujos de trabajo. Puedes realizar las siguientes acciones con las reglas de etiquetado automático:

  • Categoriza las conversaciones por tema, tipo de cliente, producto o resultado.
  • Extrae puntos de datos clave de los metadatos de la conversación o los parámetros de Dialogflow, como los nombres de callId, isAuthenticated y intent, en etiquetas.
  • Marcar las conversaciones que requieren atención específica, como high_escalation_risk

Etiquetas

Cada regla de etiquetado automático define una etiqueta y contiene mensajes de condición ordenados. Cada etiqueta usa las siguientes expresiones de CEL:

  • Condición: Evalúa si una conversación es verdadera o falsa. Una condición vacía se establece de forma predeterminada como verdadera.
  • Valor: Produce el valor de cadena de una etiqueta si la condición es verdadera.

El primer LabelingCondition que coincide determina el valor de la etiqueta.

Configura las reglas

Sigue estos pasos para configurar reglas de etiquetado automático con la API o la consola de CX Insights.

API

  1. Usa la operación Create para configurar un AutoLabelingRule. Ejemplo de cuerpo de la solicitud:

    {
      "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, si la solicitud se guarda en 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. Asigna un nombre a tu regla con el siguiente formato: projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. El ID de [auto_labeling_rule] es el label_key para las reglas personalizadas.

También puedes usar cualquiera de las siguientes operaciones con las reglas de etiquetado automático. Una regla de etiquetado automático puede tener un máximo de 100 etiquetas por conversación y un máximo de 256 caracteres por entrada.

  • 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. Según los campos que se deban actualizar, especifica el 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. Tu carga útil debe contener la regla que se probará y una conversación de muestra en la que se evaluará la regla. Ejemplo:
    {
    "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. Navega a la consola de CX Insights, accede y selecciona tu proyecto. Consola de CX Insights
  2. Haz clic en ConfiguraciónConfiguración > Reglas de etiquetado automático.
  3. Ingresa expresiones CEL con un editor de Monaco.
  4. Haz clic en Guardar.

Ejemplos de CEL

  • Etiqueta por ID de 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'"
    }
  • Marcar opiniones negativas:
    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'"
    }
  • Sigue estos pasos para extraer un parámetro de 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()"
    }

Usa etiquetas automáticas en los filtros de reglas de análisis

Las reglas de etiquetado automático pueden aplicar etiquetas que controlan qué conversaciones procesan las reglas de análisis principales. El campo conversation_filter en una regla de análisis puede hacer referencia a etiquetas con el mapa de etiquetas.

Ejemplo:

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

Reglas de correlación

Las reglas de correlación definen cómo Customer Experience Insights identifica y vincula los segmentos de conversación relacionados. Un segmento de conversación representa una sola parte de una conversación, tal como se incorporó, como una sesión de Dialogflow o una sola interacción del agente. Una conversación completa representa una conversación completa y vinculada compuesta por uno o más segmentos. De forma predeterminada, todas las conversaciones nuevas comienzan como segmentos. Las reglas de correlación te ayudan a crear un historial completo de la interacción de un cliente, incluso cuando abarca varios agentes, canales o sesiones.

Las reglas de correlación proporcionan los siguientes beneficios para el análisis de conversaciones de atención al cliente.

  • Transcripción unificada: Consulta una sola transcripción cronológica que combina expresiones de varias fuentes, como una sesión de chatbot seguida de una llamada con un agente en vivo.
  • Análisis en múltiples canales: Vincula las interacciones en diferentes canales, como el chat y la voz, para analizar las tendencias de opiniones y la progresión de los temas a lo largo de todo el recorrido de la conversación.
  • Precisión de las métricas: Calcula métricas como el tiempo total de gestión o el porcentaje de resolución para la interacción completa, en lugar de solo para las partes individuales.
  • Contexto para los agentes: Proporciona a los agentes humanos el historial completo de las interacciones automatizadas anteriores.

Proceso de correlación

Cuando las reglas de correlación coinciden con varios segmentos de conversación, CX Insights los agrupa. Luego, CX Insights crea una entrada nueva para representar la conversación completa con su propio ID de conversación único. CX Insights establece el ID de correlación de una conversación completa en la clave común que vincula los segmentos y su tipo en FULL. CX Insights establece los IDs de correlación de los segmentos originales en la clave común y sus tipos en SEGMENT. Si un segmento no se correlaciona con ningún otro, CX Insights le asigna los tipos de correlación SEGMENT y FULL.

Las reglas de correlación vinculan segmentos de conversaciones relacionados de diferentes fuentes y canales. CX Insights sigue estos pasos para vincular segmentos de conversación:

  1. Agrupar por clave de unión: CX Insights evalúa una expresión de clave de unión de CEL para extraer un identificador común de la conversación, como callId. Las conversaciones que comparten la misma clave de unión son candidatas potenciales para la vinculación. Las claves de unión deben ser específicas. Si una clave coincide con más de 20 conversaciones, es posible que se rechace la correlación para evitar problemas de rendimiento.
  2. Refine with constraints: La expresión de restricción en CEL es una verificación booleana opcional que se evalúa por pares entre los candidatos. Esta expresión ayuda a confirmar si dos segmentos que comparten una clave realmente deberían estar vinculados. Esta verificación es bidireccional, por lo que podría incluir el tramo A vinculado al tramo B y el tramo B vinculado al tramo A.
  3. Vínculo transitivo: La vinculación es transitiva. Si la conversación A está vinculada a B, y B está vinculada a C, entonces A, B y C se combinan en un solo grupo de conversaciones FULL.

Una conversación combinada puede contener un máximo de cinco segmentos.

Configura reglas de correlación

Puedes configurar reglas de correlación con la API o la consola de CX Insights.

API

  1. Ejecuta el siguiente código para configurar 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. Asigna un nombre a tu regla con el siguiente formato: projects/{project-id}/locations/{location-id}/correlationConfig.
  3. Consulta el resultado en el campo Conversation.CorrelationInfo.

Puedes usar cualquiera de las siguientes operaciones con reglas de correlación.

  • 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. Cuerpo de la solicitud de muestra, si se guarda en un updated_corr_config.json:
    {
    "fullConversationConfig": {
    "correlationRules": [
      {
        "joinKeyExpression": "conversation.labels.uui",
        "active": true
      }
    ]
    }
    }
  • TestCorrelationConfig. Tu carga útil debe especificar los detalles de la conversación de muestra, además de la regla de correlación que se probará. Ejemplo:
    {
    "correlationConfig": {
    "fullConversationConfig": {
      "correlationRules": [
       {
          "joinKeyExpression": "conversation.agent_id",
         "active": true
        }
      ]
    }
    },
    "filter": "agent_id="agent_007"",
    "maxSampleCount": 100
    }

Console

  1. Navega a la consola de CX Insights, accede y selecciona tu proyecto. Consola de CX Insights
  2. Haz clic en settingsConfiguración > Configuración de correlación.
  3. Haz clic en Guardar.

Los administradores pueden definir y administrar las entradas de CorrelationRule dentro de CorrelationConfig. Puedes probar tus reglas de correlación seleccionando conversaciones. Los resultados de las pruebas se agregan a un conjunto de datos para su revisión.

Ejemplo de CEL

Vínculo por callId desde 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)

Análisis a nivel de segmento y conversación

Con CX Insights, puedes analizar conversaciones con diferentes niveles de detalle, incluido el análisis por segmento y por conversación para todas las funciones.

  1. Navega a la consola de CX Insights, accede y selecciona tu proyecto. Consola de CX Insights
  2. Haz clic en ConfiguraciónConfiguración y elige la granularidad del análisis. Tu elección se aplica a los análisis futuros y se puede aplicar de forma retroactiva, con posibles costos adicionales.
  3. Haz clic en Guardar.

Las páginas Centro de conversación y Calidad de la IA de la consola comparan los datos a nivel de la conversación y del segmento, y muestran la estructura de varios segmentos de las conversaciones vinculadas.

Métricas y análisis de filtros

Para segmentar niveles específicos de análisis en la API o la consola, usa los siguientes filtros.

Vista a nivel del segmento

El objetivo de esta vista es analizar partes específicas de una interacción, como el turno de un solo agente. Usa el parámetro correlation_info.correlation_types:SEGMENT para filtrar la vista a nivel del segmento.

Vista de conversación completa

Usa esta vista para analizar el recorrido del cliente completo, ya sea que consista en conversaciones vinculadas o independientes. Usa el parámetro correlation_info.correlation_types:FULL para filtrar la vista de conversación completa.