{"id":1648,"date":"2026-10-02T10:53:58","date_gmt":"2026-10-02T10:53:58","guid":{"rendered":"https:\/\/whapi.id\/blog\/?p=1648"},"modified":"2026-09-30T03:54:28","modified_gmt":"2026-09-30T03:54:28","slug":"cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp","status":"publish","type":"post","link":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/","title":{"rendered":"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp"},"content":{"rendered":"<p>Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp perlu diketahui sebab aplikasi bergantung pada device yang harus tetap terhubung untuk menerima atau mengirim pesan. Webhook dapat digunakan untuk menerima event perubahan status dari API sehingga aplikasi dapat mengetahui ketika device terhubung, terputus, atau mengalami perubahan koneksi.<\/p>\n<p>Tanpa webhook, aplikasi biasanya harus melakukan pengecekan status secara berkala. Dengan webhook, server dapat menerima event ketika terjadi perubahan status.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg\" alt=\"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp\" width=\"1408\" height=\"768\" class=\"alignnone size-full wp-image-1649\" srcset=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg 1408w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp-300x164.jpg 300w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp-1024x559.jpg 1024w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp-768x419.jpg 768w\" sizes=\"(max-width: 1408px) 100vw, 1408px\" \/><\/p>\n<p>Alur dasarnya:<\/p>\n<pre><code class=\"lang-text\">Device WhatsApp\r\n      \u2193\r\nPerubahan <span class=\"hljs-keyword\">status<\/span> koneksi\r\n      \u2193\r\nAPI Whapi\r\n      \u2193\r\nWebhook\r\n      \u2193\r\nServer\r\n      \u2193\r\nUpdate <span class=\"hljs-keyword\">status<\/span> device\r\n<\/code><\/pre>\n<h2 id=\"apa-itu-status-koneksi-device-\">Apa Itu Status Koneksi Device?<\/h2>\n<p>Status koneksi device menunjukkan kondisi device WhatsApp yang digunakan oleh API.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-attribute\">CONNECTED\r\nDISCONNECTED<\/span>\r\n<\/code><\/pre>\n<p>Status tersebut dapat digunakan aplikasi untuk menentukan apakah device siap digunakan.<\/p>\n<p>Contoh penggunaan:<\/p>\n<ul>\n<li>Menampilkan status device pada dashboard.<\/li>\n<li>Memberi tanda ketika device terputus.<\/li>\n<li>Menghentikan proses pengiriman sementara.<\/li>\n<li>Menjalankan proses ketika device kembali terhubung.<\/li>\n<li>Mencatat riwayat koneksi.<\/li>\n<li>Mengirim notifikasi kepada administrator.<\/li>\n<\/ul>\n<p>Status koneksi tidak sama dengan status pesan. Status koneksi menunjukkan kondisi device, sedangkan status pesan menunjukkan kondisi pesan seperti terkirim atau gagal.<\/p>\n<h2 id=\"mengapa-status-device-perlu-dipantau-\">Mengapa Status Device Perlu Dipantau?<\/h2>\n<p>Aplikasi yang menggunakan WhatsApp API biasanya memiliki proses yang bergantung pada koneksi device.<\/p>\n<p>Misalnya sistem memiliki antrean pengiriman:<\/p>\n<pre><code class=\"lang-text\">Pesan masuk ke <span class=\"hljs-built_in\">queue<\/span>\r\n       \u2193\r\nDevice CONNECTED?\r\n    \u2199       \u2198\r\n  Ya        Tidak\r\n  \u2193           \u2193\r\nKirim      Tunggu\r\n<\/code><\/pre>\n<p>Jika aplikasi tidak mengetahui status device, sistem dapat terus mencoba mengirim pesan meskipun device sedang terputus.<\/p>\n<p>Dengan menerima event perubahan status melalui webhook, aplikasi dapat memperbarui status secara otomatis.<\/p>\n<h2 id=\"buat-endpoint-webhook\">Buat Endpoint Webhook<\/h2>\n<p>Langkah pertama adalah menyediakan endpoint yang dapat menerima request dari Whapi.<\/p>\n<p>Contoh menggunakan Node.js dan Express:<\/p>\n<pre><code class=\"lang-javascript\">const express = <span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">'express'<\/span>);\r\n\r\nconst app = express();\r\n\r\napp.use(express.json());\r\n\r\napp.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Webhook diterima'<\/span>);\r\n  <span class=\"hljs-built_in\">console<\/span>.log(JSON.stringify(req.body, <span class=\"hljs-literal\">null<\/span>, <span class=\"hljs-number\">2<\/span>));\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n});\r\n\r\napp.listen(<span class=\"hljs-number\">3000<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">()<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Server berjalan di port 3000'<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Endpoint tersebut:<\/p>\n<pre><code class=\"lang-text\">POST <span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<p>digunakan untuk menerima event dari API.<\/p>\n<p>Pada tahap awal, tampilkan seluruh payload terlebih dahulu. Tujuannya agar struktur event yang diterima dapat diperiksa sebelum kode dibuat untuk membaca field tertentu.<\/p>\n<h2 id=\"konfigurasi-url-webhook\">Konfigurasi URL Webhook<\/h2>\n<p>Setelah endpoint tersedia, gunakan URL publik endpoint tersebut pada konfigurasi webhook Whapi.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">https:<span class=\"hljs-regexp\">\/\/<\/span>example.com<span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<p>Pastikan URL dapat diakses dari internet dan server dapat menerima request <code>POST<\/code>.<\/p>\n<p>Jangan menggunakan:<\/p>\n<pre><code class=\"lang-text\">http:<span class=\"hljs-regexp\">\/\/<\/span>localhost:<span class=\"hljs-number\">3000<\/span><span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<p>untuk endpoint production karena <code>localhost<\/code> hanya dapat diakses dari mesin yang menjalankan server tersebut.<\/p>\n<h2 id=\"membaca-event-status-device\">Membaca Event Status Device<\/h2>\n<p>Setelah webhook aktif, periksa payload yang diterima ketika status device berubah.<\/p>\n<p>Gunakan log:<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(\r\n    JSON.stringify(req.body, <span class=\"hljs-literal\">null<\/span>, <span class=\"hljs-number\">2<\/span>)\r\n  );\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Contoh hasil log dapat digunakan untuk mengetahui struktur event yang dikirim API.<\/p>\n<p>Jangan langsung mengasumsikan nama field status sebelum payload aktual diperiksa. Struktur data harus mengikuti event yang dikirim oleh versi API yang digunakan.<\/p>\n<h2 id=\"menyimpan-status-device\">Menyimpan Status Device<\/h2>\n<p>Setelah struktur event diketahui, status device dapat disimpan pada database.<\/p>\n<p>Contoh alurnya:<\/p>\n<pre><code class=\"lang-text\">Event webhook\r\n      \u2193\r\nAmbil status\r\n      \u2193\r\nCari device\r\n      \u2193\r\n<span class=\"hljs-keyword\">Update<\/span> <span class=\"hljs-keyword\">database<\/span>\r\n<\/code><\/pre>\n<p>Contoh pseudo-code:<\/p>\n<pre><code class=\"lang-javascript\">const <span class=\"hljs-keyword\">status<\/span> = getDeviceStatus(req.body);\r\n\r\n<span class=\"hljs-keyword\">if<\/span> (<span class=\"hljs-keyword\">status<\/span>) {\r\n  await updateDeviceStatus(<span class=\"hljs-keyword\">status<\/span>);\r\n}\r\n<\/code><\/pre>\n<p>Fungsi <code>getDeviceStatus()<\/code> perlu disesuaikan dengan struktur payload webhook yang diterima.<\/p>\n<p>Data pada database dapat dibuat seperti:<\/p>\n<table>\n<thead>\n<tr>\n<th>Device<\/th>\n<th>Status<\/th>\n<th>Updated At<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Device 01<\/td>\n<td>CONNECTED<\/td>\n<td>2026-09-30 09:30<\/td>\n<\/tr>\n<tr>\n<td>Device 02<\/td>\n<td>DISCONNECTED<\/td>\n<td>2026-09-30 09:27<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Dengan data tersebut, dashboard dapat menampilkan status terbaru setiap device.<\/p>\n<h2 id=\"menampilkan-status-pada-dashboard\">Menampilkan Status pada Dashboard<\/h2>\n<p>Status webhook dapat digunakan untuk membuat halaman monitoring.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">WhatsApp Device\r\n\r\nDevice <span class=\"hljs-number\">01<\/span>\r\n<span class=\"hljs-symbol\">Status:<\/span> CONNECTED\r\n\r\nDevice <span class=\"hljs-number\">02<\/span>\r\n<span class=\"hljs-symbol\">Status:<\/span> DISCONNECTED\r\n<\/code><\/pre>\n<p>Ketika event baru diterima, aplikasi memperbarui data pada database.<\/p>\n<p>Alurnya:<\/p>\n<pre><code class=\"lang-text\">Device berubah <span class=\"hljs-keyword\">status<\/span>\r\n        \u2193\r\nWebhook menerima event\r\n        \u2193\r\nDatabase diperbarui\r\n        \u2193\r\nDashboard membaca <span class=\"hljs-keyword\">status<\/span> terbaru\r\n<\/code><\/pre>\n<p>Dashboard tidak perlu menunggu pengguna melakukan refresh jika aplikasi menggunakan WebSocket, Server-Sent Events, atau mekanisme pembaruan data lainnya.<\/p>\n<h2 id=\"membuat-notifikasi-saat-device-terputus\">Membuat Notifikasi Saat Device Terputus<\/h2>\n<p>Status webhook juga dapat digunakan untuk memberi tahu administrator.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-text\">Device WhatsApp terputus\r\n\r\n<span class=\"hljs-symbol\">Device:<\/span> Device <span class=\"hljs-number\">01<\/span>\r\n<span class=\"hljs-symbol\">Status:<\/span> DISCONNECTED\r\n\r\nPeriksa koneksi device sebelum melanjutkan pengiriman pesan.\r\n<\/code><\/pre>\n<p>Alurnya:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-keyword\">Status<\/span> berubah\r\n      \u2193\r\nWebhook\r\n      \u2193\r\n<span class=\"hljs-keyword\">Status<\/span> = DISCONNECTED\r\n      \u2193\r\nSimpan database\r\n      \u2193\r\nKirim notifikasi admin\r\n<\/code><\/pre>\n<p>Notifikasi dapat dikirim melalui email, Telegram, dashboard internal, atau layanan lain sesuai kebutuhan sistem.<\/p>\n<h2 id=\"menangani-device-kembali-terhubung\">Menangani Device Kembali Terhubung<\/h2>\n<p>Proses yang sama dapat digunakan ketika device kembali terhubung.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-text\">Device terputus\r\n      \u2193\r\n<span class=\"hljs-keyword\">Status<\/span> DISCONNECTED\r\n      \u2193\r\nDevice tersambung kembali\r\n      \u2193\r\n<span class=\"hljs-keyword\">Status<\/span> CONNECTED\r\n      \u2193\r\nUpdate database\r\n<\/code><\/pre>\n<p>Setelah status menjadi <code>CONNECTED<\/code>, sistem dapat melanjutkan proses yang sebelumnya ditahan.<\/p>\n<p>Misalnya terdapat antrean pesan:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-built_in\">Queue<\/span>\r\n  \u2193\r\nDevice DISCONNECTED\r\n  \u2193\r\nPengiriman ditahan\r\n  \u2193\r\nDevice CONNECTED\r\n  \u2193\r\n<span class=\"hljs-built_in\">Queue<\/span> dilanjutkan\r\n<\/code><\/pre>\n<p>Jangan langsung menjalankan seluruh antrean tanpa aturan jika jumlah pesan cukup besar. Sistem perlu memiliki batas pengiriman dan proses antrean yang sesuai dengan kebutuhan aplikasi.<\/p>\n<h2 id=\"jangan-menyamakan-status-device-dengan-status-pesan\">Jangan Menyamakan Status Device dengan Status Pesan<\/h2>\n<p>Status device dan status pesan memiliki fungsi berbeda.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">Device:<\/span>\r\nCONNECTED\r\n<\/code><\/pre>\n<p>berarti device terhubung.<\/p>\n<p>Sementara pesan dapat memiliki status lain setelah dikirim.<\/p>\n<p>Contoh alur:<\/p>\n<pre><code class=\"lang-text\">Device CONNECTED\r\n      \u2193\r\nAPI menerima request\r\n      \u2193\r\nPesan diproses\r\n      \u2193\r\n<span class=\"hljs-keyword\">Status<\/span> pesan diperbarui\r\n<\/code><\/pre>\n<p>Karena itu, aplikasi sebaiknya menyimpan status device dan status pesan pada data yang berbeda.<\/p>\n<p>Contoh struktur database:<\/p>\n<pre><code class=\"lang-text\">devices\r\n-<span class=\"ruby\"> id\r\n<\/span>-<span class=\"ruby\"> name\r\n<\/span>-<span class=\"ruby\"> status\r\n<\/span>-<span class=\"ruby\"> updated_at\r\n<\/span>\r\nmessages\r\n-<span class=\"ruby\"> id\r\n<\/span>-<span class=\"ruby\"> device_id\r\n<\/span>-<span class=\"ruby\"> recipient\r\n<\/span>-<span class=\"ruby\"> message\r\n<\/span>-<span class=\"ruby\"> status\r\n<\/span>-<span class=\"ruby\"> created_at<\/span>\r\n<\/code><\/pre>\n<p>Struktur tersebut membuat data koneksi device tidak tercampur dengan data pengiriman pesan.<\/p>\n<h2 id=\"mencatat-riwayat-status-device\">Mencatat Riwayat Status Device<\/h2>\n<p>Selain menyimpan status terbaru, sistem dapat menyimpan riwayat perubahan status.<\/p>\n<p>Contohnya:<\/p>\n<table>\n<thead>\n<tr>\n<th>Waktu<\/th>\n<th>Device<\/th>\n<th>Status<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>09:10<\/td>\n<td>Device 01<\/td>\n<td>CONNECTED<\/td>\n<\/tr>\n<tr>\n<td>09:25<\/td>\n<td>Device 01<\/td>\n<td>DISCONNECTED<\/td>\n<\/tr>\n<tr>\n<td>09:29<\/td>\n<td>Device 01<\/td>\n<td>CONNECTED<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Riwayat ini berguna untuk melihat kapan device terputus dan kapan kembali terhubung.<\/p>\n<p>Struktur sederhananya:<\/p>\n<pre><code class=\"lang-text\">device_status_logs\r\n-<span class=\"ruby\"> id\r\n<\/span>-<span class=\"ruby\"> device_id\r\n<\/span>-<span class=\"ruby\"> status\r\n<\/span>-<span class=\"ruby\"> created_at<\/span>\r\n<\/code><\/pre>\n<p>Setiap event perubahan status dapat membuat satu record baru.<\/p>\n<h2 id=\"hindari-update-database-pada-setiap-event-yang-sama\">Hindari Update Database pada Setiap Event yang Sama<\/h2>\n<p>Webhook dapat menerima event yang sama lebih dari sekali. Jika aplikasi langsung membuat record tanpa pemeriksaan, database dapat berisi data duplikat.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-attribute\">CONNECTED\r\nCONNECTED\r\nCONNECTED<\/span>\r\n<\/code><\/pre>\n<p>Jika status tidak berubah, aplikasi dapat menghindari update yang tidak diperlukan.<\/p>\n<p>Contoh logika:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">if<\/span> (currentStatus !== <span class=\"hljs-keyword\">new<\/span><span class=\"hljs-type\">Status<\/span>) {\r\n  await updateDeviceStatus(<span class=\"hljs-keyword\">new<\/span><span class=\"hljs-type\">Status<\/span>);\r\n}\r\n<\/code><\/pre>\n<p>Untuk riwayat status, gunakan ID event atau identifier lain yang tersedia pada payload jika sistem membutuhkan pencegahan duplikasi yang lebih ketat.<\/p>\n<h2 id=\"contoh-handler-webhook\">Contoh Handler Webhook<\/h2>\n<p>Berikut contoh struktur handler yang memisahkan penerimaan request dan proses status:<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, async (req, res) =&gt; {\r\n  <span class=\"hljs-keyword\">const<\/span> event = req.body;\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n\r\n  <span class=\"hljs-keyword\">try<\/span> {\r\n    <span class=\"hljs-keyword\">const<\/span> status = extractDeviceStatus(event);\r\n\r\n    <span class=\"hljs-keyword\">if<\/span> (!status) {\r\n      <span class=\"hljs-keyword\">return<\/span>;\r\n    }\r\n\r\n    <span class=\"hljs-function\">await <span class=\"hljs-title\">processDeviceStatus<\/span><span class=\"hljs-params\">(status)<\/span><\/span>;\r\n\r\n  } <span class=\"hljs-keyword\">catch<\/span> (<span class=\"hljs-keyword\">error<\/span>) {\r\n    console.<span class=\"hljs-keyword\">error<\/span>(\r\n      <span class=\"hljs-string\">'Gagal memproses status device:'<\/span>,\r\n      <span class=\"hljs-keyword\">error<\/span>\r\n    );\r\n  }\r\n});\r\n<\/code><\/pre>\n<p>Fungsi <code>extractDeviceStatus()<\/code> dan <code>processDeviceStatus()<\/code> dapat disesuaikan dengan struktur aplikasi.<\/p>\n<p>Pemisahan seperti ini membuat route webhook lebih mudah dirawat ketika proses monitoring bertambah.<\/p>\n<h2 id=\"cara-menguji-status-device\">Cara Menguji Status Device<\/h2>\n<p>Setelah webhook dikonfigurasi, lakukan pengujian dengan mengamati perubahan status device.<\/p>\n<p>Urutannya:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-bullet\">1. <\/span>Pastikan device CONNECTED\r\n<span class=\"hljs-bullet\">2. <\/span>Pastikan webhook aktif\r\n<span class=\"hljs-bullet\">3. <\/span>Periksa log server\r\n<span class=\"hljs-bullet\">4. <\/span>Ubah kondisi koneksi device\r\n<span class=\"hljs-bullet\">5. <\/span>Periksa event yang diterima\r\n<span class=\"hljs-bullet\">6. <\/span>Periksa status pada database\r\n<span class=\"hljs-bullet\">7. <\/span>Pastikan dashboard menampilkan status terbaru\r\n<\/code><\/pre>\n<p>Pada tahap pengujian, log payload lengkap terlebih dahulu:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-selector-tag\">console<\/span><span class=\"hljs-selector-class\">.log<\/span>(<span class=\"hljs-selector-tag\">JSON<\/span><span class=\"hljs-selector-class\">.stringify<\/span>(<span class=\"hljs-selector-tag\">req<\/span><span class=\"hljs-selector-class\">.body<\/span>, <span class=\"hljs-selector-tag\">null<\/span>, 2));\r\n<\/code><\/pre>\n<p>Setelah struktur event sudah diketahui, hapus log yang tidak diperlukan atau gunakan logging yang lebih terkontrol untuk production.<\/p>\n<h2 id=\"jika-status-device-tidak-masuk-ke-webhook\">Jika Status Device Tidak Masuk ke Webhook<\/h2>\n<p>Jika perubahan status tidak terlihat pada server, periksa dari bagian paling dasar.<\/p>\n<h3 id=\"periksa-url\">Periksa URL<\/h3>\n<p>Pastikan URL webhook benar dan sesuai dengan route server.<\/p>\n<h3 id=\"periksa-akses-internet\">Periksa Akses Internet<\/h3>\n<p>Server harus dapat menerima request dari luar.<\/p>\n<h3 id=\"periksa-https\">Periksa HTTPS<\/h3>\n<p>Pastikan sertifikat SSL valid dan domain dapat diakses melalui HTTPS.<\/p>\n<h3 id=\"periksa-route\">Periksa Route<\/h3>\n<p>Pastikan endpoint menerima <code>POST<\/code>.<\/p>\n<h3 id=\"periksa-log-server\">Periksa Log Server<\/h3>\n<p>Jika tidak ada request sama sekali, masalah kemungkinan berada sebelum proses aplikasi.<\/p>\n<p>Jika request sudah masuk tetapi status tidak terbaca, periksa payload dan kode parsing.<\/p>\n<h3 id=\"periksa-device\">Periksa Device<\/h3>\n<p>Pastikan pengujian dilakukan pada device yang benar dan status device memang berubah.<\/p>\n<h2 id=\"status-device-untuk-sistem-pengiriman-otomatis\">Status Device untuk Sistem Pengiriman Otomatis<\/h2>\n<p>Status koneksi dapat digunakan sebagai salah satu kondisi sebelum sistem mengirim pesan.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">if<\/span> (device.status !== <span class=\"hljs-string\">'CONNECTED'<\/span>) {\r\n  <span class=\"hljs-keyword\">return<\/span> {\r\n    success: <span class=\"hljs-literal\">false<\/span>,\r\n    message: <span class=\"hljs-string\">'Device belum terhubung'<\/span>\r\n  };\r\n}\r\n<\/code><\/pre>\n<p>Alur sistem:<\/p>\n<pre><code class=\"lang-text\">Pesan masuk <span class=\"hljs-built_in\">queue<\/span>\r\n       \u2193\r\nCek status device\r\n       \u2193\r\nCONNECTED?\r\n   \u2199        \u2198\r\n Ya        Tidak\r\n \u2193            \u2193\r\nKirim       Tunda\r\n<\/code><\/pre>\n<p>Pengecekan ini tidak menggantikan penanganan error pada API. Status device hanya menjadi salah satu informasi yang dapat digunakan sebelum pengiriman.<\/p>\n<h2 id=\"kapan-webhook-lebih-berguna-daripada-polling-\">Kapan Webhook Lebih Berguna daripada Polling?<\/h2>\n<p>Polling berarti aplikasi melakukan request secara berkala untuk mengetahui status terbaru.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-text\">Aplikasi\r\n  \u2193\r\nCek <span class=\"hljs-keyword\">status<\/span>\r\n  \u2193\r\nTunggu\r\n  \u2193\r\nCek <span class=\"hljs-keyword\">status<\/span>\r\n  \u2193\r\nTunggu\r\n  \u2193\r\nCek <span class=\"hljs-keyword\">status<\/span>\r\n<\/code><\/pre>\n<p>Webhook bekerja berdasarkan event:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-keyword\">Status<\/span> berubah\r\n      \u2193\r\nWhapi mengirim event\r\n      \u2193\r\nWebhook menerima\r\n      \u2193\r\nAplikasi memperbarui <span class=\"hljs-keyword\">status<\/span>\r\n<\/code><\/pre>\n<p>Untuk perubahan status yang perlu diketahui aplikasi secara otomatis, event webhook dapat mengurangi kebutuhan request pengecekan berulang.<\/p>\n<p>Namun, polling tetap dapat digunakan sebagai pemeriksaan tambahan ketika aplikasi membutuhkan sinkronisasi berkala.<\/p>\n<h2 id=\"kesimpulan\">Kesimpulan<\/h2>\n<p>Cara mengecek status koneksi device melalui webhook WhatsApp dimulai dengan menyediakan endpoint yang dapat menerima event, menghubungkannya ke konfigurasi webhook, kemudian membaca event perubahan status pada server.<\/p>\n<p>Alurnya:<\/p>\n<pre><code class=\"lang-text\">Device WhatsApp\r\n      \u2193\r\nPerubahan status\r\n      \u2193\r\nWebhook\r\n      \u2193\r\n<span class=\"hljs-built_in\">Server<\/span>\r\n      \u2193\r\nDatabase\r\n      \u2193\r\nDashboard \/ Sistem Pengiriman\r\n<\/code><\/pre>\n<p>Status device dapat digunakan untuk menampilkan kondisi koneksi pada dashboard, mencatat riwayat koneksi, memberi notifikasi ketika device terputus, dan menentukan apakah antrean pesan dapat diproses.<\/p>\n<p>Untuk mendapatkan hasil yang akurat, jangan menebak struktur payload webhook. Tampilkan payload yang diterima terlebih dahulu, identifikasi field status yang tersedia, kemudian buat kode berdasarkan struktur event tersebut.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp perlu diketahui sebab aplikasi bergantung pada device yang harus tetap terhubung untuk [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1649,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1648","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp - WHAPI | BLOG<\/title>\n<meta name=\"description\" content=\"Cara mengecek status koneksi device WhatsApp melalui webhook, membaca event perubahan status, dan memperbarui status device di aplikasi.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp - WHAPI | BLOG\" \/>\n<meta property=\"og:description\" content=\"Cara mengecek status koneksi device WhatsApp melalui webhook, membaca event perubahan status, dan memperbarui status device di aplikasi.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/\" \/>\n<meta property=\"og:site_name\" content=\"WHAPI | BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-02T10:53:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1408\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Doveriz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Doveriz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/\",\"url\":\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/\",\"name\":\"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp - WHAPI | BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/whapi.id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg\",\"datePublished\":\"2026-10-02T10:53:58+00:00\",\"author\":{\"@id\":\"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a\"},\"description\":\"Cara mengecek status koneksi device WhatsApp melalui webhook, membaca event perubahan status, dan memperbarui status device di aplikasi.\",\"breadcrumb\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#primaryimage\",\"url\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg\",\"contentUrl\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg\",\"width\":1408,\"height\":768,\"caption\":\"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Beranda\",\"item\":\"https:\/\/whapi.id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/whapi.id\/blog\/#website\",\"url\":\"https:\/\/whapi.id\/blog\/\",\"name\":\"WHAPI | BLOG\",\"description\":\"Blog Resmi Whapi.id Temukan tips praktis, panduan teknis, dan informasi terbaru seputar WhatsApp API, chatbot, serta otomasi bisnis. Ditulis oleh tim ahli untuk membantu meningkatkan pelayanan, efisiensi operasional, dan penjualan bisnis secara berkelanjutan.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/whapi.id\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a\",\"name\":\"Doveriz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/whapi.id\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2797b0bc9cdfb3ca0fbc22a3708768605e7bee3cfa5ec0b6c98c8511a1378252?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2797b0bc9cdfb3ca0fbc22a3708768605e7bee3cfa5ec0b6c98c8511a1378252?s=96&d=mm&r=g\",\"caption\":\"Doveriz\"},\"description\":\"Saya adalah Developer dan penulis Blog Whapi.id serta Fullstack Developer spesialisasi pengembangan aplikasi berbasis web dan chatbot automation untuk berbagai platform bisnis.\",\"sameAs\":[\"https:\/\/whapi.id\/blog\"],\"url\":\"https:\/\/whapi.id\/blog\/author\/whapi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp - WHAPI | BLOG","description":"Cara mengecek status koneksi device WhatsApp melalui webhook, membaca event perubahan status, dan memperbarui status device di aplikasi.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/","og_locale":"id_ID","og_type":"article","og_title":"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp - WHAPI | BLOG","og_description":"Cara mengecek status koneksi device WhatsApp melalui webhook, membaca event perubahan status, dan memperbarui status device di aplikasi.","og_url":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/","og_site_name":"WHAPI | BLOG","article_published_time":"2026-10-02T10:53:58+00:00","og_image":[{"width":1408,"height":768,"url":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg","type":"image\/jpeg"}],"author":"Doveriz","twitter_card":"summary_large_image","twitter_misc":{"Ditulis oleh":"Doveriz","Estimasi waktu membaca":"7 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/","url":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/","name":"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp - WHAPI | BLOG","isPartOf":{"@id":"https:\/\/whapi.id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#primaryimage"},"image":{"@id":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#primaryimage"},"thumbnailUrl":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg","datePublished":"2026-10-02T10:53:58+00:00","author":{"@id":"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a"},"description":"Cara mengecek status koneksi device WhatsApp melalui webhook, membaca event perubahan status, dan memperbarui status device di aplikasi.","breadcrumb":{"@id":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#primaryimage","url":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg","contentUrl":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengecek-Status-Koneksi-Device-melalui-Webhook-WhatsApp.jpg","width":1408,"height":768,"caption":"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp"},{"@type":"BreadcrumbList","@id":"https:\/\/whapi.id\/blog\/cara-mengecek-status-koneksi-device-melalui-webhook-whatsapp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Beranda","item":"https:\/\/whapi.id\/blog\/"},{"@type":"ListItem","position":2,"name":"Cara Mengecek Status Koneksi Device melalui Webhook WhatsApp"}]},{"@type":"WebSite","@id":"https:\/\/whapi.id\/blog\/#website","url":"https:\/\/whapi.id\/blog\/","name":"WHAPI | BLOG","description":"Blog Resmi Whapi.id Temukan tips praktis, panduan teknis, dan informasi terbaru seputar WhatsApp API, chatbot, serta otomasi bisnis. Ditulis oleh tim ahli untuk membantu meningkatkan pelayanan, efisiensi operasional, dan penjualan bisnis secara berkelanjutan.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/whapi.id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Person","@id":"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a","name":"Doveriz","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/whapi.id\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2797b0bc9cdfb3ca0fbc22a3708768605e7bee3cfa5ec0b6c98c8511a1378252?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2797b0bc9cdfb3ca0fbc22a3708768605e7bee3cfa5ec0b6c98c8511a1378252?s=96&d=mm&r=g","caption":"Doveriz"},"description":"Saya adalah Developer dan penulis Blog Whapi.id serta Fullstack Developer spesialisasi pengembangan aplikasi berbasis web dan chatbot automation untuk berbagai platform bisnis.","sameAs":["https:\/\/whapi.id\/blog"],"url":"https:\/\/whapi.id\/blog\/author\/whapi\/"}]}},"_links":{"self":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/comments?post=1648"}],"version-history":[{"count":1,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1648\/revisions"}],"predecessor-version":[{"id":1650,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1648\/revisions\/1650"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/media\/1649"}],"wp:attachment":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/media?parent=1648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/categories?post=1648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/tags?post=1648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}