| Etapa de abandono | Leads perdidos | Taxa de abandono | Criticidade |
|---|---|---|---|
| Carregando... | |||
Use Gerar QR Code (após entrar) para ligar o WhatsApp Evolution aqui mesmo. Vê conversas, etapa do funil e pode assumir o atendimento ou devolver ao bot. Mensagens chegam via webhook; respostas humanas saem pela mesma instância.
Entrar no CRM
Depois de entrar, o botão verde Gerar QR Code aparece no topo para conectar o WhatsApp (Evolution).
Cadastre uma campanha por origem de anúncio e, dentro dela, uma frase-gatilho por criativo/publicação
(ex.: bom dia quero credito cod01). Quando um telefone novo manda exatamente essa frase como primeira mensagem,
o lead já nasce atribuído à campanha automaticamente. Requer login no CRM (aba CRM WhatsApp).
| Campanha | Ativa | Leads (auto / manual) | Propostas | Conversão | Ações |
|---|---|---|---|---|---|
| Carregando... | |||||
A maior parte do fluxo (oferta, simulação, números) é regra fixa em Java - não passa pela API de IA.
Só aparecem linhas aqui quando o bot chama gerarComIA (ambiguidade, saudação sem nome, fallback).
Tokens e R$ são estimativas (OpenAI envia usage; câmbio e preço por 1M tokens vêm do application.yml / env).
| Data/hora | Tipo | Modelo | In | Out | Total | R$ | OK | Detalhe |
|---|---|---|---|---|---|---|---|---|
| Carregue ou envie mensagens no chat. | ||||||||
Como Usar o Ambiente de Teste
Este ambiente usa o profile test do Spring Boot com:
• H2 em memória - sem necessidade de PostgreSQL
• Cache em memória - sem Redis
• MockIA - respostas inteligentes sem OpenAI/Claude
• MockC6Bank - simulações com dados realistas
• MockWhatsApp - mensagens capturadas internamente
Para iniciar: ./mvnw spring-boot:run -Dspring-boot.run.profiles=test
Endpoints de Teste
- POST
/test/chat- Envia mensagem ao agente (resposta:estado,conversaId,ultimoBotEm,faseAjusteSimulacao,inclusaoSubfase,iaUltimaChamada,c6ChamadasIteracao: pedidobodyJson, respostaresponseJson,httpStatus) - GET
/test/chat/stream- SSE (eventonova-mensagem): mensagens BOT gravadas de forma assíncrona (ex.: link de formalização), a UI filtra porconversaId - GET
/test/chat/historico/{telefone}- Histórico da conversa - POST
/test/chat/resetar/{telefone}- Reinicia conversa - GET
/test/chat/ia-status- Modo IA (MOCK / OPENAI / …) e modelo - GET
/test/chat/ia-uso- Histórico de chamadas, tokens e custo estimado - POST
/test/chat/ia-uso/limpar- Zera o histórico de uso - GET
/dashboard- Métricas (requer auth) - POST
/auth/login- JWT; resposta incluiatendenteIdquando existir - GET
/crm/conversas- Lista CRM (ADMIN ou ATENDENTE) + prévia da última mensagem - POST
/crm/conversas/{id}/assumir- Modo humano (ADMIN envia{"atendenteId":"uuid"}) - POST
/crm/conversas/{id}/liberar-bot- Volta a IA - POST
/crm/conversas/{id}/mensagens- Enviar texto ao lead (só em modo humano; Evolution) - GET
/admin/whatsapp- Página QR Evolution (ADMIN, opcional) - GET
/admin/whatsapp/api/config- Nome da instância Evolution (ADMIN) - POST
/webhook/whatsapp- Webhook real
Autenticação (produção)
- POST
/auth/login- Login JWT - POST
/auth/cadastro- Cadastro - POST
/admin/usuarios- Criar atendente (ADMIN) - GET
/admin/usuarios/atendentes- Listar atendentes
Admin padrão: admin@saviola.com / admin123
Conversas
- GET
/conversas?modo=BOT- Listar por modo - GET
/conversas/{id}/mensagens- Histórico - POST
/conversas/assumir- Atendente assume - POST
/conversas/{id}/liberar-bot- Devolver ao bot
Variáveis de Ambiente (.env)
EVOLUTION_URL=http://localhost:8081
EVOLUTION_KEY=sua-chave
C6_CLIENT_ID=seu-id
C6_CLIENT_SECRET=seu-secret
IA_PROVIDER=openai (ou claude)
OPENAI_KEY=sk-...
CLAUDE_KEY=sk-ant-...