Untuk giliran percakapan agen, agen harus merespons pengguna akhir dengan jawaban atas pertanyaan, kueri untuk informasi, atau penghentian sesi. Agen Anda mungkin juga perlu menghubungi layanan Anda untuk membuat respons dinamis atau mengambil tindakan untuk suatu giliran. Fulfillment digunakan untuk mencapai semua hal ini.
Fulfillment dapat berisi salah satu hal berikut:
- Pesan respons statis.
- Panggilan webhook untuk respons dinamis dan/atau untuk mengambil tindakan.
- Parameter preset untuk menetapkan atau mengganti nilai parameter.
Selama giliran agen, Anda dapat (dan terkadang sebaiknya) memanggil beberapa fulfillment, yang masing-masing dapat menghasilkan pesan respons. Dialogflow CX mempertahankan respons ini dalam antrean respons. Setelah giliran agen selesai, Dialogflow CX akan mengirimkan respons yang diurutkan ke pengguna akhir.
Kasus penggunaan fulfillment
Fulfillment memungkinkan Anda memberikan pesan respons di tempat berikut:
- Fulfillment entri halaman
- Rute
- Penangan peristiwa
- Perintah awal untuk formulir
- Penangan perintah ulang untuk formulir
Untuk setiap kasus penggunaan ini, konsol akan membuka panel pengeditan fulfillment.

Respons agen (opsi dialog)
Tentukan pesan respons agen pada waktu desain saat membuat fulfillment. Saat runtime, respons ini ditambahkan ke antrean respons.
Ada beberapa jenis pesan respons, yang dijelaskan di subbagian berikut. Saat menggunakan konsol, panel fulfillment memiliki kartu Agent dialogue awal, tetapi Anda dapat mengklik Add dialogue response untuk menambahkan lebih banyak kartu untuk jenis pesan respons lainnya.
Respons teks statis
Pesan respons teks statis menyediakan dialog teks kepada pengguna. Jika panggilan API intent deteksi atau panggilan integrasi Anda menggunakan sintesis ucapan, teks ini akan menghasilkan konten audio. Untuk pesan ini, teks yang diberikan menggunakan Speech Synthesis Markup Language (SSML).
Anda dapat menentukan beberapa kartu respons teks dan beberapa respons teks dalam setiap kartu. Jika Anda menentukan beberapa kartu, kartu tersebut akan digabungkan untuk satu respons saat runtime. Jika Anda menentukan beberapa respons dalam kartu, salah satu pesan dalam kartu akan dipilih secara acak saat runtime.
Pesan teks ini dapat berisi referensi parameter dan fungsi sistem inline.
Payload kustom
Beberapa integrasi mendukung respons payload kustom untuk menangani respons lengkap. Payload kustom ini harus disediakan dalam format JSON yang ditentukan dalam dokumentasi integrasi. Misalnya, lihat format payload kustom Dialogflow CX Messenger.
Anda dapat menyertakan referensi parameter dalam JSON payload kustom. Gabungkan dalam tanda kutip ganda untuk memperlakukannya sebagai nilai string JSON. Contoh:
{
"someField": "$session.params.date"
}
JSON payload kustom harus dibatasi hingga 24 tingkat kedalaman.
Anda juga dapat mengirim payload kustom ke integrasi yang Anda kembangkan. Payload kustom tidak akan diproses oleh Dialogflow CX, sehingga Anda harus menanganinya dalam logika bisnis Anda sendiri.
Untuk mengetahui informasi selengkapnya, lihat template payload kustom.
Penyerahan agen langsung
Respons ini memberi sinyal kepada pemanggil API intent deteksi bahwa percakapan harus diserahkan kepada agen manusia. Dialogflow CX hanya menggunakan sinyal ini untuk mengidentifikasi percakapan yang diserahkan untuk tujuan pengukuran; sinyal ini tidak mengubah status sesi.
Sistem atau integrasi Anda dapat menggunakan sinyal ini untuk mengambil tindakan yang diperlukan untuk menyerahkan percakapan. Karena Dialogflow CX tidak menerapkan struktur pada data ini, Anda dapat memilih struktur apa pun yang sesuai dengan sistem Anda.
Metadata keberhasilan percakapan
Respons ini memberi sinyal kepada pemanggil API intent deteksi bahwa percakapan dengan agen Dialogflow CX berhasil. Dialogflow CX menggunakan sinyal ini untuk mengidentifikasi percakapan yang berhasil untuk tujuan pengukuran, dan tidak mengubah status sesi dengan cara apa pun.
Sistem atau integrasi Anda dapat menggunakan sinyal ini untuk mengambil tindakan yang diperlukan. Dialogflow CX tidak menerapkan struktur apa pun pada data ini, sehingga Anda dapat memilih struktur apa pun yang sesuai dengan sistem Anda.
Memutar audio yang direkam sebelumnya
Respons ini memutar file audio untuk integrasi yang mendukung fitur ini.
Persyaratan format file audio mungkin berbeda untuk integrasi yang berbeda. Misalnya, lihat persyaratan untuk Gateway Telepon Dialogflow CX.
Untuk integrasi telepon partner, URL untuk file audio harus dapat diakses oleh partner. URL yang tersedia secara publik, seperti file publik di Cloud Storage, selalu dapat diakses oleh partner. Partner juga dapat memberikan akses terbatas untuk file audio. Lihat dokumentasi partner untuk mengetahui detailnya.
Teks audio output
Respons ini mirip dengan respons teks, tetapi hanya berlaku untuk sintesis ucapan. Jika agen Anda dapat menangani sesi teks dan suara, Anda dapat menggunakan respons teks dan teks audio output yang unik untuk membuat pengalaman pengguna yang berbeda untuk teks dan suara. Jika teks audio output disediakan untuk sesi suara, respons teks biasa akan diabaikan.
Jika agen Anda menangani sesi teks dan suara, dan Anda menginginkan pesan respons yang sama, gunakan respons teks untuk sesi teks dan suara.
Teks audio output digabungkan dengan cara yang sama seperti respons teks. Jika respons teks audio output adalah campuran teks dan SSML, hasil gabungan akan diperlakukan sebagai SSML. Idealnya, Anda harus menggunakan teks atau SSML secara konsisten.
Respons bersyarat
Jenis respons ini memberikan respons bersyarat:
Format umumnya adalah:
if [condition] [response] elif [condition] [response] elif [condition] [response] else [response] endif
dengan:
[condition]menggunakan format yang sama dengan kondisi rute.[response]adalah respons teks.- Blok
elifdanelsebersifat opsional.
Contoh:
if $session.params.user-age >= 21 Ok, you may enter. else Sorry, you cannot enter. endif
[condition] dan [response] dapat menggunakan fungsi sistem inline untuk menghasilkan nilai dinamis selama percakapan. Untuk mengetahui informasi selengkapnya, lihat
fungsi sistem dan
kondisi rute. [condition] diselesaikan berdasarkan status sesi pada awal fulfillment. Jika [response] bergantung pada status sesi, respons akan diselesaikan berdasarkan status sesi yang diperbarui pada akhir fulfillment.
Untuk agen multibahasa,
[condition] bersifat umum untuk semua bahasa, sedangkan [response] bersifat
khusus bahasa. Saat Anda mengubah [condition] untuk satu bahasa di konsol, bagian ini akan diperbarui di semua bahasa agen. Karena menjadi kondisi baru, [response] akan dihapus untuk semua bahasa selain bahasa yang Anda pilih saat memperbarui [condition].
Transfer panggilan telepon
Transfer panggilan hanya tersedia untuk Gateway Telepon Dialogflow CX.
Untuk beberapa integrasi telepon, Anda dapat menentukan nomor telepon di Amerika Serikat untuk transfer panggilan. Saat runtime, saat agen Dialogflow CX memicu fulfillment dengan transfer panggilan, panggilan akan ditransfer ke nomor yang ditentukan dan penanganan agen akan ditangguhkan.
Respons alat penyimpanan data
Jenis respons ini mengonfigurasi respons agen yang ditampilkan dari alat penyimpanan data tertaut. Jika Anda mengonfigurasi alat penyimpanan data dalam fulfillment ini, kartu respons alat penyimpanan data akan diisi secara otomatis.
- Link sumber: Tetapkan jumlah maksimum kutipan yang akan ditampilkan kepada pengguna setelah respons. Kutipan adalah link ke sumber informasi di penyimpanan data, yang dirender sebagai tombol. Nilai defaultnya adalah 1.
- Kutipan inline: Batasi jumlah kutipan inline yang ditampilkan per kalimat, bukan mencantumkan link setelah respons.
- Penggantian respons generatif: Konfigurasi agen untuk mencoba respons yang dihasilkan AI jika penyimpanan data menampilkan hasil kosong. Jika gagal, agen akan menggunakan respons statis.
- Respons statis: Masukkan respons teks statis di kolom terakhir untuk dikirim ke pengguna kata demi kata.
Pesan respons khusus saluran
Saat menentukan fulfillment, Anda dapat membuat pesan respons khusus saluran untuk membuat respons yang ditargetkan untuk chat teks, suara, SMS, atau integrasi tertentu yang mendukung saluran. Pesan respons yang tidak khusus untuk saluran disebut pesan respons default.
Saat runtime, Dialogflow CX memilih pesan respons default atau pesan respons khusus saluran saat permintaan intent deteksi menentukan saluran. Sebagai praktik terbaik, Anda harus menentukan pesan respons default, meskipun Anda menggunakan pesan respons khusus saluran. Pesan respons default bertindak sebagai penggantian jika sistem Anda gagal menyediakan saluran yang valid.
Nama channel adalah kolom kustom yang dapat Anda tetapkan ke teks apa pun. Jika Anda menggunakan Dialogflow CX API secara langsung untuk panggilan runtime, Anda dapat menggunakan nama saluran apa pun yang Anda suka. Jika Anda menggunakan integrasi yang ada, Anda harus menggunakan nama saluran yang dikenali oleh integrasi tersebut.
Menetapkan pesan respons khusus saluran pada waktu desain
Untuk memberikan pesan respons khusus saluran untuk fulfillment saat menggunakan konsol:
- Klik Add channel setelah menambahkan pesan respons default untuk menambahkan pesan respons khusus saluran. Klik Add channel lagi untuk menambahkan saluran tambahan.
Untuk memberikan pesan respons khusus saluran untuk fulfillment saat menggunakan API:
- Tetapkan kolom
Fulfillment.messages[i].channelke saluran yang dipilih untuk setiap pesan respons. Jika kolom ini tidak ditetapkan, respons akan diperlakukan sebagai pesan respons default.
Menggunakan pesan respons khusus saluran saat runtime
Jika Anda menggunakan integrasi yang ada yang mendukung saluran, penerapan integrasi akan melakukan langkah-langkah ini.
Untuk menerima pesan respons khusus saluran, Anda harus menentukan saluran dalam pesan permintaan intent deteksi. Lihat kolom queryParams.channel dalam metode detectIntent dari jenis Sessions.
Pilih protokol dan versi untuk referensi Sesi:
| Protokol | V3 | V3beta1 |
|---|---|---|
| REST | Resource sesi | Resource sesi |
| RPC | Antarmuka sesi | Antarmuka sesi |
| C++ | SessionsClient | Tidak tersedia |
| C# | SessionsClient | Tidak tersedia |
| Go | SessionsClient | Tidak tersedia |
| Java | SessionsClient | SessionsClient |
| Node.js | SessionsClient | SessionsClient |
| PHP | Tidak tersedia | Tidak tersedia |
| Python | SessionsClient | SessionsClient |
| Ruby | Tidak tersedia | Tidak tersedia |
Dialogflow CX menampilkan pesan respons default jika permintaan tidak menentukan saluran atau jika fulfillment tidak menemukan saluran yang cocok.
Template payload kustom
Jika Anda sering menggunakan payload kustom, gunakan template payload kustom. Payload kustom terkadang berukuran besar dan kompleks, sehingga penggunaan template akan menyederhanakan proses pembuatan agen.
Sediakan template ini di setelan agen Anda agar tersedia untuk dipilih saat membuat fulfillment untuk agen Anda.
Misalnya, payload JSON untuk tombol "ya" dan "tidak" dapat ditentukan sebagai template payload kustom. Saat membuat fulfillment yang memerlukan tombol ini, pilih template saat membuat fulfillment.
Saat Anda memilih template untuk payload kustom fulfillment, konten template akan disisipkan ke dalam payload. Kemudian, Anda dapat mengedit payload sesuai kebutuhan.
Jika Anda mengubah template, perubahan tidak akan otomatis diterapkan ke semua payload fulfillment tempat template tersebut direferensikan.
Untuk membuat template payload kustom, lihat setelan umum agen.
Untuk memilih template payload kustom saat membuat fulfillment, klik Select template saat membuat payload kustom fulfillment.
Panggilan webhook
Saat fulfillment memicu webhook, agen akan mengirim permintaan ke layanan Anda. Webhook Anda dapat melakukan tindakan, memberikan pesan respons dinamis, mengganti nilai parameter, dan mengubah halaman saat ini.
Berikut ini penjelasan setelan webhook untuk fulfillment:
| X | Item |
|---|---|
| Aktifkan webhook | Mengaktifkan webhook untuk fulfillment. |
| Webhook | Pilih resource webhook. |
| Tag | Tag teks yang Anda berikan di sini akan diisi di kolom WebhookRequest.fulfillmentInfo.tag dari permintaan webhook yang dikirim ke layanan webhook Anda. Tag ini dapat digunakan untuk mengontrol perilaku webhook dengan cara yang khusus untuk fulfillment. |
| Tampilkan respons sebagian | Memungkinkan pembatalan pemutaran respons sebagian. Untuk mengetahui detailnya, lihat Setelan ucapan lanjutan. |
Parameter presets
Gunakan fulfillment untuk menyediakan preset yang menetapkan atau mengganti nilai parameter saat ini. Preset ini diterapkan sebelum menyelesaikan pesan respons statis atau memanggil webhook.
Anda juga dapat menggunakan fungsi sistem untuk menetapkan parameter ke nilai yang dihasilkan secara dinamis.
Contohnya antara lain:
Menetapkan parameter
nowke waktu saat ini:Parameter Nilai sekarang $sys.func.NOW() Menambah parameter
counteryang ada sebesar 1:Parameter Nilai penghitung $sys.func.ADD($session.params.counter, 1) Menetapkan parameter
new-costke nilai parameterother-cost, sambil mempertahankan nilai objek komposit penuh:Parameter Nilai biaya-baru $sys.func.IDENTITY($session.params.other-cost)
Alat penyimpanan data
Untuk mengetahui informasi selengkapnya tentang fitur ini, lihat dokumentasi alat penyimpanan data.
Setelan ucapan lanjutan
Setelan ucapan lanjutan ini dapat mengganti setelan ucapan halaman, setelan ucapan alur, dan setelan ucapan agen.
Antrean respons
Selama giliran agen, Anda dapat memanggil beberapa fulfillment, yang masing-masing dapat menghasilkan pesan respons. Dialogflow CX mempertahankan respons ini dalam antrean respons.
Respons sebagian untuk API streaming
Secara default, Dialogflow CX hanya mengirimkan respons yang diurutkan kepada pengguna akhir setelah giliran agen berakhir. Anda juga dapat mengaktifkan opsi Return partial response di fulfillment untuk menampilkan respons yang diantrekan sebagai respons sebagian saat menggunakan API streaming. Untuk mempelajari lebih lanjut, lihat Siklus proses halaman.
Misalnya, jika webhook Anda kemungkinan akan berjalan dalam waktu yang lama, Anda dapat menambahkan respons statis dalam fulfillment dan mengaktifkan respons sebagian. Hal ini menyebabkan Dialogflow CX mengosongkan antrean respons dan mengirim semua pesan sebagai respons sebagian sebelum memanggil webhook.
Respons sebagian tidak didukung untuk hal berikut:
- Input audio di simulator.
- Integrasi telepon partner mungkin tidak mendukung respons sebagian. Lihat dokumentasi partner untuk memverifikasi.
Untuk menguji fitur ini di simulator, aktifkan respons sebagian.

Pada contoh berikut, anggap webhook Anda memerlukan waktu 5 detik untuk selesai dan Anda tidak mengaktifkan respons sebagian. Giliran percakapan agen Dialogflow CX belum selesai hingga webhook selesai. Selama giliran 5 detik ini, respons akan diantrekan saat menunggu webhook, dan tidak akan ditampilkan kepada pengguna akhir hingga giliran selesai. Hal ini menyebabkan pengalaman pengguna yang buruk.
Jika Anda mengaktifkan respons sebagian di fulfillment pertama, Dialogflow CX akan menampilkan pesan fulfillment pertama dengan cepat dan memanggil webhook. Setelah webhook selesai, Dialogflow CX akan menampilkan respons akhir. Skenario ini meningkatkan pengalaman pengguna akhir karena pengguna akhir diberi tahu untuk menunggu sebentar. Selain itu, panggilan webhook dijalankan secara serentak dengan respons yang dikirim ke pengguna akhir.
Speech Synthesis Markup Language (SSML)
Anda dapat menggunakan Speech Synthesis Markup Language (SSML) di kolom fulfillment teks atau teks audio output. Hal ini memungkinkan Anda menyesuaikan respons audio dengan memberikan detail tentang jeda dan format audio untuk akronim, tanggal, waktu, singkatan, atau teks yang harus disensor.
Untuk mengetahui detail sintaksis, lihat dokumentasi SSML Text-to-speech.