Resultado em uma frase
O lead que chegava no WhatsApp e esperava horas por uma resposta agora é recebido na hora, responde às perguntas certas, recebe a proposta em PDF e só então o dono do negócio entra na conversa para fechar.
- Cliente: produto próprio, para pequenos e médios negócios que vendem pelo WhatsApp (clínicas, prestadores de serviço, comércio local)
- Meu papel: produto, UX, frontend, backend, automações, landing page e operação
- Prazo: MVP funcional com painel, bot, formulário embedável e landing page
- Resultado principal: o primeiro atendimento acontece sozinho, 24h, e o humano recebe o lead já qualificado
- Duas camadas, cada uma com um dono: o Next.js é o plano de controle (login, conexão do número, painel); o n8n é o plano de automação (as mensagens). Os dois leem a mesma fonte da verdade no Supabase.
- Segredo nunca trafega: entre os sistemas passa só o identificador da instância. O token do WhatsApp de cada cliente fica numa tabela que nem o navegador nem o usuário conseguem ler, só o servidor.
- Um cliente, um número, provisionado: em vez de autosserviço cheio de bordas, o onboarding é um script que cria o usuário, a instância do WhatsApp, os vínculos e os webhooks de uma vez. Menos superfície para dar errado no começo.
- Conversa humana, não formulário no chat: saudação com o nome do lead, uma pergunta por vez, questionário que pode ser desligado, e handoff a um clique para o humano assumir.
- Resposta imediata, 24h, para todo lead que chega pelo WhatsApp ou pelo site
- O dono recebe um aviso no WhatsApp só quando o lead terminou o cadastro e está pronto para fechar
- Todo lead organizado num painel, com origem, respostas e conversa completa
- Base de leads portátil: entra e sai por CSV, sem prender o cliente à ferramenta
- Landing page própria em Next.js, com copy e sistema visual coerentes com o produto
O contexto
Para muito negócio pequeno, o WhatsApp é a loja. Só que o dono atende sozinho ou com uma equipe enxuta, está ocupado quando a mensagem chega e repete as mesmas perguntas o dia inteiro. Quem responde três horas depois já perdeu o cliente para quem respondeu em três minutos.
O problema
Mensagem perdida é dinheiro perdido, e as soluções de mercado caem em dois extremos: chatbot genérico que parece robô e afasta o cliente, ou plataforma de atendimento complexa demais para quem só quer não perder lead. Os formulários do site também caíam num e-mail que ninguém via a tempo.
A abordagem
A solução
Conexão em minutos. O cliente lê um QR Code e o número fica conectado. O painel mostra o status, o número pareado, a última conexão e a última queda.
Automação visual. Um fluxo vertical mostra o caminho do lead: gatilho, saudação, identificação, perguntas, proposta e notificação. O dono edita os textos, liga ou desliga o questionário e sobe o PDF da proposta, que é enviado automaticamente no fim.
Formulário para o site. O painel gera um código de incorporação; quem preenche o formulário no site do cliente já cai no atendimento automático do WhatsApp. Substituiu plugins de formulário e integrações pagas.
Leads e conversas. Tabela de leads com origem (formulário, WhatsApp ou importado), importação e exportação em CSV com mapeamento de colunas e deduplicação por telefone, histórico completo de cada conversa e um banner para desativar o bot naquele contato e assumir.
Por baixo do capô
Next.js 16 (App Router, Server Actions) com Tailwind v4, Supabase (Auth, Postgres com RLS, Storage) e n8n com três workflows: entrada pelo formulário, respostas do lead e log de todas as mensagens. O provedor de WhatsApp é uma API com uma instância por cliente. RPCs com security definer liberadas só para o service role resolvem a instância por slug ou token. O formulário público tem honeypot, rate limit por IP, consentimento LGPD obrigatório e responde da mesma forma para slugs inexistentes, para não permitir enumerar clientes. Os headers de segurança são mutuamente exclusivos: só a rota do formulário pode ser incorporada em iframe; painel, login e API bloqueiam clickjacking. O telefone brasileiro é casado com e sem o nono dígito, e os nós HTTP do n8n têm retentativa para que uma falha de rede não derrube o atendimento.
Resultados
O que eu levo deste projeto
Os bugs mais caros vieram das bordas que ninguém desenha: um nó que não dispara quando a busca volta vazia, o nono dígito do celular, um header duplicado que quebra o iframe. Documentar cada um no momento em que aparece virou parte do produto.

