The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"updatedAt": "2025-10-09T16:27:49.000Z",
"createdAt": "2025-07-29T16:36:07.600Z",
"id": "efllgWgkQ1EbMi9v",
"name": "Finance Agent",
"active": false,
"isArchived": false,
"nodes": [
{
"parameters": {
"promptType": "define",
"text": "={{ $json.query }}",
"options": {
"systemMessage": "=# \ud83d\udcb0 Finance Agent\nAnda adalah **Finance Logger**, agen untuk mengubah data transaksi mentah menjadi data terstruktur untuk disimpan ke tabel keuangan.\n\n### Peran\n1. Terima input teks, struk, invoice, atau deskripsi transaksi dari parent agent.\n2. Ekstrak data menjadi format tabel keuangan yang rapi.\n\n### Aturan Output\n- Output **harus selalu** siap untuk dimasukkan ke tabel.\n- **Nominal:** angka saja tanpa \u201cRp\u201d atau pemisah ribuan. Contoh: `55000`.\n- **JenisTransaksi:** hanya `Pemasukan` atau `Pengeluaran`.\n- **Tanggal:** format `dd-MM-yyyy hh:mm` (gunakan waktu sekarang jika tidak disebutkan). sekarang adalah {{ $now }}\n- **Kategori:** pilih yang paling cocok dari daftar berikut.\n - Pengeluaran: Makanan & Minuman, Transportasi, Belanja Kebutuhan, Tagihan & Utilitas, Hiburan, Pendidikan, Kesehatan, Cicilan & Utang, Donasi, Lain-lain.\n - Pemasukan: Gaji, Bonus/Komisi, Investasi, Pendapatan Sampingan, Pinjaman, Lain-lain.\n"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.8,
"position": [
376,
-32
],
"id": "e893572d-ae1b-46e4-967e-c121312a748c",
"name": "Finance assistent"
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $execution.id }}",
"contextWindowLength": 2
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
192,
192
],
"id": "d8c101b2-eef6-4ae1-9138-5d4486fadfaa",
"name": "Simple Memory"
},
{
"parameters": {
"inputSource": "passthrough"
},
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1.1,
"position": [
-160,
-32
],
"id": "ebfd0b10-8d90-4b2d-bf7d-57589b66101a",
"name": "When Executed by Another Workflow"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "ec7d3dbc-7067-41c6-93b6-03b40d261ad3",
"name": "output",
"value": "={{ $json.output }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1040,
-128
],
"id": "6cd4fbb1-0688-4fce-9990-7307716ab475",
"name": "Edit Fields"
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "Insert row in Data table for financial report",
"dataTableId": {
"__rl": true,
"value": "49QSFI9nwJItXyvp",
"mode": "list",
"cachedResultName": "Financial report",
"cachedResultUrl": "/projects/DiQC0tGxFhuiK9UM/datatables/49QSFI9nwJItXyvp"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Keterangan": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Keterangan', ``, 'string') }}",
"JenisTransaksi": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('JenisTransaksi', ``, 'string') }}",
"kategori": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('kategori', ``, 'string') }}",
"nominalIDR": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('nominalIDR', ``, 'number') }}",
"tanggalTransaksi": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('tanggalTransaksi', ``, 'string') }}"
},
"matchingColumns": [],
"schema": [
{
"id": "Keterangan",
"displayName": "Keterangan",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "tanggalTransaksi",
"displayName": "tanggalTransaksi",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "JenisTransaksi",
"displayName": "JenisTransaksi",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "nominalIDR",
"displayName": "nominalIDR",
"required": false,
"defaultMatch": false,
"display": true,
"type": "number",
"readOnly": false,
"removed": false
},
{
"id": "kategori",
"displayName": "kategori",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.dataTableTool",
"typeVersion": 1,
"position": [
320,
192
],
"id": "cf0329a8-66bf-4a0c-a525-8517226f047d",
"name": "Insert row in Data table"
},
{
"parameters": {
"operation": "get",
"dataTableId": {
"__rl": true,
"value": "49QSFI9nwJItXyvp",
"mode": "list",
"cachedResultName": "Financial report",
"cachedResultUrl": "/projects/DiQC0tGxFhuiK9UM/datatables/49QSFI9nwJItXyvp"
},
"returnAll": ""
},
"type": "n8n-nodes-base.dataTableTool",
"typeVersion": 1,
"position": [
448,
192
],
"id": "d453a257-1a66-4ea1-9dce-4c6b7afff9a7",
"name": "Get row(s) in Data table"
},
{
"parameters": {
"workflowId": {
"__rl": true,
"value": "ZNDa7QrZC8lU0uQj",
"mode": "list",
"cachedResultUrl": "/workflow/ZNDa7QrZC8lU0uQj",
"cachedResultName": "tableToSheet"
},
"workflowInputs": {
"mappingMode": "defineBelow",
"value": {}
},
"options": {}
},
"type": "n8n-nodes-base.executeWorkflow",
"typeVersion": 1.3,
"position": [
1040,
64
],
"id": "c3f5bb83-e43a-44a5-a43d-fe46546fdc56",
"name": "Call 'tableToSheet'"
},
{
"parameters": {
"operation": "rowExists",
"dataTableId": {
"__rl": true,
"value": "49QSFI9nwJItXyvp",
"mode": "list",
"cachedResultName": "Financial report",
"cachedResultUrl": "/projects/DiQC0tGxFhuiK9UM/datatables/49QSFI9nwJItXyvp"
},
"filters": {
"conditions": [
{
"keyName": "Keterangan",
"keyValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions0_Value', ``, 'string') }}"
}
]
}
},
"type": "n8n-nodes-base.dataTableTool",
"typeVersion": 1,
"position": [
576,
192
],
"id": "5f7681c0-f1f2-4063-bd0e-1a240ade4cb5",
"name": "If keterangan exist"
},
{
"parameters": {
"operation": "update",
"dataTableId": {
"__rl": true,
"value": "49QSFI9nwJItXyvp",
"mode": "list",
"cachedResultName": "Financial report",
"cachedResultUrl": "/projects/DiQC0tGxFhuiK9UM/datatables/49QSFI9nwJItXyvp"
},
"filters": {
"conditions": [
{
"keyName": "kategori",
"condition": "ilike",
"keyValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions0_Value', ``, 'string') }}"
},
{
"keyName": "tanggalTransaksi",
"keyValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions1_Value', ``, 'string') }}"
},
{
"keyName": "nominalIDR",
"keyValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions2_Value', ``, 'string') }}"
}
]
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"nominalIDR": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('nominalIDR', ``, 'number') }}",
"Keterangan": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Keterangan', ``, 'string') }}",
"tanggalTransaksi": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('tanggalTransaksi', ``, 'string') }}",
"JenisTransaksi": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('JenisTransaksi', ``, 'string') }}",
"kategori": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('kategori', ``, 'string') }}"
},
"matchingColumns": [],
"schema": [
{
"id": "Keterangan",
"displayName": "Keterangan",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "tanggalTransaksi",
"displayName": "tanggalTransaksi",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "JenisTransaksi",
"displayName": "JenisTransaksi",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "nominalIDR",
"displayName": "nominalIDR",
"required": false,
"defaultMatch": false,
"display": true,
"type": "number",
"readOnly": false,
"removed": false
},
{
"id": "kategori",
"displayName": "kategori",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"type": "n8n-nodes-base.dataTableTool",
"typeVersion": 1,
"position": [
704,
192
],
"id": "03a8c4dc-d573-48cb-95e3-60c4489a6a16",
"name": "Update row(s) in Data table"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
64,
192
],
"id": "35762f89-850f-48e1-ade3-f62c4b60d711",
"name": "Google Gemini Chat Model",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "deleteRows",
"dataTableId": {
"__rl": true,
"value": "49QSFI9nwJItXyvp",
"mode": "list",
"cachedResultName": "Financial report",
"cachedResultUrl": "/projects/DiQC0tGxFhuiK9UM/datatables/49QSFI9nwJItXyvp"
},
"filters": {
"conditions": [
{
"keyName": "Keterangan",
"keyValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions0_Value', `ini adalah kolom keterangan, isinya keterangan transaksi`, 'string') }}"
},
{
"keyName": "tanggalTransaksi",
"keyValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions1_Value', `ini kolom tangal, isinya tanggal transaksi`, 'string') }}"
},
{
"keyName": "nominalIDR",
"keyValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('conditions2_Value', `ini kolom nominal, isinya nominal transaksi\n`, 'string') }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.dataTableTool",
"typeVersion": 1,
"position": [
832,
192
],
"id": "06a91a8e-7730-4a01-a569-3a1e6d55b635",
"name": "Delete row(s) in Data table"
}
],
"connections": {
"Finance assistent": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
},
{
"node": "Call 'tableToSheet'",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "Finance assistent",
"type": "ai_memory",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Finance assistent",
"type": "main",
"index": 0
}
]
]
},
"Insert row in Data table": {
"ai_tool": [
[
{
"node": "Finance assistent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get row(s) in Data table": {
"ai_tool": [
[
{
"node": "Finance assistent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Call 'tableToSheet'": {
"main": [
[]
]
},
"If keterangan exist": {
"ai_tool": [
[
{
"node": "Finance assistent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Update row(s) in Data table": {
"ai_tool": [
[
{
"node": "Finance assistent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Finance assistent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Delete row(s) in Data table": {
"ai_tool": [
[
{
"node": "Finance assistent",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1",
"callerPolicy": "workflowsFromSameOwner",
"errorWorkflow": "AvhjGJdACMdnvIEn"
},
"staticData": null,
"meta": {
"templateCredsSetupCompleted": true
},
"versionId": "67888704-57d5-4d32-9944-72133edc5fb8",
"triggerCount": 1,
"shared": [
{
"updatedAt": "2025-07-29T16:36:07.607Z",
"createdAt": "2025-07-29T16:36:07.607Z",
"role": "workflow:owner",
"workflowId": "efllgWgkQ1EbMi9v",
"projectId": "DiQC0tGxFhuiK9UM"
}
],
"tags": [
{
"updatedAt": "2025-10-06T05:05:37.121Z",
"createdAt": "2025-10-06T05:05:37.121Z",
"id": "Xp9ppupv5ftjKZ28",
"name": "Agents"
}
]
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googlePalmApi
About this workflow
Finance Agent. Uses agent, memoryBufferWindow, executeWorkflowTrigger, dataTableTool. Event-driven trigger; 11 nodes.
Source: https://github.com/SamVivan1/n8n-Workflows-Backup/blob/main/finance-agent-efllgWgkQ1EbMi9v.json — original creator credit. Request a take-down →