Raphael Serafim· Publicado em 23 de setembro de 2026· 9 min de leitura

Fiz meu CRM num fim de semana com IA. Aí chegou o WhatsApp.

Sábado: CRUD, funil e login prontos. Domingo: o WhatsApp. A parede tem nomes — Business Manager, verificação, template, janela de 24 horas — e este é o mapa dela.

Ver como Markdown

A ideia era das simples: um CRM enxuto, para acompanhar orçamento de serviço. Contato, orçamento, estágio, histórico. Nada de campo customizável, nada de automação, nada de relatório bonito. Só o que resolve.

Na sexta à noite era um parágrafo no bloco de notas. No domingo de manhã era um sistema funcionando, com login, banco e tela. E no domingo à noite era um sistema funcionando com uma tarefa aberta que eu não fazia ideia de que levaria semanas: "plugar o WhatsApp".

Sábado de manhã: o esqueleto

O primeiro prompt foi longo de propósito. Descrevi o negócio em prosa — quem usa, o que registra, o que precisa ver — e pedi o modelo de dados antes de qualquer código.

Voltou com as entidades certas, os relacionamentos certos e dois índices que eu teria esquecido. Aprovei, pedi as migrações, pedi o CRUD. Em duas horas eu tinha API e banco.

A tela veio depois do almoço. Kanban de estágios, arrastar e soltar, formulário lateral, busca. A IA acerta isso de olhos fechados porque é a parte mais repetida da internet inteira. O que eu fiz de útil foi revisar: corrigi duas validações frouxas e troquei uma query N+1 que ela deixou passar.

Autenticação à noite. Sessão, hash de senha, expiração. Funcionou de primeira e eu fui dormir com a sensação, honesta, de que a profissão tinha mudado.

Domingo: "agora é só plugar o WhatsApp"

Escrevi isso literalmente, nessas palavras, no chat. E ela respondeu com um arquivo inteiro: um cliente HTTP, uma função enviarMensagem, um endpoint de webhook, tratamento de erro. Bonito, tipado, comentado.

Nada daquilo podia funcionar, e eu levei uma hora para entender por quê.

O código apontava para uma URL da Graph API com um número de versão que eu não sabia se existia, esperava um PHONE_NUMBER_ID que eu não tinha, e um token que eu também não tinha. Quando pedi "me diz como obtenho esse token", a resposta foi um passo a passo de doze itens que começava assim: crie uma conta no Business Manager.

Aí a ficha caiu. O trabalho que faltava não era de programação.

A parede, item por item

Business Manager. Não é login no Facebook. É uma conta de negócio, com CNPJ, com administrador definido, e ela é o guarda-chuva de tudo o que vem depois. Se você vai fazer isso para um cliente, a conta é do cliente, não sua — e você vai precisar que alguém do lado dele entre e conceda acesso.

Verificação de negócio. Documento do CNPJ, comprovante, às vezes revisão manual. O prazo não é seu. Pode sair rápido, pode não sair. Enquanto não sai, o seu limite de envio é baixo e você não vai a lugar nenhum.

O número. Ele não pode estar ativo no app do WhatsApp. Se o cliente usa aquele número no celular da loja, ou ele libera o número — perdendo o histórico do aparelho — ou você usa outro. Essa conversa costuma ser mais difícil do que qualquer parte técnica do projeto, e é melhor tê-la antes de prometer prazo. Existe o caminho de coexistência, e existe o caminho de registrar um número pela API sem instalar o app — mas os dois precisam ser escolhidos no começo, não no fim.

O app na Meta. Para falar com a Cloud API você precisa de um aplicativo registrado, com as permissões certas, e dependendo do caso de virar Tech Provider. É burocracia de desenvolvedor, e ela tem um caminho alternativo: usar um parceiro que já passou por isso. A WAME, por exemplo, conecta a conta oficial pelo Embedded Signup da Meta, sem criar app e sem virar Tech Provider.

O webhook. Precisa de HTTPS, precisa ser público e precisa responder à verificação da Meta. localhost não serve. Eu subi um túnel para testar, funcionou, e depois passei uma tarde inteira descobrindo que trocar o endereço do túnel sem reapontar a URL faz as mensagens simplesmente pararem de chegar — sem erro em lugar nenhum, porque do outro lado é a Meta recebendo um 502 e desistindo em silêncio. É a primeira das sete causas de webhook que não chega.

O template. Esta foi a pior, porque ela não é um obstáculo de setup — é uma regra de produto que entra no meio do sistema já escrito.

A janela de 24 horas desmonta a sua tela

Eu tinha uma caixa de digitação. Escrevia, clicava, mandava. Era a tela mais óbvia do sistema.

Então li a regra: você responde com texto livre dentro de 24 horas depois da última mensagem do cliente. Fora disso, para iniciar conversa, só com template aprovado — um texto submetido antes, com as variáveis marcadas como {{1}}, que passa por análise da Meta e pode ser recusado.

Isso significa três mudanças no que eu já tinha feito:

  1. A conversa precisa de um campo dizendo quando a janela expira, atualizado toda vez que o cliente escreve.
  2. A tela precisa saber bloquear a caixa de digitação e oferecer a lista de templates no lugar dela.
  3. A minha ideia de "mandar um lembrete de orçamento três dias depois" deixou de ser uma linha de código e virou um template a ser aprovado, com um texto que a Meta precisa aceitar.

A terceira foi a que doeu, porque o lembrete era metade do valor do produto. O guia de como criar, aprovar e disparar template explica o mecanismo e o que faz a Meta recusar — variável abrindo o texto, duas variáveis coladas, numeração que pula. Cada uma dessas volta como recusa genérica se você descobrir na tentativa.

O que eu faria diferente

Olhando para trás, o erro não foi técnico. Foi de ordem.

Eu construí de dentro para fora: dados, telas, regras e, por último, o canal. Deveria ter feito o contrário, porque o canal é a única parte com dependência externa e prazo que não é meu. As outras eu controlo.

A ordem que eu usaria hoje:

  1. Resolver o canal primeiro. Mandar uma mensagem de teste para o meu próprio celular, por API, antes de existir uma linha de CRM.
  2. Modelar a conversa já com a janela dentro dela.
  3. Escrever o webhook sabendo que ele será reentregue, antes de qualquer tela.
  4. Só então CRUD, funil e painel — que é a parte que a IA faz numa tarde de qualquer jeito.

Invertendo, o fim de semana teria rendido a mesma coisa e a semana seguinte não teria sido retrabalho.

O que resolveu

Duas decisões, e nenhuma delas é heroica.

A primeira: parar de integrar contra a Meta direto e usar uma API gerenciada. O que sobra do meu lado é um POST para mandar e um endereço para receber. A conta na Meta continua sendo do dono do número — isso não tem como terceirizar, e quem prometer o contrário está errado —, mas app, token, renovação e formato de webhook saem da minha lista.

A segunda: dar à IA a documentação certa antes de pedir código. A WAME publica a documentação em formato de texto para modelo, em https://api-wa.me/llms.txt, e a referência completa em https://api-wa.me/llms-full.txt. Colei o endereço no contexto do editor, pedi de novo o cliente HTTP, e dessa vez o que voltou apontava para endpoints que existem.

Foi a diferença entre um arquivo bonito que não roda e um arquivo simples que roda. A primeira mensagem chegou no meu celular no mesmo dia.

O que ainda dá trabalho depois disso

Para não terminar com cara de propaganda, vale dizer o que continuou difícil mesmo depois de o canal estar resolvido.

Webhook reentregue duas vezes vira mensagem duplicada na tela, e isso só aparece quando tem tráfego. Status de entrega chega fora de ordem, e o tique azul volta a cinza se você escrever status = evento.status. A janela fecha de madrugada e o atendente descobre de manhã, com a caixa de digitação bloqueada e sem entender por quê.

Nenhuma dessas é culpa da API. São o custo de ter gente de verdade usando, e cada uma custa um incidente para ser descoberta. A lista completa está em o que quebra quando o sistema sai da sua máquina, e o mapa das três partes que a IA não resolve num CRM está em Como criar um CRM do zero com IA. Vale ler os dois antes, não depois.

Conclusão

Um CRM num fim de semana é verdade. A parte que a IA faz, ela faz — e faz bem.

O que não cabe no fim de semana é o canal, porque a maior parte dele não é código: é conta, documento, número e espera. Quem descobre isso no domingo à noite perde a semana seguinte; quem descobre na sexta reorganiza o projeto e não perde nada.

Se você está com um protótipo pronto e a tarefa "plugar o WhatsApp" aberta há dias, o caminho mais curto é aceitar que ela não é uma tarefa de programação, resolver a parte externa com quem já a resolveu, e voltar a fazer o que você estava fazendo bem.

Pronto para automatizar seu WhatsApp?

Crie sua conta gratuita e comece a enviar mensagens pela API em minutos.

Começar grátis

Perguntas frequentes

Dá mesmo para fazer um CRM em um fim de semana com IA?+

A parte interna, sim: modelo de dados, CRUD, funil, login e painel saem em horas e ficam utilizáveis. O que não cabe num fim de semana é qualquer coisa que dependa de aprovação de terceiro — conta na Meta, verificação de negócio e template. Essas etapas têm prazo que não é seu.

Por que a IA escreveu um código de WhatsApp que não funciona?+

Porque a instrução "integra o WhatsApp" não tem código como resposta completa. O modelo preenche o que falta com material antigo que ele viu no treino e devolve algo plausível. Dando a ele a documentação atual da API que você vai usar, em texto, o resultado muda na mesma hora.

Preciso do número do cliente fora do aplicativo do WhatsApp?+

Para a API oficial, o número não pode estar ativo no app como estava antes. Há caminhos de coexistência e há o registro do número diretamente pela API, mas a escolha precisa ser feita no início do projeto, porque ela afeta o que o cliente perde ou mantém no aparelho.

O que é a janela de 24 horas e por que ela muda o meu sistema?+

É o prazo em que você pode responder com texto livre depois que o cliente escreveu. Fora dela, iniciar conversa exige template aprovado. Isso obriga a sua conversa a guardar a data de expiração e a sua tela a oferecer templates quando a janela fecha — duas mudanças que é melhor fazer antes da tela existir.

Quanto tempo leva, na prática, até a primeira mensagem sair?+

Com uma API gerenciada e uma conta já conectada, o primeiro envio costuma acontecer no mesmo dia. O que demora é a parte que depende da Meta: verificação de negócio e aprovação de template, que podem levar de dias a semanas e não aceleram por esforço seu.

Continue lendo