· sistem · 7 min read
Dulu Saya Pilih n8n karena Visual, Sekarang Apps Script karena AI
Lima kriteria memilih Apps Script atau n8n, dari 19 script dan 3 workflow n8n yang jalan di kantor saya.

Pilihan antara Apps Script dan n8n di Edavos ditentukan oleh lima hal, dan tidak satu pun berasal dari daftar fitur. Kelimanya: di mana integrasinya sudah hidup, bagaimana sumber datanya dijangkau, berapa kali alurnya jalan per hari, siapa yang menulis dan merawatnya, dan siapa yang perlu membaca alurnya saat ada yang rusak.
Buktinya timpang, jadi saya sebut di depan. Dari otomasi terjadwal di Edavos, 19 berupa Google Apps Script dan 3 berupa workflow n8n (rinciannya di sini). Tabel di bawah ditarik dari keputusan di dua sisi itu, termasuk satu keputusan yang hari ini akan saya ambil berbeda.
Kapan memakai Apps Script, kapan n8n?
Pakai Apps Script kalau semua yang disentuh alurnya bisa dijangkau dari dalam Google, baik layanan Google sendiri maupun sistem lain yang punya API HTTP. Pakai n8n kalau alurnya butuh protokol yang tidak tersedia di Apps Script, kalau satu run makan lebih dari 6 menit, atau kalau orang yang merawatnya tidak menulis kode.
| Kriteria | Condong ke Apps Script | Condong ke n8n | Kasus di Edavos |
|---|---|---|---|
| Integrasi yang sudah jalan | Koneksi ke sistem tujuan sudah dipegang script lain | Sistem tujuan sudah tersambung di n8n | Koneksi ke Accurate sudah hidup di Apps Script lewat script reminder piutang dan forecast cashflow |
| Cara menjangkau sumber data | Layanan Google, atau sistem luar yang punya API HTTP | Butuh IMAP, TCP, atau protokol lain selain HTTP | Inbox lead ada di Gmail, tapi n8n membacanya lewat IMAP |
| Jumlah run per hari dikali durasi satu run | Total muat di 90 menit (akun Gmail biasa) atau 6 jam (Workspace) per hari | Melewati batas itu, atau satu run lebih dari 6 menit | Polling inbox tiap menit muat di kuota Workspace selama satu run di bawah 15 detik |
| Siapa yang menulis dan merawat | Ada yang menulis kode, termasuk lewat AI | Perawatnya lebih nyaman menyusun node di kanvas | Alur lead dibangun di n8n karena alasan ini |
| Siapa yang membaca alurnya saat rusak | Mesin: kode di repo bisa dicari dan dibandingkan per versi | Manusia: kanvas memperlihatkan seluruh alur sekali lihat | 7 lead tertahan karena satu daftar header tersimpan di dalam node |
Baris kedua sering disalahpahami. Apps Script menjangkau dunia luar lewat UrlFetchApp, yang menurut dokumentasi resminya berkomunikasi dengan mengambil URL. Mailbox di hosting biasa yang cuma bisa dibaca lewat IMAP ada di luar jangkauan itu, sementara node Email Trigger di n8n membacanya langsung.
Alur lead dibangun di n8n karena kanvasnya
Lead dari form website Edavos masuk ke satu inbox yang dijaga bergantian oleh dua orang, masing-masing dengan pekerjaan utama sendiri. Menurut pengamatan saya, sebelum ada otomasi mayoritas lead sampai ke sales lebih dari 30 menit setelah masuk, dan beberapa kali sampai hitungan jam. Sesudah dipindah ke n8n, perkiraan saya sekitar 1 menit, mengikuti interval cek IMAP.
Saya memilih n8n untuk alur ini karena visual. Waktu itu AI belum bisa saya andalkan untuk menulis kode, dan menyusun node di kanvas lebih nyaman daripada menulis script dari nol.
Alurnya pendek. Email Trigger membaca inbox lewat IMAP, lalu node berikutnya memfilter subject, mengekstrak data, mencatat ke Sheet, menilai valid atau tidak, dan mengirim ke grup sales di Google Chat (cara kerjanya di sini).

Kalau diukur dengan tabel di atas, satu-satunya baris yang memenangkan n8n untuk alur ini adalah siapa yang menulis. Inbox-nya Gmail, semua tujuannya layanan Google, dan polling tiap menit muat di kuota Workspace selama satu run di bawah 15 detik. Baris itu juga yang sudah berubah.
Kanvas terbaca oleh manusia, tidak oleh grep
Kolom kosong pernah dihapus dari sheet pencatat lead. Pengecekan yang saya jalankan bersama Claude memeriksa formula sheet dan daftar Customer Match di Google Ads, lalu menyimpulkan tidak ada yang terdampak.
Node Append to OCT di n8n adalah node Google Sheets dengan pemetaan kolom yang ditulis manual (mode Define Below). Di mode itu node menyimpan daftar header sendiri, dan menolak append dengan pesan Column names were updated after the node's setup begitu satu header hilang dari sheet.
Node yang mengirim notifikasi ke sales ada sesudahnya, di jalur yang sama. Akibatnya 7 lead tidak tercatat dan tidak sampai ke sales sampai diperbaiki, dan yang menemukannya tim, sebelum ada alarm apa pun.
Kanvas n8n memperlihatkan seluruh alur ke orang yang membukanya. Konfigurasi node hidup di database n8n, dan pencarian di repo tidak pernah sampai ke sana.
Perbaikannya dua, dan yang lebih penting adalah yang kedua.
Mencari header sebelum mengubah kolom
Sebelum header sheet dihapus atau diganti namanya, Claude masuk ke VPS lewat SSH dan mengambil semua workflow dari API n8n. Nama header itu dicari di parameter tiap node, termasuk di dalam Code node. Kalau ketemu, node-nya diperbarui dulu, baru sheet-nya diubah.
Cara ini menutup titik buta yang membuat pengecekan pertama meleset. Pengecekannya tetap bergantung pada ada yang ingat menjalankannya sebelum mengubah kolom.
Mengantar lead tidak lagi menunggu pencatatan
Perbaikan kedua mengubah strukturnya. Node pencatat sekarang punya jalur error: kalau append gagal, satu Code node menyusun ulang baris dari data yang sudah diekstrak, lalu alurnya lanjut ke penilaian dan ke notifikasi sales. Gagal mencatat tidak lagi berarti gagal mengantar.
Jalur error itu butuh alert sendiri. Workflow Error Alert yang terpasang di ketiga workflow aktif tidak terpicu kalau kegagalan append sudah ditangkap jalur error, jadi jalur itu mengirim pesannya sendiri ke space Google Chat khusus error n8n.
Apakah kuota Apps Script cukup untuk polling tiap menit?
Untuk akun Workspace, kuota trigger Apps Script cukup untuk polling tiap menit selama satu run selesai di bawah 15 detik. Untuk akun Gmail biasa, batasnya sekitar 3.7 detik per run. Trigger waktu Apps Script bisa jalan tiap menit, jadi polling tiap menit berarti 1,440 run per hari.
| Batas | Akun Gmail biasa | Google Workspace |
|---|---|---|
| Total runtime trigger per hari | 90 menit | 6 jam |
| Durasi rata-rata maksimal per run kalau polling tiap menit | sekitar 3.7 detik | 15 detik |
| Baca-tulis Gmail per hari (di luar kirim) | 20,000 | 50,000 |
Sumber: halaman kuota resmi Apps Script, Okt-26. Baris kedua hasil bagi saya sendiri dari baris pertama.
Sebelum memakai kuota sebagai alasan pindah ke n8n, buka halaman Executions di project Apps Script Anda, ambil durasi rata-rata satu run, lalu kalikan dengan jumlah run per hari.
Berapa biaya menjalankan n8n sendiri?
Biaya menjalankan n8n self-host di Edavos di bawah Rp 90,000 per bulan, yaitu sewa satu VPS yang dipakai bersama otomasi lain, tanpa langganan n8n. Tagihan tujuh bulan terakhir ada di antara Rp 86,196 dan Rp 89,176. Angka itu belum menghitung waktu merawatnya.
VPS itu juga membawa pekerjaan perawatan. Ada backup otomatis, watchdog yang me-restart n8n saat tidak merespons, monitor dari luar yang memeriksa n8n bisa diakses, dan satu routine perawatan bulanan. Apps Script tidak membawa pekerjaan ini, karena servernya milik Google.
Di mana Apps Script yang mentok
Masalah Apps Script di Edavos ada di trigger yang tersebar. Tiap script hidup di project-nya sendiri, kebanyakan menempel ke satu spreadsheet, dan trigger dipasang per project. Untuk tahu script mana yang jalan jam berapa, dulu saya harus membuka project satu per satu.
Script audit trigger memperlihatkan bentuk masalahnya. Salinannya ada di setiap project dan semuanya menulis ke satu sheet, jadi tiap perubahan harus disalin manual ke semua project. Semua konstantanya dideklarasikan di dalam fungsi, karena Apps Script tidak memperingatkan tabrakan nama global: kalau dua file di satu project mendeklarasikan nama yang sama, definisi terakhir diam-diam menang.
Sekarang tiap script dicatat di satu registry di repo yang dibaca Claude di awal setiap sesi, lengkap dengan entry point dan jadwal trigger yang seharusnya terpasang. Untuk tahu apa yang seharusnya jalan jam berapa, saya membuka satu file.
Aturan yang saya pakai sekarang
Otomasi baru di Edavos dibangun di Apps Script, kecuali yang harus menjangkau sistem di luar Google tanpa API HTTP. Alur lead tetap di n8n, karena memindahkannya berarti membangun ulang dan menguji alur yang mengantar lead tiap hari, sementara titik buta yang membuat 7 lead tertahan sudah ditutup.
Untuk otomasi Anda berikutnya, isi lima baris tabel di atas sebelum memilih. Kalau satu-satunya baris yang memenangkan n8n adalah siapa yang menulis, coba tulis versi Apps Script-nya dulu bersama AI.
- Daud (@daudwihardi)






