Bot Telegram untuk mencatat pengeluaran harian langsung melalui chat Telegram. Pesan yang dikirim pengguna akan diproses oleh n8n dan disimpan otomatis ke Google Sheets.
Contoh input:
geprek 12kbensin 55.5kayam 25k
- Pencatatan pengeluaran via Telegram
- Penyimpanan data ke Google Sheets
- Rekap pengeluaran 7 hari terakhir (
/week) - Batalkan input terakhir (
/undo) - Download file rekap (
/download) - Dapat digunakan oleh beberapa user
- Workflow berjalan di n8n (self-hosted)
- n8n dijalankan via CLI (
n8n start) - ngrok menyediakan URL HTTPS publik (untuk Telegram webhook)
- Google Sheets sebagai penyimpanan data
- Telegram Bot sebagai interface pengguna
Pastikan sudah terinstall:
- Node.js (untuk menjalankan n8n CLI)
- n8n (global / local install)
- Akun ngrok
- Telegram Bot Token (dari BotFather)
- Akun Google untuk Google Sheets (OAuth2 di n8n)
git clone https://github.com/udinvoldigoad/bot-pengeluaran.git
cd bot-pengeluaranSalin file contoh environment:
cp .env.example .envIsi variabel penting di .env (sesuaikan dengan file Anda):
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- WEBHOOK_URL= (kosong dulu, akan diisi setelah ngrok jalan) Jangan pernah commit file .env.
n8n startBuka n8n di browser: http://localhost:5678
Buka terminal baru, lalu jalankan:
ngrok http 5678ngrok akan memberikan URL HTTPS publik, contoh: https://abcd-1234.ngrok-free.app
Salin URL tersebut.
Edit file .env dan isi:
WEBHOOK_URL=https://abcd-1234.ngrok-free.appSetelah itu restart n8n (CTRL + C lalu n8n start)
Langkah ini wajib agar Telegram webhook mengarah ke URL publik (bukan localhost).
- Masuk ke n8n Editor
- Klik Import workflow
- Import file JSON dari folder workflows/
- Pastikan semua node tidak error
- Telegram
- Buat Telegram Credential
- Masukkan Bot Token dari BotFather
- Google Sheets
- Buat Google Sheets OAuth2 Credential
- Login dan authorize akun Google
- Pastikan spreadsheet tujuan sudah ada dan bisa diakses
- Klik Activate pada workflow
- Kirim pesan ke bot Telegram:
makan 12k - Pastikan data masuk ke Google Sheets
- Coba perintah:
/undo,/week,/download
-
Telegram webhook tidak masuk
- Pastikan WEBHOOK_URL sudah HTTPS (ngrok)
- Pastikan n8n direstart setelah update .env
- Pastikan workflow sudah Activate
-
Error HTTPS webhook
- Telegram tidak menerima HTTP
- Gunakan URL https:// dari ngrok
-
ngrok berubah URL
- Jika ngrok direstart, URL akan berubah
- Update WEBHOOK_URL
- Restart n8n
- Re-activate workflow
- Tidak ada credential yang disimpan di repository
- .env dan data n8n tidak di-commit
- Workflow JSON sudah disanitasi