Produto próprio, com um sócio · em produção
SOLAR.IA: a equipe inteira vendendo no mesmo WhatsApp
Um sistema de atendimento e vendas para empresas em que várias pessoas usam o mesmo número. Do produto à infraestrutura, passando por telas, back-end e IA. Aqui vai como ele funciona por dentro e o que aprendi no caminho.
O problema
Toda empresa que vende pelo WhatsApp chega no mesmo ponto: um número, várias pessoas e nenhum controle.
- A conversa se perde entre celulares e ninguém sabe quem ficou de responder.
- A venda acontece no chat e nunca chega no CRM.
- O dono não enxerga o funil nem quem está parado há dias.
- Disparo em massa sem cuidado faz o WhatsApp bloquear o número.
O que ele faz
Caixa de entrada da equipe
Todas as conversas num lugar só, com distribuição automática, transferência, etiquetas e o botão de assumir ou devolver para a IA.
CRM e funil
Contatos, funil em Kanban e carteira por atendente. O Radar mostra as conversas paradas antes de virarem cliente perdido.
IA que atende e sugere
Um agente responde a qualquer hora com a base da empresa e sugere respostas para quem está atendendo. Áudio vira texto.
Chatbots sem código
Fluxos montados num editor visual no estilo do n8n, simples para quem nunca programou.
Campanhas com freio
Disparos, sequências e mensagens agendadas com proteção de envio: horário permitido, teto diário e aquecimento de número novo.
Revenda com a marca do parceiro
Agências revendem com a própria marca, domínio e planos. O cliente delas nunca vê a plataforma por trás.
Por dentro
A parte que o cliente não vê, mas que segura tudo.
Chatwoot como motor invisível
A conversa roda no Chatwoot, mas ninguém vê a tela dele: cada empresa ganha uma conta própria, criada automaticamente. Só a edição Community, de licença MIT.
Um BFF em Go no meio de tudo
O front em Next.js fala com um BFF em Go que concentra regras, permissões e integrações. O SQL é escrito à mão e o sqlc gera o código tipado.
IA com a chave do cliente
Cada empresa usa a própria chave de IA, guardada cifrada e que nunca volta para o navegador. A transcrição de áudio roda no próprio servidor.
White-label em três níveis
Plataforma, parceiro e cliente, cada um com a sua marca, os seus domínios e os seus planos.
Uma empresa não enxerga a outra
O isolamento tem teste de integração próprio: dois workspaces no mesmo banco tentando acessar 11 tipos de recurso um do outro.
Segurança e LGPD de fábrica
Sessão que detecta cookie roubado, 2FA obrigatório na administração, proteção contra SSRF, limite de requisições e exportação ou exclusão dos dados de um contato.
Backup que é conferido
Dump diário do banco, pronto para cópia fora do servidor. Se um backup falha, os antigos não são apagados e o serviço avisa que não está saudável.
Stack
- Next.js
- Go
- Chatwoot
- Evolution API
- OpenAI
- Whisper
- PostgreSQL
- Redis
- WebSocket
- MCP
O que deu errado e como resolvi
Nem tudo saiu de primeira. Esses foram os tropeços que mais ensinaram.
- Problema
A IA local, com um modelo pequeno rodando na CPU, era lenta e errava. Uma máquina com GPU custaria caro demais.
SoluçãoFicou a chave própria de cada empresa: cada uma usa a sua conta de IA, e o servidor continua leve.
- Problema
Um backup que falhava era contado como bom, e a rotação apagava os backups bons.
SoluçãoCada dump é verificado antes de entrar na rotação, e uma falha nunca apaga nada.
- Problema
Uma campanha para todos os contatos montava 20 mil destinatários dentro da própria requisição.
SoluçãoO envio foi para um worker em segundo plano, e a tela responde na hora.
- Problema
Uma única chamada grande ao servidor MCP derrubava o BFF por falta de memória.
SoluçãoLimite no MCP: até 20 itens por lote e 1 MB por chamada.
- Problema
O assistente respondia em streaming, mas o proxy do Next segurava a resposta até o fim.
SoluçãoUm cabeçalho no-transform liberou o streaming até o navegador.
- Problema
Os dados do anúncio de origem se perdiam no caminho entre a Evolution API e o Chatwoot.
SoluçãoO BFF passou a receber o webhook bruto da Evolution e guarda a origem antes de repassar.
Em números
- ~170 → ~3 msnas listagens repetidas de conversas, com cache
- 250 por diateto de envio por número conectado por QR code
- 11 recursoscobertos pelo teste de isolamento entre empresas
- 78migrations de banco
- ~70achados de revisão de código, todos corrigidos
Quer algo assim no seu negócio?
Não precisa ser do tamanho do SOLAR.IA. Me conta o problema e eu digo o que faz sentido.
Me chama no WhatsApp