Endpoint API platform Chat

Endpoint API platform chat memberikan akses ke objek chat. Objek chat dibuat untuk setiap chat yang dilakukan ke dan dari Platform Contact Center AI (Platform CCAI).

Berikut adalah endpoint API platform chat:

Objek chat

Objek chat dibuat untuk setiap sesi chat seluler dan web di Platform CCAI. Berikut adalah objek chat:

{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

Memperbarui percakapan

Parameter Wajib Jenis Data Definisi
id TRUE Bilangan bulat ID chat yang akan diperbarui

Endpoint:

Method: PATCH
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:id

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Isi:

{
    "finished_by_user_id": "integer",
    "chat": {
        "deflection_channel": "string",
        "status": "string",
        "escalation_id": "integer"
    }
}

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Memperbarui percakapan

Contoh ini menunjukkan keberhasilan pembaruan percakapan yang ada

Permintaan

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Kueri:

Kunci Nilai Deskripsi
id Bilangan bulat (Wajib diisi)

Isi:

{
    "finished_by_user_id": "integer",
    "chat": {
        "deflection_channel": "string",
        "status": "finished",
        "escalation_id": "integer"
    }
}
Respons
{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

Kode Status: 200

Mengirim pesan dalam percakapan

Metode ini memberikan kemampuan untuk mengirim pesan dalam sesi chat yang ada.

Parameter Wajib Jenis Data Definisi
id TRUE Bilangan bulat ID chat tempat pesan harus dikirim.

Endpoint:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:id/message

Header:

Kunci Nilai Deskripsi
Content-Type application/json

Isi:

{
    "from_user_id": integer,
    "message": {
            "type": "string",
            "content": "string"
            }
    }
}

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Pengiriman pesan berhasil

Contoh ini menunjukkan pengiriman pesan yang berhasil ke sesi chat yang ada.

Permintaan

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Kueri:

Kunci Nilai Deskripsi
id Bilangan bulat (Wajib diisi)

Isi:

{
    "from_user_id": integer,
    "message": {
            "type": "string",
            "content": : "string"
            }
    }
}
Respons
{
}

Kode Status: 200

Meningkatkan percakapan dengan agen virtual

Mengalihkan percakapan dari agen virtual ke agen manusia.

Parameter Wajib Jenis Data Definisi
chat_id TRUE Bilangan bulat ID chat yang diperlukan untuk eskalasi.

Endpoint:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/escalations

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Isi:

{
    "reason": "string",
    "force_escalate": "boolean"
}

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Berhasil mengalihkan percakapan ke agen

Contoh ini menunjukkan permintaan untuk mengeskalasikan percakapan yang ada ke agen manusia.

Permintaan

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)

Isi:

{
    "reason": "by_end_user_ask",
    "force_escalate": true
}
Respons
{
    "id": "integer",
    "chat_id": "integer",
    "status": "string"
}

Kode Status: 200

Memperbarui eskalasi

Hanya digunakan untuk memilih saluran pembelokan.

Parameter Wajib Jenis Data Definisi
chat_id TRUE Bilangan bulat ID chat yang diperlukan untuk memperbarui ID menu pengalihan.
id TRUE Bilangan bulat ID menu yang diperlukan.

Endpoint:

Method: PATCH
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/escalations/:id

Header:

Kunci Nilai Deskripsi
Content-Type application/json

Isi:

{
    "deflection_channel": "string"
}

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Pembaruan eskalasi berhasil

Contoh ini menunjukkan keberhasilan pembaruan saluran eskalasi.

Permintaan

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)
id Bilangan bulat (Wajib diisi)

Isi:

{
    "deflection_channel": "string"
}
Respons
{
    "id": "integer",
    "chat_id": "integer",
    "status": "string"
}

Kode Status: 200

Menambahkan foto yang diupload ke chat

Menambahkan foto yang telah diupload ke penyimpanan media ke percakapan

Parameter Wajib Jenis Data Definisi
chat_id TRUE Bilangan bulat ID chat yang diperlukan untuk menambahkan foto.

Endpoint:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}/apps/api/v1/chats/:chat_id/photos

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Isi:

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Berhasil menambahkan foto ke chat

Contoh berikut menunjukkan penambahan foto yang telah diupload ke penyimpanan media ke percakapan chat yang sudah ada.

Permintaan

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)

Isi:

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}
Respons
{
    "url": "string",
    "media_id": "integer"
}

Kode Status: 200

Mengambil semua foto dari percakapan

Mendapatkan ID media dan URL penyimpanan untuk semua foto yang dilampirkan ke chat.

Parameter Wajib Jenis Data Definisi
chat_id TRUE Bilangan bulat ID chat yang diperlukan untuk mendapatkan informasi media.

Endpoint:

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/photos

Header:

Kunci Nilai Deskripsi
Terima application/json

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Pengambilan informasi foto chat yang berhasil untuk chat

Contoh ini menunjukkan panggilan API yang berhasil untuk mendapatkan informasi foto sesi chat yang ada.

Permintaan

Header:

Kunci Nilai Deskripsi
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)
Respons
[
    {
        "url": "string",
        "media_id": "integer"
    },
    {
        "url": "string",
        "media_id": "integer"
    }
]

Kode Status: 200

Mendapatkan URL upload foto yang telah ditandatangani sebelumnya

Digunakan untuk mendapatkan URL upload yang telah ditandatangani sebelumnya untuk foto.

Parameter Wajib Jenis Data Definisi
chat_id TRUE Bilangan bulat ID chat yang diperlukan yang akan dikaitkan dengan URL foto yang telah ditandatangani sebelumnya.

Endpoint:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/photos/upload

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Pengambilan URL bertanda tangan untuk upload berhasil

Berikut adalah contoh permintaan yang berhasil dengan pengambilan URL bertanda tangan untuk upload foto.

Permintaan

Header:

Kunci Nilai Deskripsi
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)
Respons
{
    "url": "string",
    "fields": {
        "key": "string",
        "success_action_status": "string",
        "Content-Type": "string",
        "Cache-Control": "string",
        "acl": "string",
        "policy": "string",
        "x-amz-credential": "string",
        "x-amz-algorithm": "string",
        "x-amz-date": "string",
        "x-amz-security-token": "string",
        "x-amz-signature": "string",
        "x-goog-algorithm": "string",
        "x-goog-credential": "string",
        "x-goog-date": "string",
        "x-goog-signature": "string"
    }
}

Kode Status: 200

Menambahkan video yang diupload ke percakapan

Menambahkan video yang telah diupload ke penyimpanan media ke percakapan.

Parameter Wajib Jenis Data Definisi
chat_id TRUE Bilangan bulat ID chat yang diperlukan untuk mengaitkan video.

Endpoint:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Isi:

{
    "video": {
        "s3_path": "string",
        "gcs_path": "string"
    }
}

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Berhasil mengupload video ke sesi chat

Contoh ini menunjukkan keberhasilan upload video ke sesi chat.

Permintaan

Header:

Kunci Nilai Deskripsi
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)

Isi:

{
    "photo": [
        {
            "s3_path": "string",
            "photo_type": "string"
        },
        {
            "s3_path": "string",
            "photo_type": "string"
        }
    ]
}
Respons
Body
{
    "url": "string",
    "media_id": "integer"
}

Kode Status: 200

Mengambil semua video dari chat

Mendapatkan ID media dan URL penyimpanan untuk semua video yang dilampirkan ke chat.

Parameter Wajib Jenis Data Definisi
chat_id TRUE Bilangan bulat ID chat yang diperlukan untuk mengambil URL video.

Endpoint:

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Mengambil semua URL video untuk percakapan

Contoh ini menunjukkan pengambilan semua URL video untuk chat yang ada.

Permintaan

Header:

Kunci Nilai Deskripsi
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)
Respons
[
    {
        "url": "string",
        "media_id": "integer"
    },
    {
        "url": "string",
        "media_id": "integer"
    }
]

Kode Status: 200

Mendapatkan URL upload video yang telah ditandatangani sebelumnya

Digunakan untuk mendapatkan URL upload yang telah ditandatangani sebelumnya untuk video.

Parameter Wajib Jenis Data Definisi
chat_id TRUE Bilangan bulat ID chat yang diperlukan yang akan dikaitkan dengan URL video yang telah ditandatangani sebelumnya.

Endpoint:

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/chats/:chat_id/videos/upload

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Pengambilan URL bertanda tangan yang berhasil untuk upload video

Berikut adalah contoh permintaan yang berhasil dengan pengambilan URL bertanda tangan untuk upload video.

Permintaan

Header:

Kunci Nilai Deskripsi
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)
Respons
{
    "url": "string",
    "fields": {
        "key": "string",
        "success_action_status": "string",
        "Content-Type": "string",
        "Cache-Control": "string",
        "acl": "string",
        "policy": "string",
        "x-amz-credential": "string",
        "x-amz-algorithm": "string",
        "x-amz-date": "string",
        "x-amz-security-token": "string",
        "x-amz-signature": "string",
        "x-goog-algorithm": "string",
        "x-goog-credential": "string",
        "x-goog-date": "string",
        "x-goog-signature": "string"
    }
}

Kode Status: 200

Buat chat

Mulai sesi chat baru.

Contoh permintaan

Metode: POST

URL: https://{subdomain}.{domain}/apps/api/v1/chats

Header

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Isi

{
    "chat": {
        "menu_id": "integer",
        "end_user_id": "integer",
        "lang": "string",
        "email": "string",
        "context": "object",
        "transcript": "object"
    },
    "end_user": {
        "phone": "string"
    }
}

Konteks:

Objek context mencakup objek value, yang meneruskan metadata ke percakapan chat. Anda dapat meneruskan objek context ke agen virtual sebagai parameter data yang tidak bertanda. Lihat contoh berikut:

{
    "context": {
        {"value":
            {"foo": "bar",
             "key": "value"}
        }
    }
}

Dalam contoh ini, nilai parameter data yang tidak bertanda untuk kolom masuk adalah context dan kolom tujuan dapat ditetapkan ke context. Dengan cara ini, Anda dapat menggunakan $session.params.context.foo atau $session.params.context.key.

Contoh respons

{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

Menampilkan chat menurut ID

Metode ini menampilkan objek chat untuk ID chat tertentu.

Endpoint:

Method: GET
Type:
URL: https://{subdomain}.​{domain}/apps/api/v1/chats/:id

Header:

Kunci Nilai Deskripsi
Content-Type application/json
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)

Contoh permintaan dan respons

Bagian berikut memberikan contoh permintaan ke endpoint.

Mengambil chat dengan berhasil

Contoh berikut menunjukkan keberhasilan permintaan untuk ID chat yang ada.

Permintaan

Header:

Kunci Nilai Deskripsi
Jenis konten application/json
Terima application/json

Kueri:

Kunci Nilai Deskripsi
chat_id Bilangan bulat (Wajib diisi)
Respons
{
    "id": "integer",
    "status": "string",
    "status_text": "string",
    "features": [
        "string",
        "string"
    ],
    "created_at": "string",
    "ends_at": "string",
    "timeout_at": "string",
    "agent": {
        "id": "integer",
        "name": "string",
        "first_name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "virtual_agent": {
        "id": "integer",
        "name": "string",
        "avatar_url": "string",
        "status": "string"
    },
    "all_agents": [
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "first_name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "all_virtual_agents": [
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        },
        {
            "id": "integer",
            "name": "string",
            "avatar_url": "string",
            "status": "string"
        }
    ],
    "lang": "string",
    "menus": [
        {
            "id": "integer",
            "name": "string"
        },
        {
            "id": "integer",
            "name": "string"
        }
    ],
    "end_user": {
        "id": "integer",
        "identifier": "string"
    }
}

Kode Status: 200

Mendapatkan atribut data yang dicadangkan selama percakapan

Endpoint

Method: GET
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/chats/:id/customer_flag

Contoh permintaan dan respons

Bagian ini berisi contoh permintaan dan respons untuk endpoint.

Berhasil

Contoh ini menunjukkan panggilan yang berhasil.

Permintaan

Header

Kunci Nilai Deskripsi
Terima application/json

Variabel URL

Kunci Nilai Deskripsi
id integer (Wajib diisi)
Respons
{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customer": "boolean"
}

Kode status 0

Memperbarui atribut data yang dicadangkan selama percakapan

Endpoint

Method: POST
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/chats/:id/customer_flag

Variabel URL

Kunci Nilai Deskripsi
id integer (Wajib diisi)

Body

{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customers": "boolean"
}

Mengirim data kustom dalam chat

Mengirim data kustom dalam chat.

Contoh permintaan

Metode: POST

URL: https//{subdomain}.{domain}/apps/api/v1/chats/:id/custom_data

Header

Kunci Nilai Deskripsi
Content-Type application/json

Variabel URL

Kunci Nilai Deskripsi
id (Wajib diisi)

Contoh respons

// Use unsecured parameter
{
"signed": false,
"data": {
// Start customer_flag fields
"reserved_verified_customer": {
"label": "LABEL 1",
"value": true
},
"reserved_bad_actor": {
"label": "LABEL 2",
"value": false
},
"reserved_repeat_customer": {
"label": "LABEL 3",
"value": true
},
// End customer_flag fields
"field1": {
"label": "LABEL 4",
"value": "dummy1"
},
"field2": {
"label": "LABEL 5",
"value": "dummy2"
}
}
}
// Use secured parameter
// {
// "signed": true,
// "signed_data": "eyJhbGciOiJIUzI1NiJ9.eyJjdXN0b21fZGF0YSI6eyJyZXNlcnZlZF92ZXJpZmllZF9jdXN0b21lciI6eyJ2YWx1ZSI6ZmFsc2V9LCJyZXNlcnZlZF9iYWRfYWN0b3IiOnsidmFsdWUiOnRydWV9LCJyZXNlcnZlZF9yZXBlYXRfY3VzdG9tZXIiOnsidmFsdWUiOmZhbHNlfSwiZmllbGQxIjp7InZhbHVlIjoiZHVtbXkxMTEifSwiZmllbGQyIjp7InZhbHVlIjoiZHVtbXkyMjIifX0sImV4cCI6MTcyOTY4MzU5MywiaWF0IjoxNzI5Njc5OTkzfQ.BMskgKTM3DbgrMLWjI46ZJ1K73H25JRd16SgHK0A1Ts"
// }
// ======================= How to create <signed_data> =======================
// payload = {
// "custom_data": {
// // Start customer_flag fields
// "reserved_verified_customer": {
// "label": "LABEL 1",
// "value": true
// },
// "reserved_bad_actor": {
// "label": "LABEL 2",
// "value": false
// },
// "reserved_repeat_customer": {
// "label": "LABEL 3",
// "value": true
// },
// // End customer_flag fields
// "field1": {
// "label": "LABEL 4",
// "value": "dummy1"
// },
// "field2": {
// "label": "LABEL 5",
// "value": "dummy2"
// }
// },
// "exp": 1734567890, // expiration timestamp
// "iat": 1734560000 // issue timestamp
// }
// signed_data = JWT.encode(payload, 'Company secret', 'HS256')
// ======================= End how to create <signed_data> =======================

Memperbarui pengguna akhir selama sesi chat yang sedang berlangsung

Memperbarui pengguna akhir yang terkait dengan sesi chat aktif saat ini. Selain itu, aplikasi ini juga memperbarui informasi kontak yang ditautkan ke tiket CRM. _Identifier wajib ada, sedangkan name, email, dan phone bersifat opsional.

Contoh permintaan

Metode: POST

URL: https//{subdomain}.{domain}/apps/api/v1/chats/:chat_id/end-user

Header

Kunci Nilai Deskripsi
Content-Type application/json

Variabel URL

Kunci Nilai Deskripsi
chat_id

Isi

{
    "identifier": "string",
    "name": "string",
    "email": "string",
    "phone": "string"
}

Contoh respons

{
    "message": "accepted"
}