{"id":1661,"date":"2026-10-12T10:10:22","date_gmt":"2026-10-12T10:10:22","guid":{"rendered":"https:\/\/whapi.id\/blog\/?p=1661"},"modified":"2026-10-05T03:33:25","modified_gmt":"2026-10-05T03:33:25","slug":"cara-mengatasi-pesan-whatsapp-gagal-terkirim","status":"publish","type":"post","link":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/","title":{"rendered":"Cara Mengatasi Pesan WhatsApp Gagal Terkirim"},"content":{"rendered":"<p>Pesan WhatsApp yang gagal terkirim dari API dapat disebabkan oleh masalah pada koneksi device, request API, nomor tujuan, konfigurasi server, atau proses pengiriman. Cara Mengatasi Pesan WhatsApp Gagal Terkirim sebaiknya dilakukan secara berurutan agar masalah dapat ditemukan tanpa mengubah banyak konfigurasi sekaligus.<\/p>\n<p>Artikel ini membahas langkah troubleshooting ketika sistem sudah memiliki fungsi pengiriman WhatsApp, tetapi pesan tidak sampai ke penerima.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg\" alt=\"Cara Mengatasi Pesan WhatsApp Gagal Terkirim\" width=\"1408\" height=\"768\" class=\"alignnone size-full wp-image-1662\" srcset=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg 1408w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim-300x164.jpg 300w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim-1024x559.jpg 1024w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim-768x419.jpg 768w\" sizes=\"(max-width: 1408px) 100vw, 1408px\" \/><\/p>\n<h2 id=\"1-pastikan-device-whatsapp-sudah-terhubung\">1. Pastikan Device WhatsApp Sudah Terhubung<\/h2>\n<p>Langkah pertama adalah memeriksa status device yang digunakan untuk mengirim pesan.<\/p>\n<p>API membutuhkan device yang aktif dan terhubung sebelum pesan dapat dikirim. Jika device sedang terputus, request pengiriman tidak dapat diproses secara normal.<\/p>\n<p>Periksa status device melalui dashboard atau API status perangkat.<\/p>\n<p>Whapi menyediakan endpoint untuk mengambil status koneksi perangkat. Status <code>CONNECTED<\/code> menunjukkan device aktif dan siap digunakan untuk mengirim atau menerima pesan. :contentReference[oaicite:0]{index=0}<\/p>\n<p>Jika status menunjukkan kondisi seperti <code>SERVICE_OFF<\/code>, <code>SERVICE_SCAN<\/code>, atau <code>PAIRING<\/code>, selesaikan proses koneksi terlebih dahulu.<\/p>\n<p>Urutan pengecekan:<\/p>\n<ol>\n<li>Pastikan service device aktif.<\/li>\n<li>Pastikan nomor WhatsApp sudah terhubung.<\/li>\n<li>Pastikan status berubah menjadi <code>CONNECTED<\/code>.<\/li>\n<li>Setelah itu, lakukan pengiriman pesan kembali.<\/li>\n<\/ol>\n<p>Jika device sering berubah menjadi terputus, masalahnya perlu diperiksa sebagai masalah koneksi device, bukan sekadar error pada request pengiriman.<\/p>\n<h2 id=\"2-coba-kirim-pesan-dari-dashboard\">2. Coba Kirim Pesan dari Dashboard<\/h2>\n<p>Sebelum memeriksa kode aplikasi, lakukan pengujian langsung dari dashboard.<\/p>\n<p>Tujuannya untuk memisahkan masalah antara:<\/p>\n<ul>\n<li>device WhatsApp,<\/li>\n<li>konfigurasi API,<\/li>\n<li>dan kode aplikasi sendiri.<\/li>\n<\/ul>\n<p>Jika pesan dari dashboard berhasil tetapi pesan dari aplikasi gagal, kemungkinan masalah berada pada request yang dikirim aplikasi.<\/p>\n<p>Sebaliknya, jika pengiriman dari dashboard juga gagal, pemeriksaan sebaiknya dimulai dari status device dan konfigurasi layanan.<\/p>\n<p>Cara ini lebih cepat daripada langsung mengubah kode backend.<\/p>\n<h2 id=\"3-periksa-api-key\">3. Periksa API Key<\/h2>\n<p>API Key digunakan untuk mengidentifikasi device yang digunakan dalam request.<\/p>\n<p>Pastikan API Key yang dikirim oleh aplikasi:<\/p>\n<ul>\n<li>berasal dari device yang benar,<\/li>\n<li>masih aktif,<\/li>\n<li>tidak tertukar dengan device lain,<\/li>\n<li>tidak memiliki spasi tambahan,<\/li>\n<li>dan benar-benar dikirim dalam request.<\/li>\n<\/ul>\n<p>Simpan API Key sebagai konfigurasi server, bukan ditulis berulang kali di banyak bagian kode.<\/p>\n<p>Contoh konfigurasi:<\/p>\n<pre><code class=\"lang-env\">WHAPI_API_KEY=API_KEY_DEVICE\r\n`\r\n<\/code><\/pre>\n<p>Kemudian gunakan konfigurasi tersebut saat melakukan request.<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">const<\/span> apiKey = <span class=\"hljs-built_in\">process<\/span>.env.WHAPI_API_KEY;\r\n<\/code><\/pre>\n<p>Jika API Key yang digunakan berbeda dengan device yang diperiksa di dashboard, proses troubleshooting bisa menghasilkan kesimpulan yang salah.<\/p>\n<h2 id=\"4-periksa-nomor-tujuan\">4. Periksa Nomor Tujuan<\/h2>\n<p>Nomor tujuan juga perlu diperiksa sebelum mengubah kode pengiriman.<\/p>\n<p>Pastikan nomor:<\/p>\n<ul>\n<li>menggunakan format yang sesuai,<\/li>\n<li>tidak memiliki karakter tambahan,<\/li>\n<li>tidak menggunakan format nomor lokal yang salah,<\/li>\n<li>dan merupakan nomor WhatsApp yang valid.<\/li>\n<\/ul>\n<p>Contoh format nomor:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-number\">6281234567890<\/span>\r\n<\/code><\/pre>\n<p>Hindari format seperti:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-number\">081234567890<\/span>\r\n+<span class=\"hljs-number\">6281234567890<\/span>\r\n<span class=\"hljs-number\">62812<\/span><span class=\"hljs-number\">-3456<\/span><span class=\"hljs-number\">-7890<\/span>\r\n<\/code><\/pre>\n<p>Jika sistem menerima nomor dari database atau form pengguna, lakukan normalisasi sebelum nomor dikirim ke API.<\/p>\n<p>Contoh sederhana:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">normalizePhone<\/span>(<span class=\"hljs-params\">phone<\/span>) <\/span>{\r\n    <span class=\"hljs-keyword\">return<\/span> phone\r\n        .replace(<span class=\"hljs-regexp\">\/\\D\/g<\/span>, <span class=\"hljs-string\">''<\/span>)\r\n        .replace(<span class=\"hljs-regexp\">\/^0\/<\/span>, <span class=\"hljs-string\">'62'<\/span>);\r\n}\r\n<\/code><\/pre>\n<p>Namun normalisasi harus disesuaikan dengan format nomor yang digunakan sistem. Jangan mengubah nomor secara otomatis jika sistem sudah menyimpan format internasional.<\/p>\n<h2 id=\"5-periksa-http-method-dan-request-body\">5. Periksa HTTP Method dan Request Body<\/h2>\n<p>Kesalahan pengiriman sering berasal dari request yang tidak sesuai dengan endpoint.<\/p>\n<p>Periksa:<\/p>\n<ul>\n<li>HTTP method,<\/li>\n<li>URL endpoint,<\/li>\n<li>Content-Type,<\/li>\n<li>API Key,<\/li>\n<li>nomor tujuan,<\/li>\n<li>isi pesan,<\/li>\n<li>dan parameter tambahan.<\/li>\n<\/ul>\n<p>Whapi menyediakan <a href=\"https:\/\/docs.whapi.id\/api\/send-message\">Dokumentasi pengiriman pesan Whapi<\/a> untuk endpoint pengiriman pesan. Gunakan dokumentasi tersebut sebagai acuan ketika memeriksa request.<\/p>\n<p>Contoh request menggunakan <code>application\/x-www-form-urlencoded<\/code>:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-keyword\">params<\/span> = <span class=\"hljs-keyword\">new<\/span> URLSearchParams();\r\n\r\n<span class=\"hljs-keyword\">params<\/span>.append(<span class=\"hljs-string\">'apiKey'<\/span>, process.env.WHAPI_API_KEY);\r\n<span class=\"hljs-keyword\">params<\/span>.append(<span class=\"hljs-string\">'phone'<\/span>, <span class=\"hljs-string\">'6281234567890'<\/span>);\r\n<span class=\"hljs-keyword\">params<\/span>.append(<span class=\"hljs-string\">'message'<\/span>, <span class=\"hljs-string\">'Pesan percobaan dari API'<\/span>);\r\n\r\n<span class=\"hljs-keyword\">const<\/span> response = <span class=\"hljs-keyword\">await<\/span> fetch(<span class=\"hljs-string\">'ENDPOINT_PENGIRIMAN'<\/span>, {\r\n    method: <span class=\"hljs-string\">'POST'<\/span>,\r\n    headers: {\r\n        <span class=\"hljs-string\">'Content-Type'<\/span>: <span class=\"hljs-string\">'application\/x-www-form-urlencoded'<\/span>\r\n    },\r\n    body: <span class=\"hljs-keyword\">params<\/span>\r\n});\r\n\r\n<span class=\"hljs-keyword\">const<\/span> result = <span class=\"hljs-keyword\">await<\/span> response.json();\r\n\r\nconsole.log(result);\r\n<\/code><\/pre>\n<p>Jangan langsung menyimpulkan device bermasalah sebelum memastikan request yang dikirim aplikasi memang sesuai dengan endpoint.<\/p>\n<h2 id=\"6-tampilkan-response-api-di-log\">6. Tampilkan Response API di Log<\/h2>\n<p>Jangan hanya mencatat bahwa request gagal.<\/p>\n<p>Simpan response dari API agar dapat diketahui bagian mana yang bermasalah.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">try<\/span> {\r\n    <span class=\"hljs-keyword\">const<\/span> response = <span class=\"hljs-function\">await <span class=\"hljs-title\">fetch<\/span><span class=\"hljs-params\">(url, options)<\/span><\/span>;\r\n    <span class=\"hljs-keyword\">const<\/span> result = <span class=\"hljs-function\">await response.<span class=\"hljs-title\">json<\/span><span class=\"hljs-params\">()<\/span><\/span>;\r\n\r\n    console.log(<span class=\"hljs-string\">'HTTP Status:'<\/span>, response.status);\r\n    console.log(<span class=\"hljs-string\">'API Response:'<\/span>, result);\r\n} <span class=\"hljs-keyword\">catch<\/span> (<span class=\"hljs-keyword\">error<\/span>) {\r\n    console.<span class=\"hljs-keyword\">error<\/span>(<span class=\"hljs-string\">'Request Error:'<\/span>, <span class=\"hljs-keyword\">error<\/span>);\r\n}\r\n<\/code><\/pre>\n<p>Informasi yang sebaiknya dicatat:<\/p>\n<pre><code class=\"lang-text\">Waktu request\r\nDevice\r\nNomor tujuan\r\nHTTP status\r\nResponse API\r\nID pesan jika tersedia\r\n<span class=\"hljs-keyword\">Error <\/span>dari client\r\n<\/code><\/pre>\n<p>Jangan mencatat API Key secara penuh ke log produksi.<\/p>\n<p>Jika response memberikan informasi kesalahan, gunakan informasi tersebut sebagai dasar perbaikan. Hindari langsung melakukan retry tanpa mengetahui apakah error tersebut dapat dicoba kembali.<\/p>\n<h2 id=\"7-bedakan-error-request-dan-pesan-gagal-terkirim\">7. Bedakan Error Request dan Pesan Gagal Terkirim<\/h2>\n<p>Ada dua kondisi yang sering dianggap sama.<\/p>\n<h3 id=\"request-api-gagal\">Request API gagal<\/h3>\n<p>Aplikasi tidak berhasil melakukan request atau API mengembalikan error.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-text\">HTTP <span class=\"hljs-number\">400<\/span>\r\nHTTP <span class=\"hljs-number\">401<\/span>\r\nHTTP <span class=\"hljs-number\">403<\/span>\r\nHTTP <span class=\"hljs-number\">404<\/span>\r\nHTTP <span class=\"hljs-number\">429<\/span>\r\n<\/code><\/pre>\n<p>Masalah pada kondisi ini perlu diperiksa dari request, autentikasi, endpoint, konfigurasi, atau batas penggunaan.<\/p>\n<h3 id=\"request-berhasil-tetapi-pesan-gagal\">Request berhasil tetapi pesan gagal<\/h3>\n<p>Pada kondisi lain, API dapat menerima request dan menghasilkan ID pesan, tetapi proses pengiriman berikutnya gagal.<\/p>\n<p>Karena itu, status HTTP response tidak selalu cukup untuk menentukan apakah pesan benar-benar sampai ke penerima.<\/p>\n<p>Untuk kasus ini, gunakan webhook atau status pesan untuk memantau proses setelah request dikirim.<\/p>\n<p>Whapi menyediakan event <code>message_ack<\/code> untuk perubahan status pesan seperti <code>sent<\/code>, <code>delivered<\/code>, <code>read<\/code>, dan <code>failed<\/code>dihalaman <a href=\"https:\/\/docs.whapi.id\/getting-started\/webhook-integration\" title=\"Integrasi Notifikasi Webhook | WHAPI Documentation\">WHAPI Documentation untuk Integrasi Notifikasi Webhook<\/a><\/p>\n<h2 id=\"8-gunakan-id-pesan-untuk-melacak-pengiriman\">8. Gunakan ID Pesan untuk Melacak Pengiriman<\/h2>\n<p>Jika response pengiriman menghasilkan ID pesan, simpan ID tersebut di database.<\/p>\n<p>Contoh struktur sederhana:<\/p>\n<pre><code class=\"lang-text\">messages\r\n\u251c\u2500\u2500 <span class=\"hljs-built_in\">id<\/span>\r\n\u251c\u2500\u2500 phone\r\n\u251c\u2500\u2500 message\r\n\u251c\u2500\u2500 id_message\r\n\u251c\u2500\u2500 status\r\n\u251c\u2500\u2500 created_at\r\n\u2514\u2500\u2500 updated_at\r\n<\/code><\/pre>\n<p>Saat request berhasil dibuat:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-attr\">status<\/span> = queued\r\n<\/code><\/pre>\n<p>Kemudian status dapat diperbarui berdasarkan event yang diterima dari webhook:<\/p>\n<pre><code class=\"lang-text\">queued\r\n\u2193\r\nsent\r\n\u2193\r\ndelivered\r\n\u2193\r\n<span class=\"hljs-built_in\">read<\/span>\r\n<\/code><\/pre>\n<p>Jika pengiriman gagal:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-attribute\">queued<\/span>\r\n\u2193\r\nfailed\r\n<\/code><\/pre>\n<p>Dengan cara ini, sistem tidak hanya mengetahui bahwa request API pernah dilakukan, tetapi juga dapat mengetahui perkembangan pengiriman pesan.<\/p>\n<h2 id=\"9-periksa-webhook-status-pesan\">9. Periksa Webhook Status Pesan<\/h2>\n<p>Webhook berguna untuk mengetahui perubahan status pesan setelah proses pengiriman dimulai.<\/p>\n<p>Pastikan webhook:<\/p>\n<ol>\n<li>Menggunakan URL yang dapat diakses server.<\/li>\n<li>Menerima HTTP POST.<\/li>\n<li>Membaca payload dengan benar.<\/li>\n<li>Mengaktifkan event status pesan.<\/li>\n<li>Mengembalikan HTTP 200 setelah menerima data.<\/li>\n<\/ol>\n<p>Whapi menyediakan event <code>message_ack<\/code> untuk status pesan dan <code>change_state<\/code> untuk perubahan koneksi device. <\/p>\n<p>Contoh receiver sederhana:<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whapi'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n    const payload = req.body;\r\n\r\n    <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Webhook:'<\/span>, payload);\r\n\r\n    <span class=\"hljs-regexp\">\/\/<\/span> Simpan atau proses status pesan di sini\r\n\r\n    res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Jangan menunggu seluruh proses bisnis selesai sebelum memberikan response kepada webhook jika proses tersebut membutuhkan waktu lama.<\/p>\n<p>Simpan event terlebih dahulu, berikan response yang sesuai, kemudian proses data melalui worker atau queue jika diperlukan.<\/p>\n<h2 id=\"10-jangan-langsung-retry-semua-pesan\">10. Jangan Langsung Retry Semua Pesan<\/h2>\n<p>Retry dapat membantu ketika terjadi gangguan sementara, tetapi retry tanpa aturan dapat membuat masalah semakin besar.<\/p>\n<p>Misalnya, sistem mengirim pesan berkali-kali karena tidak membedakan antara:<\/p>\n<ul>\n<li>request timeout,<\/li>\n<li>API error,<\/li>\n<li>device offline,<\/li>\n<li>nomor tidak valid,<\/li>\n<li>dan pesan yang sebenarnya sudah diterima.<\/li>\n<\/ul>\n<p>Gunakan retry hanya untuk kondisi yang memang dapat dicoba kembali.<\/p>\n<p>Contoh sederhana:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">const<\/span> maxRetry = <span class=\"hljs-number\">3<\/span>;\r\n\r\n<span class=\"hljs-keyword\">for<\/span> (let attempt = <span class=\"hljs-number\">1<\/span>; attempt &lt;= maxRetry; attempt++) {\r\n    <span class=\"hljs-keyword\">try<\/span> {\r\n        <span class=\"hljs-keyword\">const<\/span> response = <span class=\"hljs-function\">await <span class=\"hljs-title\">sendMessage<\/span><span class=\"hljs-params\">()<\/span><\/span>;\r\n\r\n        <span class=\"hljs-keyword\">if<\/span> (response.ok) {\r\n            <span class=\"hljs-keyword\">break<\/span>;\r\n        }\r\n    } <span class=\"hljs-keyword\">catch<\/span> (<span class=\"hljs-keyword\">error<\/span>) {\r\n        <span class=\"hljs-keyword\">if<\/span> (attempt === maxRetry) {\r\n            <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">error<\/span>;\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>Untuk sistem produksi, retry sebaiknya menggunakan jeda antarpercobaan dan pencatatan status agar pesan tidak terkirim berulang kali.<\/p>\n<h2 id=\"11-periksa-timeout-dan-koneksi-server\">11. Periksa Timeout dan Koneksi Server<\/h2>\n<p>Request dapat gagal bukan karena WhatsApp, tetapi karena server aplikasi tidak berhasil menyelesaikan komunikasi dengan API.<\/p>\n<p>Periksa:<\/p>\n<ul>\n<li>koneksi internet server,<\/li>\n<li>DNS,<\/li>\n<li>firewall,<\/li>\n<li>outbound connection,<\/li>\n<li>timeout HTTP client,<\/li>\n<li>proxy,<\/li>\n<li>dan konfigurasi SSL.<\/li>\n<\/ul>\n<p>Jika request membutuhkan waktu terlalu lama, aplikasi dapat menganggap request gagal meskipun proses di sisi API masih berjalan.<\/p>\n<p>Karena itu, status request dan status pesan perlu disimpan secara terpisah.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">API request\r\n   \u2193\r\naccepted\r\n   \u2193\r\n<span class=\"hljs-keyword\">message<\/span> ID\r\n   \u2193\r\n<span class=\"hljs-keyword\">message<\/span> status\r\n   \u2193\r\ndelivered \/ <span class=\"hljs-keyword\">read<\/span> \/ failed\r\n<\/code><\/pre>\n<p>Struktur ini membuat sistem lebih mudah membedakan error komunikasi dengan status pengiriman pesan.<\/p>\n<h2 id=\"12-periksa-isi-pesan-dinamis\">12. Periksa Isi Pesan Dinamis<\/h2>\n<p>Pesan yang dibuat dari template atau database juga dapat menyebabkan masalah.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">const<\/span> message = <span class=\"hljs-string\">`Halo <span class=\"hljs-subst\">${customer.name}<\/span>, pesanan <span class=\"hljs-subst\">${order.id}<\/span> sudah diproses.`<\/span>;\r\n<\/code><\/pre>\n<p>Jika <code>customer.name<\/code> atau <code>order.id<\/code> tidak tersedia, hasilnya dapat menjadi:<\/p>\n<pre><code class=\"lang-text\">Halo <span class=\"hljs-literal\">undefined<\/span>, pesanan <span class=\"hljs-literal\">undefined<\/span> sudah diproses.\r\n<\/code><\/pre>\n<p>Karena itu, validasi data sebelum request.<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">if<\/span> (!customer?.name || !<span class=\"hljs-keyword\">order<\/span>?.id) {\r\n    <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">new<\/span> Error(<span class=\"hljs-string\">'Data pesan tidak lengkap'<\/span>);\r\n}\r\n<\/code><\/pre>\n<p>Untuk sistem notifikasi transaksi, validasi sebaiknya dilakukan sebelum pesan dimasukkan ke antrean pengiriman.<\/p>\n<h2 id=\"13-cek-apakah-device-logout-setelah-pesan-gagal\">13. Cek Apakah Device Logout Setelah Pesan Gagal<\/h2>\n<p>Jika sebelumnya pengiriman berjalan normal kemudian semua pesan mulai gagal, periksa status device.<\/p>\n<p>Jangan hanya memeriksa kode aplikasi.<\/p>\n<p>Device yang kehilangan koneksi dapat membuat seluruh request berikutnya gagal meskipun kode pengiriman tidak berubah.<\/p>\n<p>Status device dapat diperiksa melalui endpoint status koneksi atau webhook perubahan koneksi. Whapi menyediakan status seperti <code>CONNECTED<\/code>, <code>SERVICE_OFF<\/code>, <code>SERVICE_SCAN<\/code>, dan <code>PAIRING<\/code>.<\/p>\n<p>Jika masalah terjadi berulang setelah device kembali terhubung, lanjutkan pemeriksaan pada log device dan waktu terjadinya disconnect.<\/p>\n<h2 id=\"14-gunakan-urutan-troubleshooting-yang-konsisten\">14. Gunakan Urutan Troubleshooting yang Konsisten<\/h2>\n<p>Agar pemeriksaan tidak berputar-putar, gunakan urutan berikut:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-bullet\">1. <\/span>Cek status device\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">2. <\/span>Tes kirim dari dashboard\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">3. <\/span>Cek API Key\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">4. <\/span>Cek nomor tujuan\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">5. <\/span>Cek endpoint dan HTTP method\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">6. <\/span>Cek Content-Type dan request body\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">7. <\/span>Cek HTTP response\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">8. <\/span>Simpan ID pesan\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">9. <\/span>Cek status melalui webhook\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">10. <\/span>Cek retry dan timeout\r\n<span class=\"hljs-code\">       \u2193<\/span>\r\n<span class=\"hljs-bullet\">11. <\/span>Periksa log server\r\n<\/code><\/pre>\n<p>Urutan ini membantu menentukan lokasi masalah sebelum perubahan kode dilakukan.<\/p>\n<h2 id=\"15-buat-log-pengiriman-yang-mudah-dicari\">15. Buat Log Pengiriman yang Mudah Dicari<\/h2>\n<p>Untuk aplikasi yang mengirim banyak pesan, log sederhana seperti:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-attribute\">Pesan gagal dikirim<\/span>\r\n<\/code><\/pre>\n<p>tidak cukup.<\/p>\n<p>Gunakan informasi seperti:<\/p>\n<pre><code class=\"lang-json\">{\r\n    <span class=\"hljs-attr\">\"phone\"<\/span>: <span class=\"hljs-string\">\"6281234567890\"<\/span>,\r\n    <span class=\"hljs-attr\">\"message_id\"<\/span>: <span class=\"hljs-string\">\"MESSAGE_ID\"<\/span>,\r\n    <span class=\"hljs-attr\">\"status\"<\/span>: <span class=\"hljs-string\">\"failed\"<\/span>,\r\n    <span class=\"hljs-attr\">\"http_status\"<\/span>: <span class=\"hljs-number\">400<\/span>,\r\n    <span class=\"hljs-attr\">\"created_at\"<\/span>: <span class=\"hljs-string\">\"2026-10-04T10:30:00+07:00\"<\/span>\r\n}\r\n<\/code><\/pre>\n<p>Dengan data tersebut, satu pesan dapat dilacak dari request awal sampai status akhirnya.<\/p>\n<p>Untuk volume tinggi, simpan log pengiriman ke database atau sistem logging terpusat daripada hanya mengandalkan file log server.<\/p>\n<h2 id=\"16-buat-status-pengiriman-di-database\">16. Buat Status Pengiriman di Database<\/h2>\n<p>Sistem produksi sebaiknya tidak hanya memiliki status:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-keyword\">success\r\n<\/span>failed\r\n<\/code><\/pre>\n<p>Gunakan status yang menggambarkan proses secara lebih jelas.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">pending\r\nsending\r\nsent\r\ndelivered\r\n<span class=\"hljs-built_in\">read<\/span>\r\nfailed\r\n<\/code><\/pre>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-text\">pending\r\n   \u2193\r\nsending\r\n   \u2193\r\nsent\r\n   \u2193\r\ndelivered\r\n   \u2193\r\n<span class=\"hljs-built_in\">read<\/span>\r\n<\/code><\/pre>\n<p>Jika terjadi kegagalan:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-attribute\">sending<\/span>\r\n   \u2193\r\nfailed\r\n<\/code><\/pre>\n<p>Status ini dapat digunakan untuk dashboard, laporan transaksi, retry, dan pemeriksaan pesan secara individual.<\/p>\n<h2 id=\"17-kapan-pesan-perlu-dikirim-ulang-\">17. Kapan Pesan Perlu Dikirim Ulang?<\/h2>\n<p>Pesan tidak selalu perlu dikirim ulang ketika statusnya gagal.<\/p>\n<p>Sebelum retry, periksa:<\/p>\n<ul>\n<li>apakah device sudah CONNECTED,<\/li>\n<li>apakah error bersifat sementara,<\/li>\n<li>apakah request sebelumnya sudah menghasilkan ID pesan,<\/li>\n<li>apakah status akhir sudah diterima melalui webhook,<\/li>\n<li>dan apakah retry dapat menyebabkan pesan ganda.<\/li>\n<\/ul>\n<p>Untuk notifikasi transaksi, duplikasi pesan dapat lebih bermasalah daripada pesan yang terlambat.<\/p>\n<p>Gunakan ID transaksi atau ID pesan sebagai acuan untuk mencegah pengiriman yang sama diproses berkali-kali.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-keyword\">order_id <\/span>= INV-2026-00125\r\n\r\n<span class=\"hljs-keyword\">Jika <\/span>sudah pernah <span class=\"hljs-keyword\">dikirim:\r\n<\/span><span class=\"hljs-keyword\">jangan <\/span>kirim ulang secara otomatis.\r\n<\/code><\/pre>\n<h2 id=\"18-checklist-sebelum-mengubah-kode\">18. Checklist Sebelum Mengubah Kode<\/h2>\n<p>Ketika pesan WhatsApp gagal terkirim, periksa checklist berikut:<\/p>\n<ul>\n<li>[ ] Device berstatus <code>CONNECTED<\/code><\/li>\n<li>[ ] Pengiriman dari dashboard berhasil<\/li>\n<li>[ ] API Key sesuai dengan device<\/li>\n<li>[ ] Nomor tujuan sudah dinormalisasi<\/li>\n<li>[ ] Endpoint benar<\/li>\n<li>[ ] HTTP method benar<\/li>\n<li>[ ] Content-Type sesuai<\/li>\n<li>[ ] Request body lengkap<\/li>\n<li>[ ] HTTP response sudah dicatat<\/li>\n<li>[ ] ID pesan disimpan<\/li>\n<li>[ ] Webhook status aktif<\/li>\n<li>[ ] Event <code>message_ack<\/code> diterima<\/li>\n<li>[ ] Timeout tidak terlalu pendek<\/li>\n<li>[ ] Retry tidak menyebabkan duplikasi<\/li>\n<li>[ ] Log server dapat ditelusuri<\/li>\n<\/ul>\n<p>Jika semua pemeriksaan tersebut sudah dilakukan, lokasi masalah biasanya dapat dipersempit ke device, request aplikasi, koneksi server, atau proses pengiriman setelah request diterima.<\/p>\n<h2 id=\"kesimpulan\">Kesimpulan<\/h2>\n<p>Cara mengatasi pesan WhatsApp gagal terkirim dari API sebaiknya dimulai dari pemeriksaan device, kemudian request API, response, dan status pesan.<\/p>\n<p>Jangan hanya melihat apakah HTTP request berhasil. Sistem pengiriman yang baik perlu membedakan antara <strong>request diterima API<\/strong> dan <strong>pesan benar-benar berhasil dikirim<\/strong>.<\/p>\n<p>Dengan menyimpan ID pesan, memantau <code>message_ack<\/code> melalui webhook, mencatat error, dan menerapkan retry secara terkontrol, proses pengiriman WhatsApp menjadi lebih mudah dipantau dan diperbaiki ketika terjadi kegagalan.<\/p>\n<p>Untuk masalah yang lebih spesifik, seperti pesan gagal karena device sering terputus atau logout, pemeriksaan perlu dilanjutkan pada sisi koneksi device.<\/p>\n<pre><code>\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Pesan WhatsApp yang gagal terkirim dari API dapat disebabkan oleh masalah pada koneksi device, request API, nomor tujuan, konfigurasi server, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1662,"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-1661","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 Mengatasi Pesan WhatsApp Gagal Terkirim - WHAPI | BLOG<\/title>\n<meta name=\"description\" content=\"Cara mengatasi pesan WhatsApp gagal terkirim dari API dengan langkah pengecekan device, request, nomor tujuan, respons API, dan status pesan.\" \/>\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-mengatasi-pesan-whatsapp-gagal-terkirim\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cara Mengatasi Pesan WhatsApp Gagal Terkirim - WHAPI | BLOG\" \/>\n<meta property=\"og:description\" content=\"Cara mengatasi pesan WhatsApp gagal terkirim dari API dengan langkah pengecekan device, request, nomor tujuan, respons API, dan status pesan.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/\" \/>\n<meta property=\"og:site_name\" content=\"WHAPI | BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-12T10:10:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.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=\"1 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/\",\"url\":\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/\",\"name\":\"Cara Mengatasi Pesan WhatsApp Gagal Terkirim - WHAPI | BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/whapi.id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg\",\"datePublished\":\"2026-10-12T10:10:22+00:00\",\"author\":{\"@id\":\"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a\"},\"description\":\"Cara mengatasi pesan WhatsApp gagal terkirim dari API dengan langkah pengecekan device, request, nomor tujuan, respons API, dan status pesan.\",\"breadcrumb\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#primaryimage\",\"url\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg\",\"contentUrl\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg\",\"width\":1408,\"height\":768,\"caption\":\"Cara Mengatasi Pesan WhatsApp Gagal Terkirim\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Beranda\",\"item\":\"https:\/\/whapi.id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cara Mengatasi Pesan WhatsApp Gagal Terkirim\"}]},{\"@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 Mengatasi Pesan WhatsApp Gagal Terkirim - WHAPI | BLOG","description":"Cara mengatasi pesan WhatsApp gagal terkirim dari API dengan langkah pengecekan device, request, nomor tujuan, respons API, dan status pesan.","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-mengatasi-pesan-whatsapp-gagal-terkirim\/","og_locale":"id_ID","og_type":"article","og_title":"Cara Mengatasi Pesan WhatsApp Gagal Terkirim - WHAPI | BLOG","og_description":"Cara mengatasi pesan WhatsApp gagal terkirim dari API dengan langkah pengecekan device, request, nomor tujuan, respons API, dan status pesan.","og_url":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/","og_site_name":"WHAPI | BLOG","article_published_time":"2026-10-12T10:10:22+00:00","og_image":[{"width":1408,"height":768,"url":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg","type":"image\/jpeg"}],"author":"Doveriz","twitter_card":"summary_large_image","twitter_misc":{"Ditulis oleh":"Doveriz","Estimasi waktu membaca":"1 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/","url":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/","name":"Cara Mengatasi Pesan WhatsApp Gagal Terkirim - WHAPI | BLOG","isPartOf":{"@id":"https:\/\/whapi.id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#primaryimage"},"image":{"@id":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#primaryimage"},"thumbnailUrl":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg","datePublished":"2026-10-12T10:10:22+00:00","author":{"@id":"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a"},"description":"Cara mengatasi pesan WhatsApp gagal terkirim dari API dengan langkah pengecekan device, request, nomor tujuan, respons API, dan status pesan.","breadcrumb":{"@id":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#primaryimage","url":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg","contentUrl":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/10\/Cara-Mengatasi-Pesan-WhatsApp-Gagal-Terkirim.jpg","width":1408,"height":768,"caption":"Cara Mengatasi Pesan WhatsApp Gagal Terkirim"},{"@type":"BreadcrumbList","@id":"https:\/\/whapi.id\/blog\/cara-mengatasi-pesan-whatsapp-gagal-terkirim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Beranda","item":"https:\/\/whapi.id\/blog\/"},{"@type":"ListItem","position":2,"name":"Cara Mengatasi Pesan WhatsApp Gagal Terkirim"}]},{"@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\/1661","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=1661"}],"version-history":[{"count":2,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1661\/revisions"}],"predecessor-version":[{"id":1664,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1661\/revisions\/1664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/media\/1662"}],"wp:attachment":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/media?parent=1661"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/categories?post=1661"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/tags?post=1661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}