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.
| Tipo | Como é produzido | Pode ser corrigido via dados? |
|---|---|---|
| Estático | Campos obrigatórios ou metadados estruturados. | Sim — corrigindo a fonte de dados. |
| Inferido por IA | Modelo 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.
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.
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
humanAssigneeIdpreenchido 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.
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_DELIVEREDno CSV ouitem.reason.descriptionno 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).
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 = falsee 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étrica | Sintoma Identificado | Causa Provável | Ação Corretiva |
|---|---|---|---|
| Transbordo | Taxa 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. |
| Transbordo | Taxa 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. |
| Erro | Erros 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. |
| Erro | Erros 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ção | Taxa 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ção | Taxa 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. |
| Score | Score 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
externalIdda 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:
- Corrija os dados estruturados na fonte (metadados, conteúdo ou estrutura das mensagens).
- 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).
- O Waizer reprocessará as threads do período — inclusive as análises e inferências de IA — e atualizará os resultados consolidados no dashboard.
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.
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.