se-hari.com se-hari.com

Peringatan saat kredit menipis

Dua jalur sekaligus: event `credit.low` dari Se-Hari, dan pemeriksaan terjadwal sebagai jaring pengaman. Supaya workflow otomatis Anda tidak berhenti…

2 menit baca Diperbarui 15 Agustus 2026 Lihat sebagai Markdown

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-sehari terpasang
  • credits:read
  • webhooks:write untuk jalur event

Kalau belum memasang node-nya, ikuti panduan n8n lebih dulu — pemasangannya satu langkah dari menu Settings.

#Alur workflow

  1. Tiap Pagi 08:00 (scheduleTrigger)
  2. Cek Saldo (Se-Hari: seHari)
  3. Saldo < 10? (if)
  4. Kirim Peringatan (noOp)

#Cara memakainya

  1. Salin JSON di bawah
  2. Di n8n: Workflows → Import from Clipboard, lalu tempel
  3. Pilih kredensial Se-Hari API pada setiap node Se-Hari
  4. Sesuaikan node tujuan (lihat catatan di bawah)
  5. 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

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

Siap mencoba?

Buat API key gratis di dashboard — tidak ada biaya berlangganan, kredit terpakai hanya saat Anda benar-benar memproses rekaman atau membuat meeting.

Buat API Key