├── .gitignore ├── jest.config.js ├── views ├── partials │ ├── header.ejs │ ├── navbar.ejs │ ├── messages.ejs │ ├── status-card.ejs │ ├── qr-container.ejs │ ├── actions.ejs │ ├── api-info.ejs │ ├── sidebar.ejs │ ├── head.ejs │ └── scripts.ejs ├── dashboard.ejs ├── api-keys.ejs ├── login.ejs ├── auto-reply.ejs ├── documentation.ejs ├── register.ejs ├── contacts.ejs ├── chat.ejs └── blaster.ejs ├── supabaseClient.js ├── package.json ├── stop.sh ├── tests ├── endpoints.test.js └── auth.test.js ├── start.sh ├── setup.sh ├── public └── css │ └── dashboard.css ├── static └── index.html └── whatsapp-service.js /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | node_modules 3 | package-lock.json 4 | auth_info_baileys -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | testEnvironment: 'node', 3 | verbose: true, 4 | }; -------------------------------------------------------------------------------- /views/partials/header.ejs: -------------------------------------------------------------------------------- 1 |
Scan QR code untuk menghubungkan WhatsApp Anda
5 |Current status of the WhatsApp connection.
6 |Control the WhatsApp service.
6 |Endpoints available for integration.
6 |Use these keys to access the REST endpoints without session cookie.
17 |<%= error %>
28 | <% } %> 29 | <% if (success) { %> 30 |<%= success %>
31 | <% } %> 32 | 33 || # | 38 |Key | 39 |Created At | 40 |Actions | 41 |
|---|---|---|---|
| <%= index + 1 %> | 48 |
49 | <% if (k.raw) { %>
50 | <%= k.raw %>
51 | <% } else { %>
52 | Hidden
53 | <% } %>
54 | |
55 | <%= new Date(k.created_at).toLocaleString() %> | 56 |57 | <% if (k.id) { %> 58 | 63 | <% } %> 64 | | 65 |
| No keys yet. | 70 ||||
Usage: add a header X-API-KEY: <your_key> or query parameter ?api_key=<your_key>.
Please log in to continue
107 | 108 | <% if (error) { %> 109 | 110 | <% } %> 111 | 112 | 124 | 125 |Enable or disable the entire auto-reply bot.
19 |Create a new keyword and its corresponding reply.
38 |Manage your existing keyword replies.
69 || Status | 78 |Keyword | 79 |Reply | 80 |Actions | 81 |
|---|---|---|---|
| 88 | 89 | <%= rule.enabled ? 'On' : 'Off' %> 90 | 91 | | 92 |<%= rule.keyword %> | 93 |<%= rule.reply %> | 94 |95 | 100 | | 101 |
| No rules configured yet. | 106 ||||
This page describes how to interact programmatically with the WhatsApp Webhook service and gives an overview of the features available in the dashboard.
18 |All API endpoints are protected. There are two ways to authenticate:
19 |supabase-auth-token cookie from your browser and attach it to each request.X-API-KEY header or ?api_key= query parameter.| Method | 35 |Endpoint | 36 |Description | 37 |
|---|---|---|
GET |
42 | /status |
43 | Returns WhatsApp connection status and QR code (if required). (Auth: cookie or API key) | 44 |
POST |
47 | /send-message |
48 | Sends a single WhatsApp message. 49 | Body parameters: 50 | to (string, phone number or JID)51 | message (string, text content)52 | Auth: cookie or API key 53 | |
54 |
POST |
57 | /send-bulk |
58 | Sends a message to multiple recipients with randomized delay. 59 | Body parameters: 60 | numbers (string, one phone number per line)61 | message (string)62 | Auth: cookie or API key 63 | |
64 |
GET |
67 | /api/contacts |
68 | Returns the saved contacts list. 69 | Auth: cookie or API key 70 | |
71 |
Example with API Key:
75 |
76 | $ curl -X POST \
77 | -H "Content-Type: application/json" \
78 | -H "X-API-KEY: YOUR_API_KEY" \
79 | -d '{"to":"6281234567890","message":"Hello via API key!"}' \
80 | http://localhost:3000/send-message
81 |
82 | Example with Cookie:
83 |
84 | $ curl -X POST \
85 | -H "Content-Type: application/json" \
86 | -H "Cookie: supabase-auth-token=YOUR_COOKIE_HERE" \
87 | -d '{"to":"6281234567890","message":"Hello via cookie!"}' \
88 | http://localhost:3000/send-message
89 |
90 | For a deeper dive, refer to the Markdown documents shipped with the project:
114 |Quick Start Guide - WhatsApp Webhook API.mdWhatsApp Webhook API Documentation.mdThe project is continuously evolving—check these files and this page for updates.
119 |Join WhatsApp Webhook API
112 | 113 | <% if (error) { %> 114 | 115 | <% } %> 116 | 117 | <% if (success) { %> 118 | 119 | <% } %> 120 | 121 | 142 | 143 |Save a new contact to your list.
19 |Upload a .vcf file to add multiple contacts at once.
50 |Upload a .csv file. Columns: Name, Phone
75 |All your saved contacts.
100 || Name | 115 |Phone Number | 116 |Actions | 117 |
|---|---|---|
| <%= contact.name %> | 124 |<%= contact.phone %> | 125 |126 | 131 | | 132 |
| No contacts found. | 137 |||
Send a message to multiple numbers at once.
94 |Real-time status of the bulk sending process.
128 |Scan QR code untuk menghubungkan WhatsApp Anda
269 |