A powerful Chrome extension for sending WhatsApp messages directly from your browser with advanced features like templates, bulk messaging, CSV integration, and smart delays.
Note: This project is built on top of whatsapp-web-interaction-suite. Special thanks to the original team for their excellent foundation.
![]() |
![]() |
![]() |
![]() |
| Main Interface | Template Management | CSV Upload | History |
- Text Messages: Send simple text messages
- URL Media: Send images, videos, or other media via URL
- File Upload: Send local files (images, videos, documents, etc.)
- Single Contact: Send to individual recipients
- Multiple Contacts: Send to multiple recipients at once
- Spreadsheet Upload: Import contacts from CSV or Excel files with validation
- Template Management: Create, edit, and delete message templates
- Variable Support: Use variables like {{name}}, {{number}}, {{time}}
- Spreadsheet Column Variables: Use any column from your spreadsheet as a variable
- Message History: Track all sent messages
- Export/Import: Export history as CSV or JSON
- Filtering: Filter history by type, status, and search terms
- Smart Delays: Add random time gaps between messages (5-30 seconds by default, configurable up to 600 seconds)
- Batch Pausing: Automatically pause after sending a batch of messages
- Sleep Prevention: Keep your device awake during long campaigns
- Install from Chrome Web Store: (Link to be added)
- Open WhatsApp Web: Navigate to web.whatsapp.com and log in
- Open Extension: Click the extension icon in your browser toolbar
- Open the extension popup
- In the "Text" tab, enter the recipient's number with country code (e.g., 918879331633)
- Type your message
- Click "Send Message"
- Select the "URL" or "File" tab
- Enter the recipient's number
- Provide the media URL or upload a file
- Add an optional caption
- Click "Send URL" or "Send File"
- Go to the "Templates" tab
- Create templates with variables like {{name}}, {{number}}, {{time}}
- When composing a message, select a template from the dropdown
- Variables will be replaced with actual values when sending
- Select "Multiple" in any message tab
- Choose "File Upload" as the recipients method
- Upload your CSV or Excel file (must contain a column for phone numbers)
- Preview the data and confirm valid contacts
- Compose your message using column names as variables: {{columnname}}
- Configure delay settings in the Settings tab
- Send your message
Your CSV or Excel file should include at least one column for phone numbers (labeled as number, phone, mobile, or contact). Additional columns can be used as variables. All column headers are processed case-insensitively.
Example:
Number,Name,COMPANY,product
918879331633,John Doe,ABC Corp,Premium Plan
917012345678,Jane Smith,XYZ Inc,Basic PlanIn your message, you can use {{name}}, {{company}}, and {{product}} as variables. Case doesn't matter, so {{NAME}}, {{Company}}, and {{PrOdUcT}} will all work.
For developers looking to integrate with this extension programmatically:
// Send text message
try {
const response = await window.whatsappWebSuite.sendTextMessage(mobile, message);
console.log('Message sent successfully:', response);
} catch (error) {
console.error('Failed to send message:', error);
}
// Send media from URL
try {
const response = await window.whatsappWebSuite.sendUrlMediaMessage(mobile, url, caption);
console.log('Media sent successfully:', response);
} catch (error) {
console.error('Failed to send media:', error);
}
// Send file (Base64)
try {
const response = await window.whatsappWebSuite.sendBase64Message(
mobile, // Mobile number with country code
base64Data, // Raw base64 data
mimeType, // e.g., 'image/jpeg', 'video/mp4'
filename, // Display filename
caption // Optional caption
);
console.log('File sent successfully:', response);
} catch (error) {
console.error('Failed to send file:', error);
}- Add Delays: Use the random delay feature to avoid being flagged as spam
- Batch Processing: For large campaigns, use the batch pause feature
- Test First: Always test your templates and CSV files with a small group
- Personalize: Use variables to create personalized messages
- Respect Privacy: Only send messages to contacts who have agreed to receive them
- WhatsApp Web Required: Keep WhatsApp Web open and logged in
- Number Format: Always include the country code (e.g., 918879331633 for India)
- Media Support: Supports images, videos, documents, and audio files
- File Size Limit: Maximum file size is 16MB
- File Validation: The extension validates phone numbers in your spreadsheets
- Built on top of whatsapp-web-interaction-suite
- Uses whatsapp-web.js for WhatsApp Web interaction
This project is licensed under the MIT License - see the LICENSE file for details.
This extension is compatible with both Chrome and Firefox browsers. To build the Firefox version:
-
Use the provided Makefile to build both versions:
make all
-
For just the Firefox version:
make build-firefox zip-firefox
-
The Firefox extension will be available in
dist/whats-messenger-firefox-{version}.zip
- Uses Manifest v2 instead of v3 (Firefox's full support for Manifest v3 is in progress)
- Includes browser-specific API adaptations for Firefox compatibility
- Contains a polyfill to handle Chrome/Firefox API differences
- Has a unique extension ID in the
manifest.firefox.jsonfile
- Go to
about:debuggingin Firefox - Click "This Firefox" in the left sidebar
- Click "Load Temporary Add-on..." and select the
manifest.jsonfile from the Firefox build folder - For permanent installation, submit the extension to Firefox Add-ons



