Logo Site EngageLab Mark Colored Transparent
Dokumen

Cara Mengirim Pesan ke Saluran API

Karena Saluran API tidak mendukung pembuatan kontak secara implisit, pengiriman pesan melalui Saluran API LiveDesk melibatkan tiga langkah berikut:

  1. Membuat kontak
  2. Membuat percakapan berdasarkan informasi kontak
  3. Mengirim pesan

Membuat Kontak

URL Permintaan

https://livedesk-api.engagelab.com/api/v2/accounts/contacts

Contoh Permintaan

curl -X POST https://livedesk-api.engagelab.com/api/v2/accounts/contacts \ -H 'Content-Type: application/json' \ -H 'Authorization: Basic base64(api_key:api_secret)' \ { "inbox_id": 407, "name": "Test", // Opsional "email": "alice@acme.inc", "phone_number": "+123456789", "avatar_url": "https://example.com/avatar.png", "identifier": "1234567890" }
              
              curl -X POST https://livedesk-api.engagelab.com/api/v2/accounts/contacts \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)' \
{
    "inbox_id": 407,
    "name": "Test",                   // Opsional
    "email": "alice@acme.inc",
    "phone_number": "+123456789",
    "avatar_url": "https://example.com/avatar.png",
    "identifier": "1234567890"
}

            
Tampilkan blok kode ini di jendela mengambang

Header Permintaan

Field Type Description
Authorization string Lakukan autentikasi menggunakan Authorization: Basic base64(API Key:API Secret). Buka halaman API Keys untuk memperoleh API Key dan API Secret, gabungkan keduanya dengan tanda titik dua, lalu enkode menggunakan Base64.
Content-Type application/json Jenis data. Gunakan application/json untuk pesan teks biasa.

Parameter Body Permintaan

Field Type Required Description
inbox_id String Yes ID saluran. Ini sesuai dengan Channel ID di Project Settings > Channels > Specific Channel > Settings.
name String No Nama kontak.
email String No Alamat email.
phone_number String No Nomor telepon kontak.
avatar_url String No URL avatar.
identifier String No Identifier pengguna.

Contoh Respons

{ "payload": { "contact": { "additional_attributes": {}, "availability_status": "offline", "email": null, "id": 2219259, "name": "Test", "phone_number": null, "blocked": false, "identifier": null, "thumbnail": "", "custom_attributes": {}, "created_at": 1766571703, "contact_inboxes": [] }, "contact_inbox": { "inbox": null, "source_id": null } } }
              
              {
    "payload": {
        "contact": {
            "additional_attributes": {},
            "availability_status": "offline",
            "email": null,
            "id": 2219259,
            "name": "Test",
            "phone_number": null,
            "blocked": false,
            "identifier": null,
            "thumbnail": "",
            "custom_attributes": {},
            "created_at": 1766571703,
            "contact_inboxes": []
        },
        "contact_inbox": {
            "inbox": null,
            "source_id": null
        }
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Respons

Field Type Required Description
additional_attributes Object No Atribut tambahan.
availability_status String No Status online. Nilai default adalah offline.
email String No Alamat email.
id String No ID kontak.
name String No Nama.
phone_number String No Nomor telepon.
blocked String No Menunjukkan apakah kontak diblokir. Nilai default adalah false.
identifier String No Identifier pengguna.
thumbnail String No URL thumbnail.
custom_attributes String No Atribut khusus.
created_at String No Stempel waktu pembuatan.
contact_inboxes Array No Inbox kontak.
inbox String No Inbox saluran.
source_id String No ID sumber.

Membuat Percakapan

URL Permintaan

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

Contoh Permintaan

curl -X POST https://livedesk-api.engagelab.com/api/v2/accounts/conversations \ -H 'Content-Type: application/json' \ -H 'Authorization: Basic base64(api_key:api_secret)' \ { "inbox_id": 407, // Wajib "contact_id": 2219256, // contact_id atau source_id dapat dikirim, tetapi salah satunya harus disediakan untuk mengidentifikasi pengirim dengan benar "source_id": "123456789" }
              
              curl -X POST https://livedesk-api.engagelab.com/api/v2/accounts/conversations \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)' \
{
  "inbox_id": 407,              // Wajib
  "contact_id": 2219256,        // contact_id atau source_id dapat dikirim, tetapi salah satunya harus disediakan untuk mengidentifikasi pengirim dengan benar
  "source_id": "123456789"
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Header Permintaan

Field Type Description
Authorization string Lakukan autentikasi menggunakan Authorization: Basic base64(API Key:API Secret). Buka halaman API Keys untuk memperoleh API Key dan API Secret, gabungkan keduanya dengan tanda titik dua, lalu enkode menggunakan Base64.
Content-Type application/json Jenis data. Gunakan application/json untuk pesan teks biasa.

Parameter Body Permintaan

Field Type Required Description
inbox_id String Yes ID saluran. Ini adalah ID yang sama dengan yang digunakan dalam API Create Contact.
contact_id String No ID kontak. Ini adalah id yang dikembalikan dalam respons dari API Create Contact.
source_id String No ID sumber.

Contoh Respons

{ "meta": { "sender": { "additional_attributes": {}, "availability_status": "offline", "email": null, "id": 2219256, "name": "wjTest", "phone_number": null, "blocked": false, "identifier": null, "thumbnail": "", "custom_attributes": {}, "created_at": 1766571624 }, "channel": "Channel::Api", "hmac_verified": false }, "id": 40, "messages": [], "account_id": 17623000010928, "uuid": "660ce36f-46bb-4153-948c-8a26e6dab634", "inbox_id": 407, "additional_attributes": {}, "agent_last_seen_at": 0, "assignee_last_seen_at": 0, "can_reply": true, "contact_last_seen_at": 0, "custom_attributes": {}, "labels": [], "muted": false, "snoozed_until": null, "status": "open", "priority": null, "conversation_category": "chat", "chat_mode": "private_chat", "is_forum": false, "created_at": 1766572062, "updated_at": 1766572062.5803902, "timestamp": 1766572062, "first_reply_created_at": 0, "unread_count": 0, "last_non_activity_message": null, "last_activity_at": 1766572062, "waiting_since": 1766572062, "sla_policy_id": null, "ticket_id": null, "over_limit": false, "content_preview": { "content": null, "message_type": null, "created_at": null }, "platform": { "channel_type": "Channel::Api", "inbox_name": "JennyApi", "inbox_id": 407 }, "account_info": { "contact_name": "wjTest", "contact_email": null, "contact_phone": null, "contact_id": 2219256, "contact_avatar": "" }, "assignment": { "assignee_id": null, "assignee_name": null, "assignee_email": null, "team_id": null, "team_name": null } }
              
              {
    "meta": {
        "sender": {
            "additional_attributes": {},
            "availability_status": "offline",
            "email": null,
            "id": 2219256,
            "name": "wjTest",
            "phone_number": null,
            "blocked": false,
            "identifier": null,
            "thumbnail": "",
            "custom_attributes": {},
            "created_at": 1766571624
        },
        "channel": "Channel::Api",
        "hmac_verified": false
    },
    "id": 40,
    "messages": [],
    "account_id": 17623000010928,
    "uuid": "660ce36f-46bb-4153-948c-8a26e6dab634",
    "inbox_id": 407,
    "additional_attributes": {},
    "agent_last_seen_at": 0,
    "assignee_last_seen_at": 0,
    "can_reply": true,
    "contact_last_seen_at": 0,
    "custom_attributes": {},
    "labels": [],
    "muted": false,
    "snoozed_until": null,
    "status": "open",
    "priority": null,
    "conversation_category": "chat",
    "chat_mode": "private_chat",
    "is_forum": false,
    "created_at": 1766572062,
    "updated_at": 1766572062.5803902,
    "timestamp": 1766572062,
    "first_reply_created_at": 0,
    "unread_count": 0,
    "last_non_activity_message": null,
    "last_activity_at": 1766572062,
    "waiting_since": 1766572062,
    "sla_policy_id": null,
    "ticket_id": null,
    "over_limit": false,
    "content_preview": {
        "content": null,
        "message_type": null,
        "created_at": null
    },
    "platform": {
        "channel_type": "Channel::Api",
        "inbox_name": "JennyApi",
        "inbox_id": 407
    },
    "account_info": {
        "contact_name": "wjTest",
        "contact_email": null,
        "contact_phone": null,
        "contact_id": 2219256,
        "contact_avatar": ""
    },
    "assignment": {
        "assignee_id": null,
        "assignee_name": null,
        "assignee_email": null,
        "team_id": null,
        "team_name": null
    }
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Respons

Field Type Required Description
meta Object No Objek metadata.
sender Object No Informasi pengirim.
additional_attributes Object No Atribut tambahan.
availability_status String No Status ketersediaan.
email Null No Alamat email.
id Number No ID kontak.
name String No Nama pengirim.
phone_number Null No Nomor telepon.
blocked Boolean No Menunjukkan apakah kontak diblokir.
identifier Null No Identifier pengguna.
thumbnail String No Thumbnail.
custom_attributes Object No Atribut khusus.
created_at Number No Stempel waktu pembuatan percakapan.
channel String No Jenis saluran.
hmac_verified Boolean No Status verifikasi HMAC.
id Number No ID percakapan.
messages Array No Array pesan.
account_id Number No ID proyek.
uuid String No Identifier unik.
inbox_id Number No ID saluran.
additional_attributes Object No Atribut tambahan.
agent_last_seen_at Number No Waktu terakhir agen melihat atau menangani percakapan.
assignee_last_seen_at Number No Waktu terakhir penerima tugas melihat atau menangani percakapan.
can_reply Boolean No Menunjukkan apakah balasan dapat dikirim.
contact_last_seen_at Number No Waktu terakhir kontak terlihat.
custom_attributes Object No Atribut khusus.
labels Array No Array label.
muted Boolean No Menunjukkan apakah percakapan dibisukan.
snoozed_until Null No Waktu hingga percakapan ditunda.
status String No Status.
priority Null No Prioritas.
conversation_category String No Kategori percakapan.
chat_mode String No Mode obrolan.
is_forum Boolean No Menunjukkan apakah ini forum.
created_at Number No Stempel waktu pembuatan.
updated_at Number No Stempel waktu pembaruan.
timestamp Number No Stempel waktu.
first_reply_created_at Number No Waktu saat balasan pertama dibuat.
unread_count Number No Jumlah pesan yang belum dibaca.
last_non_activity_message Null No Pesan nonaktivitas terakhir.
last_activity_at Number No Waktu aktivitas terakhir.
waiting_since Number No Waktu mulai menunggu.
sla_policy_id Null No ID kebijakan SLA.
ticket_id Null No ID tiket.
over_limit Boolean No Menunjukkan apakah batas telah terlampaui.
content_preview Object No Pratinjau konten.
content_preview.content Null No Konten pratinjau.
content_preview.message_type Null No Jenis pesan.
content_preview.created_at Null No Waktu pembuatan.
platform Object No Informasi platform.
channel_type String No Jenis saluran.
inbox_name String No Nama inbox.
inbox_id Number No ID inbox.
account_info Object No Informasi akun.
contact_name String No Nama kontak.
contact_email Null No Email kontak.
contact_phone Null No Nomor telepon kontak.
contact_id Number No ID kontak.
contact_avatar String No Avatar kontak.
assignment Object No Informasi penugasan.
assignee_id Null No ID penerima tugas.
assignee_name Null No Nama penerima tugas.
assignee_email Null No Email penerima tugas.
team_id Null No ID tim.
team_name Null No Nama tim.

Mengirim Pesan

URL Permintaan

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

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": "Perwakilan layanan pelanggan mengirimkan pesan. Apakah ini normal?", "private": false, "message_type": "incoming", "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": "Perwakilan layanan pelanggan mengirimkan pesan. Apakah ini normal?",
    "private": false,
    "message_type": "incoming",
    "content_attributes": {
        "in_reply_to": 29
    }
}'

            
Tampilkan blok kode ini di jendela mengambang

Header Permintaan

Field Type Description
Authorization string Lakukan autentikasi menggunakan Authorization: Basic base64(API Key:API Secret). Buka halaman API Keys untuk memperoleh API Key dan API Secret, gabungkan keduanya dengan tanda titik dua, lalu enkode menggunakan Base64.
Content-Type application/json Jenis data. Gunakan application/json untuk pesan teks biasa.

Parameter Body Permintaan

Field Type Required Description
content String Yes Konten pesan.
private Boolean No Menunjukkan apakah ini pesan pribadi. Nilai default adalah false.
message_type String No Jenis pesan: outgoing atau incoming. Keduanya masing-masing menunjukkan pesan yang dikirim oleh perwakilan layanan pelanggan dan pengguna. Jika tidak ditentukan, nilai default adalah outgoing.
content_attributes String No Atribut konten.
in_reply_to String No Konten yang menjadi target balasan.
Icon Solid Transparent White Qiyu
Hubungi Sales