Sistema web completo para envio automatizado de mensagens em massa via WhatsApp, desenvolvido com Angular 19 e integração com N8N.
O WhatsApp Sender é uma aplicação robusta que permite o envio de mensagens personalizadas em massa através do WhatsApp. Com uma interface moderna e intuitiva, o sistema facilita a importação de contatos via planilhas XLS, gerenciamento de modelos de mensagens e acompanhamento detalhado dos envios através de relatórios completos.
Painel principal com métricas em tempo real, cards de ações rápidas e atividade recente
Interface de upload de arquivos XLS com pré-visualização e validação de contatos
Seleção de modelos de mensagem com pré-visualização do conteúdo
Monitoramento de conexões WhatsApp com status online/offline em tempo real
Acompanhamento completo de envios com métricas de sucesso e erro
- 📊 Dashboard Interativo: Visão geral com métricas de contatos, envios, taxa de sucesso e status das instâncias
- 📥 Importação de Contatos: Upload de arquivos XLS/XLSX com suporte a múltiplos telefones por contato
- 💬 Modelos de Mensagem: Sistema de templates personalizáveis para diferentes tipos de comunicação
- 🚀 Envio em Massa: Processamento automatizado com feedback em tempo real
- 📱 Gerenciamento de Instâncias: Monitoramento de conexões WhatsApp com status online/offline
- 📈 Relatórios Detalhados: Acompanhamento completo com detalhes de sucesso e erros por envio
- 🎨 Interface Moderna: Design responsivo e amigável com Material Icons
- Angular 19 - Framework principal
- TypeScript 5.9 - Linguagem de programação
- RxJS 7.8 - Programação reativa
- Angular Signals - Gerenciamento de estado
- SCSS - Estilização avançada
- Material Icons - Biblioteca de ícones
- XLSX (0.18.5) - Processamento de planilhas Excel
- Angular Material (20.2.14) - Componentes UI
- Angular CDK (20.2.14) - Utilitários de desenvolvimento
- N8N - Automação e processamento de envios
- API RESTful - Comunicação com backend
- Node.js (versão 18 ou superior)
- npm ou yarn
- Angular CLI (
npm install -g @angular/cli) - Backend/N8N configurado e rodando
git clone https://github.com/seu-usuario/whatsapp-sender.git
cd whatsapp-sendernpm installCrie o arquivo src/environments/environment.ts:
export const environment = {
production: false,
apiUrl: 'https://sua-url-do-backend.com/webhook/message-api'
};Para produção, configure src/environments/environment.prod.ts:
export const environment = {
production: true,
apiUrl: 'https://sua-url-de-producao.com/webhook/message-api'
};npm startA aplicação estará disponível em http://localhost:4200
npm run buildOs arquivos de produção serão gerados no diretório dist/
src/
├── app/
│ ├── core/
│ │ ├── guards/ # Guards de roteamento
│ │ └── services/ # Serviços da aplicação
│ │ ├── arquivo-upload.service.ts
│ │ ├── contatos.ts
│ │ ├── instancias.ts
│ │ ├── mensagens.ts
│ │ └── relatorios.ts
│ ├── layout/
│ │ ├── main-layout/ # Layout principal
│ │ └── sidebar/ # Barra lateral de navegação
│ ├── pages/
│ │ ├── dashboard/ # Página inicial
│ │ ├── importar-contatos/
│ │ ├── enviar-mensagens/
│ │ ├── confirmar-envio/
│ │ ├── instancias/
│ │ └── relatorios/
│ ├── app.config.ts # Configurações do app
│ └── app.ts # Componente raiz
├── environments/ # Configurações de ambiente
└── styles.scss # Estilos globais
O arquivo XLS deve conter as seguintes colunas na ordem:
| Coluna | Descrição | Obrigatório |
|---|---|---|
| Nome | Nome do contato | ✅ Sim |
| Telefone Primário | Número principal (com DDD) | ✅ Sim |
| Telefone Secundário | Número alternativo | ❌ Não |
| Telefone Terciário | Número adicional | ❌ Não |
Exemplo:
Nome | Telefone Primário | Telefone Secundário | Telefone Terciário
João Silva | 21987654321 | 21912345678 |
Maria Santos | 11987654321 | |
- Visão geral de métricas
- Contatos importados
- Taxa de sucesso de envios
- Status de instâncias
- Atalhos rápidos para ações principais
- Upload de arquivos XLS/XLSX
- Pré-visualização dos contatos
- Validação de dados
- Paginação de contatos
- Seleção de modelo de mensagem
- Pré-visualização do conteúdo
- Confirmação antes do envio
- Indicador de progresso
- Listagem de conexões WhatsApp
- Status online/offline em tempo real
- Informações de perfil
- Data de criação
- Listagem de todos os envios
- Detalhamento por envio
- Status (Processando, Concluído, Com Erros, Falha)
- Contadores de sucesso e erro
- Polling automático a cada 10 segundos
Contribuições são bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
César Augusto
- Portfolio: portfolio.cesaravb.com.br
- GitHub: @cesaravb