LB
SaaSBeta2025

Trativa

SaaS CRM multi-tenant com pipeline kanban, WhatsApp Cloud API e app desktop Electron

React 18ViteTailwind CSSSocket.IONode.js

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

Beta

02

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

01

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.

02

WhatsApp Cloud API

Integração nativa com WhatsApp Cloud API — envio e recebimento de mensagens diretamente na timeline do lead, sem sair do CRM.

03

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.

04

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.

05

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.

06

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

React 18ViteTailwind CSSSocket.IO

Back-end

Node.jsExpressMongoDBMongoose

Banco de Dados

MongoDBMongoose

Deploy

Railway

Integrações

StripeWhatsApp Cloud APIResendSocket.IOElectron.jsSentry

Bibliotecas

@dnd-kit/coreRechartsReact Router 6vite-plugin-pwaFramer MotionPapaparse

06

Demonstração

Trativa — screenshot 1
Trativa — screenshot 2

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.