Harga berbasis percakapan telah berubah. Lihat Harga untuk mempelajari cara kerja model harga berbasis percakapan baru kami.

Selain itu, visibilitas metric_types telah berubah mulai tanggal 1 Juli 2023. Lihat tabel Analitik Percakapan untuk detail selengkapnya.

Membuat dan Mengelola Template

Template Autentikasi

Mulai 1 April 2024, semua template autentikasi yang ada yang bukan merupakan template autentikasi dengan tombol kata sandi satu kali tidak dapat dikirim, diedit, atau diajukan banding.

Template autentikasi akan tersedia di India pada 1 Juli 2024.


Template digunakan saat mengirim pesan template dengan Cloud API yang di-hosting oleh Meta atau On-Premises API. Cloud API meninjau template dan parameter variabel menggunakan pembelajaran mesin untuk melindungi keamanan dan integritas layanan Cloud API. Ketika Cloud API meninjau template dan teks variabel, tidak ada informasi yang dibagikan dengan WhatsApp.

Template ini dapat dibuat menggunakan API Pengelolaan Bisnis atau Pengelola WhatsApp Business. Jumlah template yang dapat dimiliki Akun WhatsApp Business ditentukan oleh bisnis induk. Jika bisnis induk tidak terverifikasi, masing-masing Akun WhatsApp Business dibatasi hingga 250 template. Namun, jika bisnis induk terverifikasi dan setidaknya satu dari Akun WhatsApp Business-nya memiliki nomor telepon bisnis dengan nama tampilan yang disetujui, masing-masing Akun WhatsApp Business dapat memiliki hingga 6.000 template.

Sebelum Memulai

Anda akan memerlukan:

  • Token akses Pengguna Sistem yang ditautkan ke bisnis
  • ID Akun WhatsApp Business untuk bisnis
  • Nama pengguna aset media untuk dokumen, gambar, atau file video apa pun yang akan digunakan dalam template media. Untuk mendapatkan nama pengguna aset media, Anda harus mengunggah aset media menggunakan API Unggah yang Dapat Dilanjutkan.

Batasan

  • Kolom nama template pesan dibatasi hingga 512 karakter.
  • Kolom konten template pesan dibatasi hingga 1.024 karakter.
  • Template hanya dapat diedit saat berstatus Disetujui, Ditolak, atau Dijeda. Template dapat diedit sekali per hari, hingga 10 kali per bulan.
  • Akun WhatsApp Business hanya dapat membuat 100 template pesan per jam.
  • Template yang terdiri dari 4 atau lebih tombol, atau satu tombol balas cepat dan satu atau lebih tombol jenis lain, tidak dapat dilihat di klien desktop WhatsApp. Pengguna WhatsApp yang menerima salah satu pesan template ini akan diminta untuk melihat pesan tersebut di telepon.

Pelokalan

Anda dapat menambahkan template pesan dalam bahasa tertentu saat membuat template. Template ini diperhitungkan terhadap batasan Anda. Konsistenlah saat memberikan terjemahan. Lihat artikel pusat bantuan Mengapa saya melihat kesalahan 'struktur tidak tersedia' dalam panggilan balik saya? untuk informasi selengkapnya.

Membuat Template

Kirim permintaan POST ke endpoint Akun WhatsApp Business > Template Pesan untuk membuat template.

Sintaks Permintaan

POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates

Body Postingan

{
  "name": "<NAME>",
  "category": "<CATEGORY>",
  "allow_category_change": <ALLOW_CATEGORY_CHANGE>,
  "language": "<LANGUAGE>",
  "components": [<COMPONENTS>]
}

Properti Body

PlaceholderDeskripsiContoh Nilai

<NAME>

String

Wajib.


Nama template.

Maksimal 512 karakter.

order_confirmation

<CATEGORY>

Enum

Wajib.


Kategori template.

Lihat Kategori Template di bawah.

UTILITY

<ALLOW_CATEGORY_CHANGE>

Boolean

Opsional.


Atur ke true untuk mengizinkan kami menetapkan kategori secara otomatis. Jika diabaikan, template dapat ditolak karena salah kategori.

true

<LANGUAGE>

Enum

Wajib.


Template bahasa dan kode locale.

en_US

<LIBRARY_TEMPLATE_NAME>

String

Opsional.


Nama yang tepat dari template Galeri Template Utilitas.

Pelajari cara membuat template menggunakan Galeri Template Utilitas

delivery_update_1

<LIBRARY_TEMPLATE_BUTTON_INPUTS>

Array objek

Opsional.


Situs web dan/atau nomor telepon bisnis yang sedang digunakan di template.


Catatan: Untuk template utilitas yang berisi tombol, properti ini tidak bersifat opsional.

Pelajari cara membuat template menggunakan Galeri Template Utilitas

“[ {'type': 'URL', 'url': {'base_url' : 'https://www.example.com/{{1}}', 'url_suffix_example' : 'https://www.example.com/demo'}}, {type: 'PHONE_NUMBER', 'phone_number': '+16315551010'} ]"

<COMPONENTS>

Array objek

Wajib.


Komponen yang membentuk template.

Lihat Komponen Template di bawah.

Lihat Komponen Template di bawah.

Kategori Template

Template harus dikategorikan sebagai salah satu kategori berikut. Kategori difaktorkan ke harga dan kategori yang Anda pilih akan divalidasi pada saat pembuatan template.

  • AUTHENTICATION
  • MARKETING
  • UTILITY

Lihat dokumenKategorisasi Template kami untuk menentukan kategori mana yang akan digunakan saat membuat template.

Komponen Template

Template terdiri dari berbagai teks, media, dan komponen interaktif, berdasarkan kebutuhan bisnis Anda. Lihat dokumen Komponen Template untuk mengetahui daftar semua komponen yang mungkin dan persyaratannya serta sampel dan contoh kueri.

Saat membuat template, definisikan komponennya dengan menetapkan array objek komponen ke properti komponen di body permintaan.

Contoh: berikut adalah array yang berisi komponen body teks dengan dua variabel dan contoh nilai, komponen tombol nomor telepon, dan komponen tombol URL:

[
  {
    "type": "BODY",
    "text": "Thank you for your order, {{1}}! Your confirmation number is {{2}}. If you have any questions, please use the buttons below to contact support. Thank you for being a customer!",
    "example": {
      "body_text": [
        [
          "Pablo","860198-230332"
        ]
      ]
    }
  },
  {
    "type": "BUTTONS",
    "buttons": [
      {
        "type": "PHONE_NUMBER",
        "text": "Call",
        "phone_number": "15550051310"
      },
      {
        "type": "URL",
        "text": "Contact Support",
        "url": "https://www.luckyshrub.com/support"
      }
    ]
  }
]

Lihat dokumen Komponen Template untuk mengetahui daftar semua komponen yang mungkin dan persyaratannya serta sampel dan contoh kueri.

Perhatikan bahwa template dengan kategori AUTHENTICATION memiliki persyaratan komponen yang unik. Lihat Template Autentikasi.

Validasi Kategori

Saat Anda mengirim permintaan pembuatan template, kami segera memvalidasi kategori menggunakan panduan kategorisasi template kami.

  • Jika kami setuju dengan kategori yang Anda tetapkan, kami membuat template dan mengatur status ke PENDING. Lalu template akan menjalani tinjauan template.
  • Jika kami tidak setuju dengan penentuan Anda, kami akan membuat template, tetapi mengatur status template ke REJECTED dan memicu Webhooks pembaruan status template pesan dengan reason diatur ke INCORRECT_CATEGORY. Kami merekomendasikan Anda mendengarkan Webhooks ini untuk mengidentifikasi template yang ditolak, atau meminta kolom rejected_reason pada template yang baru dibuat, yang akan memiliki nilai TAG_CONTENT_MISMATCH.

Dalam kedua kasus, status awal template diberikan sebagai bagian dari tanggapan API.

Jika status template Anda telah diatur ke REJECTED sebagai bagian dari validasi kategori, Anda memiliki beberapa opsi:

Kategorisasi Otomatis

Anda dapat menyertakan properti allow_category_change di permintaan Anda agar kami dapat secara otomatis menetapkan kategori berdasarkan konten template dan pedoman kategorisasi template kami. Hal ini dapat mencegah status template Anda agar tidak segera diatur ke REJECTED akibat salah kategori.

Harap diperhatikan bahwa kategorisasi otomatis hanya dimungkinkan saat membuat template.

Tinjauan Template

Template dengan status PENDING sedang menjalani tinjauan template. Kami meninjau konten setiap template yang baru dibuat atau diedit untuk memastikan template tersebut mematuhi pedoman dan kebijakan konten kami. Berdasarkan hasil tinjauan ini, kami secara otomatis akan mengubah statusnya menjadi APPROVED atau REJECTED, yang memicu Webhooks pembaruan status template pesan.

Status Template

Berdasarkan hasil validasi kategori dan tinjauan template, kami mengatur atau mengubah status template Anda menjadi salah satu nilai berikut:

  • APPROVED — Template telah melewati tinjauan template dan telah disetujui, dan sekarang dapat dikirim dalam pesan template.
  • PENDING — Template melewati validasi kategori dan sedang menjalani tinjauan template.
  • REJECTED — Template gagal dalam validasi kategori atau tinjauan template. Anda dapat meminta kolom rejected_reason pada template untuk mendapatkan alasannya.

Lihat referensi endpoint Template Pesan WhatsApp untuk semua kemungkinan kolom dan status.

Tanggapan

Setelah berhasil, API menanggapi dengan ID, status, dan kategori template yang baru dibuat. Ada tiga kemungkinan hasil:

  • Kami setuju dengan kategori yang Anda tentukan dan template sekarang sedang menjalani tinjauan template (status-nya adalah PENDING).
  • Kami tidak setuju dengan kategori yang Anda tetapkan (status-nya adalah REJECTED)
  • Kami secara otomatis menyetujui template (status-nya adalah APPROVED). Ini hanya mungkin untuk template autentikasi dengan tombol kata sandi sekali pakai.
{
    "id": "<ID>",
    "status": "<STATUS>",
    "category": "<CATEGORY>"
}

Properti Tanggapan

PlaceholderDeskripsiContoh Nilai

<ID>

ID template.

572279198452421

<STATUS>

Status template.

PENDING

<CATEGORY>

Kategori template yang Anda tentukan, atau yang kami tetapkan.

MARKETING

Contoh Permintaan

Berikut ini adalah contoh permintaan untuk membuat template promosi musiman yang terdiri dari komponen berikut:

  • header teks
  • body teks
  • footer
  • dua tombol balasan cepat

Untuk contoh tambahan, lihat Contoh Permintaan.

curl 'https://graph.facebook.com/v19.0/102290129340398/message_templates' \
-H 'Authorization: Bearer EAAJB...' \
-H 'Content-Type: application/json' \
-d '
{
  "name": "seasonal_promotion",
  "language": "en_US",
  "category": "MARKETING",
  "components": [
    {
      "type": "HEADER",
      "format": "TEXT",
      "text": "Our {{1}} is on!",
      "example": {
        "header_text": [
          "Summer Sale"
        ]
      }
    },
    {
      "type": "BODY",
      "text": "Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.",
      "example": {
        "body_text": [
          [
            "the end of August","25OFF","25%"
          ]
        ]
      }
    },
    {
      "type": "FOOTER",
      "text": "Use the buttons below to manage your marketing subscriptions"
    },
    {
      "type":"BUTTONS",
      "buttons": [
        {
          "type": "QUICK_REPLY",
          "text": "Unsubscribe from Promos"
        },
        {
          "type":"QUICK_REPLY",
          "text": "Unsubscribe from All"
        }
      ]
    }
  ]
}'

Contoh Tanggapan

{
    "id": "572279198452421",
    "status": "PENDING",
    "category": "MARKETING"
}

Mengirim Template

Gunakan Cloud API atau On-Premises API untuk mengirim template dalam pesan template.

Praktik Terbaik untuk Template Marketing

Tombol Menolak Marketing

Kami merekomendasikan Anda untuk menambahkan tombol Balasan Cepat ke template yang dikategorikan sebagai MARKETING agar memudahkan pelanggan untuk menolak pesan marketing Anda. Ini akan memberi pelanggan Anda opsi untuk menolak pesan marketing Anda tanpa harus memblokir bisnis Anda. Sebagai hasilnya, Anda mungkin dapat meningkatkan volume berkirim pesan lebih cepat. Silakan lihat artikel ini untuk detail lebih lanjut tentang manfaat menambahkan tombol menolak ke template marketing Anda.

Bisnis Anda harus mengambil langkah-langkah yang diperlukan untuk berhenti mengirim pesan marketing kepada pelanggan yang telah memilih untuk menolaknya. Tidak melakukannya akan berdampak negatif terhadap tingkat pemblokiran dan skor kualitas Anda.

Mendapatkan Template

Kirim permintaan GET ke endpoint Akun WhatsApp Business > Template Pesan untuk mendapatkan daftar template yang dimiliki oleh Akun WhatsApp Business.

Sintaks Permintaan

GET /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
  ?fields=<FIELDS>
  &limit=<LIMIT>

Parameter String Kueri

PlaceholderDeskripsiContoh Nilai

<FIELDS>

Daftar yang dipisahkan koma

Opsional.


Daftar kolom template yang ingin ditampilkan.

name,status

<LIMIT>

Bilangan bulat

Opsional.


Jumlah maksimum template yang ingin ditampilkan di setiap halaman hasil.

10

Contoh Permintaan

curl 'https://graph.facebook.com/v19.0/102290129340398/message_templates?fields=name,status&limit=3' \
-H 'Authorization: Bearer EAAJB...'

Contoh Tanggapan

{
  "data": [
    {
      "name": "seasonal_promotion_text_only",
      "status": "APPROVED",
      "id": "564750795574598"
    },
    {
      "name": "seasonal_promotion_video",
      "status": "PENDING",
      "id": "1252715608684590"
    },
    {
      "name": "seasonal_promotion_image_header",
      "status": "PENDING",
      "id": "1372429296936443"
    }
  ],
  "paging": {
    "cursors": {
      "before": "MAZDZD",
      "after": "MgZDZD"
    },
    "next": "https://graph.facebook.com/v19.0/102290129340398/message_templates?fields=name%2Cstatus&limit=3&after=MgZDZD"
  }
}

Contoh Permintaan (Template yang Ditolak)

Anda hanya dapat menampilkan template dengan nilai kolom tertentu dengan menyertakan kolom dan nilai yang diinginkan dalam permintaan Anda. Contoh: sertakan status=REJECTED untuk hanya mendapatkan template yang telah ditolak.

curl 'https://graph.facebook.com/v19.0/104996122399160/message_templates?fields=name,status&status=REJECTED' \
-H 'Authorization: Bearer EAAJB...'

Contoh Tanggapan

{
  "data": [
    {
      "name": "seasonal_promotion_text_only_v4",
      "status": "REJECTED",
      "id": "564750795574598"
    },
    {
      "name": "discount_qualifier",
      "status": "REJECTED",
      "id": "163917509772674"
    },
    {
      "name": "limited_time_offer_tuscan_getaway_2023",
      "status": "REJECTED",
      "id": "202389039167147"
    },
    {
      "name": "2023_mar_promo_2",
      "status": "REJECTED",
      "id": "1116034925734553"
    },
    {
      "name": "2023_mar_promo",
      "status": "REJECTED",
      "id": "952600926095321"
    }
  ]
}

Mengambil Namespace Template

Namespace template pesan diperlukan untuk mengirim pesan menggunakan template pesan.

Untuk mendapatkan namespace template, kirim permintaan GET ke endpoint /{whatsapp-business-account-ID} dan sertakan kolom message_template_namespace.

Contoh Permintaan

Diformat agar mudah dibaca.
curl -i -X GET "https://graph.facebook.com/v19.0/{whatsapp-business-account-ID}
  ?fields=message_template_namespace
  &access_token={system-user-access-token}"

Jika berhasil, objek JSON dengan ID Akun WhatsApp Business dan namespace akan ditampilkan:

{
    "id": "1972385232742141",
    "message_template_namespace": "12abcdefghijk_34lmnop" 
}

Mengedit Template

Kirim permintaan POST ke endpoint Template Pesan WhatsApp untuk mengedit template. Anda juga dapat mengedit template secara manual menggunakan panel Pengelola WhatsApp > Fitur akun > Template pesan.

Batasan

  • Hanya template dengan status APPROVED, REJECTED, atau PAUSED yang bisa diedit.
  • Anda hanya bisa mengedit category atau components template.
  • Anda tidak dapat mengedit category dari template yang disetujui.
  • Template yang disetujui bisa diedit hingga 10 kali dalam periode 30 hari, atau 1 kali dalam periode 24 jam. Template yang ditolak atau dijeda bisa diedit dalam jumlah tak terbatas.
  • Setelah mengedit template yang disetujui atau dijeda, template akan disetujui secara otomatis kecuali jika template gagal dalam tinjauan template.

Sintaks Permintaan

POST /<WHATSAPP_MESSAGE_TEMPLATE_ID>

Body Postingan

{
  "category": "<CATEGORY>",
  "components": [<COMPONENTS>]
}

Properti

PlaceholderDeskripsiContoh Nilai

<CATEGORY>

String

Wajib jika properti komponen ditiadakan.


Kategori template.

AUTHENTICATION

<COMPONENTS>

Array

Wajib jika properti kategori ditiadakan.


Array objek komponen template.

Lihat Contoh Permintaan (Mengedit Komponen) di bawah ini.

Contoh Permintaan (Mengedit Komponen)

Contoh permintaan ke teks body template yang berisi konten marketing dan utilitas untuk hanya berisi konten marketing.

curl 'https://graph.facebook.com/v19.0/564750795574598' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "components": [
    {
      "type": "HEADER",
      "format": "TEXT",
      "text": "Our {{1}} is on!",
      "example": {
        "header_text": [
          "Spring Sale"
        ]
      }
    },
    {
      "type": "BODY",
      "text": "Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.",
      "example": {
        "body_text": [
          [
            "the end of April",
            "25OFF",
            "25%"
          ]
        ]
      }
    },
    {
      "type": "FOOTER",
      "text": "Use the buttons below to manage your marketing subscriptions"
    },
    {
      "type": "BUTTONS",
      "buttons": [
        {
          "type": "QUICK_REPLY",
          "text": "Unsubcribe from Promos"
        },
        {
          "type": "QUICK_REPLY",
          "text": "Unsubscribe from All"
        }
      ]
    }
  ]
}'

Contoh Permintaan (Hanya Mengedit Kategori)

Contoh permintaan untuk mengubah kategori template dari UTILITY menjadi MARKETING.

curl 'https://graph.facebook.com/v19.0/1252715608684590' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "category": "MARKETING"
}'

Contoh Tanggapan

Contoh tanggapan jika berhasil.

{
  "success": true
}

Menghapus Template

Gunakan endpoint Akun WhatsApp Business > Pesan Template untuk menghapus template berdasarkan nama atau ID.

Catatan

  • Jika Anda menghapus template yang telah dikirim dalam pesan template tetapi belum tersampaikan (misalnya: karena ponsel pelanggan dimatikan), status template akan diatur ke PENDING_DELETION dan kami akan mencoba untuk mengirimkan pesan selama 30 hari. Setelah waktu ini Anda akan menerima kesalahan "Struktur Tidak Tersedia" dan pelanggan tidak akan menerima pesan.
  • Nama template yang disetujui tetapi telah dihapus tidak dapat digunakan lagi selama 30 hari.

Menghapus berdasarkan nama

Menghapus template berdasarkan nama akan menghapus semua template yang cocok dengan nama itu (artinya template dengan nama yang sama tetapi dalam bahasa yang berbeda juga akan dihapus).

Sintaks Permintaan

DELETE /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
  ?name=<NAME>

Contoh Permintaan

curl -X DELETE 'https://graph.facebook.com/v16.0/102290129340398/message_templates?name=order_confirmation' \
-H 'Authorization: Bearer EAAJB...'

Contoh Tanggapan

{
  "success": true
}

Menghapus berdasarkan ID

Untuk menghapus template berdasarkan ID, sertakan ID template bersama dengan namanya dalam permintaan Anda; hanya template dengan ID template yang cocok yang akan dihapus.

Sintaks Permintaan

DELETE /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
  ?hsm_id=<HSM_ID>,
  &name=<NAME>

Contoh Permintaan

curl -X DELETE 'https://graph.facebook.com/v19.0/102290129340398/message_templates?hsm_id=1407680676729941&name=order_confirmation' \
-H 'Authorization: Bearer EAAJB...'

Contoh Tanggapan

{
  "success": true
}