Este guia aborda os conceitos fundamentais do Sistema Disparador, explicando a arquitetura, integração com Evolution API, sistema de filas, e principais funcionalidades.
Visão Geral da Arquitetura
O Sistema Disparador é construído sobre uma arquitetura robusta e escalável:Spring Boot
Backend Java com APIs REST
PostgreSQL
Banco de dados relacional
Redis
Sistema de filas e cache
Stack Tecnológica
Backend
- Java 17 com Spring Boot 3.x
- Spring Security para autenticação
- Spring Data JPA para persistência
- Spring Actuator para monitoramento
- Lombok para redução de boilerplate
- Jackson para serialização JSON
Frontend
- React 18 com TypeScript
- Vite como build tool
- Tailwind CSS para estilização
- React Query para gerenciamento de estado
- React Router para navegação
- React Hot Toast para notificações
Infraestrutura
- Docker para containerização
- Kubernetes ready
- GitHub Actions para CI/CD
- Evolution API para WhatsApp
Evolution API
A Evolution API é o motor de comunicação WhatsApp do sistema:Funcionalidades Principais
Multi-Instância
Suporte a múltiplas contas WhatsApp simultâneas
Tipos de Mensagem
Texto, imagem, vídeo, documento e enquetes
QR Code
Conexão fácil via QR Code no frontend
Webhooks
Callbacks para status de mensagens
Configuração por Empresa
Cada empresa pode configurar múltiplas instâncias Evolution:Sistema de Campanhas
Tipos de Campanha
- Imediata
- Agendada
- Com Mídia
- Enquete
Estados da Campanha
DRAFT
Rascunho salvado
SCHEDULED
Agendada para futuro
RUNNING
Enviando ativamente
PAUSED
Pausada temporariamente
COMPLETED
Finalizada com sucesso
CANCELLED
Cancelada permanentemente
Sistema de Filas
Arquitetura de Processamento
O sistema usa Redis como broker de mensagens para processar campanhas de forma assíncrona e escalável.
Benefícios
- Escalabilidade: Múltiplos workers podem processar em paralelo
- Resiliência: Falhas são tratadas com retry automático
- Performance: Processamento assíncrono não bloqueia API
- Controle: Intervalos configuráveis entre mensagens
Autenticação e Segurança
Sistema de Tokens
Tokens não expiram automaticamente. Revogue manualmente se necessário.
Níveis de Acesso
Usuário
Acesso às funcionalidades básicas
Admin Empresa
Configurações da empresa
Super Admin
Acesso total ao sistema
Contatos Bloqueados
Sistema de Bloqueio Inteligente
Contatos bloqueados são automaticamente excluídos de todas as campanhas futuras.
Funcionalidades
- Bloqueio Individual: Via API ou interface
- Importação em Massa: Até 10.000 números por vez
- Verificação Automática: Durante criação de campanhas
- Histórico: Registro de quem e quando bloqueou
Estrutura
Integração com Bancos de Dados
Fontes de Contatos Dinâmicas
O sistema permite integração com bancos externos para buscar contatos:PostgreSQL
Suporte nativo otimizado
MySQL
Compatibilidade total
SQL Server
Via JDBC driver
Oracle
Empresas enterprise
Query Builder
Sistema visual para construir queries sem escrever SQL:- Seleção de Tabelas: Interface intuitiva
- Filtros Visuais: Arraste e solte condições
- Preview: Visualize contatos antes de enviar
- Variáveis: Mapeie colunas para personalização
Monitoramento e Métricas
Dashboard em Tempo Real
O dashboard é atualizado manualmente sob demanda para economizar recursos.
Métricas Principais
- Campanhas Ativas: Em execução no momento
- Campanhas Agendadas: Programadas para futuro
- Total de Mensagens: Contador acumulativo
- Taxa de Sucesso: Percentual de entrega
Health Checks
Endpoints do Spring Actuator:- Status da aplicação
- Conexão com banco de dados
- Disponibilidade do Redis
- Memória e CPU
Rate Limiting
Proteção contra Sobrecarga
Limites são aplicados por empresa para garantir fair use.
Limites Padrão
- Requisições API: 100/minuto por empresa
- Criação de Campanhas: 10/hora
- Mensagens WhatsApp: Baseado na Evolution API
- Importação de Contatos: 10.000 por vez
Webhooks e Notificações
Sistema de Callbacks
Configure webhooks para receber eventos:Notificações WhatsApp
Receba avisos no WhatsApp:- Campanha concluída
- Erros críticos
- Instância desconectada
Boas Práticas
Intervalos
Use 10-30 segundos entre mensagens para evitar bloqueios
Horários
Respeite horário comercial (8h-20h)
Conteúdo
Evite spam e mensagens repetitivas
Testes
Sempre teste com poucos contatos primeiro
Próximos Passos
Quickstart
Comece em 5 minutos
API Reference
Documentação completa
Troubleshooting
Resolva problemas comuns
Automações por Segmentação
As Automações permitem disparos recorrentes baseados em filtros de banco (QueryTemplate) e mensagens personalizadas. Foram projetadas para isolamento total dos fluxos de campanhas.- Isolamento: filas Redis e workers dedicados (
automation_message_queue
,automation_scheduled_queue
,automation_retry_queue
). - Entidades:
Automation
,AutomationRun
,AutomationSentLog
(deduplicação). - Deduplicação:
- NEVER: sem filtro de históricos.
- ONCE: envia uma única vez por contato enquanto a automação existir.
- COOLDOWN_DAYS: evita reenvios a um contato dentro de uma janela de X dias.
- Limite por execução:
sendLimitPerRun
para restringir o volume por run. - Agendamento:
DAILY
,WEEKLY
,MONTHLY
,CRON
comtimeOfDay
etimezone
. - Mensagens: suporte a
TEXT
,MEDIA
,AUDIO
ePOLL
(enquetes). - Personalização: variáveis padrão e customizadas provenientes do resultado da query, através do mesmo mecanismo das campanhas.
- Teste unitário: endpoint específico para envio isolado, sem criação de run, útil para validação rápida da mensagem.