Cara Bangun AI Agent Otomasi Rekonsiliasi Invoice dengan n8n + GPT (Tanpa Coding Kompleks)
· 3 menit baca
Cara Bangun AI Agent Otomasi Rekonsiliasi Invoice dengan n8n + GPT (Tanpa Coding Kompleks)
🚨 Hook: Kenapa Rekonsiliasi Invoice Bikin Kepala?
Setiap akhir bulan, tim finance Anda harus mencocokkan ratusan invoice dengan data pembayaran di bank, Stripe, atau payment gateway lain. Kesalahan kecil dapat berakibat pada cash‑flow yang kacau, denda keterlambatan, bahkan hilangnya kepercayaan klien. Proses manual biasanya memakan 10–20 jam per bulan—waktu yang jauh lebih baik dihabiskan untuk strategi pertumbuhan.
🤖 Konsep: AI Agent + n8n = Rekonsiliasi Cerdas
n8n adalah workflow orchestration yang dapat menghubungkan API apa saja, sedangkan GPT (atau model LLM lain) berperan sebagai AI Agent yang membaca, menafsirkan, dan menormalisasi data invoice serta catatan pembayaran. Kombinasi keduanya memungkinkan:
- Ekstraksi data otomatis dari PDF/IMG invoice (OCR + LLM).
- Matching fuzzy antara nomor invoice, amount, dan tanggal.
- Keputusan otomatis – cocok, mismatch, atau perlu verifikasi manual.
- Notifikasi pintar ke Slack/WhatsApp dengan ringkasan aksi.
🔧 Breakdown Teknis Workflow
1. Trigger: Cron (setiap hari pukul 02:00) → Mulai workflow.
2. Get Invoices: HTTP Request ke API SaaS billing (misal: Stripe, Xero) → daftar invoice terbaru.
3. Get Payments: HTTP Request ke bank atau payment gateway → transaksi masuk.
4. Transform: Function node (JS) -> normalisasi format tanggal & currency.
5. AI Agent (GPT):
a. Input: {invoice_data, payment_data}
b. Prompt: "Cocokkan invoice dengan pembayaran. Kembalikan array objek {invoice_id, status, reason}".
c. Output: JSON dengan status: MATCH, MISMATCH, UNVERIFIED.
6. SplitInBatches: Bagi hasil ke batch 20 untuk menghindari rate‑limit.
7. Decision:
- Jika MATCH → Update status di sistem billing via PATCH.
- Jika MISMATCH → Buat tiket di Trello/Linear dengan detail.
- Jika UNVERIFIED → Kirim notifikasi ke Slack channel "#finance‑review".
8. Log: Write ke Google Sheet atau DB untuk audit trail.
9. End.
Contoh Prompt GPT (pake OpenAI Chat Completion)
"Berikut daftar invoice dan transaksi pembayaran. Cocokkan masing‑masing berdasarkan nomor invoice, amount, dan tanggal. Kembalikan JSON array dengan field: invoice_id, payment_id (atau null), status (MATCH|MISMATCH|UNVERIFIED), dan reason. Gunakan fuzzy matching dengan toleransi +-2 hari dan +-5% amount."
📂 Use Case Real: Startup SaaS B2B
Acme SaaS memiliki 300 pelanggan, rata‑rata 5 invoice per pelanggan per bulan. Sebelumnya tim finance menghabiskan ~30 jam per bulan untuk rekonsiliasi manual. Dengan workflow di atas:
- Automasi mengekstrak & mencocokkan 1.500 invoice dalam 5 menit.
- Hanya 10% yang masuk ke tahap verifikasi manual (tiket Trello).
- Waktu kerja tim finance berkurang menjadi 3 jam per bulan.
💡 Insight & Strategi Eksklusif
- Prompt‑chaining: gunakan dua panggilan LLM—pertama untuk ekstraksi data (OCR → teks), kedua untuk matching. Meminimalkan token usage.
- Cache hasil OCR di Redis; bila invoice belum berubah, gunakan hasil cached untuk mengurangi biaya.
- Adaptive fallback: jika LLM gagal (timeout atau error), fallback ke algorithm berbasis
fuzzywuzzydi Function node. - Cost‑aware throttling: gunakan node
Setuntuk menghitung token usage, dan pause workflow bila melebihi budget harian. - Human‑in‑the‑Loop: tiket di Trello otomatis assign ke anggota finance berdasarkan
round‑robinuntuk beban kerja seimbang.
🛠️ Langkah Praktis Membuatnya di n8n
- Install n8n (Docker atau n8n.cloud).
- Aktifkan OpenAI credential di Credentials → API Key.
- Buat workflow baru, tambahkan Cron trigger (00 02 * * *) .
- Tambahkan HTTP Request node untuk Stripe (GET /v1/invoices) – gunakan Stripe credential.
- Tambahkan HTTP Request node untuk Bank API (misal: Plaid atau custom).
- Gunakan Function node untuk normalisasi tanggal (ISO 8601) dan currency.
- Tarik OpenAI node, pilih "Chat Completion", set model gpt-4o-mini, paste prompt di atas, map input JSON.
- Set SplitInBatches (size 20) untuk menghindari rate‑limit.
- Hubungkan ke IF node tiga cabang (MATCH, MISMATCH, UNVERIFIED).
- MATCH → HTTP Request (PATCH) ke Stripe untuk update status.
- MISMATCH → Trello node (Create Card) dengan label "mismatch".
- UNVERIFIED → Slack node (Send Message) ke channel review.
- Akhirnya, tambahkan Google Sheets node untuk menyimpan audit log (tanggal, invoice_id, status, token_used).
🔚 Penutup & CTA
Rekonsiliasi invoice bukan lagi pekerjaan "boneka” yang memakan waktu. Dengan n8n + GPT, Anda mengubah proses jadi pipeline otomatis 5‑menit yang tetap memberi kontrol manual hanya pada pengecualian yang penting. Selanjutnya?
- Clone contoh workflow di repo GitHub kami.
- Uji di akun sandbox Stripe & bank Anda.
- Iterasi prompt untuk menyesuaikan toleransi fuzzy sesuai kebijakan finance.
Mulai otomatisasi hari ini, dan alokasikan kembali jam kerja finance untuk analisis cash‑flow yang strategis, bukan pencocokan angka!