Google Script dengan Trigger, Alternatif Laravel Schedule
Bismillahirrahmanirrahim.
Saya ingin share video tutorial yang saya jadikan referensi untuk menjalankan Google App Script dengan triggernya sebagai alternatif agar aplikasi kita “melakukan sesuatu” pada jadwal yang sudah ditetapkan.
How To Call External API Using Google App Script - by Amarindaz
Ini video tutorial cara membuat sebuah function pada Google App Script untuk memanggil external API endpoint UrlFetchApp.
Jika pada video di atas kita mendapatkan ilmu baru untuk membuat script pemanggilan API Endpoint, pada video berikut ini kita mengetahui cara membuat Trigger agar script tersebut dijalankan setiap waktu (jadwal) yang kita tentukan.
Setup Triggers Run script using Google Apps Script - by Break Period
Nah dengan berbekal ilmu baru dari tutorial tersebut maka kita dapat melakukan penyesuaian untuk scheduler pada project/aplikasi kita, kurang lebih logic nya seperti ini:
- Buat sebuah endpoint pada project agar dapat diakses oleh Google App Script.
- Buat sebuah kondisi bahwa hanya google atau ada syarat tertentu yang akan dilayani oleh endpoint ini.
- Buat script aktifitas apapun yang diperlukan jika endpoint tersebut dikunjungi, seperti :
- Membersihkan notifikasi lama,
- Menghapus order yang tidak terbayar lebih dari 1 minggu,
- Atau aktifitas apapun yang ingin diotomatiskan.
- Cek dan re-cek agar aktifitas tersebut berjalan sesuai dengan kebutuhan.
- Buat Google Script function dengan triggernya.
Contoh Kasus
Di sebuah project CRM Sales Otomotif, saya diminta untuk membuat sebuah fitur di mana setiap hari ada pengecekan untuk customer yang tidak di follow-up lebih dari 1 minggu dari tanggal deadlinenya (overdue follow up).
Misalkan :
- Deadline customer tanggal 01 Pebruari 2018,
- Toleransi deadline 7 Hari,
- Kalau tidak ada follow-up hingga 07 Pebruari 2018, jam 12 malam, sistem secara otomatis akan “membebaskan” customer tersebut dari PIC Sales nya,
- Customer masuk ke daftar “Free Customers”,
- PIC Sales lain dapat dapat diambil alih customer tersebut yang menginginkannya.
Karena akan dideploy ke shared hosting, maka saya tidak dapat membuat laravel schedule untuk keperluan ini. Solusinya saya coba dengan Google App Script plus Triggernya.
Untuk melakukan pengecekan itu saya membuat script seperti ini :
Di sini bisa kita lihat, jika tidak ada payload atau request body yang berisi 'action' => 'evaluate-free-customers'
maka sistem akan abort(404)
(diberi respons halaman tidak ditemukan).
Setelah memastikan Endpoint API tersebut sudah berjalan dengan baik melalui automated testing dan Postman, saya buatkan google script seperti gambar di bawah.
Kalau dijalankan dan tidak ada error, hasilnya cek di Logs seperti ini (Menu: View -> Logs atau Ctrl+Enter) :
Kemudian setting jadwalnya seperti ini.
Maka maka setiap jam 12 malam (tiap hari), google script akan “mengunjungi” endpoint tersebut, dan aplikasi melakukan pengecekan customer sebagaimana yang diinstruksikan. :D
Gimana cukup mudah ya menggunakan Google App Script ini? Sangat membantu meng-otomatiskan sesuatu di aplikasi yang dipasang di shared hosting. Ditambah adanya video tutorial di atas, setupnya tidak terlalu sulit.
Demikian share singkat dari saya seputar Google Script dengan Trigger, sebagai alternatif Laravel Schedule dan Server Cron untuk project laravel yang dipasang di shared hosting.
Terima kasih teman-teman atas waktunya.