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ó lê 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 oConversaDetalheSheetcom 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 comMarkdownPreview) 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, verCLAUDE.mddo 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.ts—GET /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 emapplication/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¶
Histórico¶
- 2026-07-10 (conversa): página criada como parte da ingestão de telas do Comercial fora do Kanban.