Pengendali status

Pengendali status, juga disebut juga pengendali, digunakan untuk mengontrol percakapan dengan membuat respons untuk pengguna akhir dan/atau dengan mentransisikan halaman saat ini. Untuk setiap giliran percakapan, pengendali dievaluasi dan dapat memengaruhi sesi. Pengendali memiliki tiga jenis data umum:

Masa Berlaku Definisi
Persyaratan pengendali Ini adalah persyaratan yang harus dipenuhi agar pengendali dapat berpengaruh pada sesi. Pengendali dikatakan dipanggil jika telah memenuhi persyaratannya dan memengaruhi sesi dengan cara tertentu.
Fulfillment pengendali Jika pengendali dipanggil, fulfillment opsional akan digunakan untuk membuat respons bagi pengguna akhir. Respons ini ditentukan dalam data agen statis atau diambil secara dinamis dari layanan webhook Anda.
Target transisi pengendali Jika pengendali dipanggil, target transisi opsional akan digunakan untuk mengubah halaman saat ini. Halaman berikutnya hanya dapat berupa halaman awal alur atau halaman dalam alur yang sedang aktif.

Ada dua jenis pengendali status dengan persyaratan pengendali yang berbeda:

Masa Berlaku Definisi
Rute Rute dipanggil saat input pengguna akhir cocok dengan intent dan/atau kondisi tertentu pada status sesi terpenuhi. Rute dengan persyaratan intent juga disebut rute intent. Rute yang hanya memiliki persyaratan kondisi juga disebut rute kondisi.
Pengendali peristiwa Pengendali peristiwa dipanggil saat peristiwa dipanggil. Beberapa peristiwa bawaan dipicu saat input pengguna akhir yang tidak terduga diterima, atau saat terjadi error webhook. Anda juga dapat menentukan peristiwa kustom yang dipanggil ketika sesuatu terjadi di luar percakapan.

Ada tiga langkah untuk memproses pengendali status:

Masa Berlaku Definisi
1. Cakupan Pengendali harus berada dalam cakupan agar dapat berpengaruh pada sesi. Cakupan ditentukan oleh apakah pengendali diterapkan ke alur, halaman, atau parameter formulir; dan berdasarkan apakah alur yang terkait aktif, halaman terkait aktif, atau agen saat ini mencoba mengisi parameter formulir yang terkait.
2. Evaluasi Setiap pengendali dalam cakupan dievaluasi secara berurutan. Jika persyaratan pengendali terpenuhi, pengendali akan lulus evaluasi.
3. Panggilan Telepon Jika pengendali berada dalam cakupan dan lulus evaluasi, pengendali akan dipanggil. Fulfillment yang terkait akan dipanggil, dan semua target transisi yang terkait akan diterapkan ke sesi tersebut.

Cakupan

Agar dapat dievaluasi, pengendali harus berada dalam cakupan. Cakupan pengendali adalah alat penting dan canggih yang membantu Anda mengontrol percakapan. Dengan mengontrol cakupan pengendali, Anda dapat mengontrol:

X Item
Kapan intent dapat dicocokkan
Kapan kondisi harus diperiksa
Ketika peristiwa tertentu dapat ditangani
Kapan transisi halaman dapat terjadi
Saat respons fulfillment statis diberikan
Saat fulfillment yang mendukung webhook dipanggil untuk respons dinamis

Cakupan ditentukan oleh apakah pengendali diterapkan ke alur, halaman, atau parameter formulir; dan apakah alur yang terkait aktif, halaman terkait aktif, atau agen sedang mencoba mengisi parameter formulir yang terkait.

Aturan pencakupan mendetail adalah sebagai berikut:

  • Rute yang diterapkan ke alur aktif:
    • Jika halaman saat ini adalah halaman awal alur, halaman tersebut akan termasuk dalam cakupan.
    • Jika halaman saat ini bukan halaman awal alur, halaman tersebut hanya akan tercakup jika memiliki persyaratan intent.
  • Rute yang diterapkan ke halaman saat ini termasuk dalam cakupan.
  • Pengendali peristiwa yang diterapkan ke alur aktif berada dalam cakupan.
  • Pengendali peristiwa yang diterapkan ke halaman saat ini berada dalam cakupan.
  • Pengendali peristiwa yang diterapkan ke parameter formulir yang saat ini coba diisi oleh agen berada dalam cakupan.

Rute

Rute memiliki dua persyaratan, dan salah satu atau keduanya harus diberikan. Jika kedua persyaratan tersedia, keduanya harus dipenuhi untuk memanggil rute:

Masa Berlaku Definisi
Persyaratan intent Intent yang harus dicocokkan dengan input pengguna akhir untuk percakapan saat ini. Jika rute memiliki persyaratan intent, rute ini disebut rute intent.
Persyaratan kondisi Kondisi yang harus dipenuhi. Jika sebuah rute memiliki persyaratan kondisi, rute ini disebut rute kondisi.

Anda dapat menerapkan rute ke alur (rute tingkat alur) dan halaman (rute tingkat halaman). Misalnya, Anda dapat menggunakan rute dalam situasi berikut:

X Item
Saat input pengguna akhir cocok dengan intent, kecocokan tersebut harus memicu respons fulfillment statis.
Jika input pengguna akhir cocok dengan intent, kecocokan tersebut harus memicu fulfillment yang mengaktifkan webhook untuk respons dinamis.
Saat input pengguna akhir memberikan parameter formulir akhir yang diperlukan, pemeriksaan kondisi akan memicu transisi sesi ke halaman lain.
Saat input pengguna akhir memberikan parameter formulir tertentu, pemeriksaan kondisi akan memicu respons fulfillment statis.
Pemeriksaan kondisi yang ditetapkan ke true yang memaksa transisi halaman.

Propagasi intent

Biasanya, saat rute dipanggil karena intent yang cocok, intent akan consume. Intent yang digunakan tidak dapat dicocokkan lagi, kecuali jika input pengguna akhir baru memicu pencocokan intent baru. Namun, pencocokan intent dapat disebarkan dari satu alur ke alur lainnya dalam skenario berikut:

  • Rute di flow F1 memiliki intent I1 sebagai persyaratan dan flow F2 sebagai target transisi.
  • Flow F2 memiliki rute yang juga memiliki intent I1 sebagai persyaratan.

Dalam hal ini, saat rute di flow F1 dipanggil, intent I1 dicocokkan dua kali untuk satu input pengguna akhir, dan kedua rute akan dipanggil.

Menyebarkan intent berguna untuk:

X Item
Ubah halaman saat ini ke halaman tertentu dalam alur lain (rute alur target transisi memiliki halaman target transisi tertentu).
Buat pesan entri untuk halaman awal alur (rute alur target transisi memiliki fulfillment).

Grup rute

Saat membuat agen, Anda mungkin menemukan bahwa banyak halaman memiliki serangkaian rute yang umum. Agar rute dapat digunakan kembali, Anda dapat menentukan grup rute. Anda dapat membuat resource grup ini yang dapat digunakan kembali baik di dalam flow maupun seluruh agen.

Misalnya, Anda mungkin ingin alur Anda menangani input pengguna akhir seperti "Saya ingin menambahkan topping ke pizza saya" dan "Saya ingin mengubah ukuran minuman saya". Input ini harus ditangani jika salah satu dari beberapa halaman alur aktif. Anda dapat menentukan dua rute dengan intent guna menangani input ini untuk semua halaman yang relevan, tetapi ini adalah banyak pekerjaan duplikat. Sebagai gantinya, Anda dapat menentukan grup rute sekali, dan menambahkan referensi ke grup tersebut di semua halaman yang relevan.

Grup rute tingkat alur

Grup rute tingkat alur adalah resource grup rute yang dibuat dengan alur sebagai induk. Keduanya dapat digunakan kembali dalam alur.

Grup rute tingkat agen

Grup rute tingkat agen adalah resource grup rute yang dibuat dengan agen sebagai induk. API ini dapat digunakan kembali di seluruh agen, tetapi jangan izinkan rute yang bertransisi ke halaman non simbol sebagai target.

Rute tingkat alur

Rute tingkat alur adalah rute yang diterapkan ke alur dengan menambahkannya ke halaman awal alur. Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Pengendali dengan persyaratan intent atau kondisi dalam cakupan untuk halaman awal alur.
Pengendali dengan persyaratan intent dalam cakupan untuk semua halaman dalam alur.

Untuk membuat rute tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik tombol tambahkan di judul Routes.
  3. Panel pengeditan rute akan terbuka.
  4. Berikan kolom rute.
  5. Klik Save.

Untuk menyusun ulang rute tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik judul Routes.
  3. Panel daftar rute akan terbuka.
  4. Tarik rute sesuai urutan yang diinginkan. Atau, klik menu opsi , lalu pilih Pindahkan Ke.

Untuk menghapus rute tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik judul Routes.
  3. Panel daftar rute akan terbuka.
  4. Klik menu opsi .
  5. Pilih Hapus.

Rute tingkat halaman

Rute tingkat halaman adalah rute yang diterapkan ke halaman. Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Pengendali dengan persyaratan intent atau kondisi dalam cakupan saat halaman tertentu aktif.

Untuk membuat rute tingkat halaman dari console:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik tombol tambahkan di judul Routes.
  3. Panel pengeditan rute akan terbuka.
  4. Berikan kolom rute.
  5. Klik Save.

Untuk menyusun ulang rute tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik judul Routes.
  3. Panel daftar rute akan terbuka.
  4. Tarik rute sesuai urutan yang diinginkan. Atau, klik menu opsi , lalu pilih Pindahkan Ke.

Untuk menghapus rute tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik judul Routes.
  3. Panel daftar rute akan terbuka.
  4. Klik menu opsi .
  5. Pilih Hapus.

Pengendali peristiwa

Pengendali peristiwa memiliki satu persyaratan agar dapat dipanggil:

Masa Berlaku Definisi
Persyaratan peristiwa Peristiwa yang harus dipanggil. Peristiwa diidentifikasi berdasarkan namanya. Beberapa peristiwa bawaan dipanggil saat input pengguna akhir yang tidak terduga diterima, atau saat terjadi error webhook. Anda juga dapat menentukan peristiwa kustom yang dipanggil saat terjadi sesuatu di luar percakapan.

Anda dapat menerapkan pengendali peristiwa ke alur (pengendali peristiwa tingkat alur), halaman (pengendali peristiwa tingkat halaman), dan parameter (pengendali peristiwa tingkat parameter). Misalnya, Anda dapat menggunakan pengendali peristiwa dalam situasi berikut:

X Item
Jika input pengguna akhir tidak cocok dengan intent apa pun, pengendali peristiwa no-match akan memberikan respons fulfillment statis tertentu.
Timer akan berakhir di sistem, dan Anda ingin memberikan informasi pengingat kepada pengguna akhir dengan respons fulfillment statis tertentu.

Pengendali peristiwa tingkat alur

Pengendali peristiwa level flow adalah pengendali peristiwa yang diterapkan ke flow. Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Pengendali dengan persyaratan peristiwa dalam cakupan untuk halaman awal alur.
Pengendali dengan persyaratan peristiwa dalam cakupan untuk semua halaman dalam alur.
Menangani input pengguna akhir yang tidak terduga, dibagikan oleh semua halaman dalam alur.
Menangani error webhook, yang dibagikan oleh semua halaman dalam alur.
Menangani peristiwa kustom yang dipanggil oleh sistem Anda, yang dibagikan oleh semua halaman dalam alur.

Setiap alur memiliki pengendali peristiwa untuk peristiwa bawaan no-match dan no-input. Pengendali peristiwa ini otomatis dibuat saat Anda membuat flow, dan tidak dapat dihapus.

Untuk membuat pengendali peristiwa tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik tombol tambahkan di judul Pengendali peristiwa.
  3. Panel pengendali peristiwa akan terbuka.
  4. Menyediakan kolom pengendali peristiwa.
  5. Klik Save.

Untuk menghapus pengendali peristiwa tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik judul Pengendali peristiwa.
  3. Panel daftar pengendali peristiwa akan terbuka.
  4. Arahkan mouse ke pengendali peristiwa, lalu klik tombol hapus .

Pengendali peristiwa tingkat halaman

Pengendali peristiwa tingkat halaman adalah pengendali peristiwa yang diterapkan ke halaman. Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Pengendali dengan persyaratan peristiwa dalam cakupan saat halaman tertentu aktif.
Menangani input pengguna akhir yang tidak terduga, khusus untuk sebuah halaman.
Menangani error webhook, khusus untuk halaman.
Menangani peristiwa kustom yang dipanggil oleh sistem Anda, khusus untuk halaman.

Untuk membuat pengendali peristiwa tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Jika tidak ada judul Pengendali peristiwa, klik Tambahkan pengendali status, pilih Pengendali peristiwa, lalu klik Apply.
  3. Klik tombol tambahkan di judul Pengendali peristiwa.
  4. Panel pengendali peristiwa akan terbuka.
  5. Menyediakan kolom pengendali peristiwa.
  6. Klik Save.

Untuk menghapus pengendali peristiwa tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik judul Pengendali peristiwa.
  3. Panel daftar pengendali peristiwa akan terbuka.
  4. Arahkan mouse ke pengendali peristiwa, lalu klik tombol hapus .

Pengendali peristiwa level parameter

Pengendali peristiwa level parameter adalah pengendali peristiwa yang diterapkan ke parameter formulir. Ini juga dikenal sebagai pengendali permintaan ulang. Pengendali peristiwa ini tidak mengizinkan peristiwa kustom, karena ditujukan khusus untuk menangani input pengguna akhir yang tidak valid selama pengisian formulir.

Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Pengguna akhir tidak memberikan input yang valid saat diminta untuk mengisi parameter formulir.

Untuk membuat pengendali peristiwa level parameter dari konsol:

  1. Buka halaman yang berisi parameter formulir.
  2. Klik parameter.
  3. Panel parameter akan terbuka.
  4. Scroll ke bawah ke bagian Pengendali peristiwa Reprompt, lalu klik Tambahkan pengendali peristiwa.
  5. Panel pengendali peristiwa akan terbuka.
  6. Menyediakan kolom pengendali peristiwa.
  7. Klik Save.

Untuk menghapus pengendali peristiwa level parameter dari konsol:

  1. Buka halaman yang berisi parameter formulir.
  2. Klik parameter.
  3. Panel parameter akan terbuka.
  4. Scroll ke bawah ke bagian Pengendali peristiwa Reprompt.
  5. Arahkan mouse ke pengendali peristiwa, lalu klik tombol hapus .

Acara bawaan

Peristiwa berikut merupakan bawaan dan dipanggil oleh Dialogflow. Beberapa peristiwa dibatasi pada level tertentu.

Nama peristiwa
Tingkat alur Tingkat halaman Level parameter Dipanggil saat
sys.no-match-default
  • Untuk tingkat alur atau halaman: input pengguna akhir tidak cocok dengan intent apa pun untuk pengendali yang berada dalam cakupan.
  • Untuk tingkat parameter: input pengguna akhir tidak memenuhi parameter formulir.
sys.no-match-[1-6] Jika Anda menyediakan pengendali untuk salah satu peristiwa yang diurutkan secara numerik ini, pengendali tersebut akan dipanggil, bukan sys.no-match-default dan dalam urutan: sys.no-match-1, sys.no-match-2, ...
sys.no-input-default Input pengguna akhir tidak diterima. Ini dapat dipanggil jika:
  • Dialogflow menerima input teks pengguna akhir yang kosong.
  • Dialogflow menerima input audio pengguna akhir kosong atau input tersebut tidak berisi ucapan yang dikenali.
  • Waktu tunggu tidak ada ucapan terjadi sebelum input audio pengguna akhir berisi ucapan yang dikenali.
sys.no-input-[1-6] Jika Anda menyediakan pengendali untuk salah satu peristiwa yang diurutkan secara numerik ini, pengendali tersebut akan dipanggil, bukan sys.no-input-default dan dalam urutan: sys.no-input-1, sys.no-input-2, ...
sys.invalid-parameter Dipanggil saat respons webhook membatalkan parameter dengan menetapkan WebhookResponse.pageInfo.formInfo.parameterInfo.state ke INVALID.
sys.long-utterance Input pengguna akhir melebihi panjang maksimum yang diizinkan (256 karakter) yang cocok dengan parameter atau intent non-generatif. Jika tidak disediakan, Dialogflow akan memperlakukan ucapan pengguna yang panjang sebagai no-match. Untuk input audio streaming, peristiwa ini hanya dipicu setelah klien menutup streaming audio.
webhook.error Panggilan webhook menampilkan error. Peristiwa ini hanya dipanggil: 1) jika tidak ada pengendali peristiwa webhook terperinci (mis. webhook.error.timeout) yang cocok dengan kode error webhook, 2) jika tidak ada target transisi yang ditetapkan di rute asli yang disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.timeout Waktu panggilan webhook habis. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di rute asli yang disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.bad-request Webhook menampilkan 400 Bad Request. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di rute asli yang disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.rejected Webhook menampilkan 401 Tidak Sah atau 403 Terlarang. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di rute asli yang disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.unavailable Webhook menampilkan 503 Service Tidak Tersedia. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di rute asli yang disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.not-found Panggilan webhook gagal karena URL webhook tidak dapat dijangkau. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di rute asli yang disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
flow-cancelled Pengguna akhir meminta pembatalan alur. Peristiwa ini dipicu oleh halaman Alur Akhir dengan Pembatalan, lihat target transisi simbolis END_FLOW_WITH_CANCELLATION.
flow-failed Alur ini tidak dapat menyelesaikan tugas yang diberikan. Peristiwa ini dipicu oleh halaman Alur Akhir dengan Kegagalan, lihat target transisi simbolis END_FLOW_WITH_FAILURE.
flow-failed-human-escalation Pengguna akhir meminta untuk berbicara dengan agen manusia. Peristiwa ini dipicu oleh halaman Alur Akhir dengan Eskalasi Manusia, lihat target transisi simbolis END_FLOW_WITH_HUMAN_ESCALATION.

Peristiwa kustom

Anda dapat membuat peristiwa kustom dan pengendali peristiwa. Peristiwa kustom digunakan untuk menangani hal-hal yang terjadi di luar percakapan dengan pengguna akhir. Misalnya, pengguna akhir mengklik tombol, waktu tertentu telah berlalu, inventaris yang tersedia telah berubah selama percakapan, dan seterusnya.

Peristiwa cukup diidentifikasi berdasarkan nama. Anda harus menghindari penggunaan nama peristiwa yang diawali dengan sys. atau webhook. untuk menghindari konflik dengan peristiwa bawaan.

Untuk memanggil peristiwa dengan API, lihat kolom queryInput.event pada metode detectIntent untuk jenis Session.

Pilih protokol dan versi untuk Referensi sesi:

Protokol V3 V3beta1
REST Referensi sesi Referensi 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

Urutan evaluasi

Pengendali dievaluasi dalam urutan tertentu. Aturan umum berikut berlaku:

  1. Hanya pengendali dalam cakupan yang dievaluasi.
  2. Hanya pengendali yang persyaratannya terpenuhi yang dapat dipanggil.
  3. Jika pengendali tanpa target transisi dipanggil, evaluasi daftar pengendali akan dilanjutkan. Karena aturan ini, beberapa fulfillment dapat menambahkan beberapa pesan ke antrean respons.
  4. Jika pengendali dengan target transisi dipanggil, evaluasi daftar pengendali akan berakhir.
  5. Jika pengendali dengan fulfillment dipanggil, dan fulfillment menghasilkan error webhook:
    • Jika pengendali telah menentukan target transisi, webhook akan otomatis gagal.
    • Jika pengendali peristiwa berada dalam cakupan peristiwa, pengendali peristiwa akan menangani peristiwa dan evaluasi daftar pengendali berakhir.
    • Jika tidak ada pengendali peristiwa yang tercakup dalam peristiwa, webhook akan otomatis gagal.
  6. Jika persyaratan intent terpenuhi, intent akan digunakan, sehingga hanya pengendali rute pertama yang ditemukan untuk intent yang dapat dipanggil (Lihat propagasi intent untuk pengecualian).
  7. Jika persyaratan kondisi terpenuhi, kondisi tidak akan dipakai, sehingga beberapa rute dengan kondisi tersebut dapat dipanggil.
  8. Jika suatu persyaratan peristiwa terpenuhi, peristiwa tersebut akan dipakai, sehingga hanya pengendali peristiwa pertama yang ditemukan untuk peristiwa tersebut yang dapat dipanggil.
  9. Stack panggilan pengendali dapat memengaruhi urutan evaluasi.

Ada tiga fase dalam evaluasi:

  1. Rute yang memiliki persyaratan intent akan dievaluasi dalam urutan ini:
    1. Tingkat halaman: Setiap rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    2. Grup tingkat halaman: Grup rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    3. Tingkat alur: Rute yang diterapkan pada alur aktif, dalam urutan yang diberikan.
    4. Grup tingkat alur: Grup rute yang diterapkan pada alur aktif, dalam urutan yang diberikan.
  2. Rute dengan persyaratan kondisi saja akan dievaluasi dalam urutan ini:
    1. Tingkat halaman: Setiap rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    2. Grup tingkat halaman: Grup rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    3. Tingkat alur (Hanya jika halaman saat ini adalah halaman awal alur): Rute yang diterapkan pada alur aktif, dalam urutan yang diberikan.
    4. Grup tingkat alur (Hanya jika halaman saat ini adalah halaman awal alur): Grup rute yang diterapkan ke alur aktif, dalam urutan yang diberikan.
  3. Pengendali peristiwa dievaluasi dalam urutan ini:
    1. Level parameter: Pengendali peristiwa yang diterapkan ke parameter formulir halaman saat ini yang sedang coba diisi oleh agen (pengendali permintaan ulang), dalam urutan yang diberikan.
    2. Tingkat halaman: Pengendali peristiwa yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    3. Tingkat alur: Pengendali peristiwa yang diterapkan pada alur aktif, dalam urutan yang diberikan.

Target transisi simbolis

Saat memasukkan target transisi untuk pengendali, Anda dapat memasukkan alur atau halaman tertentu, tetapi Anda juga dapat memasukkan target transisi simbolis:

Target transisi simbolis
Deskripsi
START_PAGE Transisi ke halaman awal alur aktif dengan nama serupa.
END_FLOW Akhiri alur yang saat ini aktif dan transisikan kembali ke halaman yang menyebabkan transisi ke alur saat ini. Lihat juga Stack panggilan pengendali dan batas stack alur.
END_FLOW_WITH_CANCELLATION Akhiri alur yang saat ini aktif dan transisikan kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan peristiwa bawaan flow-cancelled. Lihat juga Stack panggilan pengendali dan batas stack alur.
END_FLOW_WITH_FAILURE Akhiri alur yang saat ini aktif dan transisikan kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan peristiwa bawaan flow-failed. Lihat juga Stack panggilan pengendali dan batas stack alur.
END_FLOW_WITH_HUMAN_ESCALATION Akhiri alur yang saat ini aktif dan transisikan kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan peristiwa bawaan flow-failed-human-escalation. Lihat juga Stack panggilan pengendali dan batas stack alur.
END_SESSION Hapus sesi saat ini dan transisi ke halaman khusus bernama END_SESSION. Input pengguna berikutnya akan memulai ulang sesi di halaman awal Alur Mulai Default.
PREVIOUS_PAGE Transisi ke halaman sebelumnya yang menyebabkan transisi ke halaman saat ini. Status halaman dari halaman sebelumnya akan dipulihkan setelah transisi.
CURRENT_PAGE Transisi ulang ke halaman saat ini. Hal ini dapat berguna jika Anda ingin agen mengulangi sesuatu.

Stack panggilan pengendali dan batas stack alur

Saat sesi bertransisi dari flow ke flow dengan target transisi tertentu, setiap alur didorong ke stack alur.

Stack panggilan pengendali

Saat bertransisi ke END_FLOW, sesi akan kembali ke halaman panggilan yang menyebabkan transisi ke alur selesai. Dalam situasi ini, stack panggilan pengendali dipertahankan. Semua pengendali yang sebelumnya dievaluasi dari halaman panggilan akan dilewati, dan pengendali yang tersisa akan dievaluasi secara berurutan.

Contoh:

  1. Halaman P memiliki tiga pengendali dalam urutan ini: H1, H2, H3.
  2. H1 dievaluasi, tetapi tidak menyebabkan transisi.
  3. H2 dievaluasi, dan menyebabkan transisi mengalir F.
  4. Halaman di alur F bertransisi ke END_FLOW.
  5. Sesi akan kembali ke Halaman P, yang akan aktif lagi dengan status yang dipertahankan.
  6. Evaluasi pengendali di halaman P berlanjut dari status yang dipertahankan, sehingga H3 dievaluasi.

Batas stack flow

Batas tumpukan alur maksimum adalah 25. Melebihi batas stack maksimum dapat menyebabkan flow dimunculkan dari stack, yang menyebabkan perilaku yang tidak terduga saat menggunakan transisi END_FLOW. Untuk menghindari potensi masalah ini, minimalkan jumlah transisi flow-to-flow sebelum transisi END_FLOW.

Jika stack alur kosong, transisi END_FLOW akan mengakhiri sesi.

Menetapkan kondisi

Untuk menetapkan conditions dengan konsol, Anda memberikan aturan kondisi dengan salah satu dari tiga opsi logis:

  • Cocokkan SEDIKIT SATU aturan (OR)
  • Cocokkan SEMUA aturan (DAN)
  • Sesuaikan ekspresi

Untuk memudahkan, Anda dapat menggunakan opsi AND/OR (DAN/ATAU) untuk membuat kondisi sederhana atau gabungan untuk parameter value.

Anda dapat menggunakan opsi bentuk bebas Sesuaikan ekspresi untuk semua jenis kondisi, termasuk fungsi sistem dan boolean constants.

Misalnya, untuk menetapkan kondisi yang memiliki peluang 10% lulus evaluasi, pilih opsi Customize expression dan masukkan $sys.func.rand() < 0.1 di kolom Condition:

Screenshot penetapan kondisi kustom