NeMo Whatsapp ChatBot sebagai Alternatif Tools untuk Input Data
“Bagaimana membantu petani menjual ikan dengan mengetahui pembudidayaan lebih dulu?”
Sebuah tantangan yang muncul yang ingin saya selesaikan, yang sebenarnya muncul lagi permasalahan baru,
“Kayanya harus mulai bikin tools baru”
Pernyataan paling malesin yang harus melewati proses panjang dari “Ideasi, Validasi dan Prototyping” dan baru masuk ke tahap Development.
Baru munculah tantangan baru “tools seperti apa yang mudah digunakan siapapun dengan segala umur, tanpa perlu install dan sudah terbiasa orang lain pakai, bahkan orang selevel petani yang kurang familiar dengan dunia digital?”
Dari sinilah muncul inisiatif aku untuk membuat Whatsapp ChatBot NeMo.
Sebuah inisiatif untuk membantu semua orang meringankan input data.
Akhirnya jadilah NeMo dan kalian dapat cek disini https://github.com/eFishery/NeMo, NeMo ini punya fitur utama diantaranya :
- Tanya Jawab
- Scheduling kirim pesan
- Parsing URL Request
Gitu aja ? yup sederhana ko, karena memang tujuan utama dari tools ini adalah eksperimen untuk pengembangan tools, apakah perlu dikembangkan ke tools yang lebih lanjut apa input gini aja udah cukup?
Untuk memberikan aturan ke NeMo cukup dengan membuat file yang NeMo sebut coral
. coral
ini adalah nama folder yang didalamnya berisi konfigurasi ChatBot, konfigurasinya berupa file dalam bentuk format YAML, contoh pada file basic.yml
isinya kurang lebih seperti berikut:
Kalau dijabarkan konfigurasi diatas diantaranya terdapat :
author
berfungsi sebagai mendefinisikan author daripada konfigurasicoral
ini.
default_greeting
adalah konfigurasi untuk mengirimkan pesan default, jika user melakukan chat apapun (di luar pada bagiancommands
) ke NeMo, maka NeMo akan membalas ke user dengan pesan default.
commands
adalah konfigurasi jika ada user melakukan chat!start
ke NeMo (!start
adalah gabungan keyprefix
dancommand)
maka akan mengirimkan pesan padamessage
.
- Kalau lihat pada
commands
terdapat keyrun_process
ini berelasi denganprocess
dimana NeMo diperintahkan untuk menjalankanprocess
jika user melakukan chat!start
ke NeMo
- Lalu bagian
process
untuk menspesifikasikan pertanyaan yang akan ditanyakan keexpected_users
, pertanyaannya diambil dariquestions
.
- Kalau dilihat pada konfigurasi
questions
banyaknyaquestion
adalah banyaknya pertanyaan yang akan ditanyakan keexpected_users
. Setiap kali user menjawab pertanyaan NeMo, jawabannya divalidasi dengan menggunakan aturanregex
. Aturan ini dimasukkan padavalidation rule
di setiap konfigurasiquestion
. Jika user menjawab dan tidak sesuai denganvalidation rule
, maka NeMo akan meminta input ulang, kurang lebih interaksi nya NeMo seperti berikut :
Diatas sudah dibahas tentang expected_users
, dimana konfigurasi ini bermaksud untuk menspesifikan nomor telepon yang dapat berkomunikasi dengan NeMo. Batasannya adalah setiap mau membuat konfigurasi NeMo maka harus menambahkan nomor telepon untuk bisa berkomunikasi dengan NeMo. Harapannya kedepan tidak ada batasan user seperti ini, supaya bisa melakukan komunikasi dengan NeMo tanpa perlu memasukan list nomor telepon.
Selanjutnya bagaimana supaya semua jawaban yang di input user tersimpan, NeMo memberikan konfigurasi webhook
. Aturan menggunakan webhook
ini dapat digunakan jika konfigurasi commands record
itu dalam keadaan True
. Fungsi utamanya adalah setiap jawaban yang ditulis oleh user dikirimkan ke URL dalam bentuk pesan webhook, dengan data format yang dikirimkannya kurang lebih seperti berikut :
Dengan data webhook yang dikirimkan oleh NeMo ke url tersebut sudah memberikan jawaban semua data yang diinputkan dapat menjadi data insight.
Pada akhirnya tools ini kami pakai untuk memudahkan petani atau tim operation untuk menyimpan data dengan cukup buka whatsapp, tanpa install lagi tools apapun, dan chat. Udah.
Challenge bisnis dari ChatBot ini adalah User Experience yang perlu diperhatikan karena user perlu betul betul paham ini adalah bot dan bagaimana cara penggunaannya.
lalu ini kepake buat apa ya ?
Nah ini, uniknya aku bikin NeMo ternyata bisa dipakai buat keperluan lain, misalnya,
Pragmatis Input Data oleh Petani
Case yang saya pakai di eFishery terutama untuk menyederhanakan data input, karena petani rata rata hanya menggunakan whatsapp, sms dan facebook, maka kita pakai lah whatsapp sebagai platform tanya jawab terkait dengan petani, jadi petani akan tertarik karena seperti diajak diskusi.
Kemudian setiap chat whatsapp yang ditulis petani disimpan ke database.
ChatBot untuk Automate Pesanan (?)
Bayangin kamu jualan semuanya disimpan manual ke excel, cape kan? Dan terkadang harus buka chat lalu tulis ulang. Pengen coba implementasi ini dengan NeMo apakah efektif ? Yah ini salah satu contoh NeMo bisa dipakai untuk meringankan salah satu proses keseharian.
Daily Analytic ke Grup
Karena NeMo ada fungsi parsing dari URL dan scheduling, jadi engineer cukup bikin API yang akan menampilkan data analytic dan di lempar sama NeMo setiap harinya.
Hampir keseluruhan kerjaan bisa dibantu sama NeMo, kalau menurut kalian seru, mungkin aku coba bikin artikel baru untuk “automate pemesanan barang” dan “daily analytic ke grup”, jika artikel ini banyak yang berminat.
Apalagi ? I don’t know silakan berkreasi
Dengan senang hati kami publikasikan tools ini untuk penggunaan umum, bahkan dengan senang hati jika tools ini bisa dikembangkan menjadi tools yang lebih baik. Untuk mendapatkan botnya dapat cek https://github.com/eFishery/NeMo dan untuk dokumentasi lengkap silahkan akses https://nemo-efishery.readthedocs.io/
Sekian
Hi! saya saya Yahya, Software Engineer Lead di eFishery bertanggung jawab sebagai Lead Engineer pada bagian Supply Demand, sering sering cek tulisan engineer eFishery buat liat hal hal keren lagi.
Sekalian ayok gabung eFishery!
Thanks!