Logo Site EngageLab Mark Colored TransparentDokumen
Cari

Kirim Pesan

Pengembang dapat mengirim pesan ke ID percakapan tertentu melalui API.

Metode Permintaan

POST

URL Permintaan

https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages

Autentikasi

Untuk detail lebih lanjut, lihat deskripsi autentikasi di Ikhtisar API.

Permintaan Teks

Contoh Permintaan

curl -X POST 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages' \ -H 'Content-Type: application/json' \ -H 'Authorization: Basic base64(api_key:api_secret)' \ -d '{ "content": "Agen sedang mengirim pesan, apakah ini normal?", "private": false, "content_attributes": { "in_reply_to": 29 } }'
              
              curl -X POST 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)' \
-d '{
    "content": "Agen sedang mengirim pesan, apakah ini normal?",  
    "private": false,
    "content_attributes": {
        "in_reply_to": 29   
    }
}'

            
Tampilkan blok kode ini di jendela mengambang

Header Permintaan

Field Type Description
Authorization string Gunakan Authorization: Basic base64(API Key:API Secret) untuk autentikasi. Silakan buka halaman API Key untuk mendapatkan API Key dan API Secret, gabungkan keduanya dengan tanda titik dua sebelum melakukan encoding Base64.
Content-Type application/json Jenis data. Gunakan application/json untuk pesan teks biasa.

Parameter Path

Field Type Required Description
conversation_id string Yes ID percakapan.

Parameter Body Permintaan

Field Type Required Description
content String Yes Isi pesan.
private Boolean No Menunjukkan apakah ini pesan privat. Nilai default adalah false.
content_attributes Object No Atribut konten, misalnya saat membalas pesan gunakan field in_reply_to untuk menentukan ID pesan.

Contoh Respons Teks

Contoh Respons

{ "id": 3030, "content": "Agen sedang mengirim pesan, apakah ini normal?", "inbox_id": 79, "conversation_id": 141, "message_type": 1, "content_type": "text", "status": "sent", "content_attributes": {}, "created_at": 1762331029, "private": false, "source_id": null, "sorting_id": 4, "sender": { "id": 3, "name": "TEST", "available_name": "TEST", "avatar_url": "", "type": "user", "availability_status": "offline", "thumbnail": "" } }
              
              {
    "id": 3030,
    "content": "Agen sedang mengirim pesan, apakah ini normal?",
    "inbox_id": 79,
    "conversation_id": 141,
    "message_type": 1,
    "content_type": "text",
    "status": "sent",
    "content_attributes": {},
    "created_at": 1762331029,
    "private": false,
    "source_id": null,
    "sorting_id": 4,
    "sender": {
        "id": 3,
        "name": "TEST",
        "available_name": "TEST",
        "avatar_url": "",
        "type": "user",
        "availability_status": "offline",
        "thumbnail": ""
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Respons

Field Type Description
id Int ID pesan.
content String Isi pesan.
inbox_id Int ID kotak masuk.
conversation_id Int ID percakapan.
message_type Int Jenis pesan.
content_type String Jenis konten.
status String Status pesan, seperti "sent", "delivered", dan lain-lain.
content_attributes Object Atribut konten.
created_at Int Stempel waktu pembuatan pesan.
private Boolean Menunjukkan apakah ini pesan privat.
source_id Int ID sumber.
sorting_id Int ID pengurutan.
sender Object Informasi pengirim.
id Int ID pengirim.
name String Nama pengirim.
available_name String Nama tampilan pengirim.
avatar_url String URL avatar pengirim.
type String Jenis pengirim (misalnya user).
availability_status String Status online pengirim (misalnya offline).
thumbnail String Thumbnail pengirim.

Permintaan Gambar/Audio/Berkas

Contoh Permintaan

curl -X POST "https://livedesk.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages" \ -H "Authorization: Basic base64(api_key:api_secret)" \ -F "attachments[]=@attachments[]=@/path/to/your/file.jpg" \ -F "content=Gambar rinci sebagai berikut"
              
              curl -X POST "https://livedesk.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages" \
  -H "Authorization: Basic base64(api_key:api_secret)" \
  -F "attachments[]=@attachments[]=@/path/to/your/file.jpg" \
  -F "content=Gambar rinci sebagai berikut" 

            
Tampilkan blok kode ini di jendela mengambang

Parameter Path

Field Type Required Description
conversation_id string Yes ID percakapan.

Contoh Respons Gambar/Audio/Berkas

Contoh Respons

{ "id": 3031, "content": "Gambar rinci sebagai berikut", "inbox_id": 79, "conversation_id": 141, "message_type": 1, "content_type": "text", "status": "sent", "content_attributes": {}, "created_at": 1762331762, "private": false, "source_id": null, "sorting_id": 5, "sender": { "id": 3, "name": "Wenjie Yu", "available_name": "Wenjie Yu", "avatar_url": "", "type": "user", "availability_status": "offline", "thumbnail": "" }, "attachments": [ { "id": 199, "message_id": 3031, "file_type": "image", "account_id": 14, "extension": null, "data_url": "https://livedesk.engagelab.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBamNUIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--727ba7469d64f90790d242c743f254b5c9013fe1/android-icon-48x48.png", "thumb_url": "https://livedesk.engagelab.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBamNUIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--727ba7469d64f90790d242c743f254b5c9013fe1/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwQWZvdyIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--63c890cbf173eb3dc92a8786fcc3e120c329852d/android-icon-48x48.png", "file_size": 589136, "width": null, "height": null } ] }
              
              {
    "id": 3031,
    "content": "Gambar rinci sebagai berikut",
    "inbox_id": 79,
    "conversation_id": 141,
    "message_type": 1,
    "content_type": "text",
    "status": "sent",
    "content_attributes": {},
    "created_at": 1762331762,
    "private": false,
    "source_id": null,
    "sorting_id": 5,
    "sender": {
        "id": 3,
        "name": "Wenjie Yu",
        "available_name": "Wenjie Yu",
        "avatar_url": "",
        "type": "user",
        "availability_status": "offline",
        "thumbnail": ""
    },
    "attachments": [
        {
            "id": 199,
            "message_id": 3031,
            "file_type": "image",
            "account_id": 14,
            "extension": null,
            "data_url": "https://livedesk.engagelab.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBamNUIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--727ba7469d64f90790d242c743f254b5c9013fe1/android-icon-48x48.png",
            "thumb_url": "https://livedesk.engagelab.com/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBamNUIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--727ba7469d64f90790d242c743f254b5c9013fe1/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCem9MWm05eWJXRjBTU0lJY0c1bkJqb0dSVlE2RTNKbGMybDZaVjkwYjE5bWFXeHNXd2RwQWZvdyIsImV4cCI6bnVsbCwicHVyIjoidmFyaWF0aW9uIn19--63c890cbf173eb3dc92a8786fcc3e120c329852d/android-icon-48x48.png",
            "file_size": 589136,
            "width": null,
            "height": null
        }
    ]
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Respons

Field Type Description
id Int ID pesan.
content String Isi pesan.
inbox_id Int ID kotak masuk.
conversation_id Int ID percakapan.
message_type Int Jenis pesan.
content_type String Jenis konten.
status String Status pesan, seperti "sent", "delivered", dan lain-lain.
content_attributes Object Atribut konten.
created_at Int Stempel waktu pembuatan pesan.
private Boolean Menunjukkan apakah ini pesan privat.
source_id Int ID sumber.
sorting_id Int ID pengurutan.
sender Object Informasi pengirim.
id Int ID pengirim.
name String Nama pengirim.
available_name String Nama tampilan pengirim.
avatar_url String URL avatar pengirim.
type String Jenis pengirim (misalnya user).
availability_status String Status online pengirim (misalnya offline).
thumbnail String Thumbnail pengirim.
attachments Array Daftar informasi lampiran.
id Int ID lampiran.
message_id Int ID pesan yang terkait.
file_type String Jenis berkas (misalnya image).
account_id Int ID akun.
extension String Ekstensi berkas.
data_url String URL berkas.
thumb_url String URL thumbnail (khusus tipe gambar).
file_size Int Ukuran berkas (byte).
width Int Lebar berkas (khusus tipe gambar).
height Int Tinggi berkas (khusus tipe gambar).

Contoh Permintaan Pesan Template WhatsApp

Contoh Permintaan

curl -X POST 'https://livedesk.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages'\ -H 'Content-Type: application/json' \ -H 'Authorization: Basic base64(api_key:api_secret)'\ -d '{ "content": "Teks tampilan untuk UI chat", "message_type": "outgoing", "template_params": { "name": "order_update", "namespace": "optional_namespace", "language": "en_US", "category": "MARKETING", "processed_params": { "1": "John", "2": "dikirim" }, "header_params": { "type": "text", "text_variables": { "1": "Pesanan #456" } }, "footer_params": { "text_variables": { "1": "Acme Corp" } }, "button_params": [ { "index": 0, "sub_type": "url", "text": "track/12345" } ] } }'
              
              curl -X POST 'https://livedesk.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages'\
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)'\
-d '{
    "content": "Teks tampilan untuk UI chat",
    "message_type": "outgoing",
    "template_params": {
      "name": "order_update",
      "namespace": "optional_namespace",
      "language": "en_US",
      "category": "MARKETING",
      "processed_params": {
        "1": "John",
        "2": "dikirim"
      },
      "header_params": {
        "type": "text",
        "text_variables": {
         "1": "Pesanan #456" }
      },
      "footer_params": {
        "text_variables": { "1": "Acme Corp" }
      },
      "button_params": [
        {
          "index": 0,
          "sub_type": "url",
          "text": "track/12345"
        }
      ]
    }
  }'

            
Tampilkan blok kode ini di jendela mengambang

Parameter Path

Field Type Required Description
conversation_id string Yes ID percakapan.

Parameter Body Permintaan

Field Type Required Description
content String Yes Isi pesan yang ditampilkan di UI chat.
message_type String Yes Jenis pesan. Ditetapkan sebagai outgoing saat mengirim pesan template.
template_params Object Yes Objek parameter pesan template.
name String Yes Nama template.
namespace String No Namespace template (digunakan oleh WhatsApp Cloud / 360Dialog).
language String Yes Kode bahasa template, seperti en_US.
category String No Kategori template, seperti MARKETING.
processed_params Object No Nilai variabel isi template. Kunci dapat berupa posisi variabel ("1", "2") atau nama variabel.
header_params Object No Parameter komponen header template. Lihat detail di bawah.
footer_params Object No Parameter komponen footer template. Lihat detail di bawah.
button_params Array No Parameter komponen tombol template. Lihat detail di bawah.

Deskripsi Parameter header_params

Struktur header_params bervariasi tergantung pada jenis header:

Tipe teks:

{ "type": "text", "text_variables": { "1": "Pesanan #456" } }
              
              {
  "type": "text",
  "text_variables": { "1": "Pesanan #456" }
}

            
Tampilkan blok kode ini di jendela mengambang

Tipe gambar:

{ "type": "image", "media_url": "https://example.com/image.jpg" }
              
              {
  "type": "image",
  "media_url": "https://example.com/image.jpg"
}

            
Tampilkan blok kode ini di jendela mengambang

Tipe video:

{ "type": "video", "media_url": "https://example.com/video.mp4" }
              
              {
  "type": "video",
  "media_url": "https://example.com/video.mp4"
}

            
Tampilkan blok kode ini di jendela mengambang

Tipe dokumen:

{ "type": "document", "media_url": "https://example.com/invoice.pdf", "filename": "invoice.pdf" }
              
              {
  "type": "document",
  "media_url": "https://example.com/invoice.pdf",
  "filename": "invoice.pdf"
}

            
Tampilkan blok kode ini di jendela mengambang

Tipe lokasi:

{ "type": "location", "location": { "latitude": 37.7749, "longitude": -122.4194, "name": "Kantor Pusat Acme", "address": "123 Main St, San Francisco" } }
              
              {
  "type": "location",
  "location": {
    "latitude": 37.7749,
    "longitude": -122.4194,
    "name": "Kantor Pusat Acme",
    "address": "123 Main St, San Francisco"
  }
}

            
Tampilkan blok kode ini di jendela mengambang
Field Type Required Description
type String Yes Jenis header. Mendukung text, image, video, document, location.
text_variables Object No Digunakan untuk tipe teks. Kunci adalah posisi variabel dan nilainya adalah konten pengganti.
media_url String No Digunakan untuk tipe media. URL berkas media.
filename String No Digunakan untuk tipe dokumen. Nama berkas.
location Object No Digunakan untuk tipe lokasi.
latitude Float Yes Lintang.
longitude Float Yes Bujur.
name String No Nama lokasi.
address String No Alamat lokasi.
{ "text_variables": { "1": "Acme Corp" } }
              
              {
  "text_variables": { "1": "Acme Corp" }
}

            
Tampilkan blok kode ini di jendela mengambang
Field Type Required Description
text_variables Object No Kunci adalah posisi variabel dan nilainya adalah konten pengganti.

Deskripsi Parameter button_params

[ { "index": 0, "sub_type": "url", "text": "track/12345" }, { "index": 1, "sub_type": "quick_reply", "payload": "OPT_OUT" } ]
              
              [
  {
    "index": 0,
    "sub_type": "url",
    "text": "track/12345"
  },
  {
    "index": 1,
    "sub_type": "quick_reply",
    "payload": "OPT_OUT"
  }
]

            
Tampilkan blok kode ini di jendela mengambang
Field Type Required Description
index Int Yes Indeks tombol, dimulai dari 0.
sub_type String Yes Jenis tombol. Mendukung url, quick_reply.
text String No Digunakan untuk tombol tipe URL. Sufiks URL atau jalur pengalihan.
payload String No Digunakan untuk tombol tipe quick_reply. Konten payload yang dikembalikan.

Contoh Respons

Respons Berhasil

{ "id": 123, "content": "Teks tampilan untuk UI chat", "message_type": 1, "status": "sent", "additional_attributes": { "template_params": { "name": "order_update", "language": "en_US", "category": "MARKETING" } } }
              
              {
  "id": 123,
  "content": "Teks tampilan untuk UI chat",
  "message_type": 1,
  "status": "sent",
  "additional_attributes": {
    "template_params": {
      "name": "order_update",
      "language": "en_US",
      "category": "MARKETING"
    }
  }
}

            
Tampilkan blok kode ini di jendela mengambang

Respons Gagal

{ "id": 123, "status": "failed", "content_attributes": { "external_error": "131047: Re-engagement message is not allowed" } }
              
              {
  "id": 123,
  "status": "failed",
  "content_attributes": {
    "external_error": "131047: Re-engagement message is not allowed"
  }
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Respons

Field Type Description
id Int ID pesan.
content String Isi pesan.
message_type Int Jenis pesan.
status String Status pesan, seperti sent, delivered, failed, dan sebagainya.
additional_attributes Object Atribut tambahan.
template_params Object Informasi parameter template yang telah dikirim.
content_attributes Object Atribut konten. Berisi informasi kesalahan ketika pengiriman gagal.
external_error String Informasi kesalahan eksternal yang dikembalikan saat pengiriman pesan gagal.

Coba Ulang Pesan Gagal

Jika status pesan adalah failed, Anda dapat mengatur ulang status pesan dan mengirim ulang melalui API berikut:

URL Permintaan

POST https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages/:message_id/retry

Parameter Path

Field Type Required Description
conversation_id string Yes ID percakapan.
message_id string Yes ID pesan.
Icon Solid Transparent White Qiyu
Hubungi Sales