DEV Community

Cover image for Cara Kirim SMS dan WhatsApp Lebih Cepat dengan API Sent.dm
Walse
Walse

Posted on • Originally published at apidog.com

Cara Kirim SMS dan WhatsApp Lebih Cepat dengan API Sent.dm

TL;DR / Jawaban Singkat

API Sent.dm menyediakan satu titik integrasi untuk mengirim pesan bisnis lewat SMS dan WhatsApp. Jika digabungkan dengan Apidog, Anda bisa menyimpan kredensial di environment, menguji permintaan tanpa skrip sekali pakai, memvalidasi payload webhook, dan mendokumentasikan workflow pengiriman pesan di satu tempat.

Coba Apidog hari ini

Pendahuluan

Mayoritas proyek pengiriman pesan sering tersendat pada detail operasional: kunci API, identitas pengirim, ID template, keamanan webhook, aturan channel, dan cara testing tanpa mengirim pesan sungguhan.

Sent.dm menawarkan API pengiriman pesan terintegrasi untuk SMS dan WhatsApp. Dengan satu endpoint, developer bisa mengatur verifikasi akun, channel, pengiriman berbasis template, kontak, webhook, dan playground dashboard untuk testing.

💡 Jika ingin setup lebih efisien, Apidog bisa jadi alat pendamping ideal. Anda dapat mengimpor referensi API Sent, membuat environment reusable untuk x-api-key dan x-sender-id, membangun skenario pengujian (termasuk webhook), serta membagikan koleksi ke tim Anda.

Apa yang Diselesaikan oleh API Sent.dm

Sent.dm dibuat untuk tim yang ingin menjangkau pengguna di banyak channel tanpa perlu integrasi terpisah. Semua kompleksitas pengiriman pesan (SMS, WhatsApp, payload channel, monitoring) dikonsolidasikan dalam satu platform.

sentdm-architecture

Dari dokumentasi resmi:

  • Satu base URL API untuk workflow pesan
  • Autentikasi header: x-api-key
  • Model pengirim: x-sender-id
  • Pengiriman pesan berbasis template
  • Manajemen kontak & audiens
  • Webhook untuk event pengiriman & template
  • Routing cerdas & failover di tingkat platform

Ini penting karena sistem pengiriman pesan butuh:

  • Payload konsisten
  • Reusable template dengan keamanan
  • Tracking event: delivered, failed, queued
  • Pengujian tanpa membocorkan secret ke frontend
  • Dokumentasi yang bisa digunakan developer & QA

Tantangan utamanya:

Aplikasi -> API Pesan -> Aturan Channel -> Event Delivery -> Retry/Status Logic
Enter fullscreen mode Exit fullscreen mode

Jika tiap bagian di tool berbeda, debugging lambat. Solusinya: modelkan seluruh workflow di platform API seperti Apidog sejak awal.

Bagaimana API Sent.dm Bekerja

Sent.dm bertindak sebagai middleware cerdas antara aplikasi Anda dan channel downstream. Anda kirim satu permintaan, Sent memilih jalur terbaik (routing, recipient context, channel availability).

Fokus utama developer: urutan setup & model kredensial.

1. Penyiapan Akun & Kepatuhan

Mulai dengan pembuatan akun, verifikasi KYC, dan setup bisnis. Proses ini wajib karena menyangkut compliance, reputasi pengirim, dan batasan regional.

2. Penyiapan Channel

Ikuti panduan Sent untuk memilih nomor telepon dan menghubungkan WhatsApp Business. Dianjurkan menggunakan nomor sama untuk SMS & WhatsApp untuk konsistensi identitas merek.

3. Template

Template wajib dibuat sebelum mengirim pesan pertama. Artinya, pengiriman berbasis template adalah path utama, bukan edge case.

4. Kredensial API

Kredensial utama:

x-sender-id: YOUR_SENDER_ID
x-api-key: YOUR_API_KEY
Enter fullscreen mode Exit fullscreen mode

Referensi API v3 menekankan x-api-key sebagai header wajib. Selalu verifikasi kebutuhan header untuk endpoint/versi yang Anda gunakan di dashboard Sent.

5. Permintaan Pesan

Endpoint:

POST https://api.sent.dm/v2/messages/phone
Enter fullscreen mode Exit fullscreen mode

Payload contoh:

{
  "phoneNumber": "RECIPIENT_PHONE_NUMBER",
  "templateId": "TEMPLATE_ID"
}
Enter fullscreen mode Exit fullscreen mode

Implementasi tercepat: setup pengiriman berbasis template, lalu perluas workflow setelah request & delivery bisa diamati dengan andal.

Kirim Permintaan API Sent.dm Pertama Anda

Bangun permintaan yang mudah diuji dan dipelihara.

Contoh cURL

curl -X POST "https://api.sent.dm/v2/messages/phone" \
  -H "x-sender-id: YOUR_SENDER_ID" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumber": "RECIPIENT_PHONE_NUMBER",
    "templateId": "TEMPLATE_ID"
  }'
Enter fullscreen mode Exit fullscreen mode

Contoh JavaScript

const response = await fetch("https://api.sent.dm/v2/messages/phone", {
  method: "POST",
  headers: {
    "x-sender-id": process.env.SENT_SENDER_ID,
    "x-api-key": process.env.SENT_API_KEY,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    phoneNumber: process.env.TEST_PHONE_NUMBER,
    templateId: process.env.SENT_TEMPLATE_ID
  })
});

if (!response.ok) {
  throw new Error(`Sent request failed: ${response.status}`);
}

const data = await response.json();
console.log(data);
Enter fullscreen mode Exit fullscreen mode

Contoh Python

import os
import requests

response = requests.post(
    "https://api.sent.dm/v2/messages/phone",
    headers={
        "x-sender-id": os.environ["SENT_SENDER_ID"],
        "x-api-key": os.environ["SENT_API_KEY"],
        "Content-Type": "application/json",
    },
    json={
        "phoneNumber": os.environ["TEST_PHONE_NUMBER"],
        "templateId": os.environ["SENT_TEMPLATE_ID"],
    },
    timeout=30,
)

response.raise_for_status()
print(response.json())
Enter fullscreen mode Exit fullscreen mode

Respons sukses: HTTP 200 dan messageId. Tangkap messageId untuk pengujian di Apidog, logging, support workflow, dan webhook reconciliation.

Uji API Sent.dm di Apidog

Apidog bukan hanya runner request; ia memudahkan pengelolaan permintaan, variabel, testing, dokumentasi, & kolaborasi dalam satu workspace.

apidog-sample

Langkah 1: Buat Environment Sent

Buat environment di Apidog dengan variabel:

base_url = https://api.sent.dm
sender_id = YOUR_SENDER_ID
api_key = YOUR_API_KEY
template_id = YOUR_TEMPLATE_ID
test_phone = RECIPIENT_PHONE_NUMBER
Enter fullscreen mode Exit fullscreen mode

Manfaat:

  1. Secret produksi tidak hardcoded.
  2. Mudah switching antar sandbox/staging/live.
  3. Tim bisa reuse koleksi dengan credential masing-masing.

Langkah 2: Bangun Permintaan Sekali Saja

Buat permintaan baru di Apidog:

  • Method: POST
  • URL: {{base_url}}/v2/messages/phone
  • Header:
    • x-sender-id: {{sender_id}}
    • x-api-key: {{api_key}}
    • Content-Type: application/json
  • Body:
{
  "phoneNumber": "{{test_phone}}",
  "templateId": "{{template_id}}"
}
Enter fullscreen mode Exit fullscreen mode

Langkah 3: Tambahkan Assertions

Tambahkan test untuk validasi response:

pm.test("Status is 200", function () {
  pm.response.to.have.status(200);
});

pm.test("Response contains a messageId", function () {
  const json = pm.response.json();
  pm.expect(json.messageId).to.exist;
});
Enter fullscreen mode Exit fullscreen mode

Dengan ini, error halus langsung terdeteksi jika response berubah.

Langkah 4: Ubah Menjadi Skenario

Bangun workflow end-to-end:

  1. Kirim pesan
  2. Simpan messageId
  3. Cek status downstream (jika tersedia)
  4. Bandingkan event via webhook

Skenario ini memastikan workflow pesan Anda robust dan observable.

Langkah 5: Tambahkan Webhook ke Koleksi

Setelah pengiriman sukses, simpan contoh payload webhook. Dokumentasikan field penting:

{
  "field": "message.status",
  "messageId": "msg_123",
  "status": "delivered",
  "channel": "whatsapp"
}
Enter fullscreen mode Exit fullscreen mode

Backend engineer, QA, & support dapat validasi logika hanya dengan membandingkan payload live dengan contoh tersimpan.

Langkah 6: Publikasikan Dokumen Internal

Apidog memungkinkan Anda mem-publish referensi internal yang clean, berisi:

  • Header wajib
  • Contoh payload
  • Respons error
  • Event webhook
  • Catatan environment

Ini jauh lebih baik daripada share cURL snippet di chat.

Tangani Template, Kontak, & Webhook dengan Benar

Request pertama dengan HTTP 200 hanya awal. Berikut praktik penting:

Template

  • Simpan ID template di environment/config
  • Label setiap template (tujuan, lokal, status approval)
  • Pisahkan template testing vs live
  • Dokumentasikan mapping template ke user journey

Simpan contoh permintaan tiap template di Apidog.

Kontak

Walaupun user sudah disimpan internal, objek contact di Sent berguna untuk targeting, template, & history.

Dokumentasikan:

  • Sumber kebenaran data
  • Normalisasi nomor telepon
  • Status opt-in/consent
  • Skema perubahan channel

Webhook

Sent menggunakan verifikasi signature HMAC-SHA256 dengan header:

  • x-webhook-signature
  • x-webhook-id
  • x-webhook-timestamp

Format: v1,{base64_signature}. Replay protection: window timestamp 5 menit.

Checklist implementasi:

  1. Baca body mentah
  2. Verifikasi signature sebelum parsing
  3. Tolak timestamp expired
  4. Proses event idempotent
  5. Ack cepat, kerja berat di background

Contoh Express.js:

import crypto from "crypto";
import express from "express";

const app = express();

app.post("/webhooks/sent", express.raw({ type: "*/*" }), (req, res) => {
  const signature = req.header("x-webhook-signature");
  const webhookId = req.header("x-webhook-id");
  const timestamp = req.header("x-webhook-timestamp");
  const secret = process.env.SENT_WEBHOOK_SECRET;
  const rawBody = req.body.toString("utf8");

  const signedContent = `${webhookId}.${timestamp}.${rawBody}`;
  const expected = crypto
    .createHmac("sha256", Buffer.from(secret.replace(/^whsec_/, ""), "base64"))
    .update(signedContent)
    .digest("base64");

  if (signature !== `v1,${expected}`) {
    return res.status(401).send("Unauthorized");
  }

  const event = JSON.parse(rawBody);
  console.log("Received webhook event:", event.field);

  return res.sendStatus(200);
});
Enter fullscreen mode Exit fullscreen mode

Simpan contoh payload webhook di Apidog untuk sinkronisasi lintas tim.

Mengapa Apidog Cocok untuk Workflow Ini

Sent.dm = layer pengiriman pesan.

Apidog = layer workflow di atasnya.

Tugas Sent.dm Apidog
Kirim SMS & WhatsApp Ya Tidak (tapi menguji API-nya)
Kelola template & sender setup Ya Dokumentasi & validasi permintaan
Uji permintaan autentikasi Dasar Request builder, environment, assertion, scenario
Share dokumen API ke tim Ya Koleksi & dokumen internal
Debug permintaan & alur respons Sebagian Inspeksi & kolaborasi repeatable
Bangun skenario pengujian end-to-end Fokus delivery Kuat untuk workflow multi-step & validasi

Jika tim Anda menguji Sent untuk messaging, Apidog menambah lapisan desain, pengujian, debugging, mock, dan dokumentasi kolaboratif yang tidak ada di Sent.

Manfaat:

  • Koleksi permintaan reusable untuk onboarding dev baru
  • QA bisa validasi tanpa custom script
  • Testing berulang perubahan versi/template/payload webhook

Tips Lanjutan & Kesalahan Umum

Praktik Terbaik

  1. Simpan kredensial hanya di server-side (jangan expose di client).
  2. Log messageId di aplikasi & support tool.
  3. Pisahkan template staging vs production.
  4. Verifikasi setiap webhook sebelum proses.
  5. Gunakan environment Apidog untuk isolasi credential.

Kesalahan Umum

  1. Menganggap respons 200 = sukses final (harusnya baru awal lifecycle event)
  2. Hardcode ID template di banyak service
  3. Menunda setup sender ID
  4. Tidak menormalisasi nomor telepon
  5. Testing pakai credential asli di skrip ad-hoc

Troubleshooting

Jika gagal, cek urutan berikut:

  1. Apakah x-api-key valid & aktif?
  2. Sudahkah endpoint sesuai versi di dashboard Sent?
  3. Apakah x-sender-id dibutuhkan di endpoint itu?
  4. Template sudah approved & tersedia di channel?
  5. Format nomor telepon sudah benar?

Di Apidog, Anda bisa bandingkan permintaan gagal dengan request tersimpan hanya dalam hitungan detik.

Alternatif & Perbandingan Sent.dm

Pilihan lain:

Opsi Kekuatan Tradeoff
SMS/WhatsApp provider langsung Kontrol detail Integrasi & maintenance lebih rumit
Ekosistem Twilio Ekosistem luas Orkestrasi multi-channel lebih kompleks
Sent.dm Workflow unified, channel abstraction Bergantung pada konvensi & struktur dokumen Sent
Sent.dm + Postman Workflow testing familiar Dokumentasi & kolaborasi workflow tetap terfragmentasi
Sent.dm + Apidog Unified messaging + workflow API, dokumentasi tim Butuh dua tools

Gabungkan platform messaging dengan alat kolaborasi API yang kuat. Jika sudah pakai Postman, alasan pilih Apidog: environment, dokumen tersimpan, assertion, mock, & workflow tim di satu workspace.

Kesimpulan

Sent.dm cocok untuk tim yang mau satu platform untuk SMS & WhatsApp, tanpa integrasi channel terpisah. Value utama: Anda bisa membangun di sekitar template, pengirim, kontak, dan webhook secara terstruktur.

Mulai dari satu request Sent di Apidog, tambahkan assertion untuk messageId, dokumentasikan webhook contract, dan workflow Anda jadi jauh lebih repeatable dan siap produksi.

FAQ

Untuk apa API Sent.dm digunakan?

API Sent.dm digunakan untuk pengiriman pesan bisnis di channel SMS & WhatsApp dengan satu integrasi. Mendukung setup pengirim, template, kontak, dan webhook event.

Apakah Sent.dm mendukung WhatsApp dan SMS dalam satu API?

Ya. Sent adalah API unified yang mengabstraksi kompleksitas channel. Disarankan juga memakai nomor telepon yang sama untuk SMS & WhatsApp.

Header apa yang dibutuhkan untuk request API Sent.dm?

x-api-key wajib, x-sender-id juga digunakan di permintaan pesan. Periksa endpoint & versi di akun Sent Anda.

Apakah template wajib sebelum kirim pesan dengan Sent.dm?

Ya, sesuai panduan onboarding. Template harus dibuat dulu, lalu kirim pesan memakai templateId.

Bagaimana cara menguji API Sent.dm tanpa skrip custom?

Apidog sangat cocok: simpan credential sebagai variabel, build request, tambahkan assertion, buat skenario, dokumentasikan webhook, dan publish API doc ke tim.

Bagaimana mengamankan webhook Sent.dm?

Verifikasi HMAC signature, validasi timestamp, dan proses event idempotent. Gunakan header: x-webhook-signature, x-webhook-id, x-webhook-timestamp.

Apakah Sent.dm cukup sendiri untuk workflow API tim?

Sent menyediakan platform messaging, tapi untuk pengujian, dokumentasi, & validasi berulang, tim tetap butuh alat kolaborasi API seperti Apidog.


Apidog — Coba hari ini untuk workflow API pengiriman pesan yang lebih repeatable dan kolaboratif.

Top comments (0)