Bulk Sender wa.me Mode
RJ
Opened
0
WA links opened
Remaining
0
In queue
Skipped
0
Manually skipped
Total
0
Contacts loaded
Contacts
Message
Media
Send Queue
Logs
Add Contacts

For bulk import โ€” download template, fill numbers & names, then upload.

Contact List 0 contacts
#NumberName
0 selected
Compose Message
Supports WhatsApp formatting: *bold*  _italic_  ~strike~  `mono`
{{name}} {{phone}} {{city}} {{date}} {{amount}}
Live Preview
Message preview appears here.
now โœ“โœ“
Attach Media
How media works with wa.me: Paste a public URL of your image/PDF hosted on your website (e.g. https://deinrimapp.in/wa-bulk/image.jpg). Add the URL inside your message text. WhatsApp will show a preview link. For direct file attachment, use WhatsApp Business API.
Image
PDF / Doc
Video
Audio
Send Queue โ€” wa.me Links
Each button opens WhatsApp with the pre-filled personalised message. Click "Open & Mark Sent" for each contact. WhatsApp Web or App opens โ€” just hit Send.
Ready to send 0%
Session Log
โ€” Session log will appear here โ€”
WhatsApp Message Formatter
Template Library
Sales
Festival Offer
Hello {{name}}! ๐ŸŽ‰ Exclusive festival discount of 30% for you. Valid till Sunday!
Intro
Business Introduction
Hi {{name}} ๐Ÿ‘‹ โ€” Deinrim Solutions intro message
Reminder
Payment Reminder
Dear {{name}}, your payment of โ‚น{{amount}} is due on {{date}}.
Session History
NumberNameStatusTime
No history yet. Start sending to see results here.
PHP + MySQL Integration Guide
Your site: deinrimapp.in/wa-bulk/ โ€” PHP + MySQL on Hostinger Shared Hosting. Here's exactly what to create.
Step 1 โ€” MySQL Table
CREATE TABLE wa_contacts (
  id INT AUTO_INCREMENT PRIMARY KEY,
  number VARCHAR(20) NOT NULL,
  name VARCHAR(100),
  city VARCHAR(100),
  status ENUM('pending','sent','skipped') DEFAULT 'pending',
  sent_at DATETIME,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE wa_campaigns (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(200),
  message TEXT,
  total INT DEFAULT 0,
  sent INT DEFAULT 0,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Step 2 โ€” PHP API file (api.php)
<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');

$host='localhost'; $db='your_db'; $user='your_user'; $pass='your_pass';
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);

$action = $_POST['action'] ?? $_GET['action'] ?? '';

if($action === 'save_contacts'){
  $contacts = json_decode($_POST['contacts'], true);
  $stmt = $pdo->prepare("INSERT INTO wa_contacts (number,name,city) VALUES (?,?,?)");
  foreach($contacts as $c)
    $stmt->execute([$c['number'],$c['name']??'',$c['city']??'']);
  echo json_encode(['ok'=>true,'saved'=>count($contacts)]);
}

if($action === 'mark_sent'){
  $id = intval($_POST['id']);
  $pdo->prepare("UPDATE wa_contacts SET status='sent',sent_at=NOW() WHERE id=?")->execute([$id]);
  echo json_encode(['ok'=>true]);
}

if($action === 'get_contacts'){
  $rows = $pdo->query("SELECT * FROM wa_contacts ORDER BY created_at DESC")->fetchAll(PDO::FETCH_ASSOC);
  echo json_encode($rows);
}

if($action === 'export_csv'){
  header('Content-Type: text/csv');
  header('Content-Disposition: attachment; filename="wa_contacts.csv"');
  $rows = $pdo->query("SELECT number,name,city,status,sent_at FROM wa_contacts")->fetchAll();
  echo "number,name,city,status,sent_at\n";
  foreach($rows as $r) echo implode(',',$r)."\n";
  exit;
}
?>
Step 3 โ€” Connect this UI to your PHP
// Set your API URL below in this tool:
const API = 'https://deinrimapp.in/wa-bulk/api.php';

// Save contacts to MySQL:
fetch(API, { method:'POST', body: new URLSearchParams({
  action: 'save_contacts',
  contacts: JSON.stringify(contacts)
})});

// Mark as sent:
fetch(API, { method:'POST', body: new URLSearchParams({
  action: 'mark_sent', id: contact.id
})});
Live API Connection Test