Voltar ao painel

Luxtor Cred — Painel v3

Sistema de qualificação por voz com Karol, gestão de leads para Erika e métricas de funil comercial. Documentação integrada ao painel — acesse sempre pelo botão 📖 Docs.

v3.1 — Conversas + busca — Jun 2026
🏠
Visão geral
O que este painel faz
URL oficial
https://paineldisparador.luxtorcred.com.br — porta interna 3339 no servidor (proxy HTTPS).
Quando algo quebra
Comece pela seção Ops / Debug — scripts prontos na VPS para status, rastreio de ligação e diagnóstico por serviço.
ℹ️Este painel é o produto Luxtor Cred (Karol + Erika). O CRM da clínica (Sofia/Gabi) é outro painel: painel-clinica.luxtor.ia.br.
🔐
Login e acesso
1
Acesse /login.html ou a raiz do painel — redireciona se não estiver logado
2
Digite o PIN de 6 dígitos no campo único
3
Perfis: Admin (Marcelo — tudo) e Operador (Erika — Leads e Conversas)
🔑PINs são definidos pelo admin. Se não entrar, peça ao Marcelo para resetar em /opt/luxtor-shared/auth-users.json na VPS.
🔄
Fluxo de operação (produção)
1
Disparador — Preset Segunda (Karol + 1 linha) → checklist verde → Iniciar
2
Karol liga, qualifica na voz, detecta interesse
3
Lead aparece na aba Leads + alerta sonoro (+ Telegram quando configurado)
4
Consultor (Erika/equipe) — Leads → Atender → Ligar → Fechou / Perdeu
5
Conversas — revisar transcrições e melhorar script semanalmente
📵Karol não envia WhatsApp na ligação. Ela registra interesse e promete que um consultor da equipe entra em contato no Zap. WhatsApp Karol está pausado.
📊
Dashboard e funil
Funil comercial v3
Discadas → Atendeu → Interesse → Fechou. Filtros: Hoje, 7 dias, Todos. Taxas de atendimento, interesse e conversão.
Saúde do sistema
Gateways Karol/Clara, voice-karol, dialer. Disparador só inicia após checklist verde.
🎯
Aba Leads
Cards: Total Hoje, Pendentes, Com Margem. Filtros: Pendentes, Hoje, Quentes, Todos.
Status: NovoEm atendimentoFechou / Perdeu
Ações: Ligar, Copiar, Atender. Ao marcar Perdeu, informe o motivo.
Exportar CSV no topo da aba.
💬
Aba Conversas
Transcrições, busca e ajuste de script
Para que serve v3
Cada ligação da Karol fica salva com diálogo completo (cliente + Karol, turno a turno). Use para entender o fluxo, revisar objeções e melhorar o script sem precisar ligar de novo toda hora.
Onde aparecem os resultados
Depois de digitar no campo 🔍 Buscar e clicar Buscar, as conversas aparecem na tabela abaixo dos filtros (Hoje, Interesse, Todas…). O texto “Buscando…” é só um aviso — clique numa linha da tabela para abrir o diálogo do início ao fim.
🔍 Buscar conversa
Busca em todo o histórico por:
Nome do cadastro (coluna Nome)
Telefone (com ou sem DDD / +55)
CPF (com ou sem pontos)
CallSid Twilio (ex.: CA81dc5…)
Trecho do diálogo — ex.: buscar “Marcelo” acha mesmo se o nome na tabela for “Teste”
Filtros da tabela
📋 Todas — padrão; mostra todas as ligações salvas
📅 Hoje — só ligações do dia (testes de ontem não aparecem aqui)
🎯 Interesse · ❌ Rejeitou · ⏸ Ocupado — por resultado da ligação
Ao clicar num filtro, a busca é limpa. Use Limpar para voltar ao padrão.
Modal — ver conversa completa
Clique em qualquer linha da tabela. Abre chat estilo WhatsApp:
• Início e fim da ligação, telefone, CPF, duração, CallSid
• Cada fala com horário (Karol vs Cliente)
Histórico do mesmo contato — links para outras ligações do mesmo tel/CPF
📋 Copiar transcrição — cola no bloco de notas para revisar o script offline
Fluxo recomendado — ajustar script Karol
1
Disparador → card 📞 Ligação teste (nome real + celular + CPF opcional)
2
Conversas → busque pelo telefone ou CPF
3
Clique na linha → leia do início ao fim → Copiar transcrição
4
Ajuste roteiro em REGRA_VOZ.md / voice-karol
5
Nova ligação teste → repita até o fluxo ficar redondo
💡Go-live amanhã: comece com 1 linha discando e 1 Karol. Cada ligação real também cai aqui — use a busca para auditar o script no fim do dia.
⚠️Ligação teste com nome vazio vira “Teste” no sistema — sempre preencha o nome no card ou no JSON do curl.
📁Arquivo bruto na VPS: /opt/luxtor-painel/conversas_ligacao.jsonl (backup diário às 3h).
🚀
Disparador
Discagem em massa + ligação teste
Operação normal
Base CSV, vendedora Karol (Clara opcional), linhas Twilio. Preset Segunda = Karol + 1 linha. Horário comercial 8h–18h (fim de semana bloqueado). Só inicia após checklist verde.
📞 Ligação teste v3
Card no topo da aba Disparador: preencha nome, celular e CPF (opcional) → dispara uma ligação só para você. Depois vá em Conversas e busque pelo número para ver a transcrição.
API (painel → dialer)
POST/api/dialer/testar
{ "numero": "5519984440516", "nome": "Marcelo", "cpf": "22409530559" }
🚫
Não Perturbe (LGPD)
Bloqueie números que pediram para não ser ligados. Dialer e Karol respeitam a lista. Karol também bloqueia automaticamente se o cliente disser "não me ligue" / "tira da lista". Arquivo: /opt/luxtor-painel/supressao.json
Novidades Produto v3
Login PIN
Painel protegido — admin e operador.
Funil + métricas
Dashboard com números de negócio reais.
SLA 15 min
Lead novo sem ação → alerta Telegram (quando configurado).
Watchdog
Monitora serviços; avisa se algo cair.
Backup diário
3h — leads, conversas, configs (/opt/scripts/luxtor-backup.sh).
Conversas — busca e transcrição v3
Busca por nome, telefone, CPF, CallSid e trecho do diálogo. Modal com histórico do contato e botão copiar transcrição. Ver guia completo.
Ligação teste no painel
Disparador → card 📞 Ligação teste — sem curl na VPS.
🔌
APIs principais
POST/api/auth/login
GET/api/funil?periodo=hoje
GET/api/leads-interessados
GET/api/leads-interessados/export
GET/api/conversas?busca=marcelo&limit=200 — busca nome, tel, CPF, CallSid, texto no diálogo
GET/api/conversas/historico?telefone=&cpf= — todas as ligações do mesmo contato
GET/api/conversas/:id — uma conversa por id ou CallSid
POST/api/dialer/testar — ligação teste (proxy :4600/testar)
GET/POST/api/supressao
GET/api/health/disparo
GET/api/leads/pendentes (header x-painel-token — dialer)
🏗️
Arquitetura
Como os serviços se conectam
Dialer :4600 ↓ POST Twilio (discagem) Twilio PSTN ↓ webhook voz voice.luxtorcred.com.br → voice-karol :3338 ↓ STT + LLM karol-gateway :19021 (OpenClaw Karol) ↓ TTS ElevenLabs Cliente ouve Karol ↓ interesse detectado luxtor-painel :3339 (Leads + Conversas) ↓ handoff humano Consultor no WhatsApp (Erika/equipe)
🤖Clara roda em paralelo (clara-gateway :19041 + voice-clara :3341) quando o disparador alterna vendedoras.
📞
Voz Karol
Roteiro e regras atuais
Abertura
Apresenta oportunidade de crédito consignado — sem pedir WhatsApp no início.
Durante a ligação
Escuta e reage ao que o cliente disse. Usa cache semântico para respostas rápidas.
Fechamento com interesse
"Um consultor da nossa equipe entra em contato no WhatsApp o mais rápido possível" — depois encerra a ligação (evita voz Twilio/Polly no final).
Arquivos de voz
/opt/voice-karol/server.js — lógica da ponte Twilio
/root/.openclaw-karol/workspace/karol/REGRA_VOZ.md — regras da Karol
⚠️Teste manual com nome vazio vira "Teste" no dialer — sempre passe o nome real no JSON de teste.
🖥️
Serviços PM2
ServiçoPortaURL públicaFunção
luxtor-painel3339paineldisparador.luxtorcred.com.brEste painel CRM
dialer-luxtor4600Discador Cred
voice-karol3338voice.luxtorcred.com.brPonte voz Twilio ↔ Karol
karol-gateway19021karol.luxtorcred.com.brGateway OpenClaw Karol
clara-gateway19041clara.luxtorcred.com.brGateway Clara
voice-clara3341voice-clara.luxtorcred.com.brVoz Clara
bridge-queue3008Fila bridge
pm2 resurrect
pm2 start /root/ecosystem.master.cjs
pm2 restart luxtor-painel voice-karol dialer-luxtor karol-gateway
pm2 save
🔄Cron OpenClaw (seg 4:30) roda openclaw update + script pós-update que reinicia gateways/voice e garante Clara no PM2.
🔧
Ops / Debug
Por onde começar quando algo quebra
1. Visão geral (30 seg)
bash /root/system-status.sh
bash /root/flow-check.sh voz
2. Rastrear uma ligação
bash /root/log-trace.sh 5519984440516
bash /root/log-trace.sh CAxxxxxxxx
3. Diagnóstico por serviço
bash /root/quick-diagnose.sh voice-karol
bash /root/quick-diagnose.sh karol-gateway
bash /root/quick-diagnose.sh dialer-luxtor
pm2 logs voice-karol --lines 50 --nostream
4. Painel 502 / serviço sumiu do PM2
pm2 list
pm2 resurrect
pm2 start clara-gateway voice-clara
pm2 save
5. Health checks rápidos
curl -s http://localhost:3339/health
curl -s http://localhost:3338/health
curl -s http://localhost:4600/health
🧪
Teste ao vivo
Disparar ligação de teste na VPS
curl -s -X POST http://localhost:4600/testar \
  -H "Content-Type: application/json" \
  -d '{"numero":"5519984440516","nome":"Marcelo","cpf":"22409530559"}'
Pelo painel (recomendado)
Aba Disparador📞 Ligação teste → depois aba Conversas → busque pelo telefone. Clique na linha para ver o diálogo completo.
Pelo terminal: confira também em conversas_ligacao.jsonl. Use o CallSid com log-trace.sh se algo falhar.
📁
Arquivos importantes
ArquivoUso
/opt/luxtor-painel/leads_interessados.jsonLeads quentes
/opt/luxtor-painel/conversas_ligacao.jsonlTranscrições das ligações
/opt/luxtor-painel/supressao.jsonNão Perturbe (LGPD)
/opt/dialer-luxtor/dialer.jsMotor discador
/opt/voice-karol/server.jsRoteiro e TTS voz Karol
/opt/luxtor-shared/Módulos compartilhados (auth, handoff, watchdog)
/root/ecosystem.master.cjsFonte PM2 master
/opt/luxtor-painel/PRODUTO-CRED.mdDocumentação markdown (VPS)
⚖️
Cred vs Clínica
Produtos isolados na mesma VPS
CredClínica
Painel:3339 paineldisparador:3350 painel-clinica
Dialer:4600:4601
Vozvoice-karol :3338voice-sofia :3343
IAKarol + ClaraSofia + Gabi
Docs/docs.html (aqui)painel-clinica /docs.html
⚠️Compartilham VPS, PM2 e proxy — falha de infra pode afetar ambos. Cada produto tem dialer, voz e painel próprios.
📄
Markdown na VPS
Mesmo conteúdo, formato texto
Cópias do guia operacional (útil via SSH ou para a IA):

/opt/luxtor-painel/PRODUTO-CRED.md
/root/.openclaw-karol/PRODUTO-CRED.md
/root/.openclaw/luxtor/PRODUTO-CRED.md

No painel (logado): /produto.md