Pular para o conteúdo principal

Como o Waizer Calcula os KPIs Conversacionais

O Waizer Doc produz dois tipos de métricas: estáticas (calculadas a partir de metadados estruturados) e inferidas por IA (geradas por modelos de linguagem que analisam o conteúdo textual).

Compreender essa distinção é fundamental para saber como agir e como corrigir os dados quando um número no seu dashboard parecer incorreto.

TipoComo é produzidoPode ser corrigido via dados?
EstáticoCampos obrigatórios ou metadados estruturados.Sim — corrigindo a fonte de dados.
Inferido por IAModelo de linguagem baseado no conteúdo das frases.Parcialmente — via reimportação/reprocessamento.

A Regra de Ouro: O Volume Mínimo de Análise

Antes de explorar as métricas, um ponto crítico: a IA não analisa todas as conversas importadas. Para que uma jornada gere insights qualitativos, ela precisa ter substância.

Critério de Elegibilidade da IA

Para entrar no pipeline de análise da IA, uma conversa precisa conter no mínimo:

  • 5 mensagens enviadas pelo bot (direção SENT)
  • 5 mensagens enviadas pelo usuário (direção RECEIVED)

Conversas abaixo desse limite são armazenadas e contabilizadas no volume bruto de Threads, mas não geram análise de sentimento, score, erro de IA ou resolução. É por isso que o número total de conversas no card principal quase sempre será maior do que o volume de dados analisados pela IA.

Total de conversas ≠ conversas analisadas pela IA

O número exibido no card Threads inclui todas as conversas importadas no período. As taxas percentuais (resolução, transbordo, erro) são calculadas sobre o subconjunto analisado pela IA. Conversas muito curtas não têm contexto suficiente para análise da IA.


O Catálogo de KPIs

1. Transbordo

Tipo: Estático (Depende exclusivamente de metadados).

O Waizer identifica o transbordo para o atendimento humano pela presença do campo humanAssigneeId nos metadados da mensagem. O sistema registra o primeiro ID encontrado e ignora inferências textuais.

  • Blip: Capturado automaticamente do campo interno #message.agentIdentity. Toda mensagem enviada por um atendente humano no Blip já carrega essa informação de forma nativa.
  • API & CSV: Exige o envio do campo humanAssigneeId preenchido no objeto ou linha da mensagem.

Adicione o identificador do atendente (e-mail, nome ou ID interno) na coluna de metadados da mensagem humana:

"threadId","type","direction","content","agentId","timestamp","metadata"
"5511999990001","text/plain","SENT","Olá, vou te transferir para um especialista.","bot-principal","2025-03-10T10:15:00Z",
"5511999990001","text/plain","SENT","Aqui é a Ana, do time de suporte. Como posso ajudar?","bot-principal","2025-03-10T10:17:00Z","{""humanAssigneeId"": ""ana.souza@empresa.com""}"

O Waizer registra o primeiro humanAssigneeId encontrado na conversa. Mensagens subsequentes do mesmo atendente reforçam o sinal, mas não alteram o registro inicial.

Sobre a taxa de transbordo

Nem todo transbordo é negativo. Em fluxos de vendas consultivas ou suporte de segundo nível, o transbordo pode ser o resultado esperado. Interprete a taxa no contexto do objetivo do seu fluxo — não como uma métrica a minimizar sempre.

2. Erro

Tipo: Híbrido (Dado estruturado + Inferência de IA).

A taxa global de erro unifica falhas de sistema e falhas de experiência em um único cálculo, eliminando duplicidades se ambos ocorrerem na mesma thread. O cálculo é feito da seguinte forma: (conversas com erro estático OU erro por IA) ÷ total de conversas analisadas

  • Erro Estático: Extraído de falhas técnicas explícitas (ex: MESSAGE_NOT_DELIVERED no CSV ou item.reason.description no Blip para mensagens com status de erro).
  • Erro por IA: Problemas de fluxo detectados no diálogo através do modelo de linguagem. Exemplos de erros identificados por IA:
    • O bot repetiu a mesma pergunta ou instrução sem avançar;
    • A validação rejeitou uma entrada válida do usuário;
    • O usuário ficou preso em loop sem opção de saída;
    • O bot interpretou incorretamente a intenção do usuário;
    • A transferência para humano falhou ou o humano não resolveu o caso;
    • As opções oferecidas não cobriam a necessidade do usuário;
    • O bot forneceu informação incorreta ou desatualizada;
    • O usuário precisou repetir informações já fornecidas;
    • Resposta genérica onde o usuário precisava de ajuda específica;
    • Menu ou fluxo não cobria o caso do usuário.

O erro inferido gera uma descrição específica em até 50 palavras e o timestamp da mensagem onde ocorreu, agrupados e visíveis na seção "Erros críticos" do dashboard.

3. Resolução (Sucesso)

Tipo: Inferido por IA exclusivamente.

Mede se a necessidade final do usuário foi atendida (se a compra foi feita, o problema foi resolvido ou a dúvida foi sanada de acordo com o objetivo do fluxo).

Viés Conservador da IA

Na dúvida ou em cenários ambíguos (como spams, testes ou abandonos sem sinais claros de frustração ou irritação), a IA classifica a conversa como resolvida por padrão. A taxa de resolução do Waizer tende a ser otimista; use-a para acompanhar tendências de melhoria ao longo do tempo, não como um número absoluto e inflexível.

4. Sentimento

Tipo: Inferido por IA.

A IA atribui duas notas de sentimento para cada conversa, em uma escala de 0 a 10:

  • Sentimento inicial: Emoção do usuário no começo da conversa.
  • Sentimento final: Emoção do usuário ao término da conversa.

O gráfico de sentimento no dashboard mostra a média dessas notas ao longo do tempo. Um sentimento final consistentemente maior que o inicial indica que o chatbot está melhorando a experiência do usuário durante o atendimento.

5. Score de Desempenho

Tipo: Inferido por IA.

O score (0–10, exibido como 0–100 no dashboard) avalia a qualidade do fluxo da conversa, não o resultado técnico. Uma conversa pode terminar sem resolução por razões externas ao bot e ainda assim ter um score alto se o bot conduziu o fluxo perfeitamente.

Isso o diferencia da taxa de resolução: resolução mede o resultado final para o usuário; score mede a qualidade da execução técnica e condução do bot.

6. Abandono e Retenção

O Waizer não implementa abandono e retenção como KPIs formais calculados automaticamente.

  • Para estimar abandono: Filtre conversas onde succeeded = false e a última mensagem é do usuário (RECEIVED). Este padrão sugere que o usuário desistiu sem receber uma resposta satisfatória.
  • Para retenção: O Waizer não rastreia se o mesmo usuário retornou em períodos diferentes. Análises de retenção precisam ser feitas cruzando dados de logs da sua própria plataforma com os períodos de conversas importados no Waizer.

Guia de Diagnóstico (Troubleshooting)

Se algum indicador do seu dashboard estiver estranho, localize o sintoma abaixo para entender a causa raiz e a correção necessária:

MétricaSintoma IdentificadoCausa ProvávelAção Corretiva
TransbordoTaxa zerada mesmo com transbordo real ativo em chatbot com humanos.Campo humanAssigneeId ausente nos dados enviados.Validar o pipeline de dados ou a configuração do atendimento humano no Blip.
TransbordoTaxa muito alta sem transferências reais ocorrendo.Campo humanAssigneeId mapeado em mensagens automáticas por engano.Ajustar a lógica de geração e mapeamento do dado na fonte.
ErroErros estáticos altos sem falhas reais na tela do cliente.Meta-atributo metadata.error sendo populado incorretamente nas mensagens normais.Limpar o campo de erro nas mensagens normais da fonte de dados e reimportar.
ErroErros estáticos não aparecem de jeito nenhum.Campo metadata.error não está sendo devidamente populado.Verificar a pipeline de exportação ou parâmetros da integração.
ResoluçãoTaxa de resolução baixa em fluxos muito curtos.Conversas abaixo do mínimo exigido de 5 mensagens por direção.Comportamento esperado. Conversas curtas não possuem contexto analítico.
ResoluçãoTaxa não bate com a impressão diária do time de suporte.Amostragem difere da leitura algorítmica da IA.Explorar e amostrar os diálogos reais usando o Navegador de Conversas.
ScoreScore baixo com Taxa de Resolução alta.IA detectou problemas de experiência (loops, respostas genéricas, repetições).Analisar a condução e árvores de decisão do bot para otimizar os fluxos.

Como Atualizar e Reprocessar a Base

As correções e a capacidade de reprocessamento dependem diretamente do canal de integração utilizado pelo seu projeto:

Atualizando KPIs Estáticos (Metadados)

Os KPIs estáticos são gerados e derivados diretamente a partir dos metadados das mensagens. Para corrigi-los, é necessário atualizar a estrutura de dados diretamente na fonte:

  • Blip: Corrija o fluxo ou a configuração do atendimento humano na plataforma e dispare uma Importação Manual nas configurações do Waizer (Configurações → Importação manual), selecionando o período afetado. O Waizer buscará os dados atualizados diretamente.
  • API: Reenvie o payload das mensagens corrigidas mantendo o mesmo externalId da thread correspondente para que ela seja updated com os novos metadados.
  • CSV: O Waizer possui uma trava de deduplicação estrita baseada no conjunto threadId + timestamp + content. Se você alterar apenas o campo de metadados (metadata), o sistema descartará as linhas como duplicadas e não atualizará os dados. Para corrigir metadados de um CSV já importado, você deve solicitar ao suporte a exclusão dos registros antigos antes de subir o arquivo corrigido.

Atualizando KPIs de IA

Não existe um botão dedicado para "reanalisar somente" os KPIs gerados por IA. O pipeline de análise analítica é executado de forma síncrona durante a entrada do dado.

Para forçar o reprocessamento analítico de um determinado período:

  1. Corrija os dados estruturados na fonte (metadados, conteúdo ou estrutura das mensagens).
  2. Dispare uma nova importação do intervalo de tempo desejado (Configurações → Importação manual ou aguarde o próximo ciclo automático para integrações Blip).
  3. O Waizer reprocessará as threads do período — inclusive as análises e inferências de IA — e atualizará os resultados consolidados no dashboard.
CSV: Remoção prévia necessária

Para reimportar um arquivo CSV com correções de metadados, a remoção dos registros originais precisa ser solicitada e executada pelo suporte antes do novo upload. Sem esse passo, as mensagens corrigidas serão descartadas silenciosamente como duplicatas.

Dica de Boas Práticas

Evite reprocessamentos massivos de dados históricos. Antes de importar históricos longos de produção, suba uma amostra controlada de uma semana para validar se as tags de erro, resolução e transbordo estão sendo computadas e exibidas exatamente como o esperado.