Kami akan menghentikan On-Premises API. Lihat Proses Penghentian On-Premises API dokumen untuk detailnya, dan untuk mempelajari cara bermigrasi ke Cloud API generasi berikutnya.

Mengirim Template Pesan Interaktif

Template pesan interaktif memperluas konten yang dapat Anda kirim ke penerima di luar template pesan standar dan jenis template pesan media untuk menyertakan tombol interaktif menggunakan objek components.

Ada dua jenis tombol standar yang ditawarkan:

  • Ajakan Bertindak — Memungkinkan pelanggan Anda menelepon nomor telepon dan mengunjungi situs web
  • Balasan Cepat — Memungkinkan pelanggan Anda untuk membalas pesan teks sederhana

Tombol-tombol ini dapat dilampirkan ke pesan teks atau pesan media. Setelah template pesan interaktif Anda dibuat dan disetujui, Anda dapat menggunakannya dalam pesan notifikasi serta pesan layanan pelanggan.

Sebelum Memulai

Anda perlu:

Setelah template pesan disetujui, Anda dapat menggunakan API untuk mengirim pesan.

Kendala

  • Untuk template ajakan bertindak, Anda dapat menambahkan 2 tombol, hingga satu tombol untuk setiap jenis (menelepon nomor telepon dan mengunjungi situs web).
  • Untuk template balasan cepat, Anda dapat menambahkan hingga 3 tombol.

Langkah 1: Buat Permintaan POST ke /messages

POST /v1/messages
{
    "to": "recipient_wa_id",
    "type": "template",
    "template": {
        "namespace": "your-namespace",
        "language": {
            "policy": "deterministic",
            "code": "your-language-and-locale-code"
        },
        "name": "your-template-name",
        "components": [
            {
                "type" : "header",
                "parameters": [
                    {
                        "type": "text",
                        "text": "replacement_text"
                    }
                ]
            # end header
            },
            {
                "type" : "body",
                "parameters": [
                    {
                        "type": "text",
                        "text": "replacement_text"
                    },
                    {
                        "type": "currency",
                        "currency" : {
                            "fallback_value": "$100.99",
                            "code": "USD",
                            "amount_1000": 100990
                        }
                    },
                    {
                        "type": "date_time",
                        "date_time" : {
                            "fallback_value": "February 25, 1977",
                            "day_of_week": 5,
                            "day_of_month": 25,
                            "year": 1977,
                            "month": 2,
                            "hour": 15,
                            "minute": 33, #OR
                            "timestamp": 1485470276
                        }
                    },
                    {
                        ...
                        # Any additional template parameters
                    }
                ] 
            # end body
            },

            # The following part of this code example includes several possible button types, 
            # not all are required for an interactive message template API call.
            {
                "type": "button",
                "sub_type" : "quick_reply",
                "index": "0", 
                "parameters": [
                    {
                        "type": "payload",
                        # Business Developer-defined payload
                        "payload":"aGlzIHRoaXMgaXMgY29vZHNhc2phZHdpcXdlMGZoIGFTIEZISUQgV1FEV0RT"
                    }
                ]
            },
            {
                "type": "button",
                "sub_type" : "url",
                "index": "1", 
                "parameters": [
                    {
                        "type": "text",
                        # Business Developer-defined dynamic URL suffix
                        "text": "9rwnB8RbYmPF5t2Mn09x4h"
                    }
                ]
            },
            {
                "type": "button",
                "sub_type" : "url",
                "index": "2",
                "parameters": [
                    {                    
                        "type": "text",
                        # Business Developer-defined dynamic URL suffix
                        "text": "ticket.pdf"
                    }
                ]
            }
        ]
    }
}

Parameter

Langkah 2: Periksa Tanggapan API Anda

Tanggapan yang berhasil mengandung objek messages dengan id.

{
  "messages": [{
    "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
  }]
}

Tanggapan yang gagal berisi objek kesalahan dengan string kesalahan, kode kesalahan, dan informasi lainnya.

Jika template dikirim ke akun yang tidak dapat menerima template tersebut, kesalahan 1026 (ReceiverIncapable) akan dikirim dalam objek kesalahan ke server Webhooks yang dikonfigurasi.

Lihat Kode Kesalahan dan Status untuk informasi selengkapnya tentang kesalahan.

Langkah 3 Opsional: Tangani Tindakan Pengguna

Ketika pengguna mengeklik tombol balasan cepat, tanggapan dikirim kembali ke bisnis. Lihat Panggilan Balik dari Klik Tombol Balasan Cepat untuk informasinya. Pengguna juga dapat memilih untuk tidak mengeklik tombol dan hanya mengirimi Anda pesan formulir gratis.

Panggilan Balik dari Klik Tombol Balasan Cepat

Saat pelanggan Anda mengeklik tombol balasan cepat, tanggapan dikirim. Di bawah ini adalah contoh format callback. Catatan: Pelanggan mungkin tidak mengeklik tombol dan membalas pesan interaktif atau hanya mengirimi Anda pesan. Pastikan Anda juga dapat mendukung jenis skenario ini. Lihat dokumentasi Webhooks untuk informasi selengkapnya.
{
    "contacts": [
        {
            "profile": {
                "name": "Kerry Fisher"
            },
            "wa_id": "16505551234"
        }
    ],
    "messages": [
        {
            "button": {
                "payload": "No-Button-Payload",
                "text": "No"
            },
            "context": {
                "from": "16315558007",
                "id": "gBGGFmkiWVVPAgkgQkwi7IORac0"
            },
            "from": "16505551234",
            "id": "ABGGFmkiWVVPAgo-sKD87hgxPHdF",
            "timestamp": "1591210827",
            "type": "button"
        }
    ]
    # If there are any errors, an errors field (array) will be present        
    "errors": [ { ... } ]
}

Contoh

Contoh ini menunjukkan proses menyiapkan template pesan interaktif yang dimulai dengan pembuatan template di Pengelola Bisnis Anda dan mengirimkan template pesan dengan panggilan API ke endpoint messages.

Pengingat Perjalanan

Contoh ini menunjukkan pembuatan template pesan interaktif dengan tombol balasan cepat.

1. Buat template pesan media interaktif di Pengelola Bisnis Anda.

2. Panggilan API messages ditambahkan dalam informasi parameter.

POST /v1/messages
{
    "to": "your-test-recipient-wa-id",
    "recipient_type": "individual",
    "type": "template",
    "template": {
        "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2",
        "name": "upcoming_trip_reminder",
        "language": {
            "code": "en",
            "policy": "deterministic"
        },
        "components": [
            {
                "type": "header",
                "parameters": [
                    {
                        "type": "text",
                        "text": "12/26"
                    }
                ]
            },
            {
                "type": "body",
                "parameters": [
                    {
                        "type": "text",
                        "text": "*Ski Trip*"
                    },
                    {
                        "type": "date_time",
                        "date_time" : {
                            "fallback_value": "29th July 2019, 8:00am",
                            "day_of_month": "29",
                            "year": "2019",
                            "month": "7",
                            "hour": "8",
                            "minute": "00"
                        }
                    },
                    {
                            "type": "text",
                            "text": "*Squaw Valley Ski Resort, Tahoe*"
                    }
                ]
            },
            {
                "type": "button",
                "sub_type": "quick_reply",
                "index": 0,
                "parameters": [
                    {
                        "type": "payload",
                        "payload": "Yes-Button-Payload"
                    }
                ]
            },
            {
                "type": "button",
                "sub_type": "quick_reply",
                "index": 1,
                "parameters": [
                    {
                        "type": "payload",
                        "payload": "No-Button-Payload"
                    }
                ]
            }
        ]
    }
}

3. Pelanggan Anda menerima pesan pengingat perjalanan mereka dengan tombol balasan cepat.

Pengiriman Produk

Contoh ini menunjukkan pembuatan template pesan media interaktif dengan tombol URL dan nomor telepon.

1. Buat template pesan media interaktif di Pengelola Bisnis Anda:

2. Panggilan API messages ditambahkan dalam informasi parameter.

POST /v1/messages
{
    "to": "your-test-recipient-wa-id",
    "recipient_type": "individual",
    "type": "template",
    "template": {
        "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2",
        "name": "oculus_shipment_update",
        "language": {
            "code": "en",
            "policy": "deterministic"
        },
        "components": [
            {
                "type": "header",
                "parameters": [{
                    "type": "image",
                    "image": {
                        "link": "link-to-your-image"
                    }
                }]
            },
            {
                "type": "body",
                "parameters": [
                    {
                        "type": "text",
                        "text": "Anand"
                    },
                    {
                        "type": "text",
                        "text": "Quest"
                    },
                    {
                        "type": "text",
                        "text": "113-0921387"
                    },
                    {
                        "type": "date_time",
                        "date_time" : {
                            "fallback_value": "23rd Nov 2019",
                            "day_of_month": "20",
                            "year": "2019",
                            "month": "9"
                        }
                    }
                ] 
            },
            {
                "type": "button",
                "index": "0",
                "sub_type": "url",
                "parameters": [
                    {
                        "type": "text",
                        "text": "1Z999AA10123456784"
                    }
                ]
            }
        ]
    }
}

3. Pelanggan Anda menerima pesan pengiriman produk mereka dengan URL dan tombol panggilan telepon: