Halo Sobat Online! Kalau n8n sudah jalan di VPS kamu, sayang banget kan kalau kanvasnya cuma dipandangi tanpa isi? Hari ini kita akan merakit workflow n8n pertama yang benar-benar berguna: mengambil artikel terbaru dari feed RSS, merapikannya, lalu mengirim ringkasan ke Telegram setiap pagi. Tidak perlu jago ngoding — cukup sambung node, isi beberapa kolom, dan satu dua ekspresi sederhana.
Analogi paling gampang: workflow itu seperti kurir pribadi. Kamu tentukan jam berapa dia berangkat, dari mana dia mengambil paket, lalu ke mana paket itu diantar. Kurir versi kita berangkat pukul 07.00 WIB, mengambil paket dari sebuah feed RSS, dan mengantarkannya ke chat Telegram kamu.
Kenapa Telegram? Karena aplikasinya sudah ada di HP hampir semua orang, notifikasinya ngebut, dan bot-nya gratis. Jadi alih-alih membuka sepuluh tab berita tiap pagi, kamu cukup membaca satu pesan pendek sambil ngopi.
Apa Sih yang Akan Kita Bangun?
Rangkaiannya hanya lima node, semuanya node bawaan n8n:
- Schedule Trigger — alarm yang menyalakan workflow setiap pagi.
- RSS Read — mengambil daftar artikel terbaru dari sebuah feed.
- Edit Fields (Set) — memilih data yang mau dikirim, misalnya judul dan tautan.
- Remove Duplicates — menyaring artikel yang sudah pernah dikirim supaya tidak dobel.
- Telegram — mengirim pesannya ke chat kamu.
Tidak ada layanan berbayar yang perlu didaftarkan, dan tidak ada baris kode yang wajib ditulis sampai langkah bonus di bagian akhir nanti.
Alat dan Bahan yang Perlu Disiapkan
Siapkan tiga hal ini dulu supaya nanti tidak bolak-balik.
1. n8n yang Sudah Aktif
Kalau belum punya, ikuti dulu panduan self-host n8n di VPS pakai Docker Compose. Kalau masih baru dengan konsepnya, kenalan dulu dengan n8n di artikel ini. Bisa juga memakai n8n versi cloud untuk latihan, tapi karena server sendiri sudah ada, mending pakai yang self-hosted.
2. Token Bot Telegram dari BotFather
- Buka Telegram, cari akun @BotFather (yang resmi, bertanda centang).
- Kirim perintah
/newbot. - Isi nama bot sesuka kamu, lalu username yang wajib diakhiri kata
bot, misalnyaringkasan_pagi_bot. - BotFather akan mengirim Access Token panjang seperti
12345:AAH.... Simpan baik-baik, token ini setara password.
Lupa daftar perintahnya? Ketik /help di chat BotFather dan semuanya muncul di sana.
3. ID Chat Telegram
ID chat adalah alamat tujuan pesannya. Cara tercepat untuk chat pribadi: tekan /start di chat bot kamu — bot tidak bisa mengirim pesan ke orang yang belum pernah menyapanya — lalu buka alamat berikut di browser:
https://api.telegram.org/bot<TOKEN_KAMU>/getUpdates
Cari bagian "chat" dan catat nilai "id"-nya.
Kalau targetnya grup atau channel, dokumentasi n8n menyarankan tiga cara lain: pakai node Telegram Trigger, buka Telegram versi web (ID grup tampil di belakang huruf “g.”), atau undang bot @RawDataBot ke grup lalu baca nilai chat.id dari data yang dikirimnya. Khusus channel, tambahkan dulu bot sebagai administrator — kalau tidak, pengirimannya gagal dengan pesan bot is not a participant of the channel.
Membuat Workflow n8n Pertama, Langkah demi Langkah
Buka n8n, klik Create Workflow, lalu susun node satu per satu dari kiri ke kanan.
Langkah 1 — Pasang Schedule Trigger
- Klik tombol +, cari Schedule Trigger, lalu letakkan di kanvas.
- Pada Trigger Interval, pilih Days.
- Isi Days Between Triggers dengan
1. - Isi Trigger at Hour dengan
7dan Trigger at Minute dengan0.
Butuh jadwal yang lebih spesifik, misalnya tiap Senin dan Kamis? Pilih saja interval Custom (Cron) — node ini menerima ekspresi cron biasa.
Langkah 2 — Ambil Artikel dengan RSS Read
- Tambah node baru, cari RSS Read.
- Isi kolom URL dengan alamat feed. Untuk latihan, pakai feed situs ini sendiri:
https://donnebanget.com/feed. - Klik tombol uji di panel node (Test step) dan lihat tab OUTPUT. Setiap item mewakili satu artikel, lengkap dengan judul dan tautannya.
Ada dua node RSS di n8n dan bedanya penting: RSS Read mengambil isi feed saat workflow berjalan, sedangkan RSS Feed Trigger memantau feed dan hanya menyalakan workflow ketika ada item baru. Untuk ringkasan harian, RSS Read lebih pas karena kita memang ingin semua artikel terbaru dikirim sekali sehari.
Langkah 3 — Rapikan Data dengan Edit Fields
Feed membawa banyak data yang tidak kita butuhkan. Tambahkan node Edit Fields (Set), pilih Mode → Manual Mapping, lalu buat dua field:
juduldengan nilai{{ $json.title }}tautandengan nilai{{ $json.link }}
Aktifkan Keep Only Set Fields supaya payload yang diteruskan ke node berikutnya tetap ringan. Kalau nama field di instance kamu sedikit berbeda, jangan panik: buka panel INPUT node ini dan drag nilai yang kamu mau ke kolom Fields to Set, n8n akan menuliskan ekspresinya otomatis.
Langkah 4 — Buang Artikel yang Sudah Pernah Dikirim
Ini langkah yang paling sering dilupakan pemula. Feed RSS selalu mengembalikan artikel terbaru yang sama, jadi tanpa penyaring, chat kamu dibanjiri judul yang itu-itu saja setiap pagi.
Tambahkan node Remove Duplicates, lalu:
- Operation: pilih Remove Items Processed in Previous Executions.
- Keep Items Where: pilih Value Is New.
- Value to Dedupe On: isi dengan
tautan(atauguidkalau ada). - History Size: biarkan default, n8n menyimpan hingga 10.000 item terakhir.
Node ini mengingat item dari eksekusi sebelumnya, jadi artikel yang sudah pernah dikirim otomatis dilewati.
Langkah 5 — Kirim ke Telegram
- Tambah node Telegram.
- Resource: Message, Operation: Send Message.
- Chat ID: tempel ID yang kamu catat tadi.
- Text: susun pesannya, misalnya seperti ini:
<b>Ringkasan pagi</b>
{{ $json.judul }}
{{ $json.tautan }}
Selanjutnya buat credential Telegram dan tempel Access Token dari BotFather. Beberapa detail kecil yang berguna:
- Parse Mode default-nya HTML, jadi tag sederhana seperti
<b>tetap bekerja. Batas panjang teksnya 4.096 karakter. - Di Additional Fields ada Append n8n Attribution yang aktif secara default — matikan kalau tidak ingin baris “This message was sent automatically with n8n” ikut terkirim.
- Telegram membatasi pengiriman 30 pesan per detik, jadi jangan mengirim satu pesan per artikel kalau isi feed-nya puluhan item.
Langkah 6 — Uji, Simpan, Aktifkan
Klik Execute Workflow untuk menjalankan seluruh rangkaian secara manual dan cek pesan yang masuk ke Telegram. Kalau sudah rapi, simpan workflow-nya lalu aktifkan. Khusus workflow yang memakai trigger, jangan lupa save dan aktifkan — trigger hanya berjalan pada workflow yang aktif.
Jebakan Zona Waktu: Kok Jam 7 Pagi Jadi Jam 7 Malam?
Ini kesalahan yang paling bikin bingung: Schedule Trigger memakai zona waktu workflow, atau zona waktu instance n8n kalau workflow tidak menyetelnya sendiri. Default instance self-hosted adalah America/New_York, beda 11-12 jam dari WIB. Jadi angka 7 yang kamu isi tadi bisa berarti jam 7 malam di Indonesia.
Ada dua cara memperbaikinya:
- Tambahkan variabel
GENERIC_TIMEZONE=Asia/Jakartadi konfigurasi container n8n (misalnya didocker-compose.yml), lalu jalankan ulang kontainernya. - Setel zona waktu khusus untuk workflow ini lewat menu pengaturan workflow — cara ini tidak mengubah workflow lain.
Untuk bot yang tugasnya mengirim ringkasan pagi, langkah ini wajib, bukan opsional.
Biar Chat Tidak Banjir: Gabungkan Jadi Satu Pesan
Kalau feed mengembalikan 20 item, kamu akan menerima 20 pesan sekaligus. Solusinya, tambahkan node Limit untuk mengambil beberapa item teratas saja, atau gabungkan semuanya jadi satu pesan dengan node Code (atur ke mode Run Once for All Items) kurang lebih seperti ini:
const baris = items
.slice(0, 5)
.map((item) => `- ${item.json.judul}\n${item.json.tautan}`)
.join('\n\n');
return [{ json: { teks: `Ringkasan pagi\n\n${baris}` } }];
Setelah node Code, tinggal ganti isi Text node Telegram menjadi {{ $json.teks }}. Hasilnya satu pesan rapi berisi lima judul, bukan dua puluh notifikasi beruntun.
Variasi Workflow n8n yang Bisa Kamu Coba
Setelah workflow pertama jalan, rumus yang sama bisa dipakai ulang untuk hal lain:
- Pengingat backup — baca hasil backup harian VPS, lalu kirim statusnya ke Telegram.
- Pantau harga — ambil halaman produk dengan node HTTP Request, bandingkan harganya, kirim notifikasi kalau turun.
- Agenda harian — tarik jadwal dari kalender dan kirim ke grup keluarga tiap pagi.
- Siaran artikel — kirim otomatis artikel baru ke channel Telegram atau grup pesan.
Polanya selalu sama: trigger → ambil data → rapikan → kirim. Begitu pola ini nempel, otomasi lain bisa dirakit dalam hitungan menit. Satu catatan penting: jangan pernah menyimpan token bot di dalam teks artikel atau repositori publik, simpanlah di credential n8n karena datanya terenkripsi di database kamu sendiri.
Kesalahan Umum yang Perlu Diwaspadai
- Bot tidak bisa kirim pesan — biasanya karena kamu belum menekan /start, atau bot belum jadi administrator di channel tujuan.
- Pesan dobel tiap hari — node Remove Duplicates belum dipasang, atau Value to Dedupe On menunjuk ke field yang isinya berubah-ubah.
- Jadwal meleset 11 jam —
GENERIC_TIMEZONEbelum diset keAsia/Jakarta. - Jalan manual bisa, otomatis tidak — workflow belum disimpan dan diaktifkan, atau container n8n-nya sedang mati.
Kesimpulan
Membuat workflow n8n pertama ternyata tidak seseram yang dibayangkan: lima node, satu jadwal pagi, dan satu bot Telegram, selesai. Setelah pesan pertama masuk pukul 07.00, biasanya ide otomasi berikutnya muncul sendiri — dan di situlah n8n mulai menghemat waktu kamu setiap hari.
Selamat mencoba, Sobat Online! Kalau ada node yang bandel atau pesan yang enggan terkirim, tulis saja di kolom komentar, nanti kita bedah bersama.

