In the digital amphitheater where attention spans flicker like candle flames, WhatsApp Mass Messaging Engine emerges not as a toolβbut as an architect of engagement. This repository is your conductor's baton for orchestrating meaningful, personalized, and scalable conversations across the WhatsApp ecosystem. Whether you're a community manager nurturing a tribe of 10,000 or a startup founder delivering product updates with surgical precision, this engine transforms bulk messaging from a shouting match into a whispered invitation.
- Why This Exists
- Core Philosophy
- System Architecture
- Key Features (The Non-Negotiables)
- Compatibility Matrix
- Configuration Profiles
- Console Invocation
- API Integration
- Multilingual Support
- Responsive UI & 24/7 Support
- Disclaimer & Ethical Compass
- License
Every day, 23 billion messages traverse WhatsApp's neural pathways. Yet most businesses treat mass communication like a firehoseβindiscriminate, disruptive, forgettable.
The problem isn't volume; it's vacancy.
Traditional bulk messaging tools lack context. They send the same payload to a CEO at midnight and a college student at noon. This engine introduces temporal intelligenceβunderstanding when a recipient is receptive, how they prefer to consume information, and what language their digital soul speaks.
We built this for:
- Community leaders managing diaspora groups across 5 continents
- NGOs delivering relief updates to disconnected rural populations
- SaaS companies onboarding users across 12 timezones
- Event organizers sending reminders with zero manual intervention
Traditional messaging: "Send now, hope later"
Our approach: "Understand first, engage second"
This isn't a spam cannon. It's a communication telescopeβmagnifying your reach while preserving the intimacy of one-to-one dialogue. We believe:
- Consent is currency (opt-in verification is mandatory)
- Tempo matters (delay between messages avoids algorithmic friction)
- Personality survives scale (custom templates retain your brand's voice)
graph TB
subgraph "Input Layer"
A[Configuration Profile] --> B[Message Queue]
C[Contact List .csv] --> B
end
subgraph "Control Layer"
B --> D[Orchestration Engine]
D --> E[Temporal Scheduler]
D --> F[Language Router]
D --> G[Rate Limiter]
end
subgraph "Execution Layer"
E --> H[PyAutoGUI WebDriver]
F --> H
G --> H
H --> I[WhatsApp Web Session]
end
subgraph "Feedback Layer"
I --> J[Delivery Scraper]
J --> K[Log Analyzer]
K --> L[Smart Retry Queue]
end
subgraph "API Integration"
M[OpenAI API] --> F
N[Claude API] --> F
end
style A fill:#2d3436,color:#fff
style I fill:#25D366,color:#fff
style M fill:#10a37f,color:#fff
style N fill:#7c3aed,color:#fff
The architecture follows a modular monolith patternβeach component is independently replaceable. The Orchestration Engine acts as the maestro, ensuring no message plays out of tune.
Messages are not sent blindly. The engine analyzes:
- Recipient timezone (auto-detected from phone prefix)
- Historical engagement patterns (when did they last respond?)
- Content sensitivity (compliance hours: 9 AM β 8 PM only)
Using OpenAI API and Claude API, each message is:
- Translated into the recipient's native language (30+ languages supported)
- Culturally adapted (emojis, formality levels, date formats)
- Tone-optimized (emotional context detection)
A web-based control panel that:
- Shows real-time delivery heatmaps
- Allows drag-and-drop template editing
- Provides pause/resume/queue management
- Works on mobile, tablet, and desktop (PWA-ready)
- Randomized delays between messages (2-7 seconds)
- Session rotation (re-links every 100 messages)
- Contact deduplication & validation
- Automatic opt-out keyword detection
- Delivery rate by country, device, time-slot
- Open rate estimation (read receipts scraping)
- Undelivered contact export
- Engagement scoring (1-10 per contact)
| Platform | Operating System | WhatsApp Version | Emoji Rendering | Status |
|---|---|---|---|---|
| π₯οΈ | Windows 10/11 | 2.24.0+ | β Full | Stable |
| π | macOS Ventura+ | 2.24.0+ | β Native | Stable |
| π§ | Ubuntu 22.04+ | 2.24.0+ | Beta | |
| π | iOS 17+ (Simulator) | 2.24.0+ | β Full | Experimental |
| π€ | Android 13+ (Emulator) | 2.24.0+ | β Full | Testing |
*Linux users may need to install
noto-emojipackage for full emoji support.
Create a .profile.yaml file to define your campaign personality:
# Example: "The Community Curator"
campaign_name: "Monthly Product Digest"
language: "multilingual" # auto-detect from recipient prefix
tone: "professional-warm"
temporal_window:
start_hour: 9
end_hour: 20
timezone_fallback: "America/New_York"
rate_limiter:
messages_per_session: 80
cooldown_seconds: 15
max_daily_per_contact: 1
opt_out_phrases:
- "STOP"
- "UNSUBSCRIBE"
- "NO MORE"
template:
header: "π {{greeting}}, {{name}}!"
body: |
We noticed you've been using {{product}} for {{days}} days.
Here's something we crafted just for you...
footer: "Reply HELP for assistance | Reply STOP to opt out"
ai_translation:
provider: "openai" # or "claude"
model: "gpt-4-0125-preview"
preserve_emojis: trueExecute your campaign from any terminal:
# Basic single-campaign run
messaging-engine run --profile community-digest.yaml --contacts contacts_march.csv
# Headless mode (no UI) for servers
messaging-engine daemon --config production.yml --log-level info
# Dry-run test (validates everything without sending)
messaging-engine dry-run --profile test-profile.yaml --sample-size 5
# Multi-campaign orchestration
messaging-engine orchestrate --campaigns campaigns/*.yaml --parallel 3Expected output:
[2026-03-14 10:23:01] β³ Loading contacts: 1,247 validated
[2026-03-14 10:23:05] π Language detection: 8 locales found
[2026-03-14 10:23:12] π€ Launching session 1/15 (WebDriver ready)
[2026-03-14 10:24:47] β
80 messages delivered (session 1 complete)
[2026-03-14 10:31:03] π Current delivery rate: 97.3%
The engine supports dual-AI orchestration for maximum linguistic flexibility:
| Capability | OpenAI | Claude |
|---|---|---|
| Translation Quality | β β β β β | β β β β β |
| Tone Preservation | β β β ββ | β β β β β |
| Cultural Nuance | β β β β β | β β β β β |
| Speed (per request) | ~800ms | ~1.2s |
Switching providers on-the-fly:
# In your profile, define fallback rules
ai_translation:
primary: "claude"
fallback: "openai"
threshold: 0.85 # If confidence < 85%, swap providersBeyond simple translation, this engine performs semantic relocation:
- Arabic: RTL text reflow with proper diacritic handling
- Japanese: Honorific (ζ¬θͺ) level auto-adjustment
- Spanish: TΓΊ vs. Usted formality detection
- Hindi: Script mixing (Devanagari + Latin for technical terms)
- French: Gender-neutral alternatives (iel/il/elle)
Supported locales: en, es, fr, de, it, pt, ru, zh, ja, ko, ar, hi, bn, tr, nl, pl, sv, da, fi, nb, cs, ro, hu, el, he, th, vi, tl, id, ms
The dashboard is built with SvelteKit + Tailwind CSS, featuring:
- Dark/Light mode (matches system preference)
- Touch-optimized for tablet operation
- Keyboard shortcuts for power users (
Ctrl+Enterto launch campaign) - Live progress bar with cancellable operations
Support model: Integrated in-app help chat (not AIβreal people). Request help via the dashboard's /support endpoint:
- β Ticket creation with log attachment
- β Scheduled callbacks within 15 minutes
- β Multi-timezone coverage (3 teams: APAC, EMEA, AMER)
This tool is designed for legitimate business communication only. By using this repository, you agree to:
- Obtain explicit opt-in consent from all recipients (double opt-in recommended)
- Comply with local laws including but not limited to:
- GDPR (Europe)
- CAN-SPAM Act (USA)
- PDPA (Singapore)
- LGPD (Brazil)
- IT Act (India)
- Never send:
- Malicious content (phishing, malware links)
- Unauthorized promotional material
- Messages that could cause harm or distress
- Maintain clear opt-out mechanisms in every communication
- Respect rate limitsβaggressive messaging violates WhatsApp's Terms of Service
β οΈ Warning: Misuse of this tool may result in permanent WhatsApp account bans, legal liability, and reputational damage. The authors assume no responsibility for improper use.
This project is released under the MIT License. You are free to:
- β Use commercially
- β Modify and distribute
- β Private use
- β Hold authors liable
- β Use the authors' names for endorsement
View Full License | Copyright Β© 2026
We didn't build a message spammerβwe built a connection amplifier. In a world drowning in notifications, be the signal, not the noise. Use this responsibly, and your community will thank you.
Start your journey: Download the latest release above, or explore the /examples directory for ready-to-use campaign templates.
One message, perfectly timed. A thousand conversations, authentically scaled.