Pular para conteúdo

Análise IA das Conversas (Malu)

O que é

Tela /comercial/analise-ia (menu Comercial → "Malu") que mostra, para o time Comercial, a análise diária feita por IA sobre as conversas de WhatsApp com leads/clientes. O CRM só o resultado: quem produz a análise é um agente batch externo (Malu) que roda fora do CRM e grava as conclusões no banco.

Como funciona

  • Navegação por data: seletor + setas ◀/▶ trocam o dia analisado; por padrão abre no dia anterior (getYesterday()), mas ajusta para a data mais recente disponível assim que a lista de datas carrega.
  • 3 abas:
  • Overview — KPIs do dia (total de conversas, taxa de follow-up, % de leads ignorados, etc.), ranking de motivos de não-conversão, etapas do funil, objeções mais frequentes, e a lista "top conversas para follow-up" (por score_followup) com link direto pro Chatwoot.
  • Conversas (conversas-tab.tsx) — lista das conversas do dia, filtrável por motivo/etapa/recuperável/sentimento; clique abre o ConversaDetalheSheet com o detalhe de uma conversa.
  • Atendentes (atendentes-tab.tsx) — resumo por atendente humano (agregado no front a partir das análises do dia): score médio, classificação (excelente / bom / regular / precisa_melhorar), total de conversas.
  • O que a IA analisa por conversa (AnaliseConversa): etapa do funil em que parou, motivo de não-conversão (ex.: desistiu_open_finance, sem_margem_credito, achou_caro, concorrente), sentimento do lead (positivo/neutro/negativo/desconfiado), se é recuperável (sim/talvez/nao), engajamento (mensagens trocadas, duração, se o lead perguntou algo), qualidade do atendimento humano (tom consultivo vs. transacional, se fez follow-up, se ignorou o lead, se houve transferência pro comercial, objeções detectadas), e uma avaliação do atendente (score + critérios: tom, proposta, erro, ortografia, follow-up, tempo de resposta, tratamento de objeções, penalidade por lead ignorado).
  • Relatório diário (RelatorioDiario) é o agregado do dia: estatísticas consolidadas (as mesmas dimensões acima, somadas), report_markdown (texto gerado pela IA, renderizado com MarkdownPreview) e metadados de execução (tokens gastos por agente, tempo de execução, taxa de sucesso).
  • Quem produz o dado: o agente Python agents/malu-menos-juros (batch, roda fora do CRM/Turbo, ver CLAUDE.md do monorepo) processa as conversas do dia e grava relatório + análises no banco; o CRM não dispara a análise, só consulta.

Regras de negócio

⚠️ A documentar. Esta tela ainda não tem as regras de negócio levantadas do código.

O que entra aqui: invariante (o que nunca pode acontecer), permissão (quem pode fazer o quê), bloqueio (o que impede a ação e a mensagem que o usuário vê), cálculo (fórmula e arredondamento) e efeito colateral (o que mais muda quando isso acontece).

Regra só entra aqui com origem no código — arquivo e linha. Regra que alguém "acha que é assim" é pior que seção vazia, porque vira decisão de produto baseada em memória.

Onde vive no código

  • CRM (page): apps/crm-menos-juros/client/src/pages/comercial/analise-ia/index.tsx + components/ (overview-tab.tsx, conversas-tab.tsx, atendentes-tab.tsx, conversa-detalhe-sheet.tsx)
  • CRM (domínio): apps/crm-menos-juros/client/src/domains/comercial/analise-ia/ (api/analise-ia-api.ts, hooks/use-relatorio-diario.ts, hooks/use-analises-conversas.ts, types/index.ts, utils/labels.ts)
  • API: apps/api-menos-juros/src/v2/comercial/presentation/controllers/analise-ia.controller.tsGET /v2/comercial/analise-ia/datas, GET /v2/comercial/analise-ia/relatorios/:data, GET /v2/comercial/analise-ia/conversas, GET /v2/comercial/analise-ia/conversas/:id (use cases em application/use-cases/*-relatorio-ia.use-case.ts / *-analise-conversa-ia.use-case.ts)
  • Agente produtor: agents/malu-menos-juros/ (Python, uv) — migrations/001_create_relatorio_ia_tables.sql, app/repository.py

Relacionado

comercial

Histórico

  • 2026-07-10 (conversa): página criada como parte da ingestão de telas do Comercial fora do Kanban.