Setelah memiliki entity urutan, Anda dapat membuat intent untuk mengumpulkan urutan dari pengguna akhir. Anda memerlukan setidaknya tiga intent dengan tanggung jawab berikut:
- "Urutan" intent pokok
- Menangkap ucapan untuk memulai pengumpulan urutan.
- Dipanggil oleh peristiwa tindak lanjut untuk terus menangkap urutan hingga pengguna akhir mengatakan bahwa mereka sudah selesai.
- Intent kontekstual "Sequence - Edit"
- Menangkap ucapan untuk memperbaiki urutan terakhir yang dikumpulkan.
- Melakukan loop kembali secara terprogram ke intent "Sequence" untuk mengumpulkan urutan yang dikoreksi.
- Intent kontekstual "Sequence - Done"
- Menangkap ucapan yang menunjukkan bahwa urutan telah selesai.
Di bagian berikutnya, Anda akan melihat cara webhook menghubungkan semua ini, tetapi pertama-tama mari kita siapkan intent.
Membuat intent "Sequence"
Ini adalah intent utama untuk mengumpulkan urutan. Konfigurasikan seperti ini:
- Biarkan konteks input kosong agar pengguna akhir dapat memicu intent ini di awal panggilan.
- Tambahkan konteks output "collecting-sequence". Kita akan menggunakan konteks ini untuk mengaktifkan intent koreksi dan penyelesaian selama alur.
- Tambahkan konteks output "editing-sequence" dan tetapkan masa aktif ke 0. Kita akan mengaktifkan konteks ini dengan masa aktif dari intent "Sequence - Edit" di bagian berikutnya, dan penting untuk menghapus konteks tersebut di sini agar konteks "editing-sequence" hanya aktif segera setelah memicu intent "Edit".
Tambahkan peristiwa "continue-sequence" agar webhook Anda dapat mengulang intent ini untuk mengumpulkan semua urutan parsial.

Tambahkan frasa pelatihan agar pengguna akhir dapat memicu intent ini untuk memulai alur. Contoh ini menggunakan frasa seperti "apa status pesanan saya", "lacak pesanan saya", "di mana pesanan saya", dll.
Tambahkan nama tindakan "handle-sequence" agar webhook tahu kapan harus diaktifkan. Anda akan membuat kode webhook di bagian berikutnya dalam tutorial ini, setelah semua intent disiapkan.
Tambahkan parameter wajib "new_sequence" menggunakan entity ekspresi reguler yang Anda buat untuk mengumpulkan urutan parsial di bagian sebelumnya. Tetapkan jenis entity ke "@alphanumeric" dan nilai ke "$new_sequence".
Tambahkan parameter opsional "existing_sequence" dengan nilai "#continue-sequence.existing_sequence" untuk mengekstrak urutan baru yang ada dari peristiwa. Anda dapat mengosongkan jenis entity.
Tambahkan parameter opsional "previous_sequence" dengan nilai "#continue-sequence.previous_sequence" untuk mengekstrak urutan sebelumnya dari peristiwa. Anda dapat mengosongkan jenis entity.
Aktifkan panggilan webhook untuk intent ini dan panggilan webhook untuk pengisian slot.

Membuat intent "Sequence - Edit"
Intent ini memproses ucapan yang menunjukkan bahwa urutan sebelumnya salah didengar oleh agen. Siapkan seperti ini:
- Tambahkan konteks input "collecting-sequence" agar intent ini hanya dipanggil saat kita berada di tengah alur urutan. Ini adalah konteks yang sama yang diaktifkan oleh intent "Sequence".
- Tambahkan konteks output "editing-sequence" untuk dirujuk oleh webhook fulfillment kita. Saat intent ini diaktifkan, webhook akan mengulang Dialogflow kembali ke intent "Sequence" utama untuk mengumpulkan urutan berikutnya. Webhook untuk pengisian slot intent "Sequence" akan memeriksa konteks "editing-sequence" yang aktif untuk memberikan respons "coba lagi" yang simpatik kepada pengguna akhir.
Tambahkan frasa pelatihan seperti "no", "that's not right", dll.

Tambahkan nama tindakan "handle-sequence". Tindakan ini sama dengan intent "Sequence" sehingga kita dapat menggunakan kembali logika webhook yang sama.
Tambahkan parameter "new_sequence" dengan nilai "#collecting-sequence.previous_sequence" untuk mengekstrak urutan sebelumnya dari konteks, yang secara efektif mengurungkan ucapan terakhir. Kami tidak menambahkan parameter "existing_sequence" di sini agar webhook akan menimpa urutan yang ada dengan urutan sebelumnya.
Aktifkan panggilan webhook untuk intent ini.

Buat intent "Sequence - Done".
- Tambahkan konteks input "collecting-sequence"
- Tambahkan konteks output "collecting-sequence" dan tetapkan masa aktif ke 0 untuk menghapus konteks. Menghapus parameter ini akan mencegah intent "Edit" dan "Done" dipicu lagi setelah agen selesai mengumpulkan urutan.
Tambahkan frasa pelatihan seperti "that's it", "all done", dll.

Tambahkan parameter "sequence" dengan nilai "#collecting-sequence.existing_sequence" untuk mengekstrak urutan akhir dari konteks.
Aktifkan panggilan webhook untuk intent ini.

Menautkan intent melalui webhook
Sekarang Anda memiliki semua yang diperlukan untuk membuat kode logika untuk intent ini. Di bagian berikutnya, Anda akan melihat cara membuat kode webhook untuk menggunakan semua konteks, tindakan, parameter, dan peristiwa ini guna menyelesaikan alur validasi urutan.