Tutorial n8n #13: Menjadwalkan Rekap Harian dengan Schedule Trigger dan Google Sheets
Workflow yang berjalan otomatis tidak cukup hanya bisa membaca data. Ia juga harus memiliki jadwal yang jelas, rentang waktu yang konsisten, validasi input, dan cara memeriksa hasilnya. Pada tutorial ini kita melanjutkan seri n8n dengan satu konsep baru utama: Schedule Trigger.
Kita akan membuat alur sederhana untuk menyiapkan rekap penjualan harian dari Google Sheets. Hasil akhirnya berupa satu item ringkasan yang dapat diteruskan ke email, chat, dashboard, atau penyimpanan lain pada tahap berikutnya.
Tutorial ini menggunakan placeholder dan contoh data. Sesuaikan nama sheet, zona waktu, dan credential dengan lingkungan Anda.
Target workflow
Alur yang dibuat:
Schedule Trigger -> Google Sheets -> Code -> Edit Fields
Workflow ini akan:
- berjalan pada jadwal yang ditentukan;
- membaca baris penjualan dari Google Sheets;
- menghitung jumlah transaksi dan total nilai;
- menghasilkan output ringkasan yang mudah diuji.
Contoh struktur data
Buat sheet bernama sales_daily dengan kolom berikut:
| order_id | order_date | customer_name | amount | status |
|---|---|---|---|---|
| INV-001 | 2026-09-11 | Toko A | 125000 | paid |
| INV-002 | 2026-09-11 | Toko B | 85000 | paid |
| INV-003 | 2026-09-11 | Toko C | 50000 | pending |
Gunakan angka biasa pada kolom amount, tanpa simbol mata uang. Untuk produksi, tetapkan format tanggal yang konsisten dan dokumentasikan apakah tanggal memakai zona waktu WIB atau zona waktu lain.
Langkah 1: Tambahkan Schedule Trigger
- Buat workflow baru di n8n.
- Tambahkan node
Schedule Trigger. - Pilih interval harian.
- Tentukan jam eksekusi, misalnya 08:00.
- Pastikan timezone instance n8n sudah benar. Jadwal yang terlihat benar di editor dapat menghasilkan waktu berbeda jika timezone instance belum dikonfigurasi.
Untuk pengujian awal, gunakan interval yang mudah diamati atau jalankan workflow secara manual setelah node berikutnya selesai disiapkan. Jangan langsung memakai jadwal produksi sebelum hasil dan timezone diverifikasi.
Langkah 2: Baca Google Sheets
- Tambahkan node
Google SheetssetelahSchedule Trigger. - Pilih operasi membaca baris dari sheet.
- Pilih credential Google yang sesuai melalui n8n Credential Manager.
- Pilih spreadsheet dan sheet
sales_daily. - Jalankan node dengan data uji kecil.
Jangan menaruh token atau service account key di field teks biasa, catatan workflow, atau artikel. Credential harus dikelola melalui mekanisme credential n8n dan aksesnya sebaiknya dibatasi hanya pada spreadsheet yang diperlukan.
Langkah 3: Hitung rekap dengan Code node
Tambahkan Code node setelah Google Sheets. Contoh berikut menerima item hasil pembacaan sheet dan hanya menghitung transaksi berstatus paid.
const rows = $input.all();
const paidRows = rows.filter((item) => {
return String(item.json.status || '').toLowerCase() === 'paid';
});
const totalAmount = paidRows.reduce((sum, item) => {
const amount = Number(item.json.amount || 0);
return Number.isFinite(amount) ? sum + amount : sum;
}, 0);
return [{
json: {
report_date: new Date().toISOString().slice(0, 10),
paid_transaction_count: paidRows.length,
paid_total_amount: totalAmount,
source_row_count: rows.length,
},
}];
Kode ini sengaja sederhana. Number.isFinite mencegah nilai yang tidak valid ikut dihitung sebagai angka. Untuk laporan keuangan resmi, tambahkan validasi format, rekonsiliasi, dan persetujuan manusia sebelum hasil dipakai sebagai dasar keputusan.
Langkah 4: Rapikan output dengan Edit Fields
Tambahkan node Edit Fields setelah Code. Pertahankan hanya field yang akan digunakan oleh langkah berikutnya:
report_datepaid_transaction_countpaid_total_amountsource_row_count
Anda dapat menambahkan field report_label dengan expression seperti:
Rekap penjualan {{$json.report_date}}
Uji output dengan beberapa kondisi: semua transaksi paid, tidak ada transaksi paid, nilai amount kosong, dan baris tambahan dengan status yang tidak dikenal.
Pengujian sebelum aktif otomatis
Checklist minimum:
- Jalankan node secara bertahap dan periksa jumlah item pada setiap tahap.
- Pastikan timezone workflow dan timezone server sudah dipahami.
- Uji data kosong dan angka tidak valid.
- Pastikan workflow tidak mengirim notifikasi ganda ketika dijalankan ulang.
- Catat execution ID dan waktu eksekusi untuk audit.
- Batasi akses credential Google dengan prinsip least privilege.
- Tentukan siapa yang menerima alert jika pembacaan sheet gagal.
Dari rekap ke proses bisnis
Setelah ringkasan terbukti benar, barulah tambahkan satu integrasi berikutnya, misalnya Gmail, Slack, atau HTTP Request ke endpoint internal. Tambahkan satu node pada satu waktu agar perubahan mudah dilacak. Untuk proses penting, simpan hasil dan error log di lokasi yang dapat diaudit, gunakan idempotency key, dan siapkan jalur retry yang tidak menggandakan laporan.
Untuk UMKM, pola ini dapat menjadi dasar laporan pagi tanpa menyalin data secara manual. Namun otomatisasi tidak menggantikan kontrol bisnis. Pemilik proses tetap perlu menyepakati definisi transaksi valid, periode laporan, pembulatan, retensi data, serta prosedur koreksi.
Troubleshooting singkat
Workflow tidak berjalan pada jam yang diharapkan
Periksa timezone instance n8n, status workflow aktif, dan konfigurasi Schedule Trigger. Bandingkan waktu pada execution log dengan waktu lokal yang diharapkan.
Google Sheets mengembalikan nol baris
Periksa spreadsheet, nama sheet, header kolom, credential, serta filter yang mungkin aktif. Uji node Google Sheets secara terpisah dengan dataset kecil.
Total tidak sesuai
Periksa apakah amount berisi angka, apakah status ditulis konsisten sebagai paid, dan apakah ada baris duplikat. Jangan mengubah hasil secara manual tanpa mencatat alasan koreksinya.
Ringkasan
Pada tutorial ini kita menambahkan Schedule Trigger ke seri n8n, membaca data dari Google Sheets, menghitung rekap transaksi berstatus paid, dan menyiapkan output yang dapat diteruskan ke kanal lain. Konsep berikutnya sebaiknya menambahkan notifikasi atau penyimpanan hasil secara bertahap, setelah jadwal dan perhitungan dasar tervalidasi.
Referensi
- Schedule Trigger node documentation, n8n, https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/, tanggal publikasi sumber tidak terverifikasi.
- Google Sheets node documentation, n8n, https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/, tanggal publikasi sumber tidak terverifikasi.
- Code node documentation, n8n, https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/, tanggal publikasi sumber tidak terverifikasi.
Catatan editorial: artikel ini adalah tutorial, bukan berita. Tanggal publikasi pada dokumentasi referensi belum dapat diverifikasi dari halaman publik yang digunakan.