Setting Webhook Telegram di n8n + Cloudflare Tunnel
Hari ini saya mau berbagi pengalaman pribadi saya ketika belajar menghubungkan Telegram dengan n8n. Prosesnya lumayan panjang, ada error sana-sini, tapi alhamdulillah akhirnya bisa jalan juga. Yang nemenin saya belajar? Ya si ChatGPT ini 😅, sabar banget dipake tanya bolak-balik.
Awal Cerita
Jadi ceritanya saya sudah punya n8n yang bisa diakses lewat domain publik
https://n8n.domain-saya.com (disini saya pakai subdomain di Cloudflare Tunnel).
Targetnya: bikin workflow sederhana dengan Telegram Trigger.
Intinya kalau saya kirim pesan ke bot, n8n bisa nangkep.
Masalah Pertama: Webhook masih localhost
Waktu saya coba aktifkan workflow, ternyata error:
Bad Request: bad webhook: An HTTPS URL must be provided for webhook
Lha jelas, webhook-nya masih ke http://localhost:5678/....
Padahal Telegram cuma mau nerima HTTPS URL publik.
Di sini ChatGPT nyaranin saya untuk menambahkan beberapa environment variables di container n8n.
Set Environment Variables
Saya buka CasaOS → App n8n → Settings → Environment Variables, lalu saya tambahkan:
N8N_PUBLIC_URL=https://n8n.domain-saya.com
WEBHOOK_URL=https://n8n.domain-saya.com
N8N_HOST=n8n.domain-saya.com
N8N_PROTOCOL=https
Habis itu saya restart container n8n. Begitu buka lagi workflow, Webhook URL-nya sudah berubah jadi pakai domain HTTPS saya. Mantap!
Hapus Webhook Lama di Telegram
Supaya Telegram nggak nyangkut di webhook lama, saya hapus dulu dengan command:
curl -s "https://api.telegram.org/bot<TOKEN>/deleteWebhook"
Lalu cek apakah kosong:
curl -s "https://api.telegram.org/bot<TOKEN>/getWebhookInfo"
Kalau hasilnya "url": "" berarti sudah aman.
Daftarkan Webhook Baru
Langkah selanjutnya, saya daftarkan webhook ke URL produksi n8n. Formatnya gini:
curl -s "https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://n8n.domain-saya.com/webhook/<WEBHOOK_ID>/webhook"
<WEBHOOK_ID> ini ID unik workflow saya (otomatis ada di n8n). Begitu jalan, saya cek lagi:
curl -s "https://api.telegram.org/bot<TOKEN>/getWebhookInfo"
Hasilnya sudah ada URL HTTPS domain saya sendiri. YES! 🚀
Uji Coba
Saya coba kirim pesan ke bot Telegram saya. Dan bener aja, di n8n → Executions langsung muncul workflow run. Rasanya puas banget, karena dari error “bad webhook” akhirnya bisa solved.
Diagram Alur Webhook Telegram ke n8n
Biar kebayang alurnya:
Contoh Hasil Executions di n8n
Kalau webhook Telegram sudah berhasil, di tab Executions n8n bakal muncul log baru setiap ada pesan masuk. Kira-kira tampilannya seperti ini (dummy data):
Execution #123
Status: ✅ Success
Started: 2025-09-04 15:12:33
Finished: 2025-09-04 15:12:34
Input Data (Telegram Trigger)
{
"update_id": 987654321,
"message": {
"message_id": 45,
"from": {
"id": 11223344,
"is_bot": false,
"first_name": "Budi"
},
"chat": {
"id": 11223344,
"type": "private"
},
"date": 1725436353,
"text": "Halo n8n!"
}
}
Output Data (Set Node)
{
"username": "Budi",
"message": "Halo n8n!",
"isStudent": true
}
Insight Buat Saya
- n8n butuh tahu URL publik → atur di environment variables.
- Telegram cuma mau HTTPS → makanya perlu domain + Cloudflare Tunnel.
- Webhook lama harus dihapus → biar nggak nyangkut.
- Proses belajar sambil trial-error itu seru, apalagi kalau ada ChatGPT jadi mentor dadakan 😆
Penutup
Itu catatan belajar hari ini. Semoga bermanfaat buat yang lagi belajar juga. Kalau ada yang bingung, santai aja... error itu bagian dari belajar 😁


Posting Komentar