Pular para o conteúdo
PUSHR
Todos os projetos

Sudeste CRM

CRM com atendimento via WhatsApp e inteligência comercial para uma empresa B2B de uniformes: caixa de entrada em tempo real, carteira, Kanban, orçamentos, chat interno e o Radar IA, que avisa quando uma venda está esfriando.

Tela de acesso do Sudeste CRM: painel verde com o logo da Sudeste Uniformes e o texto "Atendimento, vendas e equipe em uma única tela", ao lado do formulário de login
Cliente
Sudeste Uniformes
Segmento
Uniformes · B2B
Escopo
CRM, WhatsApp e IA comercial
Perfis de acesso
Administrador · Gestor · Vendedor

O Sudeste CRM junta em uma plataforma web o atendimento aos clientes pelo WhatsApp, a gestão da carteira, o funil de vendas, os orçamentos e a comunicação interna da equipe. Por cima disso funcionam duas camadas de IA: uma apoia o atendimento comercial e a outra, o Radar IA, encontra oportunidades que estão esfriando e avisa o vendedor responsável antes que o cliente se perca.

O problema

Em uma empresa B2B de uniformes, as vendas acontecem pelo WhatsApp, espalhadas entre vários vendedores e departamentos.

  • Conversas sem resposta ficavam esquecidas e o cliente desistia.
  • O gestor não via o que cada vendedor estava atendendo.
  • A carteira de clientes vivia em planilhas e não tinha um dono claro.
  • Orçamentos e etapas da negociação não tinham registro.
  • A equipe se comunicava por fora do sistema e o histórico se perdia.

A solução

Um sistema central com controle de acesso por papel (administrador, gestor e vendedor) e por departamento. A regra de negócio fica dentro do banco de dados, então cada pessoa só vê e altera o que tem permissão para ver e alterar.

Seis módulos, uma única operação comercial.

  • Central de atendimento WhatsApp

    • Caixa de entrada compartilhada, ligada a instâncias da Evolution GO por um webhook próprio para cada instância.
    • Mensagens em tempo real com texto, áudio (inclusive gravação pelo navegador), mídia e foto de perfil.
    • Transferência de conversas entre vendedores e departamentos, com nota interna.
    • Quando o cliente volta a escrever, a conversa vai para o dono da carteira dele.
    • Não lidas por escopo, busca global, ações em mensagens, sincronização de histórico e chatbot de entrada.
  • Carteira e clientes

    • Cadastro com vários telefones, normalização de números e paginação.
    • Importação em massa por CSV, com validação.
    • Carteira por vendedor: vincular e desvincular clientes, com regra de acesso.
    • Abertura de conversa direto da ficha do cliente.
  • Kanban comercial

    • Quadros por departamento, com arrastar e soltar.
    • Cards ligados às conversas e oportunidades, com o responsável atual.
    • O vendedor vê só os próprios cards; o gestor vê o departamento inteiro.
  • Orçamentos

    • Orçamentos vinculados ao cliente e à negociação no funil.
  • Chat interno

    • Mensagens diretas e grupos personalizados.
    • Menções, respostas, busca e contagem de não lidas.
    • Central de notificações.
  • Administração

    • Usuários, departamentos e permissões. Sem cadastro público: as contas são criadas pelo administrador.
    • Configuração das instâncias de WhatsApp (QR Code), do chatbot e do Kanban.
    • Auditoria, relatórios e saúde do sistema.

Radar IA: a venda que está esfriando aparece antes de ser perdida.

IA comercial

  • Worker que processa a fila de atendimento com IA, com novas tentativas automáticas e trabalhos pendentes.
  • O webhook dispara o processamento na hora e um agendador cuida das pendências.
  • Verificações de segurança antes de chamar a IA, modo de laboratório para testes e permissões reforçadas.
  1. Etapa 1

    Detecção por regras

    O banco identifica, em SQL, sinais como uma pergunta sem resposta ou uma negociação parada há tempo demais. O sinal é criado sem duplicar e o status se ajusta conforme a conversa anda.

  2. Etapa 2

    Análise com IA

    Um worker agendado lê a conversa, faz um resumo, define a prioridade e sugere uma mensagem de retomada.

  3. Etapa 3

    Aviso ao vendedor

    A notificação aparece no sistema e um alerta é mostrado dentro da própria conversa.

  4. Etapa 4

    Ação humana

    O vendedor decide o que fazer. Marcar uma venda como perdida exige um motivo.

  5. Etapa 5

    Visão do gestor

    Painel com sinais abertos, recuperados e perdidos por departamento, e as configurações do Radar.

A IA sugere. O vendedor decide.

  • A IA nunca envia mensagens ao cliente. Ela só sugere, e a decisão é sempre do vendedor.
  • Sugestões que citam preço, desconto, prazo, estoque ou links são descartadas automaticamente.
  • O motivo de perda só é aceito quando é um trecho literal do que o cliente escreveu.
  • Clientes que pediram para não ser contatados ficam em uma lista própria e não recebem sugestões.
  • O worker respeita o limite de requisições da API de IA e retoma de onde parou.
  • Roda em horário comercial (seg. a sex., 7h às 19h, horário de Brasília), protegido por um segredo no Supabase Vault.

Regra de negócio no banco, segredos fora do navegador.

Diagrama de arquitetura do Sudeste CRM

Navegador

Next.js / React

Supabase Auth (sessão por cookie) + RPCs + Realtime

Supabase

  • PostgresTabelas, RLS, RPCs security definer, triggers
  • StorageMídias do WhatsApp
  • RealtimeMensagens e notificações ao vivo
  • pg_cron + pg_net + VaultAgendamento seguro dos workers

Edge Functions (Deno)

  • evolution-webhookRecebe eventos do WhatsApp
  • evolution-managementGerencia instâncias e QR Code
  • whatsapp-messagesEnvia mensagens
  • commercial-ai-workerIA de atendimento (Groq)
  • radar-ai-workerRadar IA (Groq)
  • admin-managementCriação de usuários
  • maintenanceRotinas de manutenção

Serviços externos

  • Evolution GO (WhatsApp)
  • Groq (LLM)

Decisões de arquitetura

  • A regra de negócio fica no banco

    Permissões garantidas por Row Level Security e RPCs security definer, não só pela interface. Mesmo chamando a API direto, cada pessoa só acessa o que pode.

  • Segredos nunca chegam ao navegador

    Tokens da Evolution GO, a service_role e a chave da IA ficam só nas Edge Functions e no Vault.

  • Tempo real nativo

    Caixa de entrada e notificações atualizam na hora com o Supabase Realtime.

  • Workers protegidos

    Os endpoints agendados validam um segredo com comparação em tempo constante.

  • Mudanças versionadas e reversíveis

    O banco evolui por migrações numeradas, e o Radar IA tem um script de rollback próprio.

A stack, camada por camada.

Frontend
  • Next.js 16 (App Router)
  • React 19
  • TypeScript
Interface
  • Tailwind CSS 4
  • shadcn/ui
  • Base UI
  • Lucide
  • Sonner
  • cmdk
  • next-themes
Estado e dados
  • TanStack Query
  • SWR
  • Supabase JS / SSR
Formulários e validação
  • React Hook Form
  • Zod
Interações
  • dnd-kit
  • PapaParse
  • QRCode
  • date-fns
Backend
  • Supabase Postgres
  • Auth
  • Storage
  • Realtime
  • Edge Functions (Deno)
Banco
  • SQL e PL/pgSQL
  • RLS
  • Triggers
  • pg_cron
  • pg_net
  • Supabase Vault
IA
  • Groq (LLM)
  • Vercel AI SDK
WhatsApp
  • Evolution GO (API e webhooks)
Testes
  • Vitest
  • PGlite
Build e deploy
  • pnpm
  • esbuild
  • Vercel
  • GitHub
Desenvolvimento assistido
  • v0 by Vercel

Permissões testadas num Postgres de verdade.

64arquivos de teste automatizado com Vitest
  • As migrações reais do banco são aplicadas num Postgres embutido (PGlite) e testadas nele: RLS, regras de acesso por papel, importação de clientes e filas da IA.
  • Cenário completo do Radar IA: detecção, fila, visibilidade, mudança de status, motivo de perda, métricas e lista de não contato.
  • Normalização de eventos do WhatsApp, cliente da Evolution, sessão e proxy de rotas, Kanban, chat interno e proteções da IA.
  • Typecheck com TypeScript e bundle das Edge Functions validados.

Destaques técnicos

  • Segurança multi-papel e multi-departamento garantida no banco, e não só na interface.
  • Integração com o WhatsApp por webhook próprio para cada instância, com mensagens em tempo real.
  • IA aplicada com responsabilidade: o humano decide, há filtros contra promessas comerciais e as afirmações precisam ter evidência na conversa.
  • Workers agendados e seguros (pg_cron, pg_net e Vault) que respeitam o limite de requisições.
  • Migrações e permissões testadas num Postgres real embutido.