Voltar pro blog json-p.org

PilarGrupos de ofertas e retenção Publicado19 de setembro de 2026 AutorElton

Automatizar grupo de ofertas no WhatsApp via API

Como automatizar grupo de ofertas no WhatsApp via API: fila de ofertas, deduplicação, espaçamento entre posts pra não parecer bot, timing e retry.

A rotina é sempre a mesma. Você abre o painel do afiliado, acha um fone bluetooth que caiu de R$ 189 pra R$ 79, gera o link com o seu código, copia. Volta pro app, salva a imagem do produto, escreve o texto com o preço, o desconto e o cupom, cola no grupo 1. Cola no grupo 2. Cola no grupo 3. Confere se a imagem subiu. Repete quinze vezes por dia.

Aí você almoça, e a oferta relâmpago que ia render bem some antes de você postar. Ou pior: você posta o mesmo fone que já tinha postado anteontem, alguém do grupo comenta "esse já teve", e você perde um pouco da credibilidade que levou meses pra construir. No fim do mês você não sabe qual grupo vendeu mais, porque todo mundo recebeu tudo e o clique nunca foi separado por origem.

Quem quer automatizar grupo de ofertas no WhatsApp normalmente começa procurando "o bot". Só que o bot é a parte fácil. Mandar mensagem por API é meia dúzia de linhas. O que dá trabalho, e o que separa um grupo que cresce de um grupo que esvazia, é tudo que acontece antes do envio: o que entra na fila, em que ordem, com que espaçamento, e o que acontece quando o envio falha no meio.

A resposta curta

Automatizar postagem em grupo de ofertas não é "um script que posta". São quatro peças separadas: uma fila de ofertas com estado e critério de entrada, um formatador que monta a mensagem final já com o link de afiliado embutido, um despachante que tira da fila respeitando espaçamento e janela de horário, e um registro de falha que garante que nenhuma oferta some em silêncio.

Quem junta tudo num loop só (busca oferta, formata, manda, dorme 30 segundos, repete) funciona por duas semanas e depois começa a postar repetido, postar de madrugada, tomar erro de rate limit e perder oferta sem nunca ficar sabendo. O resto do post é o desenho de cada peça.

Antes de tudo: qual API dá conta de grupo

Essa decisão vem primeiro porque ela limita o resto. A API oficial do WhatsApp (Cloud API) hoje tem sim uma Groups API, o que já foi novidade pra muita gente que aprendeu que grupo não existia no oficial. O problema é o tamanho: o limite é de 8 participantes por grupo, com direito a criar até 10 mil grupos por número, e exige conta oficial verificada (OBA). Isso serve pra grupo de atendimento, grupo de time, grupo de família de cliente. Não serve pra grupo de ofertas, onde o próprio WhatsApp permite até 1.024 membros e o seu está com 400.

Ou seja: pra postar num grupo de ofertas de verdade, via API, sobra biblioteca não oficial (Baileys e as camadas em cima dela, tipo a Evolution API), com todo o risco que isso carrega. Não tem caminho oficial limpo, e quem te vende "automação de grupo com API oficial" está te vendendo outra coisa. Se você ainda está decidindo esse pedaço da infra, tem um post inteiro sobre Evolution API, Cloud API e Baileys com os trade-offs de cada um.

Assumindo esse caminho, o resto do desenho segue.

A fila de ofertas: o que entra e em que ordem

A fila é o coração. Ela existe pra desacoplar duas coisas que hoje estão grudadas na sua mão: descobrir a oferta e publicar a oferta. Quando você separa, a descoberta pode rodar o dia todo e a publicação pode obedecer regra.

Cada item da fila carrega um estado, e os estados que importam são poucos:

Repare que "descartada" tem motivo. Essa é a diferença entre um sistema que você consegue auditar e uma caixa preta. Quando você olhar amanhã e sentir que o grupo postou pouco, você precisa conseguir responder "por quê" sem abrir log cru.

O critério de entrada é o filtro de qualidade e vale ser rígido, porque é ele que protege a reputação do grupo:

A ordem de saída não é FIFO. Se for FIFO, você posta o que chegou primeiro, não o que vende mais. Um score simples resolve: combine desconto real, comissão esperada, afinidade da categoria com o grupo e quanto tempo falta pra oferta expirar. O que está pra morrer sobe na fila. O que é bom mas dura o dia todo pode esperar o horário nobre.

Não postar a mesma oferta duas vezes

Esse é o erro que mais custa membro, e quase sempre nasce de uma escolha errada de chave de deduplicação.

A chave não pode ser o link. O mesmo produto gera links diferentes dependendo do encurtador, do parâmetro de afiliado, da campanha e até do horário em que você gerou. Deduplicar por URL é deduplicar nada: dois links diferentes do mesmo fone passam batido e o grupo recebe o produto repetido.

A chave útil é a identidade do produto no marketplace (o id do anúncio ou do item) combinada com a faixa de preço. Assim:

Janela de silêncio razoável pra começar: 7 dias por produto e algo entre 24 e 48 horas por vendedor ou categoria, pra não encher o grupo de cinco capinhas de celular seguidas. Ajuste com o seu volume.

Tecnicamente isso é o mesmo problema de idempotência em webhook: você precisa de uma chave estável que represente "esse evento já aconteceu", e precisa checar essa chave antes do efeito colateral, não depois. Se a checagem acontece depois do envio, você já incomodou o grupo.

Montar a mensagem: preço, link e imagem numa coisa só

A mensagem é template com variável, nada sofisticado. O que importa são detalhes que parecem bobos e não são.

Imagem e texto vão juntos, na mesma mensagem. Mandar a foto e depois mandar o texto em outra mensagem faz duas coisas ruins: o membro leva dois toques de notificação por oferta (que é exatamente o que faz gente silenciar o grupo) e o texto chega descolado da imagem se alguém abrir o app no meio. Envie a imagem com legenda, uma mensagem por oferta.

O formato que funciona é curto e escaneável:

[FOTO DO PRODUTO]

Fone Bluetooth XYZ
De R$ 189,90 por R$ 79,90 (58% OFF)
Cupom: ACHEI10 (vale até hoje 23h59)

https://seu.link/a7k2qv

Três cuidados:

Espaçamento: por que rajada quebra, mesmo em grupo seu

Aqui mora a parte que quase nenhum tutorial explica direito, e ela é diferente do risco clássico de disparo em massa.

Quando você dispara pra lista fria de número novo, o sinal que te queima é mandar mensagem não solicitada pra quem não te conhece: bloqueio, denúncia, número recém-criado com volume alto. Já escrevi sobre como o WhatsApp detecta padrão de disparo nesse cenário. Num grupo de ofertas estabelecido o quadro é outro: as pessoas entraram porque querem promoção, e o número já tem histórico. O sinal de não solicitado é bem mais fraco.

O que continua levantando bandeira é o padrão de máquina. Trinta mensagens em dois minutos, intervalos idênticos de exatos 30 segundos, atividade constante às 4 da manhã. Nada disso se parece com uma pessoa administrando um grupo. E tem o custo que o membro cobra na hora: rajada de post é o gatilho número um pra silenciar ou sair do grupo.

E tem o limite técnico, que é bem concreto se você usa Baileys por baixo. Envio pra grupo é mais caro que envio pra contato individual, porque a biblioteca precisa buscar os metadados do grupo (a lista de participantes, pra montar a criptografia) a cada envio. Existe relato público de rate-overlimit (HTTP 429) vindo direto dessa consulta de metadados com 5 ou 6 grupos e intervalo de 10 a 20 segundos entre mensagens, com o caso piorando quando o grupo faz parte de uma comunidade. Ou seja: você toma rate limit num volume que parece ridiculamente baixo.

O que ajuda, na ordem:

  1. Cachear os metadados do grupo. Lista de participantes não muda a cada minuto. Buscar uma vez e reaproveitar por algumas horas corta a maior parte dessas chamadas.
  2. Serializar por instância. Uma instância, uma fila de saída, um envio por vez. Paralelizar pra "ir mais rápido" é o jeito mais eficiente de tomar 429 e derrubar a conexão.
  3. Espaçar com variação aleatória. Não use 30 segundos fixos. Use uma faixa (por exemplo, algo entre 45 e 120 segundos) sorteada a cada envio. Sai mais barato em suspeita e em erro.
  4. Teto por hora e por dia, por grupo. Escolha um número (6 a 10 posts por hora por grupo é um começo conservador) e faça o despachante respeitar, mesmo com a fila cheia. Fila cheia é problema de curadoria, não desculpa pra rajada.
  5. Backoff de verdade no 429. Tomou rate limit, pausa aquela instância por minutos, não por segundos, e não tenta o próximo item da fila enquanto isso.

Timing: quando postar (e como descobrir isso sem chutar)

Não vou te dar a tabela de horário mágico, porque ela não existe igual pra todo nicho. Grupo de achadinho doméstico e grupo de eletrônico gamer têm pico em horas diferentes.

O que existe é o método. Você já tem encurtador próprio no link (item anterior), então tem carimbo de hora de cada clique. Rode duas semanas postando espalhado pelo dia, agrupe clique por hora do dia e por dia da semana, e olhe. Em duas semanas o padrão do seu grupo aparece. Depois disso o despachante passa a reservar as ofertas de maior score pras janelas de pico e só solta as medianas fora delas.

Duas regras que valem independentemente do nicho:

Quando a postagem falha: retry sem duplicar

Vai falhar. A instância cai, o WhatsApp devolve 429, o upload da imagem estoura timeout (envio de mídia pra grupo é notoriamente mais lento que pra contato, com timeouts de minutos aparecendo em relatos de campo). O modo de falha que mais dói não é o erro: é a oferta que sai da fila, não é postada e ninguém fica sabendo.

O desenho mínimo:

Esse conjunto (fila com estado e motivo, dedupe por identidade do produto, despachante com janela e jitter, retry idempotente com fila morta) é o que o grupo, o sistema que eu mantenho pra grupos de ofertas com link de afiliado de marketplace, implementa por dentro. Mas nada disso depende dele: dá pra montar com uma tabela de fila, um worker e um handler de erro, e a maior parte do trabalho é decidir as regras, não escrever o código.

O que dá errado

Fechando

Automatizar grupo de ofertas no WhatsApp é menos sobre "mandar mensagem por API" e mais sobre construir uma fila com regra. O envio é a última linha do processo e a mais simples. O que decide se o grupo cresce ou esvazia é o filtro de entrada, a chave de deduplicação, o espaçamento com jitter, a janela de horário e o tratamento honesto de falha.

Se for pra começar por uma coisa só, comece pela fila com estado e motivo. Mesmo rodando com aprovação manual no começo, ela já te devolve as duas horas por dia que hoje vão embora em copiar, colar e conferir, e te dá o registro pra descobrir o que realmente vende no seu grupo.

Fontes consultadas em 19/09/2026: documentação da Groups API do WhatsApp Business Platform (limite de 8 participantes por grupo, teto de 10 mil grupos por número e exigência de Official Business Account), central de ajuda do WhatsApp sobre o limite de 1.024 membros por grupo, e relatos públicos no repositório da Evolution API sobre erro rate-overlimit e timeout em envio para grupos.