Cara Otomatis Kirim Laporan Harian ke Telegram dengan n8n
Di banyak usaha kecil, "laporan harian" artinya begini: setiap malam seseorang membuka spreadsheet, menyalin angka ke pesan chat, menghitung total di kalkulator ponsel, lalu mengirimnya ke grup — kalau tidak lupa. Setengah jam kerja rutin yang isinya menyalin, bukan berpikir. Tutorial ini menggantinya dengan workflow n8n yang tiap pagi membaca Google Sheets, merangkai ringkasan, dan mengirimnya ke grup Telegram. Setelah aktif, laporan datang juga di hari orangnya cuti.
Prasyarat: n8n yang sudah tersambung ke Google Sheets dan bot Telegram — keduanya sudah kami tuliskan langkahnya.
Anatomi laporan harian yang layak diotomasi
Tidak semua laporan cocok diotomasi. Yang cocok punya tiga ciri: sumber datanya tetap (sheet atau sistem yang sama tiap hari), strukturnya tetap (angka yang sama, urutan yang sama), dan pembacanya jelas. Kalau tiap hari isi laporannya dinegosiasikan ulang, bereskan dulu format manualnya selama seminggu — otomasi membekukan format, jadi bekukan format yang sudah terbukti dibaca orang.
Contoh kita: sheet berisi transaksi harian dengan kolom tanggal, item, qty, total. Laporannya: jumlah transaksi, total omzet, dan tiga item terlaris kemarin.
Langkah 1: Jadwalkan dengan Schedule Trigger
Node pertama: Schedule Trigger, tiap hari jam 07:00. Pastikan zona waktu instance sudah Asia/Jakarta — jebakan klasiknya kami bahas tuntas di tutorial Schedule Trigger. Laporan pagi yang datang jam dua siang kehilangan setengah gunanya.
Langkah 2: Ambil data dari Google Sheets
Node Google Sheets → Get Row(s) membaca sheet transaksi. Lalu saring hanya baris kemarin dengan node Filter atau IF, membandingkan kolom tanggal dengan expression:
{{ $now.minus(1, 'days').toFormat('yyyy-MM-dd') }}
Supaya perbandingan ini tidak rapuh, disiplinkan format tanggal di sheet ke yyyy-MM-dd. Kolom tanggal yang kadang 21/8 kadang 2026-08-21 adalah sumber laporan kosong yang paling umum.
Langkah 3: Rangkai teks laporan dengan ekspresi n8n
Pakai node Code untuk meringkas semua baris jadi satu pesan:
const rows = $input.all().map(i => i.json);
const omzet = rows.reduce((a, r) => a + Number(r.total || 0), 0);
const perItem = {};
for (const r of rows) {
perItem[r.item] = (perItem[r.item] || 0) + Number(r.qty || 0);
}
const top3 = Object.entries(perItem)
.sort((a, b) => b[1] - a[1]).slice(0, 3)
.map(([nama, qty], i) => `${i + 1}. ${nama} (${qty})`).join('\n');
const pesan =
`Laporan ${new Date().toLocaleDateString('id-ID')}\n` +
`Transaksi kemarin: ${rows.length}\n` +
`Omzet: Rp${omzet.toLocaleString('id-ID')}\n\n` +
`Terlaris:\n${top3 || '-'}`;
return [{ json: { pesan } }];
Prinsip menulis pesannya: angka yang memicu keputusan di atas, rincian di bawah, dan tanpa basa-basi — laporan otomatis yang panjang akan berhenti dibaca dalam dua minggu.
Langkah 4: Kirim ke grup Telegram tim
Tutup dengan node Telegram → Send Message ke chat ID grup, isi teks dari {{ $json.pesan }}. Jalankan sekali secara manual, periksa hasilnya di grup, minta satu orang lain membacanya — kalimat yang jelas bagi Anda belum tentu jelas bagi yang tidak ikut membangun. Lalu aktifkan workflow.
Menangani hari tanpa data
Keputusan kecil yang sering dilupakan: hari libur tanpa transaksi. Ada dua pilihan sah — kirim laporan berisi nol (tim tahu sistemnya hidup), atau diam (grup tidak diberisiki). Kami hampir selalu memilih yang pertama, dengan alasan yang pahit tapi nyata: laporan yang diam tidak bisa dibedakan dari laporan yang gagal. Angka nol yang terkirim adalah bukti mesinnya sehat; kesunyian bisa berarti apa saja. Tambahkan juga error workflow yang mengabari Anda kalau eksekusi gagal, supaya kegagalan tidak menyamar jadi hari sepi.
Pola yang sama, laporan yang lain
Ganti sumber dan isinya, kerangkanya tetap: tagihan yang jatuh tempo minggu ini, stok di bawah ambang, lead baru kemarin, status server semalam. Satu pola ini — jadwal, baca, rangkum, kirim — menyelesaikan sebagian besar kebutuhan pelaporan rutin usaha kecil.
Kalau Anda ingin memetakan proses mana lagi yang paling layak diotomasi, mulai dari tujuh proses kantor ini, atau minta tim kami merancangnya untuk bisnis Anda.
Clovertechno