Respostas para questões comuns sobre o Evolution GO.
Gateway de API WhatsApp construído em Go que fornece interface RESTful para comunicação com o protocolo WhatsApp Web. Permite automação de mensagens, gerenciamento multi-instância e integração via APIs padronizadas.
- Evolution GO: Implementação em Go, foco em performance e baixo consumo de recursos
- Evolution API V2: Implementação em Node.js/TypeScript, maior maturidade e conjunto de features
Ambos utilizam a biblioteca whatsmeow para conexão com WhatsApp.
Sim. É possível gerenciar quantas instâncias forem necessárias, cada uma representando uma conta WhatsApp independente com sessão isolada.
PostgreSQL é fortemente recomendado para produção devido a:
- Performance superior em ambientes multiusuário
- Suporte a conexões concorrentes
- Recursos empresariais (replicação, backup incremental)
SQLite é adequado apenas para desenvolvimento/testes.
# UUID v4 (recomendado)
uuidgen
# OpenSSL
openssl rand -hex 32
# Python
python3 -c "import uuid; print(uuid.uuid4())"- Criar instância:
POST /instance/create - Iniciar conexão:
POST /instance/connect - Obter QR Code:
GET /instance/qr?instanceName=NOME - Escanear QR Code no WhatsApp (Aparelhos Conectados)
- Aguardar estabelecimento da conexão
Aproximadamente 40 segundos. Após expiração, novo QR Code é gerado automaticamente até atingir QRCODE_MAX_COUNT (padrão: 5 tentativas).
Realizar requisições individuais para cada destinatário. Para volume alto:
- Implementar fila de envio
- Adicionar delay entre requisições (2-5 segundos recomendado)
- Utilizar worker pool para paralelização controlada
O WhatsApp não divulga limites oficiais, mas observa-se:
- Aproximadamente 1000 mensagens/dia para números não salvos
- Risco de bloqueio com padrões identificados como spam
- Recomendações:
- Começar com volume baixo (~100/dia)
- Escalar gradualmente
- Personalizar mensagens
- Evitar conteúdo idêntico em massa
- Respeitar opt-out de usuários
Configure webhook ao criar instância ou via atualização:
{
"instanceName": "nome-instancia",
"webhook": "https://seu-servidor.com/webhook"
}Eventos serão enviados via POST HTTP para o endpoint configurado.
Diagnóstico:
docker-compose logs -f evolution-goSoluções:
- Verificar conectividade com banco de dados
- Deletar e recriar instância
- Verificar logs para erros específicos
Verificações:
- Status da conexão:
GET /instance/status?instanceName=NOME - Formato do número: DDI + DDD + número (ex:
5511999999999) - Validação do destinatário:
CHECK_USER_EXISTS=true
Causas comuns:
- WhatsApp Web ativo em outro dispositivo
- Bloqueio preventivo do WhatsApp
- Instabilidade de rede
- Versão do protocolo desatualizada
Resolução: Reconectar via POST /instance/reconnect
Verificações:
- URL acessível publicamente (não localhost)
- Endpoint retorna status 200
- Firewall/proxy não bloqueando
- Logs:
docker-compose logs -f evolution-go | grep webhook
Estimativas baseadas em uso típico:
| RAM | CPU | Instâncias Estimadas |
|---|---|---|
| 1GB | 1 core | 5-10 |
| 2GB | 2 cores | 20-30 |
| 4GB | 4 cores | 50-100 |
| 8GB | 8 cores | 200+ |
Fatores de impacto:
- Volume de mensagens
- Uso de webhook vs filas
DATABASE_SAVE_MESSAGEShabilitado- Processamento de mídia
Configuração:
# Desabilitar salvamento de mensagens
DATABASE_SAVE_MESSAGES=false
# Ignorar eventos desnecessários
EVENT_IGNORE_STATUS=true
EVENT_IGNORE_GROUP=false # conforme necessidade
# Usar PostgreSQL
POSTGRES_AUTH_DB=postgresql://...
POSTGRES_USERS_DB=postgresql://...Infraestrutura:
- Connection pooling adequado
- Índices de banco otimizados
- Escalabilidade horizontal (múltiplos servidores)
- Load balancer para distribuição
- Não versionar no controle de código
- Utilizar variáveis de ambiente
- Rotação periódica (recomendado: 90 dias)
- HTTPS obrigatório em produção
- Rate limiting por chave
Configurar DATABASE_SAVE_MESSAGES=false se histórico não for necessário:
- Reduz uso de storage
- Melhora privacidade
- Aumenta performance
# Backup com criptografia
docker exec postgres pg_dumpall -U postgres | \
gzip | \
gpg --encrypt --recipient seu@email.com \
> backup-$(date +%Y%m%d).sql.gz.gpg
# Restauração
gpg --decrypt backup-20250111.sql.gz.gpg | \
gunzip | \
docker exec -i postgres psql -U postgresWhatsApp limita envios para números não salvos na agenda. Boas práticas:
- Priorizar números salvos
- Aguardar resposta antes de enviar mais mensagens
- Evitar volume alto para números desconhecidos
Práticas recomendadas:
- Não enviar spam
- Respeitar opt-out de usuários
- Usar contas WhatsApp Business verificadas
- Adicionar delay entre mensagens
- Personalizar conteúdo
Em caso de bloqueio:
- Utilizar número diferente
- Considerar WhatsApp Business API oficial
- Revisar práticas de envio
Consulte Guia de Contribuição para processo de contribuição ao projeto.
Utilize Issues no GitLab incluindo:
- Versão do Evolution GO
- Ambiente (Docker/local, SO)
- Steps to reproduce
- Logs relevantes
- Comportamento esperado vs observado
Não encontrou resposta? Abra uma issue com sua questão.
Documentação Evolution GO v1.0