Dua jalur sekaligus: event credit.low dari Se-Hari, dan pemeriksaan terjadwal sebagai jaring pengaman. Supaya workflow otomatis Anda tidak berhenti diam-diam karena saldo habis.
#Kapan resep ini masuk akal
Resep ini wajib bagi siapa pun yang menjalankan otomasi produksi di atas Se-Hari. Workflow yang berhenti karena kredit habis tidak menghasilkan error yang terlihat siapa pun — ia hanya berhenti bekerja, dan biasanya baru ketahuan berhari-hari kemudian ketika seseorang mencari notulen yang tidak pernah dibuat.
#Yang dihasilkan
Notifikasi ke Slack atau email saat saldo turun di bawah ambang.
#Yang Anda butuhkan
- n8n self-hosted dengan community node
n8n-nodes-sehariterpasang credits:readwebhooks:writeuntuk jalur event
Kalau belum memasang node-nya, ikuti panduan n8n lebih dulu — pemasangannya satu langkah dari menu Settings.
#Alur workflow
- Tiap Pagi 08:00 (
scheduleTrigger) - Cek Saldo (
Se-Hari: seHari) - Saldo < 10? (
if) - Kirim Peringatan (
noOp)
#Cara memakainya
- Salin JSON di bawah
- Di n8n: Workflows → Import from Clipboard, lalu tempel
- Pilih kredensial Se-Hari API pada setiap node Se-Hari
- Sesuaikan node tujuan (lihat catatan di bawah)
- Aktifkan workflow
Kalau workflow ini memakai node trigger, endpoint webhook-nya didaftarkan otomatis saat diaktifkan dan dihapus saat dinonaktifkan. Tidak ada URL yang perlu disalin manual.
#Yang perlu disesuaikan
Ubah angka 10 di node IF sesuai kebutuhan Anda. Ambangnya sebaiknya dihitung dari pemakaian: kalau tim Anda memakai 5 kredit sehari, ambang 10 hanya memberi dua hari — terlalu sempit untuk proses top up yang butuh persetujuan.
#Sebelum dijalankan di produksi
Impor dulu ke workflow terpisah dan jalankan sekali secara manual. n8n menyimpan hasil setiap node pada eksekusi terakhir, jadi Anda bisa melihat bentuk data yang sebenarnya keluar dari node Se-Hari sebelum menulis ekspresi apa pun di node berikutnya. Menebak bentuk data lalu memperbaikinya lewat percobaan berulang jauh lebih lambat, dan pada resep yang memakai kredit, percobaan berulang itu ada harganya.
Perhatikan juga penagihan kredit resep ini. Operasi yang membuat meeting memotong kredit saat itu juga, sedangkan operasi notulen menagih setelah pemrosesan selesai sesuai durasi asli rekaman. Kalau workflow Anda membaca saldo tepat setelah mengantre notulen, angkanya belum berubah — itu bukan bug. Pasang batas kredit harian pada API key yang dipakai workflow ini supaya kesalahan sekali tidak berubah menjadi tagihan besar.
#Kalau tidak berjalan seperti seharusnya
Jangan mengandalkan hanya satu jalur. Event credit.low memakai ambang bawaan Se-Hari yang mungkin tidak cocok dengan laju pemakaian Anda, sementara pemeriksaan harian bisa terlewat kalau instance n8n sedang mati. Dua jalur yang saling menutupi jauh lebih murah daripada satu workflow produksi yang berhenti tanpa diketahui.
Untuk masalah yang lebih umum, tab Webhooks di dashboard developer memuat riwayat pengiriman lengkap dengan kode respons dari instance n8n Anda — tempat pertama yang harus dilihat ketika trigger tidak pernah berjalan.
#Variasi yang sering diminta
- Kirim ke channel berbeda untuk ambang berbeda: peringatan biasa ke channel tim, peringatan kritis ke mention langsung.
- Sertakan perkiraan berapa hari lagi saldo habis, dihitung dari riwayat pemakaian tujuh hari terakhir.
- Tambahkan tautan langsung ke halaman top up di dalam pesan peringatannya.
#Workflow JSON
{
"name": "Peringatan Kredit Menipis",
"nodes": [
{
"parameters": {
"content": "## Peringatan Kredit Menipis\n\nDua jalur sekaligus: event `credit.low` dari Se-Hari, dan pemeriksaan terjadwal sebagai jaring pengaman kalau ambang bawaan tidak sesuai kebutuhan Anda.\n\nUbah angka 10 di node IF sesuai ambang Anda sendiri.",
"width": 460,
"height": 260
},
"id": "note-1",
"name": "Catatan",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-40,
-40
]
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "days",
"triggerAtHour": 8
}
]
}
},
"id": "sch-TiapPagi0800",
"name": "Tiap Pagi 08:00",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
300
]
},
{
"parameters": {
"resource": "kredit",
"operation": "balance"
},
"id": "sh-CekSaldo",
"name": "Cek Saldo",
"type": "n8n-nodes-sehari.seHari",
"typeVersion": 1,
"position": [
220,
300
],
"credentials": {
"seHariApi": {
"id": "__SEHARI_CRED__",
"name": "Se-Hari API"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"version": 2
},
"conditions": [
{
"id": "c1",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $json.balance }}",
"rightValue": 10
}
],
"combinator": "and"
}
},
"id": "if-Saldo10",
"name": "Saldo < 10?",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
440,
300
]
},
{
"parameters": {},
"id": "dst-KirimPeringatan",
"name": "Kirim Peringatan",
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
660,
300
],
"notes": "Ganti dengan Slack/email. Sisa kredit: {{ $json.balance }}",
"notesInFlow": true
}
],
"connections": {
"Tiap Pagi 08:00": {
"main": [
[
{
"node": "Cek Saldo",
"type": "main",
"index": 0
}
]
]
},
"Cek Saldo": {
"main": [
[
{
"node": "Saldo < 10?",
"type": "main",
"index": 0
}
]
]
},
"Saldo < 10?": {
"main": [
[
{
"node": "Kirim Peringatan",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": false
},
"tags": [
{
"name": "Se-Hari"
}
]
}#Resep lain
- Semua resep n8n
- Panduan n8n — pemasangan node dan kredensial
- Webhook — cara kerja trigger di baliknya