Sistema completo de gerenciamento de WhatsApp Business API desenvolvido em Laravel.
O WhatsApp Manager é uma aplicação Laravel completa para gerenciar interações do WhatsApp Business API, incluindo:
- Gerenciamento de fluxos interativos
- Sistema de mensagens
- Gestão de contatos
- Analytics e relatórios
- Templates de mensagens
- Configurações da API
- Fluxos Interativos: Crie e gerencie fluxos do WhatsApp com interface visual
- Mensagens: Sistema completo de conversas e mensagens
- Contatos: Gestão completa de contatos com tags e campos personalizados
- Analytics: Dashboards e relatórios detalhados
- Templates: Biblioteca de templates reutilizáveis
- Webhooks: Integração completa com webhooks do WhatsApp
- Arquitetura MVC com Laravel
- Interface responsiva com Tailwind CSS
- Gráficos interativos com Chart.js
- Sistema de autenticação completo
- API RESTful documentada
- Migrations e seeders completos
- PHP >= 8.1
- Composer
- MySQL >= 5.7 ou PostgreSQL >= 10
- Node.js >= 16
- NPM ou Yarn
- WhatsApp Business API Account
git clone https://github.com/seu-usuario/whatsapp-manager.git
cd whatsapp-managercomposer installnpm installcp .env.example .env
php artisan key:generateEdite o arquivo .env com suas credenciais:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=whatsapp_manager
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senhaWHATSAPP_PHONE_NUMBER_ID=seu_phone_number_id
WHATSAPP_BUSINESS_ACCOUNT_ID=seu_business_account_id
WHATSAPP_ACCESS_TOKEN=seu_access_token
WHATSAPP_API_VERSION=v17.0
WHATSAPP_WEBHOOK_VERIFY_TOKEN=seu_webhook_verify_tokenphp artisan migratephp artisan db:seednpm run buildphp artisan servewhatsapp_flows- Fluxos interativoswhatsapp_flow_responses- Respostas dos fluxoswhatsapp_templates- Templates de mensagenswhatsapp_contacts- Contatoswhatsapp_conversations- Conversaswhatsapp_messages- Mensagenswhatsapp_media- Arquivos de mídiawhatsapp_webhooks- Logs de webhookswhatsapp_analytics- Dados de analyticswhatsapp_settings- Configurações
app/Models/
├── WhatsAppFlow.php
├── WhatsAppFlowResponse.php
├── WhatsAppContact.php
├── WhatsAppConversation.php
├── WhatsAppMessage.php
├── WhatsAppMedia.php
└── WhatsAppAnalytic.phpapp/Http/Controllers/
├── DashboardController.php
├── FlowController.php
├── TemplateController.php
├── MessageController.php
├── ContactController.php
├── AnalyticsController.php
└── SettingsController.phpresources/views/
├── layouts/
│ ├── app.blade.php
│ ├── guest.blade.php
│ ├── navigation.blade.php
│ └── whatsapp.blade.php
├── dashboard/
│ └── index.blade.php
├── flows/
│ ├── index.blade.php
│ └── create.blade.php
├── templates/
│ └── index.blade.php
├── messages/
│ └── index.blade.php
├── contacts/
│ └── index.blade.php
├── analytics/
│ └── index.blade.php
└── settings/
└── index.blade.php
// Rotas principais do WhatsApp Manager
Route::prefix('whatsapp')->name('whatsapp.')->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
// Fluxos
Route::resource('flows', FlowController::class);
Route::post('flows/{flow}/publish', [FlowController::class, 'publish'])->name('flows.publish');
// Templates
Route::resource('templates', TemplateController::class);
// Mensagens
Route::get('messages', [MessageController::class, 'index'])->name('messages.index');
Route::get('messages/{conversation}', [MessageController::class, 'conversation'])->name('messages.conversation');
Route::post('messages/send', [MessageController::class, 'send'])->name('messages.send');
// Contatos
Route::resource('contacts', ContactController::class);
Route::post('contacts/{contact}/block', [ContactController::class, 'block'])->name('contacts.block');
Route::post('contacts/{contact}/unblock', [ContactController::class, 'unblock'])->name('contacts.unblock');
// Analytics
Route::prefix('analytics')->name('analytics.')->group(function () {
Route::get('/', [AnalyticsController::class, 'index'])->name('index');
Route::get('/messages', [AnalyticsController::class, 'messages'])->name('messages');
Route::get('/flows', [AnalyticsController::class, 'flows'])->name('flows');
Route::get('/contacts', [AnalyticsController::class, 'contacts'])->name('contacts');
});
// Configurações
Route::get('settings', [SettingsController::class, 'index'])->name('settings.index');
Route::post('settings/whatsapp', [SettingsController::class, 'updateWhatsApp'])->name('settings.whatsapp');
Route::post('settings/webhooks', [SettingsController::class, 'updateWebhooks'])->name('settings.webhooks');
Route::post('settings/test-connection', [SettingsController::class, 'testConnection'])->name('settings.test-connection');
});- Acesse o Meta for Developers
- Crie um app business
- Configure o WhatsApp Business API
- Obtenha suas credenciais:
- Phone Number ID
- Business Account ID
- Access Token
- Configure o Webhook URL no Meta:
https://seu-dominio.com/api/whatsapp/webhook
No painel do Meta, configure os seguintes eventos:
- messages
- message_status
- message_template_status_update
Acesse /dashboard para ver o painel principal com métricas e atividades recentes.
- Acesse Fluxos no menu lateral
- Clique em Criar Novo Fluxo
- Escolha um template ou crie do zero
- Configure as telas e campos
- Publique o fluxo
- Acesse Mensagens para ver conversas
- Clique em uma conversa para ver detalhes
- Envie mensagens diretamente pela interface
- Gerencie contatos em Contatos
- Adicione tags e campos personalizados
- Bloqueie ou desbloqueie contatos
Visualize métricas detalhadas em Analytics:
- Mensagens por período
- Taxa de engajamento
- Performance dos fluxos
- Crescimento de contatos
O módulo principal do WhatsApp está em:
packages/whatsapp-automation/
├── src/
│ ├── WhatsApp/
│ │ ├── Client.php
│ │ ├── Flow/
│ │ ├── Message/
│ │ └── Template/
│ ├── Http/
│ └── Laravel/
├── config/
├── database/
└── routes/
- Fork o projeto
- Crie sua feature branch (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- Seu Nome - @seu_usuario
- Laravel Framework
- Tailwind CSS
- Alpine.js
- Chart.js
- Meta WhatsApp Business API