Pular para o conteúdo
Todos os projetos
Proprietário

GronerZap

A central de atendimento via WhatsApp que construí dentro do CRM para substituir um fornecedor — serverless na AWS, quatro provedores de WhatsApp, centenas de empresas.

Papel
Criador e desenvolvedor principal — front-end, back-end e infraestrutura
Período
Dez 2025 – Atual
Contexto
Groner · desenvolvido sozinho, 4 colaboradores depois
Stack
WhatsApp Cloud API Lambda API Gateway SQS DynamoDB S3 EC2 Vue.js TypeScript Node.js PWA Tailwind CSS C# Uazapi

Este trabalho é propriedade da Groner. Ele é descrito em nível de arquitetura, sem código-fonte nem dados de clientes.

Resumo

  • Substituiu um fornecedor de mais de R$ 30 mil/mês
  • Centenas de empresas, milhares de usuários
  • 4 provedores de WhatsApp, um por número
  • Primeira versão no ar em 2 meses

Contexto

A Groner é o CRM feito para o setor de energia solar no Brasil — e, no Brasil, a venda acontece no WhatsApp. Até o GronerZap, o canal de WhatsApp do CRM rodava num fornecedor terceiro que custava mais de R$ 30 mil por mês, uma conta que crescia a cada cliente novo.

O problema

  • Um custo que escalava do jeito errado. Cada cliente novo aumentava a conta do fornecedor.
  • Estabilidade fora do nosso controle. Quedas de conexão e bugs recorrentes que não podíamos corrigir.
  • Nenhum controle. A comunicação com o fornecedor era só por webhooks: não tínhamos acesso ao front-end nem ao back-end, e o produto não evoluía com as necessidades dos nossos clientes.

Meu papel

Construí o GronerZap de ponta a ponta: front-end, back-end, infraestrutura, a integração com o CRM e o PWA. A primeira versão, com a Uazapi, entrou no ar em dois meses. Depois adicionei a API oficial do WhatsApp (Meta), a Z-API e um Evolution Go hospedado por nós. Outros quatro desenvolvedores entraram ao longo do tempo, com funcionalidades como as campanhas de disparo em massa, e correções.

Arquitetura

Arquitetura do GronerZap Cada número de WhatsApp roda em um de quatro provedores — a Cloud API oficial da Meta, a Uazapi, a Z-API ou um Evolution Go hospedado por nós em EC2 —, e os webhooks dele vão para Lambdas de entrada na AWS, que normalizam os eventos e os colocam em filas SQS. Lambdas workers gravam mensagens e mídia no DynamoDB e no S3, encaminham tudo para a API em C# do CRM, que vincula as conversas aos leads e decide quem pode vê-las, e enviam os eventos por uma API WebSocket ao PWA do GronerZap, que roda dentro do CRM ou como app instalado. As respostas saem do PWA para uma API HTTP e seguem pelo adaptador do provedor de cada número. Provedores de WhatsApp GronerZap · serverless na AWS Groner CRM Meta Cloud API API oficial Uazapi API não oficial Z-API API não oficial Evolution Go próprio · EC2 Webhooks Lambdas de entrada SQS + DLQs FIFO no histórico DynamoDB · S3 mensagens · mídia Lambdas workers grava · distribui HTTP API adaptadores WebSocket API eventos ao vivo API do CRM (C#) leads · acesso · CSAT PWA do GronerZap Vue · iframe ou app webhooks encaminha ao vivo envio adaptador
Cada número roda em um de quatro provedores: os webhooks entram por uma fila, as atualizações ao vivo saem por WebSocket e as respostas seguem pelo adaptador daquele número.
  • Front-end — um PWA em Vue 3 + TypeScript. Dentro do CRM, roda num iframe, recebe a sessão criptografada e conversa com o CRM via postMessage; fora dele, pode ser instalado como app no celular ou no desktop, com cache offline e web push.
  • Back-end — 100% serverless na AWS, definido com SAM: APIs HTTP e WebSocket no API Gateway, cerca de 150 funções Lambda, filas SQS com filas de mensagens mortas, DynamoDB e S3.
  • Entrada — o webhook de cada provedor é normalizado e enfileirado. Um worker identifica o número de WhatsApp, grava a mensagem e a mídia sem duplicar e, em paralelo, encaminha tudo ao CRM e envia para a tela dos atendentes por WebSocket.
  • Integração com o CRM — o monólito em C# continua sendo a fonte da verdade: vincula as conversas a leads e negócios, decide o que cada usuário pode ver e cuida do CSAT, das filas de atendimento e dos relatórios.
  • Provedor próprio — o Evolution Go roda numa instância EC2 nossa, definida em CDK, com Docker, snapshots, um watchdog do banco de dados e alarmes.

Decisões-chave

  • Uma interface, quatro provedores. Todo provedor implementa a mesma interface de cliente, com uma matriz do que cada um suporta, e cada número de WhatsApp escolhe o seu provedor. Adicionar a Z-API e o Evolution Go foi escrever adaptadores, não mexer na inbox.
  • A API oficial da Meta como opção. Provedores não oficiais são mais baratos, mas o número pode sofrer restrições; por isso, quem quer risco zero usa a API oficial — e o sistema respeita a janela de 24 horas da Meta e sugere um template fora dela. Nos provedores não oficiais, uma proteção anti-banimento respeita opt-outs, limita rajadas e volume diário e para de enviar quando um número sofre restrição.
  • Feito para reprocessar. Toda fila tem fila de mensagens mortas, mensagens de entrada e saída são idempotentes, e um encaminhamento ao CRM que falha fica registrado na própria mensagem para ser reprocessado. Tracing com X-Ray e alarmes sobre os logs acompanham o fluxo inteiro.

A parte mais difícil

Levar centenas de empresas — milhares de pessoas que passam o dia no WhatsApp — para um sistema novo sem quebrar a rotina delas. A estabilidade tinha que ser igual à da ferramenta antiga desde o primeiro dia, enquanto interface, performance e confiabilidade melhoravam; por isso, cada empresa migrou por trás da sua própria flag de beta.

Migrar também significava importar o histórico de cada empresa, e uma importação se desdobrou em 358 execuções paralelas e saturou o banco de dados do CRM. Hoje as importações de histórico rodam em ordem por uma fila FIFO, com concorrência limitada a cinco.

O código foi metade do trabalho. A outra metade foi conquistar a confiança de quem estava acostumado ao jeito antigo.

Resultados

  • Mais de R$ 30 mil por mês em custos de fornecedor eliminados.
  • O WhatsApp virou um add-on lucrativo: o cliente paga por número conectado, e a infraestrutura custa uma fração pequena disso.
  • Centenas de empresas e milhares de usuários no GronerZap.