Standalone HTML: Data is stored in this browser only. WhatsApp sending, server scheduling and SQLite sync require your Node.js backend. Real WhatsApp sending uses the included Node.js backend; start the server before sending.
Total patients
0
Saved contacts
Campaigns
0
All campaign records
WhatsApp registered
0
Only API-verified numbers
Not on WhatsApp
0
Only API-verified numbers
Submitted / sent
0
Accepted by provider/API
Delivered
0
Delivery receipt confirmed
Read / seen
0
Read receipt confirmed
Failed / not delivered
0
Review error and retry safely
Pending status
0
Waiting for provider update
Unread delivered
0
Delivered, read not confirmed
Delivery success rate
0%
Delivered ÷ submitted
Not checked
0
WhatsApp status not verified
Tracking fields are ready in this interface. Real WhatsApp registration, sent, delivered, read and timestamp statuses appear only after the Node.js backend receives valid API responses/webhooks. This HTML alone cannot verify them.
Recent campaigns
Quick actions
Before launching a real campaign, confirm consent, API configuration, sender limits and opt-out handling on the backend.
Accepted formats: phone number OR Name,Phone. Numbers are normalized; duplicates in this browser are skipped.
Expected columns: phone,name,consent. A header row is supported. Consent values such as yes/true/1 are recognized.
Patient Cards & Contact Consent (0)
This form sends a real API request if the provider accepts browser requests. If CORS blocks it, connect the Node.js backend. A success response means submitted—not confirmed delivered or read. Use only for patients who have consented.
Message details
Use country code and digits only where possible.
The provider requires a reachable public HTTP/HTTPS URL for pdf. This field sends the URL, not a local file upload.
API settings are shared with Settings & Consent. Save your API key there first.
How status tracking works
Submitted
API responseProvider accepted the request.
Delivered / Read
Backend requiredRequires provider delivery/read webhook or status API.
WhatsApp registered
Not assumedOnly confirmed if provider exposes number verification.
Every send attempt is added to Message Logs with its time, response/request ID and error details when available.
Zaroori: Har recipient ki permission honi chahiye. Yeh form har number par alag API request bhejta hai. “Submitted” ka matlab provider ne request accept ki; delivered/read status ke liye provider webhook/status API chahiye.
Message aur recipients
Selected patients ke numbers neeche automatically add honge. Manual numbers bhi neeche paste kar sakte hain.
Sirf 10-digit Indian mobile number likhein; +91 automatically add hoga. Duplicate numbers skip honge.
API settings saved in Settings se configure karein. Send karne se pehle numbers aur message check karein.
Send progress
Total unique numbers
0
Submitted
0
Failed
0
Remaining
0
Quick Send uses the Node.js backend URL configured in Settings. It sends sequentially to reduce burst requests. Keep this page open until the batch finishes. Every attempt is recorded in Message Logs.
This standalone page saves a campaign draft locally. Real scheduled delivery is handled by the server, not by this HTML page.
Campaign details
Use {name} to personalize the message.
* “All eligible contacts” means all consented contacts in the audience, with a per-day cap still applied by the backend. No real messages are sent from this page.
Live preview
Message previewPoster preview
Check links, dates, names, consent and opt-out instructions before launching through your connected provider.
Pause, resume and stop here change only the local campaign record. They do not pause a server process. Connect the matching backend API before using these controls for live campaigns.
| Created / sent time | Campaign | Phone | Patient | Message status | Delivered at | Read at | Provider message ID | Error / details |
|---|
Status timestamps and provider message IDs must be supplied by the backend/API. Blank or “Not verified” means no confirmed provider receipt was recorded; it does not mean success.
Export backup
Download a JSON backup containing patients, campaign drafts, and local logs. Store it somewhere secure.
Exporting a backup does not delete or change your saved records.
Restore backup
Choose a JSON backup created by this page. You can merge it with current records or replace local records after confirmation.
Replace will overwrite this browser's local app data. Export a backup first. It will not alter your server's SQLite database.
Privacy safeguards
Consent required for campaigns
RecommendedCampaign audience selection should exclude contacts without consent.
Opt-out suppression
Enabled locallyMark a contact as opted out to exclude them from future campaign drafts.
Server API credentials
Backend requiredKeep keys in server environment variables, never in this HTML file.
Data storage
Browser onlyCurrent standalone version uses browser localStorage.
WhatsApp WAPP API Configuration
Not configuredSecurity: Is standalone HTML mein API key browser ke local storage mein save hogi aur browser tools se dekhi ja sakti hai. Live/production use ke liye key ko Node.js backend ke .env mein rakhna zyada safe hai. Message request Node.js backend ke zariye jaati hai, isliye backend package chalna zaroori hai; provider response submission batata hai, delivery/read nahi.
Important: Agar HTML mobile browser ya website hosting par khul rahi hai, to http://localhost:3000 kaam nahi karega. Yahan apne online Node.js backend ka asli HTTPS URL dalein. Backend server par /api/health aur /api/wapp/send routes chalne chahiye.
API is not tested yet. Save your settings, then send a test message.
Provider documentation screenshot indicates parameters: apikey, mobile, msg, optional pdf, img1, img2, scheduleon, country. A successful response (statuscode 200) means submitted successfully—not necessarily delivered or read. Delivery/read timestamps require provider delivery/read webhooks or a status API.
Danger zone
Clear local data only after you have exported a backup. This does not affect any backend database.