Introduction
Ping! is a smart WhatsApp CRM platform that combines marketing tools, customer communication management, and AI technology—all in one dashboard.
Built with a user-friendly SaaS concept, Ping! empowers small businesses and entrepreneurs to manage customer interactions independently, efficiently, and at scale.
More than just a tool, Ping! also opens up new business opportunities for its users and is designed to be expandable through plugins and future feature integrations—similar to modular systems like WordPress and modern CMS platforms.
In the current version, Ping! includes 6 main modules:
- WhatsApp Chatbot (Unofficial & Official API) – For broadcasts, auto-replies, notifications, and chat handling
- Broadcast Scheduler – Send promotional messages via WhatsApp safely and gradually (anti-ban system)
- AI Chatbot (Powered by ChatGPT 4.0) – Auto-replies 24/7 even when your team is offline
- Website Live Chat Plugin – Add a chat widget to your site without any coding
Each module will continue to evolve based on user needs, market trends, and feedback from our community—through a voting system on our upcoming official forum.
Upcoming plugins and features:
- Advanced WhatsApp CRM - Follow Up and Upsellin Schedule
- Shipping Cost Calculation - Integrated All Time
We are fully committed to making Ping! the most complete and affordable communication platform for growing businesses across Indonesia and beyond.
Every use of API requires a Device ID. You can copy the Device ID in the device menu in the Action section. Example of Device ID as follows:
03359ec3-2052-43ff-9495-6155b8cab4cc
How to Get Device ID:

How to API KEY:

Non Official Whatsapp
In developing Non-Official WhatsApp Tools, we use the Baileys library (https://github.com/WhiskeySockets/Baileys).
However, the published API is not directly directed to the Node server, but is repackaged by Laravel. So, the first request is sent to the API provided by Laravel.
Chats
This API focuses on getting a list of contacts stored in your WhatsApp, as well as message history based on contacts or groups. There are several endpoints currently available:
Send Message
POSTThis endpoint is for sending single messages to both personal and group numbers.
Body Parameters
Parameter | Description | Example | Requirement |
---|---|---|---|
phone | Fill in the number or group ID | 6281290641111 | Required |
device_key | Device ID. Optional if system is set to auto-pick, but required if targeting group or forced by settings | bc8bae5a-0997-40a2-a827-b95adc714dd3 | Required if mandatory or sending to group |
api_key | Your API key | XYZ987TOKEN | Required |
method | Message method, available values: text or template |
text / template | Required |
text | Message content, used only when method is text |
Hallo guys! | Required if method is text |
is_group | Set true if sending to group, false if to individual |
true | Required |
Request Example
{ "phone": "RECEIVER_NUMBER_OR_GROUP_ID", "device_key": "YOUR_DEVICE_ID", "api_key": "YOUR_API_KEY", "method": "text", "text": "Hallo guys!", "is_group": true }
cURL Example
curl --location 'https://chat.ping.co.id/api-app/whatsapp/send-message' \ --header 'Content-Type: application/json' \ --data-raw '{ "phone": "RECEIVER_NUMBER_OR_GROUP_ID", "device_key": "YOUR_DEVICE_ID", "api_key": "YOUR_API_KEY", "method": "text", "text": "Hallo guys!", "is_group": true }'
Response Example
{ "status": true, "message": "Berhasil mengirimkan pesan" }
Send Message With Template
POSTThe endpoint here is the same as the previous Send Message endpoint, the only difference is in the body, if in the example above we use the text method, to send a message without a template, in this endpoint we use the template method, to send a message using the template we created in Ping Dashboard
Body Parameters
Parameter | Description | Example | Requirement |
---|---|---|---|
phone | Receiver phone number or WhatsApp Group ID | 6281234567890 / [email protected] | Required |
device_key | Your WhatsApp device identifier | bc8bae5a-0997-40a2-a827-b95adc714dd3 | Required |
api_key | Your API key | 39c91b1a-03a5-43e6-a798-73b18388652b | Required |
method | Sending method (use template for this) |
template | Required |
template | Whatsapp message template ID to be used | 510b32e9-d6d9-4c75-83ae-f95cdfcc96e3 | Required |
is_group | Set true if sending to a group |
true | Optional |
variables | Fill with the variables provided in the message template | { "{business_name}": "My Store", "{name}": "Budi" } |
Required |
Request Example
{ "phone": "RECEIVER_NUMBER_OR_GROUP_ID", "device_key": "YOUR_DEVICE_ID", "api_key": "YOUR_API_KEY", "method": "template", "template": "YOUR_TEMPLATE_ID", "is_group": true, "variables": { "{business_name}": "BUSINESS_NAME", "{name}": "YOUR_NAME" } }
cURL Example
curl --location 'https://chat.ping.co.id/api-app/whatsapp/send-message' \ --header 'Content-Type: application/json' \ --data-raw '{ "phone": "RECEIVER_NUMBER_OR_GROUP_ID", "device_key": "YOUR_DEVICE_ID", "api_key": "YOUR_API_KEY", "method": "template", "template": "YOUR_TEMPLATE_ID", "is_group": true, "variables": { "{business_name}": "BUSINESS_NAME", "{name}": "YOUR_NAME" } }' /pre>
Response Example
{ "status": true, "message": "Berhasil mengirimkan pesan" }
Message Callback
POSTThis endpoint is actually created to open communication from the WhatsApp server when a WhatsApp message comes into the connected device.
But sometimes this callback will be useful when we want to do auto reply testing without having to test sending messages on WhatsApp
Body Parameters
Parameter | Description | Example | Requirement |
---|---|---|---|
from | The sender's number (use [email protected] for personal chats or [email protected] for groups) |
62812906*****@s.whatsapp.net | Required |
message_id | Unique identifier for the WhatsApp message | 18DD98462C8AA16C5A598C3DEBA0879B | Required |
message | The content of the message | Hello | Required |
from_name | Name of the sender | Bhisma Kalijaga | Required |
type | Type of message, typically set to single |
single | Required |
Request Example
{ "from": "62812906*****@s.whatsapp.net", "message_id": "18DD98462C8AA16C5A598C3DEBA0879B", "message": "Halo", "from_name": "Bhisma Kalijaga", "type": "single" }
cURL Example
curl --location 'https://chat.ping.co.id/api-app/whatsapp/callback/device_03359ec3-2052-43ff-9495-6155b8cab4cc' \ --header 'Content-Type: application/json' \ --data-raw '{ "from": "62812906*****@s.whatsapp.net", "message_id": "18DD98462C8AA16C5A598C3DEBA0879B", "message": "Halo", "from_name": "Bhisma Kalijaga", "type": "single" }'
Response Example
{ "message": { "text": "API Doc Ping Example" }, "receiver": "6281290*****@s.whatsapp.net", "session_id": "device_03359ec3-2052-43ff-9495-6155b8cab4cc", "autoread": false, "reply": true }
Webhook Sample
POSTThe webhook endpoint will be automatically sent when the connected WhatsApp device receives a message.
Whether or not the webhook is sent depends on you filling in the endpoint url on the device.
Request Example
{ "device_key": "DEVICEID", "name": "FROM NAME", "message": "MESSAGE DETAIL ( TEXT )", "type": "single" }
cURL Example
curl --location 'https://yourdomain.com' \ --data '{ "device_key": "DEVICEID", "name": "FROM NAME", "message": "MESSAGE DETAIL ( TEXT )", "type": "single" }'