Nafies Luthfi

Life will always feel wonderful if we always think positively.

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:

  1. Buat sebuah endpoint pada project agar dapat diakses oleh Google App Script.
  2. Buat sebuah kondisi bahwa hanya google atau ada syarat tertentu yang akan dilayani oleh endpoint ini.
  3. 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.
  4. Cek dan re-cek agar aktifitas tersebut berjalan sesuai dengan kebutuhan.
  5. 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 :

  1. Deadline customer tanggal 01 Pebruari 2018,
  2. Toleransi deadline 7 Hari,
  3. Kalau tidak ada follow-up hingga 07 Pebruari 2018, jam 12 malam, sistem secara otomatis akan “membebaskan” customer tersebut dari PIC Sales nya,
  4. Customer masuk ke daftar “Free Customers”,
  5. 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 :

Endpoint Action

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.

Google App Script Function

Kalau dijalankan dan tidak ada error, hasilnya cek di Logs seperti ini (Menu: View -> Logs atau Ctrl+Enter) :

Google App Script Function Run

Kemudian setting jadwalnya seperti ini.

Google App Script Trigger

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.