CRM Silmer
CRM próprio para uma estamparia de Vila Velha. Um agente de IA atende no WhatsApp, monta a ficha do pedido e passa a conversa para um vendedor quando o assunto é preço.
- Papel
- Produto, design e engenharia, do mapeamento da ficha ao código
- Cliente
- Silmer Camisetas, estamparia em Vila Velha (ES) desde 1998
- Stack
- Vue 3, Fastify e PostgreSQL num monólito modular; n8n para WhatsApp e IA
- Status
- MVP em desenvolvimento. O go-live espera a homologação do WhatsApp na Meta e os gates de produção
NotaCliente real, com autorização. Conversas, clientes, pedidos e vendedora são fictícios; as telas vêm do protótipo de design e da ficha sintética aprovada.

Resultados
- 15campos do pedido que a IA coleta na conversa
- 84arquivos de teste automatizado, mais 4 suítes de ponta a ponta
- 6ADRs, três delas revendo decisões anteriores
- A medirdepois do go-live: tempo até a primeira resposta, conversas que chegam à ficha completa e pedidos confirmados
Demo interativa
Da conversa à ficha do pedido
Um pedido fictício pelo WhatsApp. Cada resposta do cliente acende o campo da ficha que ela preencheu. Quando o assunto vira preço, o agente para e passa a conversa, com a ficha e um resumo, para uma vendedora.
Associação Jardim Aurora
WhatsApp · conversa fictícia
Com a Paula
- A conversa começa quando o cliente escreve.
Oi! Queria orçar camisetas para a corrida do nosso bairro.
Ficha: finalidade.
Oi! Sou o assistente da Silmer e vou organizar seu pedido para a equipe. Quer mesmo um orçamento? Se sim, qual nome uso para o cliente e como chamamos o pedido?
Quero sim! É a Associação Jardim Aurora. O evento é a Corrida Jardim Aurora 2026.
Ficha: cliente, pedido / evento. Pedido 07-CRM criado como pendente.
Anotado. Que peça e modelo você imagina? E quantas peças, mais ou menos?
Camiseta dry fit, gola careca. Umas 80.
Ficha: peça e modelo, malha, quantidade.
A camiseta tem a mesma cor na frente, nas costas e nas mangas? E como fica por tamanho? Ex.: P 10, M 20.
Toda branca. P 15, M 30, G 25 e GG 10.
Ficha: cores por parte, grade, quantidade.
Fechou 80 peças. A arte já está pronta? E onde vai a estampa?
Tenho o logo. Vai no peito, e os patrocinadores nas costas.
Ficha: arte, locais.
Para quando você precisa? E é entrega ou retirada na loja?
Até 14/11. Pode entregar aqui em Vila Velha?
Ficha: data desejada, entrega.
Anotei 14/11 como data desejada. Quem confirma o prazo é a equipe, depois de olhar a produção. Qual o endereço de entrega?
Já te passo. E quanto fica? Se fechar as 80, tem desconto?
Valor e desconto quem passa é a nossa equipe. Já deixei tudo anotado e chamei uma vendedora. Ela segue daqui.
Passagem para pessoaO agente parou: o cliente perguntou o valor. A conversa foi para uma vendedora, com a ficha e um resumo.
Oi! Aqui é a Paula, da Silmer. Já estou com a sua ficha: 80 dry fit brancas, logo no peito. Me passa o endereço que eu te mando o orçamento.
Ficha do pedido
07-CRMPendentecriado pelo agente; só uma pessoa confirmaSem pedido ainda: o agente cria quando o cliente confirma o orçamento.
12 de 14 campos vieram da conversa
Resumo do pedido
- ClienteIA · msg 3
- Associação Jardim Aurora
- Pedido / eventoIA · msg 3
- Corrida Jardim Aurora 2026
- FinalidadeIA · msg 1
- Evento: corrida do bairro
Item 1
- Peça e modeloIA · msg 5
- Camiseta, gola careca
- MalhaIA · msg 5
- Dry fit
- Cores por parteIA · msg 7
- Branca na frente, costas e mangas
- GradeIA · msg 7
- P 15 · M 30 · G 25 · GG 10
- QuantidadeRegra · msg 7
- 80: a soma da grade confere
Estampa
- ArteIA · msg 9
- Logo pronto; patrocínios a montar
- LocaisIA · msg 9
- Peito e costas
- Técnica—
- Falta: a vendedora define
Logística
- Data desejadaIA · msg 11
- 14/11 (o prazo é da equipe)
- EntregaIA · msg 11
- Entrega em Vila Velha/ES
- Endereço—
- Falta: cliente vai enviar
Fechamento · só pessoa
- Valor e condiçãoPessoa
- Com a Paula
Passagem para uma pessoa
Motivo: perguntou o valorResumo escrito pela IA
Corrida Jardim Aurora 2026: 80 camisetas dry fit brancas, gola careca (P 15 · M 30 · G 25 · GG 10). Logo no peito, patrocinadores nas costas. Quer até 14/11, com entrega em Vila Velha/ES. Pediu preço e desconto.
Falta: técnica de estampa e endereço de entrega.
Daqui em diante o agente não responde nesta conversa. Preço, desconto, prazo e a confirmação do pedido são da vendedora.
Exemplo fictício: cliente, conversa, pedido e vendedora foram inventados para esta demonstração. Os campos seguem, resumidos, a ficha do CRM; as regras de passagem são as do agente.
O problema
A Silmer vende pelo WhatsApp. A fábrica produz a partir de uma planilha. Tudo o que o cliente diz precisa chegar até ela.
A ferramenta anterior era genérica: organizava conversas, não pedidos de estamparia com grade, malha e cor por parte da peça. E automatizar o atendimento com IA tinha um risco próprio: um agente que inventa preço, prazo ou desconto cria um compromisso que a fábrica não cumpre.
Decisões
Perguntas que saem da ficha
Comecei pela ficha da fábrica: o que falta nela vira retrabalho na produção. Cada campo tem quatro estados (preenchido, não se aplica, pendente e divergente), e o agente pergunta só o próximo dado que falta, no máximo três por vez, sem repetir o que o cliente já disse.
Ampliar imagemCampos conferidos por código
O modelo só propõe fatos que o cliente confirmou, numa lista fechada de campos. Quais dos 15 obrigatórios faltam é calculado por código, fora do modelo, e a API recusa qualquer campo fora da lista, como preço, pagamento ou status. A IA não consegue declarar a ficha pronta sozinha.
Preço e desconto ficam com o vendedor
O agente para quando o cliente pede preço, desconto ou uma pessoa, reclama ou tem urgência. A conversa entra na fila de vendedores, e a primeira pessoa que assume fica com ela. As respostas da IA que ainda não saíram são canceladas, para o agente não falar por cima do vendedor. Quem assume recebe a ficha e um resumo, e não pergunta de novo.
Ampliar imagemDesfiz o Kanban que já estava pronto
A primeira versão tinha cinco colunas, e o card só andava com todos os campos da etapa. Chegou ao código. No protótipo ficou claro que o cliente responde fora de ordem e o vendedor completa o resto depois. Troquei por dois status: Pendente é rascunho, e o agente pode criá-lo; Confirmado exige valor e forma de pagamento, e só uma pessoa confirma.
Ampliar imagemIntegração mais simples
A integração com o n8n nasceu complexa demais, com quatro rotas e controle de posse por rodada. Um dia depois, cortei para três rotas. Toda resposta automática pede autorização ao CRM antes de sair, repetir a requisição nunca envia uma segunda mensagem e o n8n não acessa o banco. O que saiu só volta se uma métrica ou um incidente justificar, e isso está registrado em ADR.
Processo
Landing e linktree
Antes do CRM, entreguei a landing e o linktree da Silmer em Astro, sobre um design system v0.5 com tokens DTCG. Os dois levam para o WhatsApp.
Planilha virou contrato de dados
Transformei a planilha da fábrica num contrato de dados: campo a campo, com estado, origem e regra. As perguntas do agente saíram dali.
Protótipo e recuo
Entre 9 e 12/09, revisei quatro telas num canvas de design. Saíram dali o fim do Kanban e o pedido com dois status, registrados nas ADRs 004 e 006.
Próximos passos
Homologar o número na Meta e ir ao ar. Depois, a ficha por produto a partir do catálogo aprovado pela Silmer e o Instagram como segundo canal.