Tudo começou há mais de três anos, quando conheci o Whaticket, quase por acidente, em um freela que parecia simples e que mudou completamente a direção do que eu faria dali pra frente. Na época, ele era praticamente sinônimo de atendimento via WhatsApp para muita gente. Só que eu nunca consegui olhar para uma ferramenta pronta e usar do jeito que veio. Eu não gostava muito da Arquitetura dele e nem do Frontend. Em um freela o cliente pediu basicamente que eu transformasse do WhatsApp para o chat do Facebook, identicamente. Quando finalizei o cliente ficou impressionado, e aí eu entendi que tinha achado um nicho dentro de um nicho. Eu oferecia o serviço de modificação visual do Whaticket. As pessoas pagavam por isso, porque finalmente existia algo diferente no mercado. Isso me diferenciou de um jeito curioso: eu não estava competindo com o sistema, estava competindo com a mesmice.
Com o tempo, porém, eu comecei a sentir que viver dentro de uma plataforma de terceiros tinha um teto bem definido. Posso customizar, posso modificar, mas no fim do dia estou construindo em cima de uma fundação que não é minha. Foi quando, há cerca de dois anos, comecei a brincar com uma ideia diferente, e o que nasceu dali parece óbvio só em retrospecto. Eu tinha um servidor de teste meu, e comecei a criar comandos que eu enviava pelo próprio WhatsApp para disparar ações. Um comando disparava uma rotina, criava registro, consultava algo, acionava fluxo. E comecei a notar uma coisa meio óbvia, mas que muda tudo quando você percebe: eu não precisava de um dashboard completo para gerenciar operações, pois antes disso eu já usava ele para enviar alertas do servidor. Precisava do WhatsApp. A interface já estava no meu bolso, já estava aberta, já era o canal onde tudo acontecia de qualquer forma.
Essa percepção abriu uma fratura no jeito que eu pensava sobre interfaces. O controle real estava na API, não no painel. Quando comecei a orquestrar ações por mensagem, percebi que o WhatsApp podia ser interface administrativa, não só canal de atendimento. Se for analisar friamente, isso já se encaixa como um quase WhatsApp-first. Não era purista, porque ainda existiam funções externas, mas a ideia de que o centro operacional poderia viver dentro da conversa já estava ali germinando.
Em 2025, esse pensamento tomou uma forma mais concreta nas escolhas que fiz. Passei a pegar apenas projetos que tinham como núcleo a criação de alguma funcionalidade diretamente no WhatsApp, atendimento, vendas, agendamento, integrada com algum sistema já existente do cliente. Sem ERP completo do zero, sem painel corporativo pesado. Só aquilo que conectava ação real a conversa real. E quanto mais eu fazia, mais ficava claro que estava acumulando conceitos de IA, arquitetura automação, orquestração assíncrona, eventos, agentes especializados… mas aplicando tudo em projetos fragmentados. Foi aí que pensei: vou criar um CRM próprio. Não para competir com o mercado, mas para ter um sistema onde pudesse implementar tudo que aprendi, e tudo que ainda estou aprendendo, sobre inteligência artificial agêntica, sem precisar pedir permissão pra nenhuma plataforma de terceiro (mas eu usava ou Baileys ou Whatsmeow ou EvolutionAPI).
Como eu já tinha desenvolvido uma arquitetura Event-driven assíncrona baseada em Entity Agents e AtomicBehavior Agents, o processo ficou quase automático. Eu criava uma funcionalidade nova na API e já integrava com o WhatsApp no mesmo ciclo. Nada de construir módulo inteiro para depois "conectar". A conexão era parte da própria concepção. Cada entidade reagia a eventos, cada comportamento era pequeno, isolado, acionável por mensagem. A conversa deixava de ser interface e passava a ser gatilho semântico. O WhatsApp virava sistema operacional conversacional.
E um dia, pesquisando sobre o nome dos padrões das as funcionalidades que eu criei, encontrei o termo WhatsApp-first. Mas o mais curioso é que antes mesmo de terminar de ler o que o conceito significava, eu já tinha conectado ele ao que estava fazendo. Não foi uma descoberta, foi um reconhecimento. Eu não tinha estudado o conceito antes. Estava resolvendo problemas e depois descobri que havia nome para aquilo. Já estava lá. O nome só chegou depois.
O mais interessante é que essa trajetória não foi planejada como "vou criar um movimento arquitetural". Foi sequência de decisões práticas: diferenciar visualmente um sistema saturado, automatizar ações via comando, perceber que o servidor era o verdadeiro núcleo, escolher projetos alinhados à conversa como interface primária, e então consolidar tudo em um CRM que fosse terreno fértil para IA agêntica. Cada etapa parecia isolada, mas quando olho para trás vejo uma linha contínua. A interface virou evento. O evento virou agente. O agente virou comportamento atômico. E o WhatsApp deixou de ser canal para virar sistema operacional conversacional.
O que começou como um freela de redesign acabou sendo o ponto inicial de uma arquitetura inteira baseada em mensagens, eventos e agentes. E ironicamente, eu só descobri o nome do padrão depois que ele já estava rodando no meu servidor. A ordem foi prática → arquitetura → conceito. Não o contrário.
Nessa série de artigos para explicar como eu criei o termo/conceito/arquitetura FullAgenticStack, você notará que boa parte do nome dos conceitos vieram após eu ter implementado em uma solução.
Resultado prático (não só conceito): esse modelo me levou a construir um ecommerce + CRM + mini-ERP operável via WhatsApp, com execução, rastreabilidade e recuperação no próprio canal, ou seja, não é "um bot", é uma camada operacional conversacional.
Como eu vou demonstrar isso na prática: ao longo do ano eu vou mostrar o caminho de engenharia que sai do "WhatsApp-first" e chega num sistema completo, e até o final do ano isso fecha com 3 módulos bônus essenciais (os que amarram as pontas que normalmente ficam soltas) para formar um Sistema FullAgenticStack de verdade.
Se você quer a definição mínima do que considero "WhatsApp-first System" (WFS Basic), está aqui embaixo.
WFS Basic (o mínimo "Pass/Fail"):
- [ ] 100% das capabilities executáveis via WhatsApp (inclui admin e recovery)
- [ ] Entrada por texto e áudio (STT) em qualquer capability
- [ ] Nenhuma mutação de estado exclusiva do dashboard
- [ ] Comandos com confirmação + idempotência (não pode cobrar/cancelar duas vezes)
- [ ] Observabilidade via conversa (status/erro/última decisão sem painel obrigatório)
- [ ] Recovery via conversa (retry/cancel/reprocess/compensate quando aplicável)
E se quiser a engenharia pesada (protocolos, evidência, observabilidade e recovery), eu deixei esse post técnico linkado.
Deseja aprender mais sobre WhatsApp-first? Conheça o primeiro curso focado nesse conceito/arquitetura fullagenticstack.dev/whatsapp-first
Se quiser entender um pouco mais sobre os padrões abertos, do WhatsApp-first, para que você também possa contribuir, então acesse esse artigo
Próximo artigo: Como eu implementei Conversational Agentic UX
Top comments (0)