Aplikasi web untuk mengirim pesan broadcast WhatsApp secara massal dengan dukungan personalisasi menggunakan data Excel.
- Koneksi WhatsApp Web: Integrasi langsung dengan WhatsApp Web menggunakan QR Code
- Upload Excel: Import kontak dari file Excel (.xlsx, .xls, .csv)
- Personalisasi Pesan: Gunakan variabel dari kolom Excel untuk personalisasi
- Broadcast Massal: Kirim pesan ke ribuan kontak dengan delay otomatis
- Riwayat Lengkap: Pantau status dan hasil setiap kampanye broadcast
- Dashboard Real-time: Monitor statistik dan status koneksi WhatsApp
- Google Authentication: Login aman menggunakan akun Google
- Frontend: Next.js 14, React 18, TypeScript, Tailwind CSS
- Backend: Next.js API Routes, Node.js
- WhatsApp: whatsapp-web.js
- Authentication: NextAuth.js dengan Google OAuth
- File Processing: ExcelJS, XLSX
- Storage: File-based storage (JSON files)
- UI Components: Custom components dengan Tailwind CSS
- Node.js 18+
- NPM atau Yarn
- Browser modern (Chrome, Firefox, Safari, Edge)
- Koneksi internet stabil
- WhatsApp di smartphone untuk scanning QR code
-
Clone repository
git clone <repository-url> cd whatsapp-blast
-
Install dependencies
npm install
-
Setup environment variables
Buat file
.env.localdan isi dengan:NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-secret-key-here GOOGLE_CLIENT_ID=your-google-client-id GOOGLE_CLIENT_SECRET=your-google-client-secret
-
Jalankan aplikasi
npm run dev
-
Buka browser
Akses
http://localhost:3000
- Buka Google Cloud Console
- Buat project baru atau pilih project yang ada
- Aktifkan Google+ API
- Buat OAuth 2.0 credentials
- Tambahkan authorized redirect URIs:
http://localhost:3000/api/auth/callback/google(development)https://yourdomain.com/api/auth/callback/google(production)
- Copy Client ID dan Client Secret ke
.env.local
- Buka aplikasi di browser
- Klik "Login dengan Google"
- Authorize aplikasi
- Di dashboard, klik "Hubungkan WhatsApp Sekarang"
- Scan QR code dengan WhatsApp di smartphone
- Tunggu hingga status berubah menjadi "Terhubung"
Format file Excel yang didukung:
| nama | nomor | perusahaan | kota |
|---------------|--------------|------------|---------|
| Budi Santoso | 628123456789 | PT ABC | Jakarta |
| Siti Aminah | 628987654321 | CV XYZ | Bandung |
- Klik "Broadcast Baru"
- Upload file Excel
- Pilih kolom nomor telepon
- Tulis pesan dengan variabel (contoh:
Halo {nama}) - Review dan kirim
- Lihat progress real-time di halaman History
- Cek detail hasil broadcast
- Export laporan jika diperlukan
Gunakan kurung kurawal untuk variabel yang akan diganti otomatis:
Halo {nama},
Kami dari {perusahaan} ingin menawarkan produk terbaru untuk wilayah {kota}.
Hubungi kami untuk info lebih lanjut.
Terima kasih!
- Semua data disimpan lokal di server Anda
- Tidak ada data yang dikirim ke server eksternal
- Session WhatsApp tersimpan aman
- Authentication menggunakan Google OAuth
- File upload dibatasi ukuran dan tipe
whatsapp-blast/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── api/ # API Routes
│ │ ├── dashboard/ # Dashboard pages
│ │ └── page.tsx # Landing page
│ ├── components/ # React components
│ ├── lib/ # Utilities & services
│ │ ├── auth.ts # Authentication
│ │ └── whatsapp/ # WhatsApp client
│ └── types/ # TypeScript types
├── data/ # File storage
│ ├── excel/ # Uploaded Excel files
│ └── history/ # Broadcast history
├── .wwebjs_auth/ # WhatsApp sessions
└── public/ # Static assets
- Pastikan QR code di-scan dengan benar
- Coba refresh halaman dan scan ulang
- Pastikan WhatsApp di smartphone aktif dan terhubung internet
- Pastikan file format .xlsx, .xls, atau .csv
- Cek ukuran file tidak lebih dari 10MB
- Pastikan baris pertama adalah header kolom
- Cek koneksi WhatsApp masih aktif
- Pastikan nomor telepon dalam format internasional (628xxx)
- Cek apakah nomor terdaftar di WhatsApp
- Tunggu beberapa menit jika ada rate limiting
- Cek log error di console browser
- Restart aplikasi jika diperlukan
- Gunakan delay 30-60 detik antar pesan untuk menghindari blocking
- Batch upload maksimal 1000 kontak per broadcast
- Monitor penggunaan memory saat broadcast besar
- Restart aplikasi secara berkala untuk performa optimal
# Update dependencies
npm update
# Check for security vulnerabilities
npm audit
# Fix vulnerabilities
npm audit fixJika mengalami masalah:
- Cek troubleshooting guide di atas
- Lihat log error di browser console
- Restart aplikasi dan coba lagi
- Hubungi developer untuk bantuan lebih lanjut
MIT License - Lihat file LICENSE untuk detail lengkap.
- Gunakan aplikasi ini dengan bijak dan sesuai kebijakan WhatsApp
- Tidak bertanggung jawab atas pemblokiran akun WhatsApp
- Pastikan pesan yang dikirim tidak melanggar hukum atau spam
- Selalu minta izin sebelum mengirim pesan broadcast
Dibuat dengan ❤️ untuk memudahkan komunikasi bisnis Anda