Payload kustom untuk Dialogflow CX memungkinkan Anda meningkatkan pengalaman agen virtual di luar chat dan interaksi berbasis teks biasa. Dengan menggunakan payload kustom di Dialogflow CX, Anda dapat mengonfigurasi agen virtual untuk merender respons dan kutipan kustom.
Jenis pesan respons kustom
Respons kustom memungkinkan Anda merender jenis pesan berikut:
Teks
Tombol inline
Tombol lekat
Gambar
Video
Dokumen
Tampilan kompleks (kombinasi satu atau beberapa jenis pesan)
Tindakan kustom memungkinkan agen virtual melakukan tindakan berikut:
Eskalasi ke agen manusia
Transfer yang direncanakan ke agen manusia
Mengakhiri sesi dukungan
Payload Contact Center AI Platform (CCAI Platform)
Untuk digunakan di Dialogflow CX sebagai payload kustom. Contoh berikut menunjukkan format respons di webSDK menggunakan Dialogflow CX.
{ "ujet": { "type": "text|inline_button|sticky_button|image|video|document|complex|action", "action": "escalation|end", "title": "message displayed on the top of the message", "escalation_reason": "by_consumer|by_virtual_agent", "session_variable": { "capture_target": "payload|end_user_response", "capture_key": "key", "payload": { } }, "messages": [ "Hello", "How can I help you?" ], "buttons": [ { "title": "Button 1", "action": "quick_reply" }, { "title": "Button 2", "action": "quick_reply" } ], "images": [ { "url": "https://image.url", "text": "an alternate text for an image for when failed to load an image" }, { "url": "https://image.url", "text": "an alternate text for an image" } ], "videos": [ { "url": "https://video.url", "text": "an alternate text for a video for when failed to load a video" }, { "url": "https://video.url", "text": "an alternate text for a video" } ], "documents": [ { "url": "https://document.url", "text": "an alternate text for a document for when failed to load a document" }, { "url": "https://document.url", "text": "an alternate text for a document" } ], "components": [ { "type": "text", "messages": [ "We need the information for helping you.", "Could you please choose the following options?" ] }, { "type": "inline_button", "buttons": [ { "title": "Button 1", "action": "quick_reply" }, { "title": "Button 2", "action": "quick_reply" } ] }, { "type": "image", "images": [ { "url": "https://image.url", "text": "an alternate text for an image for when failed to load an image" }, { "url": "https://image.url", "text": "an alternate text for an image" } ] } ] } }
Format pesan chat untuk payload kustom
Digunakan dengan CCAI Platform SDK untuk menampilkan UI yang tepat. Hal ini sama dengan format payload kustom Dialogflow CX, tetapi tidak memiliki kolom "ujet" di root.
Lihat contoh berikut untuk mengetahui detail selengkapnya.
Contoh
Bagian berikut mencakup contoh payload yang dapat digunakan di Dialogflow CX.
Teks
{
"ujet": {
"type": "text",
"messages": [
"Hello",
"How can I help you?"
]
}
}
Eskalasi ke antrean yang sama
Melalui agen virtual:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent"
}
}
Oleh pengguna akhir:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer"
}
}
Nilai escalation_reason dilaporkan di dasbor.
Eskalasi ke antrean yang ditargetkan
Melalui agen virtual:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_virtual_agent",
"menu_id": 100,
"language": "ko"
}
}
Oleh pengguna akhir:
{
"ujet": {
"type": "action",
"action": "escalation",
"escalation_reason": "by_consumer",
"menu_id": 100,
"language": "ko"
}
}
Nilai escalation_reason dilaporkan di dasbor.
Akhiri percakapan
{
"ujet": {
"type": "action",
"action": "end"
}
}
Tombol inline
{
"ujet": {
"type": "inline_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
Contoh

Tombol tetap
{
"ujet": {
"type": "sticky_button",
"title": "Select a menu",
"buttons": [
{
"title": "Lorem Ipsum",
"action": "quick_reply"
},
{
"title": "Lorem Ipsum Dolor Sit Amet",
"action": "escalation"
}
]
}
}
Contoh

Tampilan gambar
{
"ujet": {
"type": "image",
"title": "Please see the following images",
"images": [
{
"url": "https://image1.url",
"text": "an alternate text for an image for when failed to load an image"
},
{
"url": "https://image2.url",
"text": "an alternate text for an image"
}
]
}
}
Penayangan video
{
"ujet": {
"type": "video",
"title": "Please see the following videos",
"videos": [
{
"url": "https://video1.url",
"text": "an alternate text for a video for when failed to load a video"
},
{
"url": "https://video2.url",
"text": "an alternate text for a video"
}
]
}
}
Dokumen Dilihat
{
"ujet": {
"type": "document",
"title": "Please see the following document",
"documents": [
{
"url": "https://document1.url",
"text": "an alternate text for a document for when failed to load a document"
},
{
"url": "https://document2.url",
"text": "an alternate text for a document"
}
]
}
}
Tampilan kompleks
{
"ujet": {
"type": "complex",
"type": "Welcome to CCAI Platform world!",
"components": [
{
"type": "text",
"messages": [
"We need the information for helping you.",
"Could you please choose the following options?"
]
},
{
"type": "inline_button",
"buttons": [
{
"title": "Button 1",
"action": "quick_reply"
},
{
"title": "Button 2",
"action": "quick_reply"
}
]
},
{
"type": "image",
"images": [
{
"url": "https://image1.url",
"text": "an alternate text for an image for when failed to load an image"
},
{
"url": "https://image2.url",
"text": "an alternate text for an image"
}
]
}
]
}
}
Mengonfigurasi payload kustom di Dialogflow
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi payload kustom menggunakan Dialogflow, lihat Respons payload kustom (Dialogflow ES) atau Payload kustom (Dialogflow CX).
Untuk mengetahui informasi selengkapnya, lihat Variabel sesi kustom untuk penanganan payload kustom.
Transfer agen virtual ke nomor telepon atau endpoint SIP
Anda dapat menggunakan payload kustom Dialogflow CX untuk mentransfer panggilan dari agen virtual suara ke nomor telepon atau endpoint SIP yang Anda tentukan. Jika koneksi berhasil, agen virtual akan dikeluarkan dari panggilan dan panggilan akan dilanjutkan. Jika koneksi gagal, pesan kegagalan transfer akan diputar dan panggilan akan dilanjutkan dengan agen virtual.
Agen virtual meneruskan pekerjaan untuk panggilan internal dan eksternal. Transfer agen virtual dicatat sebagai Planned Transfers dalam pelaporan.
Mentransfer panggilan ke nomor telepon
Untuk mentransfer panggilan dari agen virtual ke nomor telepon, gunakan payload Dialogflow CX yang mirip dengan contoh kode berikut:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "phone",
"phone_number": "+16509424879"
}
}
Mentransfer panggilan ke endpoint SIP
Untuk mentransfer panggilan dari agen virtual ke endpoint SIP dengan cara standar, gunakan payload Dialogflow CX yang mirip dengan contoh kode berikut:
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "sip",
"sip_uri": "sip:1-999-123-4567@voip-provider.example.net"
}
}
Mentransfer panggilan ke endpoint SIP menggunakan metode SIP REFER
Untuk mentransfer panggilan dari agen virtual ke endpoint SIP menggunakan metode SIP REFER, gunakan payload Dialogflow CX yang mirip dengan contoh kode berikut. Dengan metode SIP REFER, Anda dapat meneruskan informasi yang berguna menggunakan properti header.
{
"ujet": {
"type": "action",
"action": "deflection",
"deflection_type" : "sip"
"sip_uri": "sip:1-999-123-4567@voip-provider.example.net"
"sip_refer": true
"sip_parameters": {
"x-header": "value",
"x-header": "value"
}
}
}
Variabel Sesi Kustom untuk penanganan payload kustom
Gunakan variabel sesi kustom untuk mengambil nilai dari respons intent dan respons pengguna akhir, lalu kumpulkan semuanya dan upload ke CRM sebagai komentar. Untuk mengetahui informasi selengkapnya, lihat Payload Dialogflow untuk variabel sesi kustom.
Menangkap dari respons pengguna akhir
Flow
Platform CCAI meminta respons ke Dialogflow CX.
Dialogflow CX dapat melakukan panggilan balik ke server pelanggan melalui Pemenuhan.
Server pelanggan seharusnya mengisi kolom session_variable dalam respons.
Dialogflow CX menampilkan respons dengan payload kustom termasuk kolom
session_variabledengan capture_target =end_user_responsePengguna akhir mengirim pesan.
Platform CCAI menyimpan pesan pengguna akhir yang dikirim pada langkah sebelumnya.
Platform CCAI akan memposting semua variabel sesi yang telah direkam dalam sesi chat ke CRM sebagai komentar saat agen virtual keluar dari chat.
Format payload kustom
{
"ujet": {
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "key"
}
}
}
Pesan pengguna akhir berikutnya segera setelah agen virtual mengirimkan payload kustom akan diambil sebagai variabel sesi dengan kunci "key".
Pengambilan dari respons intent
Flow
Platform CCAI meminta respons ke Dialogflow CX.
Dialogflow CX dapat memanggilnya kembali ke server pelanggan melalui Pemenuhan.
Server pelanggan seharusnya mengisi kolom
session_variabledalam respons.
Dialogflow CX menampilkan respons dengan payload kustom, termasuk kolom
session_variabledengancapture_target = "payload".Server CCAI Platform menyimpan objek
payloaddi langkah 2.
Platform CCAI akan memposting semua variabel sesi yang telah direkam dalam sesi chat ke CRM sebagai komentar saat agen virtual keluar dari chat.
Format payload kustom
{
"ujet": {
"session_variable": {
"capture_target": "payload",
"capture_type": [
"comment",
"agent"
],
"payload": {
"status": "STATUS",
"order_id": "ORDER_ID",
"personal_id": "PERSONAL_ID"
},
"invisible_to_agent": ["INVISIBLE_TO_AGENT"],
"display_order_in_adapter": ["DISPLAY_ORDER_IN_ADAPTER"]
}
}
}
Ganti kode berikut:
STATUS: status pesananORDER_ID: ID pesananPERSONAL_ID: ID pengguna akhir.INVISIBLE_TO_AGENT: Array properti yang tidak ingin Anda tampilkan di adaptor agen. Misalnya, nilai"personal_id"di sini akan mencegah propertipersonal_idditampilkan di adaptor agen. Untuk mengetahui informasi selengkapnya, lihat Menampilkan variabel sesi agen virtual.DISPLAY_ORDER_IN_ADAPTER: Array properti untuk menentukan urutan variabel sesi yang harus muncul di adaptor agen dan di data CRM. Untuk mengetahui informasi selengkapnya, lihat Menampilkan variabel sesi agen virtual.
Upload variabel sesi kustom di CRM
Untuk setiap variabel sesi, server seharusnya mengumpulkan semua variabel sesi secara internal, lalu menguploadnya ke CRM saat agen virtual keluar.
Contoh pesan CRM
###########################
Chat ID: 1
Menu ID: 1
Chatbot Platform: Platform Name
Chatbot Workflow: Workflow Name
Virtual Agent: Virtual Agent Name
###########################
Intent: Intent Captured from End User Response
Captured At: 2020-06-25 14:54:19
Captured Variables
request: Cancel Order
###########################
Intent: Intent Captured from Payload
Captured At: 2020-06-25 14:58:23
Captured Variables
status: Cancelled
order_id: #12345
###########################
Contoh skenario
Berikut adalah contoh percakapan yang menunjukkan berbagai langkah dan pesan yang dipertukarkan antara agen virtual dan pengguna akhir.
Langkah 1
Pesan chat dari agen virtual
How can I help you?
(Button) Show my orders
(Button) Cancel an order
Respons maksud (payload kustom)
{
"ujet": {
"type": "inline_button",
"title": "How can I help you?",
"buttons": [
{
"title": "Show my orders",
"action": "quick_reply"
},
{
"title": "Cancel an order",
"action": "quick_reply"
}
]
}
}
Variabel sesi yang direkam
Tidak ada
Langkah 2
Pesan Chat dari pengguna akhir
Click "Cancel an order" button.
Variabel sesi yang direkam
Tidak ada
Langkah 3
Pesan chat dari agen virtual
Can you provide the order id please
Respons maksud (payload kustom)
{
"ujet": {
"type": "text"
"messages": [
"Can you provide the order id please"
],
"session_variable": {
"capture_target": "end_user_response",
"capture_key": "order_id";
}
}
}
Variabel sesi yang direkam
Tidak ada
Langkah 4
Pesan Chat dari pengguna akhir
Order id is #12345
Variabel sesi yang direkam
order_id: "Order ID is #12345"
Langkah 5
Pesan chat dari agen virtual
Order #12345 is cancelled.
Do you need anything else?
Respons maksud (payload kustom)
{
"ujet": {
"type": "text",
"messages": [
"Order #12345 is canceled.",
"Do you need anything else?"
],
"session_variable": {
"capture_target": "payload",
"capture_type": [
"agent",
"comment",
"event"
],
"payload": {
"order_id": "#12345",
"order_status": "cancelled"
}
}
}
}
Variabel sesi yang direkam
order_id: "#12345",
order_status: canceled
Langkah 6
Pesan Chat dari pengguna akhir
I would like to speak with a human agent.
Langkah 7
Pesan chat dari agen virtual
Virtual Agent is left from the conversation.
{
"ujet": {
"type": "escalation",
"escalation_reason": "by_consumer"
}
}
Upload variabel sesi kustom di CRM
Dari skenario sebelumnya, komentar berikut diposting di tiket CRM:
---------------------------------
Chat ID: 1
Menu ID: 1
Chatbot Platform: Platform Name
Chatbot Workflow: Workflow Name
Virtual Agent: Virtual Agent Name
--------------------------------
Intent: Intent Captured from End User Response
Captured At: 2020-06-25 14:54:19
Captured Variables
order_id: Order id is #12345.
--------------------------------
Intent: Intent Captured from Payload
Captured At: 2020-06-25 14:58:23
Captured Variables
order_id: #12345
order_status: canceled
--------------------------------
Mengonfigurasi kartu konten
Kartu konten menampilkan konten yang ringkas dan menarik secara visual dalam format seperti kartu, sehingga menciptakan interaksi yang lebih sederhana bagi pengguna akhir untuk menggunakan informasi yang disajikan. Anda dapat membuat kartu konten menggunakan Dialogflow CX dan menyesuaikannya dengan judul, subjudul, dan teks isi.
Contoh berikut menggunakan kartu konten untuk menampilkan opsi restoran kepada pengguna akhir:

Properti kartu konten
| Nama Properti | Deskripsi | Wajib | Jenis |
|---|---|---|---|
title |
Judul kartu. | Ya | String |
subtitle |
Subjudul kartu. | Tidak | String |
body |
Deskripsi kartu konten. | Ya | String |
link |
Link halaman web atau deep link. SDK akan menggunakan kemampuan OS untuk membukanya. | Tidak | String |
event_params |
Kamus yang berisi informasi tambahan tentang peristiwa klik. SDK akan menggunakan ini. | Tidak | Kamus |
Payload Dialogflow CX: Menambahkan validasi dan menerima jenis kartu konten
Jenis payload Dialogflow CX tertentu menangani kartu konten saat pesan dari pengguna akhir diterima melalui server chatbot. Berikut adalah contoh payload Dialogflow CX:
{
"ujet": {
"type": "content_card",
"cards": [
{
"title": "Title",
"subtitle": "Subtitle",
"body": "Body",
"link": "app://page",
"event_params": {} # for deep-link click event
}
]
}
}
Informasi tentang kartu konten dalam histori chat CRM
Informasi judul kartu dicatat untuk melacak kartu mana yang telah diklik pengguna akhir. Informasi ini dicatat dalam histori chat CRM.
Dalam contoh berikut, histori pesan chat di CRM menampilkan interaksi kartu konten.
[Chat message history]
ID: 305 | 2023-07-06 PDT
--------------------------------------------------
[01:13:32 VA] Welcome message
[01:14:35 Mobile U.] Content Cards:
- Title 1
- Title 2
Mencatat peristiwa klik judul kartu konten
Untuk mencatat log saat pengguna akhir mengklik judul kartu konten, gunakan format berikut untuk merekam peristiwa:
{end_user_name} clicked on the '{title}' card.
Note Title: Content Card click
Note Comment: 'John Doe' clicked on the 'See our new website' card.
Membuat peristiwa klik kartu konten menggunakan End User Event API
Saat pengguna akhir mengklik judul kartu konten, Anda dapat merekam peristiwa ini dengan mengirim permintaan POST ke URL yang ditentukan bersama dengan judul kartu yang diklik.
Endpoint API: POST /api/v2/chat/:id/end_user_event
Penggunaan: Buat peristiwa klik kartu konten.
URL: /api/v2/chats/:id/end_user_event
Metode: POST
Parameter:
| Kolom | Jenis | Deskripsi |
|---|---|---|
event |
objek | |
event.name |
string | Untuk peristiwa klik kartu konten, gunakan content_card_clicked. |
event.payload |
objek | |
event.payload.title |
string | Masukkan judul kartu yang diklik. |
(Opsional) end_user_name |
string | Masukkan nama pengguna akhir. Jika dibiarkan kosong, nama akan diambil dari CRM. |
Contoh permintaan:
{
"event": {
"name": "content_card_clicked",
"payload": {
"title": "New our website"
}
},
"end_user_name": "consumer 1" ## optional
}
Respons: Status: 202 Accepted