Daftar template
Di luar jendela 24 jam, WhatsApp hanya mengizinkan pesan template yang sudah disetujui Meta. Pengiriman memakai nama template dan kode bahasanya, persis seperti di WhatsApp Manager.
Keduanya terlihat di Kareeb, menu Template: kolom Nama dan Bahasa, dengan status Disetujui, Menunggu, atau Ditolak. Sistem Anda juga bisa membaca daftarnya sendiri.
Membaca daftar
GET /api/export/templates, izin read:templates.
curl https://kareeb.id/api/export/templates \
-H "Authorization: Bearer kt_xxxxxxxxxxxxxxxxxxxx"
{
"templates": [
{
"name": "pengingat_kontrol",
"language": "id",
"category": "UTILITY",
"status": "APPROVED",
"parameter_count": 3,
"needs_cta": false,
"workspace_id": 1,
"synced_at": "2026-11-04T04:12:00+00:00"
}
]
}
| Kolom | Arti |
|---|---|
name | Nama yang diisi di template.name (POST /api/messages) atau template_name (POST /api/broadcasts). |
language | Kode bahasa yang diisi di template.language atau template_language. Nama yang sama bisa ada dalam beberapa bahasa. |
category | Kategori dari Meta: MARKETING, UTILITY, atau AUTHENTICATION. |
status | Status dari Meta saat sinkronisasi terakhir, misalnya APPROVED, PENDING, REJECTED, PAUSED. |
parameter_count | Jumlah variabel badan yang harus diisi. 0 bila tidak ada. |
needs_cta | true bila template punya tombol tautan per pelanggan, sehingga cta_param wajib diisi. |
workspace_id | Cabang yang akun WhatsApp-nya memegang template itu. |
synced_at | Waktu Kareeb terakhir membaca template ini dari Meta. |
Hal yang perlu diingat:
- Semua status ikut ditampilkan. Kirim hanya yang berstatus
APPROVED; pilihan itu ada di sistem Anda. - Daftar ini tidak berhalaman, paling banyak 500 template, dan dijawab dengan
Cache-Control: no-store. Baca ulang sebelum mengirim bila template baru saja diubah. - Daftar ini sesegar sinkronisasi terakhir. Template yang baru dibuat atau baru disetujui di WhatsApp Manager muncul setelah admin menekan Sinkronkan di menu Template. Token API tidak bisa memulai sinkronisasi.
- Template di akun WhatsApp yang tidak lagi dipakai organisasi Anda tidak ditampilkan. Isi komponen template dan id Meta juga tidak pernah ikut.
Variabel badan
Variabel badan template ditulis {{1}}, {{2}}, dan seterusnya. Saat mengirim, setiap variabel diisi dengan kunci "1", "2", berurutan tanpa celah:
{"1": "Budi", "2": "Rumah Sakit Sentra", "3": "Selasa 10.00"}
Aturan nilainya:
- kunci berurutan mulai dari
"1"tanpa celah;{"1": ..., "3": ...}ditolak, karena memindahkan nilai ke posisi lain akan menaruh kata yang salah di pesan; - setiap nilai berupa teks yang tidak kosong, paling panjang 1.024 karakter;
- nilai tidak boleh berisi baris baru, tab, atau lebih dari empat spasi berurutan, karena Meta menolaknya.
Tombol tautan per pelanggan
Template bisa punya tombol tautan dengan alamat dasar yang tetap dan satu bagian akhir yang berbeda untuk setiap pelanggan. Alamat dasarnya ditetapkan saat template disetujui Meta. Saat mengirim, isi bagian akhirnya di cta_param.
Contoh: tombol disetujui dengan alamat https://rs-sentra.example/janji/{{1}}. Kirim "cta_param": "88123", dan pelanggan menerima tombol menuju https://rs-sentra.example/janji/88123.
Bila needs_cta bernilai true dan cta_param kosong, POST /api/messages menolak dengan kode template_needs_cta.
Template di cabang lain
Bila organisasi Anda punya beberapa cabang dengan akun WhatsApp masing-masing, workspace_id menunjukkan cabang yang memegang template itu.
POST /api/messages: kirim denganworkspace_idyang sama.POST /api/broadcastsselalu mengirim dari cabang Utama. Template milik akun cabang lain ditolak dengan kodetemplate_other_cabang.