Regras de rotulagem automática e correlação

O Customer Experience Insights apresenta dois recursos baseados em regras para melhorar o processamento de conversas:

  • Regras de rotulagem automática:aplicam automaticamente rótulos de chave-valor às conversas com base em condições definidas.
  • Regras de correlação:definem como vincular segmentos de conversa relacionados para formar visualizações completas da interação com o cliente.

Os dois tipos de regra usam a Common Expression Language (CEL) para fornecer definições de regras flexíveis e dinâmicas. A CEL é fundamental para a rotulagem automática e as regras de correlação. É possível configurar essas regras com a API ou o console do CX Insights.

Regras de rotulagem automática

As regras de rotulagem automática enriquecem automaticamente as conversas com rótulos personalizados de chave-valor durante a importação. Esses rótulos melhoram a filtragem, a categorização e a integração com outras análises e fluxos de trabalho. É possível realizar as seguintes ações com regras de rotulagem automática:

  • Categorize as conversas por tema, tipo de cliente, produto ou resultado.
  • Extraia pontos de dados importantes dos metadados da conversa ou dos parâmetros do Dialogflow, como nomes de callId, isAuthenticated e intent, para rótulos.
  • Marque conversas que precisam de atenção específica, como high_escalation_risk.

Rótulos

Cada regra de identificação automática define um rótulo e contém mensagens de condição ordenadas. Cada marcador usa as seguintes expressões CEL:

  • Condição: avalia se uma conversa é verdadeira ou falsa. Uma condição vazia é definida como "true" por padrão.
  • Valor: produz o valor da string de um rótulo se a condição for verdadeira.

O primeiro LabelingCondition correspondente determina o valor do rótulo.

Configurar regras

Siga estas etapas para configurar regras de rotulagem automática usando a API ou o console do CX Insights.

API

  1. Use a operação Create para configurar um AutoLabelingRule. Exemplo de corpo da solicitação:

    {
      "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 a solicitação for salva em 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. Dê um nome à regra no seguinte formato: projects/[project-id]/locations/[location-id]/autoLabelingRules/[auto_labeling_rule]. O ID [auto_labeling_rule] é o label_key das regras personalizadas.

Você também pode usar qualquer uma das seguintes operações com regras de rotulagem automática. Uma regra de rotulagem automática pode ter no máximo 100 rótulos por conversa, com até 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. Dependendo dos campos a serem atualizados, especifique o 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. O payload precisa conter a regra a ser testada e uma conversa de exemplo em que a regra será avaliada. Exemplo:
    {
    "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. Acesse o console do CX Insights, faça login e selecione seu projeto. Console do CX Insights
  2. Clique em ConfiguraçõesConfigurações > Regras de rotulagem automática.
  3. Insira expressões CEL com um editor do Monaco.
  4. Clique em Salvar.

Exemplos de CEL

  • Rótulo por ID do 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'"
    }
  • Sinalizar sentimento 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'"
    }
  • Extraia um parâmetro do 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()"
    }

Usar autorrótulos em filtros de regras de análise

As regras de rotulagem automática podem aplicar rótulos que controlam quais conversas são processadas pelas regras principais de análise. O campo conversation_filter em uma regra de análise pode referenciar rótulos usando o mapa de rótulos.

Exemplo:

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

Regras de correlação

As regras de correlação definem como o Customer Experience Insights identifica e vincula segmentos de conversa relacionados. Um segmento de conversa representa uma única parte de uma conversa, conforme foi ingerida, como uma sessão do Dialogflow ou uma única interação do agente. Uma conversa completa representa uma conversa completa e vinculada composta por um ou mais segmentos. Por padrão, todas as novas conversas começam como segmentos. As regras de correlação ajudam você a criar um histórico completo da interação de um cliente, mesmo quando ela abrange vários agentes, canais ou sessões.

As regras de correlação oferecem os seguintes benefícios para a análise de conversas de atendimento ao cliente.

  • Transcrição unificada:confira uma transcrição única e cronológica que combina enunciados de várias fontes, como uma sessão de chatbot seguida de uma ligação com um atendente humano.
  • Análise cross-channel:vincule interações em diferentes canais, como chat e voz, para analisar tendências de sentimentos e progressão de temas ao longo de toda uma jornada de conversa.
  • Precisão da métrica:calcule métricas como tempo total de atendimento ou taxa de resolução para a interação completa, e não apenas para partes individuais.
  • Contexto para agentes:forneça aos atendentes humanos o histórico completo das interações automatizadas anteriores.

Processo de correlação

Quando as regras de correlação correspondem a vários segmentos de conversa, o CX Insights os agrupa. Em seguida, o CX Insights cria uma nova entrada para representar a conversa completa com um ID exclusivo. O CX Insights define o ID de correlação de uma conversa completa como a chave comum que vincula os segmentos e o tipo como FULL. O CX Insights define os IDs de correlação dos segmentos originais como a chave comum e os tipos como SEGMENT. Se um segmento não estiver correlacionado a nenhum outro, o CX Insights vai atribuir a ele os tipos de correlação SEGMENT e FULL.

As regras de correlação vinculam segmentos de conversa relacionados de diferentes fontes e canais. O CX Insights segue estas etapas para vincular segmentos de conversa:

  1. Agrupar por chave de junção:o CX Insights avalia uma expressão de chave de junção CEL para extrair um identificador comum da conversa, como callId. As conversas que compartilham a mesma chave de junção são candidatas em potencial para vinculação. As chaves de junção precisam ser específicas. Se uma chave corresponder a mais de 20 conversas, a correlação poderá ser rejeitada para evitar problemas de desempenho.
  2. Refinar com restrições:a expressão de restrição CEL é uma verificação booleana opcional avaliada aos pares entre candidatos. Essa expressão ajuda a confirmar se dois segmentos que compartilham uma chave precisam ser vinculados. Essa verificação é bidirecional. Portanto, pode incluir o segmento A vinculado ao segmento B e o segmento B vinculado ao segmento A.
  3. Link transitivo:a vinculação é transitiva. Se a conversa A estiver vinculada a B, e B estiver vinculada a C, então A, B e C serão mescladas em um único grupo de conversas FULL.

Uma conversa combinada pode ter no máximo cinco segmentos.

Configurar regras de correlação

É possível configurar regras de correlação usando a API ou o console do CX Insights.

API

  1. Execute o código a seguir para configurar um 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. Dê um nome à regra com o seguinte formato: projects/{project-id}/locations/{location-id}/correlationConfig.
  3. Confira o resultado no campo Conversation.CorrelationInfo.

Você pode usar qualquer uma das seguintes operações com regras de correlação.

  • 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. Exemplo de corpo da solicitação, se ela estiver salva em um updated_corr_config.json:
    {
    "fullConversationConfig": {
    "correlationRules": [
      {
        "joinKeyExpression": "conversation.labels.uui",
        "active": true
      }
    ]
    }
    }
  • TestCorrelationConfig. O payload precisa especificar os detalhes da conversa de exemplo, além da regra de correlação a ser testada. Exemplo:
    {
    "correlationConfig": {
    "fullConversationConfig": {
      "correlationRules": [
       {
          "joinKeyExpression": "conversation.agent_id",
         "active": true
        }
      ]
    }
    },
    "filter": "agent_id="agent_007"",
    "maxSampleCount": 100
    }

Console

  1. Acesse o console do CX Insights, faça login e selecione seu projeto. Console do CX Insights
  2. Clique em ConfiguraçõesConfigurações > Configuração de correlação.
  3. Clique em Salvar.

Os administradores podem definir e gerenciar entradas CorrelationRule no CorrelationConfig. Você pode testar suas regras de correlação selecionando conversas. Os resultados do teste são adicionados a um conjunto de dados para análise.

Exemplo de CEL

Link por callId do 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álise no nível do segmento e da conversa

Com o CX Insights, é possível analisar conversas em diferentes níveis de granularidade, incluindo análises por segmento e por conversa para todos os recursos.

  1. Acesse o console do CX Insights, faça login e selecione seu projeto. Console do CX Insights
  2. Clique em ConfiguraçõesConfigurações e escolha a granularidade da análise. Sua escolha se aplica a análises futuras e pode ser aplicada retroativamente, com possíveis custos adicionais.
  3. Clique em Salvar.

As páginas Central de conversas e IA de qualidade no console comparam dados no nível da conversa e do segmento e indicam a estrutura multissegmento das conversas vinculadas.

Filtrar métricas e análises

Para segmentar níveis específicos de análise na API ou no console, use os filtros a seguir.

Visualização no nível do segmento

O objetivo dessa visualização é analisar partes específicas de uma interação, como a vez de um único agente. Use o parâmetro correlation_info.correlation_types:SEGMENT para filtrar a visualização no nível do segmento.

Visualização de conversa completa

Use essa visualização para analisar toda a jornada do cliente, seja ela composta de conversas vinculadas ou independentes. Use o parâmetro correlation_info.correlation_types:FULL para filtrar a visualização completa da conversa.