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 Upselling 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.
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.
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 | Fill in the Device ID, for personal delivery and flexible API settings, the device ID may not need to be filled in and the system will automatically perform a random search for available devices. | bc8bae5a-0997-40a2-a827-b95adc714dd3 | Required if it is made mandatory in the settings or will be sent to a group |
method | Message method, available for text and also templates | text / template | Required |
text | Message content if using the text method | - | Required if you select method as text |
is_group | Identify whether you will send to a personal number or to a group | boolean | 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 'http://chat.ping.co.id/api-app/whatsapp/send-message' \ --data '{ "phone": "RECEIVER_NUMBER_OR_GROUP_ID", "device_key": "YOUR_DEVICE_ID", "api_key": "YOUR_API_KEY", "method": "text", "text": "Hallo guys!" }'
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 WhatsMail
Body Parameters
Parameter | Description | Example | Requirement |
---|---|---|---|
template | Whatsapp message template ID to be used | 510b32e9-d6d9-4c75-83ae-f95cdfcc96e3 | Required |
variables | Fill with the variables provided in the message template | - | 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 'http://chat.ping.co.id/api-app/whatsapp/send-message' \ --data '{ "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" } }'
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 |
---|---|
from | personal number / group id, along with without @s.whatsapp.net for personal numbers, and @g.us for groups |
message_id | ID Message whatsapp |
message | Message Content |
from_name | Sender Name |
type | single |
cURL Example
curl --location 'http://chat.ping.co.id/api-app/whatsapp/callback/device_03359ec3-2052-43ff-9495-6155b8cab4cc' \ --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" }'
Request Example
{ "api_key": "2cc1a317-9016-4582-bcc6-a6f57914be5b", "chatid": "[email protected]", "message": { "key": { "remoteJid": "[email protected]", "fromMe": false, "id": "3EB024F1DAF187923D00F9" }, "deleteMedia": true, "timestamp": "1730660176" } }
cURL Example
curl --location 'http://chat.ping.co.id/api-app/whatsapp/misc/delete-message/03359ec3-2052-43ff-9495-6155b8cab4cc' \ --data-raw '{ "api_key": "2cc1a317-9016-4582-bcc6-a6f57914be5b", "chatid": "[email protected]", "message": { "key": { "id": "3EB02744312E25C4C11201", "remoteJid": "[email protected]", "fromMe": true }, "deleteMedia": false, "timestamp": 1730660179 } }'
Response Example
{ "status": true, "message": "Berhasil menghapus pesan" }