Cari Percakapan berdasarkan Pengidentifikasi Kontak

Sistem eksternal dapat mencari ID percakapan reguler yang terkait, waktu pembuatan, dan status saat ini untuk suatu kontak menggunakan pengidentifikasi bisnis, alamat email, atau nomor telepon lengkap kontak. ID percakapan yang dikembalikan dapat langsung digunakan dengan API V2 yang ada untuk mengambil detail percakapan, pesan, dan lainnya.

Metode Permintaan

GET

URL Permintaan

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

Autentikasi

API ini menggunakan autentikasi HTTP Basic. Sertakan Authorization di header permintaan, dengan API key sebagai nama pengguna dan API secret sebagai kata sandi. Proyek yang terkait dengan kredensial menentukan cakupan pencarian, sehingga Anda tidak perlu menyertakan ID proyek di path. Untuk detailnya, lihat Ikhtisar API.

Jika account_id disertakan dalam permintaan, nilainya harus sama dengan proyek yang terkait dengan kredensial; jika tidak, 401 akan dikembalikan.

Permintaan

Contoh Permintaan

curl -X GET 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/lookup?type=identifier&value=Customer_123&page=1&page_size=20' \ -H 'Content-Type: application/json' \ -H 'Authorization: Basic base64(api_key:api_secret)'
              
              curl -X GET 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/lookup?type=identifier&value=Customer_123&page=1&page_size=20' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)'

            
Tampilkan blok kode ini di jendela mengambang

Saat mencari berdasarkan nomor telepon, + harus dienkode dalam URL:

GET /api/v2/accounts/conversations/lookup?type=phone&value=%2B15551234567
              
              GET /api/v2/accounts/conversations/lookup?type=phone&value=%2B15551234567

            
Tampilkan blok kode ini di jendela mengambang

Parameter Header Permintaan

Field Type Required Description
Authorization string Ya Lakukan autentikasi menggunakan Authorization: Basic base64(API Key:API Secret). Gabungkan API key dan API secret dengan tanda titik dua, lalu enkode dalam Base64.

Parameter Query

Field Type Required Description
type string Ya Jenis atribut query. Hanya identifier, email, dan phone yang diizinkan.
value string Ya String yang tidak kosong dan dicocokkan secara tepat dengan atribut kontak yang sesuai dengan type.
page integer Tidak Bilangan bulat positif. Nilai default adalah 1.
page_size integer Tidak Bilangan bulat positif. Nilai default adalah 20; nilai yang lebih besar dari 50 akan diperlakukan sebagai 50.
account_id integer Tidak ID proyek. Biasanya parameter ini tidak perlu diberikan. Jika diberikan, nilainya harus sama dengan proyek yang terkait dengan kredensial; jika tidak, 401 akan dikembalikan.

Aturan Pencocokan

  • identifier: Peka terhadap huruf besar-kecil. Nilai asli dipertahankan, dan pencocokan substring atau wildcard tidak didukung.
  • email: Spasi di awal dan akhir dihapus, lalu format email divalidasi sebelum dilakukan pencocokan tepat yang tidak peka terhadap huruf besar-kecil.
  • phone: Spasi di awal dan akhir dihapus terlebih dahulu. Nomor harus lengkap, menyertakan + dan kode negara, serta sesuai dengan format phone_number kontak. API tidak menambahkan kode negara default atau mendukung pencocokan berdasarkan digit terakhir nomor.
  • Parameter GET harus dienkode dengan benar di URL. Secara khusus, + dalam nomor telepon harus dienkode sebagai %2B.

Cakupan dan Pengurutan Pencarian

Kontak dan percakapan hanya dicari dalam proyek yang terkait dengan kredensial. API mengembalikan semua percakapan reguler yang terkait dengan kontak di seluruh inbox dalam proyek (conversation_category=chat), tidak termasuk percakapan tiket, dan tanpa memfilter berdasarkan agen, petugas yang ditugaskan, atau inbox saat ini.

Percakapan reguler dengan semua status akan dikembalikan: open, resolved, pending, snoozed, dan closed. API ini tidak menyediakan filter berdasarkan status; meskipun status diberikan, hasilnya tidak akan dipersempit.

Hasil diurutkan berdasarkan waktu pembuatan percakapan dalam urutan menurun. Jika waktu pembuatan sama, hasil diurutkan berdasarkan primary key percakapan internal dalam urutan menurun. Urutan paginasi tetap stabil selama data tidak berubah. Paginasi berbasis halaman tidak menjamin snapshot yang konsisten saat percakapan dibuat atau dihapus secara bersamaan.

Respons

Respons Berhasil

HTTP 200:

{ "meta": { "count": 2, "current_page": 1, "page_size": 20, "total_pages": 1 }, "payload": [ { "id": 202609000000002, "created_at": 1788739200, "status": "closed", "inbox_id": 12, "contact_id": 901 }, { "id": 202609000000001, "created_at": 1788652800, "status": "open", "inbox_id": 10, "contact_id": 901 } ] }
              
              {
  "meta": {
    "count": 2,
    "current_page": 1,
    "page_size": 20,
    "total_pages": 1
  },
  "payload": [
    {
      "id": 202609000000002,
      "created_at": 1788739200,
      "status": "closed",
      "inbox_id": 12,
      "contact_id": 901
    },
    {
      "id": 202609000000001,
      "created_at": 1788652800,
      "status": "open",
      "inbox_id": 10,
      "contact_id": 901
    }
  ]
}

            
Tampilkan blok kode ini di jendela mengambang

Parameter Respons

Field Type Description
meta object Metadata paginasi.
meta.count integer Jumlah total percakapan reguler yang cocok, termasuk semua status dan tidak terpengaruh oleh paginasi.
meta.current_page integer Nomor halaman saat ini.
meta.page_size integer Jumlah item aktual per halaman; bernilai 50 jika nilai yang diminta lebih besar dari 50.
meta.total_pages integer Jumlah total halaman; bernilai 0 jika tidak ada hasil.
payload array Daftar percakapan pada halaman saat ini.
payload[].id integer ID percakapan eksternal, yaitu conversations.display_id; dapat langsung digunakan dengan API V2 yang ada untuk mengambil detail percakapan, pesan, dan lainnya.
payload[].created_at integer Waktu pembuatan percakapan dalam bentuk stempel waktu Unix dalam detik.
payload[].status string Status percakapan saat ini, yang dapat berupa open, resolved, pending, snoozed, atau closed.
payload[].inbox_id integer ID inbox terkait.
payload[].contact_id integer ID kontak yang cocok.

Jika kontak tidak ada, kontak tidak memiliki percakapan reguler, atau halaman yang diminta melebihi jumlah total halaman, HTTP 200 akan tetap dikembalikan. Dalam ketiga kasus tersebut, payload adalah array kosong; meta.count tetap menyimpan jumlah total hasil yang sebenarnya.

Respons hanya berisi kolom yang tercantum di atas dan tidak mengembalikan pesan, lampiran, atau informasi pribadi kontak.

Respons Error

Respons error menggunakan struktur berikut. Deskripsi error tidak menampilkan nilai pencarian:

{ "error": "Error description" }
              
              {
  "error": "Error description"
}

            
Tampilkan blok kode ini di jendela mengambang
HTTP Status Code Scenario
401 Kredensial tidak valid, dinonaktifkan, atau kedaluwarsa, atau account_id dalam permintaan tidak sesuai dengan proyek yang terkait dengan kredensial.
409 Data historis menghasilkan beberapa kontak yang cocok dalam proyek yang sama. API tidak memilih salah satu kontak secara sembarangan; gunakan identifier yang unik untuk pencarian.
422 type tidak ada atau tidak didukung; value tidak ada, kosong, bukan string, atau formatnya salah; atau parameter paginasi bukan bilangan bulat positif.

Catatan Penggunaan

  • API ini hanya menambahkan fungsi pencarian dan tidak mengubah data kontak atau percakapan.
  • API tidak mendukung pencarian kontak dengan pencocokan fuzzy. Pastikan identifier, alamat email, atau nomor telepon yang disimpan oleh sistem eksternal sesuai dengan atribut kontak terkait di LiveDesk.
  • Untuk memproses percakapan dalam hasil pencarian, gunakan payload[].id dari respons sebagai ID percakapan eksternal saat memanggil API V2 terkait.
Icon Solid Transparent White Qiyu
Hubungi Sales