Trativa
SaaS CRM multi-tenant com pipeline kanban, WhatsApp Cloud API e app desktop Electron
01
Visão Geral
O Trativa é um SaaS multi-tenant construído em 4 repositórios separados: front-end React/PWA, back-end Node.js/MongoDB, landing page e app desktop Electron instalável para Windows. O sistema tem multi-tenancy completo por Organization — cada empresa tem seus leads, usuários e campos personalizados isolados. O pipeline tem 9 etapas reais (novo → em atendimento → contatado → interessado → sem resposta → reunião marcada → proposta enviada → convertido → perdido), com drag-and-drop via dnd-kit e updates em tempo real por Socket.IO. Relatórios incluem funil de conversão, desempenho por vendedor, por origem, por cidade, leads parados e série temporal de conversão.
Meu papel
Desenvolvedor full-stack solo — arquitetura de 4 repositórios, back-end Node.js/Express/MongoDB, front-end React/Vite/PWA, integração WhatsApp Cloud API, Stripe multi-plano, app desktop Electron, landing page com Framer Motion.
Categoria
SaaS
Ano
2025
Status
Beta02
O Problema
Equipes comerciais brasileiras perdem oportunidades por falta de rastreamento estruturado — leads chegam de fontes diferentes (Google Maps, Instagram, indicação, anúncios), são anotados no caderno ou WhatsApp e ficam sem acompanhamento. Gestores não têm visibilidade do funil em tempo real.
03 — Solução
CRM web + PWA + desktop com pipeline de 9 etapas personalizável, integração WhatsApp Cloud API para comunicação direta, campos personalizados com 10+ tipos para adaptar à realidade de cada empresa, metas de vendas por vendedor e relatórios completos de funil — com assinatura Stripe em 4 planos e trial de 14 dias.
04
Funcionalidades Principais
Pipeline Kanban de 9 Etapas
Drag-and-drop via @dnd-kit com 9 status reais de comercial. Visualizações alternáveis: kanban, tabela e cards. Updates em tempo real via Socket.IO para toda a equipe simultaneamente.
WhatsApp Cloud API
Integração nativa com WhatsApp Cloud API — envio e recebimento de mensagens diretamente na timeline do lead, sem sair do CRM.
Campos Personalizados
10+ tipos de campo (texto, número, moeda, data, boolean, select, multiselect, URL, e-mail, telefone) criados pelo admin e exibíveis no kanban, na tabela ou nos filtros.
Relatórios e Funil de Vendas
8+ endpoints de relatório: funil de conversão com gargalos (<30%), desempenho por vendedor, leads por origem, por cidade, leads parados e série temporal de conversão.
Metas de Vendas
Metas por vendedor com 4 tipos (convertidos, contatados, propostas, reuniões), período configurável e progresso calculado em tempo real contra o LeadHistory.
App Desktop Electron
Versão desktop instalável para Windows (.exe NSIS) via Electron.js — mesma experiência do web app, com notificações nativas e atalhos de teclado. Disponível em trativa.app/download.
05
Tecnologias
Front-end
Back-end
Banco de Dados
Deploy
Integrações
Bibliotecas
06
Demonstração


07
Decisões de Design
Produto dividido em 4 repositórios com responsabilidades claras: backend (API + regras de negócio), frontend (SPA/PWA), landing page (marketing/SEO) e desktop (Electron wrapper). O Electron não reimplementa nada — carrega o web app, que já é responsivo. Campos personalizados são configurados por admin e propagam para kanban, tabela e filtros automaticamente, sem deploy.
08
Desafios Técnicos
Campos personalizados nos filtros e exportação CSV: o campo customFields é um Map<Mixed> no Mongoose, mas chegava como objeto plano do JSON. O frontend precisou lidar com os dois formatos (getCustomValue aceita Map e objeto). No export, Papaparse recebe colunas dinâmicas calculadas a partir dos campos ativos da organização — campos inativos não aparecem mesmo que o lead tenha o valor gravado.
09
Resultados
- SaaS multi-tenant funcional com 4 planos Stripe (R$49 a R$397) e trial de 14 dias
- App desktop instalável para Windows via Electron + PWA para mobile — um produto, três superfícies
- Pipeline com 9 etapas, relatórios de funil, metas por vendedor e WhatsApp integrado em produção
10
Aprendizados
- Multi-tenancy real em MongoDB: scopeQuery aplica automaticamente Organization + soft delete em todos os endpoints, sem o risco de vazamento de dados entre empresas
- WhatsApp Cloud API: integração direta com a API oficial da Meta para envio e recebimento de mensagens na timeline do lead
- Campos personalizados flexíveis: CustomField por organização com key gerada como slug, exibição configurável no kanban/tabela/filtros e armazenamento como Map<Mixed> no Mongoose
- Import/export CSV com campos personalizados: dois passos (preview → confirm) com sessão em memória de 30 minutos para validação antes de gravar
- Electron como wrapper seguro: nodeIntegration false, contextIsolation true, sandbox true — JWT e autenticação geridos pelos cookies do Chromium, zero código sensível no cliente
Gostou desse projeto?
Tem uma ideia parecida ou quer construir algo diferente? Vamos conversar.