Entrar como:FuncionalidadesDoc
Pular para o conteúdo
← Voltar para a visão geral
✅ ConcluídoCard #50 · M9

NES (Scorecard Emocional Preditivo)

Marco M9: Experiência & Qualidade (SULTS-inspired)

👤Wellington Santiago (via ZCode)

✅ EXECUÇÃO — 15/08/2026

Implementado e validado em produção (homolog). Commits: 2062f6c (fundação: 21 tabelas), 080c857 (features), bbfa277 (lint). Deploy CI verde.

Validação ao vivo: página(s) da feature respondendo 200 com a role correta + procedures tRPC testadas via HTTP (respostas JSON corretas). Ver relatório da sessão.

Detalhes de implementação e decisões: conforme o design acima deste documento (schema, procedures e páginas seguidos conforme especificado; ajustes menores documentados no commit).

📄 Card 50 [M9] — NES (Scorecard Emocional Preditivo)

📚 Referência SULTS: https://www.sults.com.br/produtos/nes Scorecard da saúde emocional de cada unidade/gestor. Mede sentimento em 5 níveis visuais (1 clique) a cada interação, funcionando como sistema de alerta precoce preditivo. Detecta insatisfação ANTES do cancelamento.

🎯 Objetivo

Criar o módulo NES — CRM de relacionamento interno matriz↔unidades com:

  • 5 níveis emocionais visuais (1 clique):
    1. 🔴 Nervoso (risco grave)
    2. 🟠 Triste (declínio)
    3. 🟡 Normal (neutro)
    4. 🟢 Feliz (saudável)
    5. 🟦 Encantado (excepcional)
  • Prontuário cronológico por filial/gestor (timeline com observações e anexos)
  • Dashboard em tempo real (score global, filtros por dept, evolução mensal)
  • Ação direta: transforma risco em tarefa (Card 46) + comunica à rede
  • Caráter preditivo: alerta se gestor negativo por meses consecutivos

📚 Documentação de Referência

  • docs/DESIGN_SYSTEM.md §6 (Recharts para dashboards)
  • prisma/schema.prisma — novo model

🛠️ Especificação Técnica

Schema Prisma (novo)

model NesInteraction {
  id              String       @id @default(cuid())
  branchId        String                            // unidade avaliada
  branch          Branch       @relation(fields: [branchId], references: [id])
  managerId       String?                            // gestor local avaliado
  manager         User?        @relation(fields: [managerId], references: [id])
  level           NesLevel                           // NERVOUS, SAD, NORMAL, HAPPY, DELIGHTED
  notes           String?      @db.Text              // observação do consultor
  attachments     String[]                           // URLs S3
  department      String?                            // "Financeiro", "Pedagógico", "TI"
  recordedById    String                             // quem registrou (SUPERVISOR/MASTER)
  recordedBy      User         @relation(fields: [recordedById], references: [id])
  interactionDate DateTime                           // quando ocorreu
  createdAt       DateTime     @default(now())
}

enum NesLevel { NERVOUS  SAD  NORMAL  HAPPY  DELIGHTED }

Rotas (page.tsx)

  • /master/nes — dashboard global (score por filial, evolução, alertas)
  • /master/nes/[branchId] — prontuário cronológico da filial
  • /supervisor/nes — SUPERVISOR vê só suas filiais (no CRM atual)

Procedures tRPC (master.nes, supervisor.nes)

  • record (registra interação com nível + notas + anexos)
  • timeline (prontuário cronológico de uma filial)
  • scorecard (score atual por filial: média últimos 90 dias)
  • dashboard (evolução mensal, ranking filiais, alertas preditivos)
  • alertList (filiais com nível negativo por N meses consecutivos)
  • createTaskFromRisk (transforma risco em ticket no Card 46)

Lógica preditiva

  • Job Bull nes-predictive-check (semanal): filiais com média < NORMAL por 2+ meses → alerta MASTER
  • Score calculado: média ponderada dos últimos 90 dias (pesos: NERVOUS=1, SAD=2, NORMAL=3, HAPPY=4, DELIGHTED=5)
  • Cores do score: <2.5 vermelho, 2.5-3.5 amarelo, >3.5 verde

✅ Critérios de Aceite

  1. MASTER/SUPERVISOR registra interação com 5 níveis emocionais (1 clique)
  2. Prontuário cronológico por filial (timeline com observações + anexos)
  3. Dashboard: score global + evolução mensal + ranking filiais
  4. Alerta preditivo se filial negativa por 2+ meses consecutivos
  5. Converter risco em tarefa/ticket (1 clique)
  6. SUPERVISOR só vê suas filiais
  7. Build passa + lint OK

🔌 Handoff

  • Job nes-predictive-check no bootstrap (semanal)
  • Integração com Card 46 (Chamados) via createTaskFromRisk
  • Integração com NPS (Card 49) para visão 360°

🎯 Próximo

Card 51: Checklist Auditoria Pedagógica (com GPS + fotos)

← Voltar para a visão geral