金融示例
高级
这是一个Miscellaneous领域的自动化工作流,包含 22 个节点。主要使用 Set, Merge, Resend, ItemLists, HttpRequest 等节点。 使用GoCardless和Maybe Finance自动化多银行交易同步与报告
前置要求
- •可能需要目标 API 的认证凭证
分类
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "tY32QDTdup1LAwR1",
"meta": {
"instanceId": "358ebc7e70f0c2213a4211c90e6cecc1d427950728ea9da9fc037017aab28666",
"templateCredsSetupCompleted": true
},
"name": "金融示例",
"tags": [],
"nodes": [
{
"id": "c7580a81-6327-4da4-b01a-9afe9d9d3b22",
"name": "获取访问令牌",
"type": "n8n-nodes-base.httpRequest",
"position": [
-820,
-80
],
"parameters": {
"url": "https://bankaccountdata.gocardless.com/api/v2/token/new/",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "secret_id"
},
{
"name": "secret_key"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "8c0c26ef-083a-4028-a866-2b3857dc47c3",
"name": "获取 Revolut Pro 交易",
"type": "n8n-nodes-base.httpRequest",
"position": [
-400,
-180
],
"parameters": {
"url": "https://bankaccountdata.gocardless.com/api/v2/accounts/<account_id>/transactions",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "date_from",
"value": "={{ DateTime.now().startOf('week').minus({days: 7}).toFormat('yyyy-MM-dd') }}"
},
{
"name": "date_to",
"value": "={{ DateTime.now().startOf('week').minus({days: 1}).toFormat('yyyy-MM-dd') }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $json.access }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "61fb2bc6-abf0-469d-9ade-ef7aec5429fe",
"name": "获取 Revolut Personal 交易",
"type": "n8n-nodes-base.httpRequest",
"position": [
-400,
60
],
"parameters": {
"url": "https://bankaccountdata.gocardless.com/api/v2/accounts/<account_id>/transactions",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "date_from",
"value": "={{ DateTime.now().startOf('week').minus({days: 7}).toFormat('yyyy-MM-dd') }}"
},
{
"name": "date_to",
"value": "={{ DateTime.now().startOf('week').minus({days: 1}).toFormat('yyyy-MM-dd') }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $json.access }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "878df10c-1704-48f5-b1a2-ac9a4ff4a5f2",
"name": "从 Maybe 获取账户 ID",
"type": "n8n-nodes-base.httpRequest",
"position": [
-480,
-540
],
"parameters": {
"url": "http://localhost:3005/api/v1/accounts",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "X-Api-Key"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "524015a4-4d7b-4836-b8da-125f995d9ca4",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
-680
],
"parameters": {
"width": 1440,
"height": 340,
"content": "## 运行一次 - 配置"
},
"typeVersion": 1
},
{
"id": "cda3a7d7-f434-4d64-bdc9-0f9d6c04b5a3",
"name": "步骤 2 - 获取机构 ID",
"type": "n8n-nodes-base.httpRequest",
"position": [
0,
-540
],
"parameters": {
"url": "https://bankaccountdata.gocardless.com/api/v2/institutions",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "country",
"value": "nl"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $json.access }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "96ea05dd-27a5-41b7-8049-ef0be4036662",
"name": "步骤 5 - 获取账户 ID",
"type": "n8n-nodes-base.httpRequest",
"position": [
1100,
-540
],
"parameters": {
"url": "https://bankaccountdata.gocardless.com/api/v2/requisitions/96bed7e3-a275-48fc-8fed-4d97ca1d452f/",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $json.access }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "5367c00b-97f5-4002-a7b3-b2bc111b63c0",
"name": "便签 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-980,
-680
],
"parameters": {
"color": 6,
"width": 280,
"height": 340,
"content": "## 设置每周工作流"
},
"typeVersion": 1
},
{
"id": "ba89f635-926c-4750-a862-b5e335852cc0",
"name": "创建交易到 Maybe",
"type": "n8n-nodes-base.httpRequest",
"position": [
840,
-80
],
"parameters": {
"url": "http://localhost/api/v1/transactions/",
"method": "POST",
"options": {},
"jsonBody": "={\n \"transaction\": {\n \"account_id\": \"{{ $json.transaction.account_id }}\",\n \"name\": \"{{ $json.transaction.name }}\",\n \"date\": \"{{ $json.transaction.date }}\",\n \"amount\": {{ $json.transaction.amount }},\n \"currency\": \"{{ $json.transaction.currency }}\",\n \"nature\": \"{{ $json.transaction.nature }}\"\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "X-Api-Key"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "56f290e1-9e12-40f6-8883-93ff25e9227d",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-980,
-320
],
"parameters": {
"color": 5,
"width": 840,
"height": 640,
"content": "## GoCardless - 获取交易"
},
"typeVersion": 1
},
{
"id": "cebfa4eb-2e0b-42ea-b637-c285e822e7ac",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-120,
-320
],
"parameters": {
"color": 2,
"width": 1440,
"height": 640,
"content": "## Maybe Finance - 创建交易"
},
"typeVersion": 1
},
{
"id": "afdeeee2-8f96-436b-8011-a3a507c341f0",
"name": "将所有交易合并到一个数组中",
"type": "n8n-nodes-base.merge",
"position": [
580,
-80
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "07bd503d-d842-459e-8e07-f240f08fc039",
"name": "重新发送",
"type": "n8n-nodes-resend.resend",
"position": [
1060,
-80
],
"parameters": {
"html": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html dir=\"ltr\" lang=\"en\">\n <head>\n <link\n rel=\"preload\"\n as=\"image\"\n href=\"https://di867tnz6fwga.cloudfront.net/brand-kits/cfcf0bf8-7c74-4001-9740-435b7c42c4a8/primary/07c4924e-2064-4f81-8281-1d56c5850866.png\" />\n <meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\" />\n <meta name=\"x-apple-disable-message-reformatting\" />\n </head>\n <body\n style='background-color:rgb(0,0,0);font-family:ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";padding-top:40px;padding-bottom:40px'>\n <!--$-->\n <div\n style=\"display:none;overflow:hidden;line-height:1px;opacity:0;max-height:0;max-width:0\"\n data-skip-in-text=\"true\">\n Your weekly bank transaction overview is ready to view\n <div>\n \n </div>\n </div>\n <table\n align=\"center\"\n width=\"100%\"\n border=\"0\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"margin-left:auto;margin-right:auto;padding-top:20px;padding-bottom:20px;padding-left:20px;padding-right:20px;background-color:rgb(18,18,18);border-radius:8px;max-width:600px\">\n <tbody>\n <tr style=\"width:100%\">\n <td>\n <table\n align=\"center\"\n width=\"100%\"\n border=\"0\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"text-align:center;margin-bottom:32px\">\n <tbody>\n <tr>\n <td>\n <img\n alt=\"Syllogic\"\n src=\"https://di867tnz6fwga.cloudfront.net/brand-kits/cfcf0bf8-7c74-4001-9740-435b7c42c4a8/primary/07c4924e-2064-4f81-8281-1d56c5850866.png\"\n style=\"width:100%;height:auto;object-fit:cover;max-width:200px;margin-left:auto;margin-right:auto;display:block;outline:none;border:none;text-decoration:none\" />\n </td>\n </tr>\n </tbody>\n </table>\n <table\n align=\"center\"\n width=\"100%\"\n border=\"0\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"padding-left:20px;padding-right:20px;text-align:center\">\n <tbody>\n <tr>\n <td>\n <h1\n style=\"color:rgb(255,255,255);font-size:24px;font-weight:700;margin-bottom:24px\">\n Your Weekly Overview is Ready\n </h1>\n <p\n style=\"color:rgb(255,255,255);font-size:16px;line-height:24px;margin-bottom:32px;margin-top:16px\">\n Your comprehensive bank transaction overview for this past\n week has been compiled and is ready for review.\n </p>\n <table\n align=\"center\"\n width=\"100%\"\n border=\"0\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"margin-bottom:32px\">\n <tbody>\n <tr>\n <td>\n <a\n href=\"http://100.78.73.50:3005/\"\n style=\"background-color:rgb(255,255,255);color:rgb(0,0,0);padding-left:32px;padding-right:32px;padding-top:12px;padding-bottom:12px;border-radius:6px;font-size:16px;font-weight:500;text-decoration-line:none;box-sizing:border-box;display:inline-block;line-height:100%;text-decoration:none;max-width:100%;mso-padding-alt:0px\"\n target=\"_blank\"\n ><span\n ><!--[if mso]><i style=\"mso-font-width:400%;mso-text-raise:18\" hidden>    </i><![endif]--></span\n ><span\n style=\"max-width:100%;display:inline-block;line-height:120%;mso-padding-alt:0px;mso-text-raise:9px\"\n >View Your Overview</span\n ><span\n ><!--[if mso]><i style=\"mso-font-width:400%\" hidden>    ​</i><![endif]--></span\n ></a\n >\n </td>\n </tr>\n </tbody>\n </table>\n <p\n style=\"color:rgb(255,255,255);font-size:14px;line-height:20px;margin-bottom:24px;opacity:0.8;margin-top:16px\">\n Link: http://100.78.73.50:3005/\n </p>\n </td>\n </tr>\n </tbody>\n </table>\n <hr\n style=\"border-color:rgb(51,51,51);margin-top:32px;margin-bottom:32px;width:100%;border:none;border-top:1px solid #eaeaea\" />\n <table\n align=\"center\"\n width=\"100%\"\n border=\"0\"\n cellpadding=\"0\"\n cellspacing=\"0\"\n role=\"presentation\"\n style=\"padding-left:20px;padding-right:20px;text-align:center\">\n <tbody>\n <tr>\n <td>\n <p\n style=\"color:rgb(255,255,255);font-size:12px;line-height:16px;opacity:0.6;margin-bottom:16px;margin-top:16px\">\n After years of watching teams struggle with data access,\n we are building a better way.\n </p>\n <p\n style=\"color:rgb(255,255,255);font-size:12px;line-height:16px;opacity:0.6;margin-top:16px;margin-bottom:16px\">\n <a\n href=\"https://syllogic.ai\"\n style=\"color:rgb(255,255,255);text-decoration-line:underline\"\n target=\"_blank\"\n >Syllogic</a\n >\n </p>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!--7--><!--/$-->\n </body>\n</html>\n",
"subject": "Weekly transactions overview",
"additionalOptions": {}
},
"credentials": {
"resendApi": {
"id": "YFj2hXsELN5yFJ26",
"name": "Resend account"
}
},
"executeOnce": true,
"typeVersion": 1
},
{
"id": "7ed11872-a6e8-4c36-a137-dcb527a8394d",
"name": "便签 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-680,
-680
],
"parameters": {
"color": 6,
"width": 540,
"height": 340,
"content": "## 获取 Maybe Finance 账户"
},
"typeVersion": 1
},
{
"id": "061da286-bf40-41b3-9bd6-52c579067451",
"name": "提取已记账 - Revolut Personal",
"type": "n8n-nodes-base.itemLists",
"position": [
40,
60
],
"parameters": {
"options": {},
"fieldToSplitOut": "transactions.booked"
},
"typeVersion": 3
},
{
"id": "eb8d3441-4d25-4ee7-a94e-4073294914b9",
"name": "提取已记账 - Revolut Pro",
"type": "n8n-nodes-base.itemLists",
"position": [
40,
-180
],
"parameters": {
"options": {},
"fieldToSplitOut": "transactions.booked"
},
"typeVersion": 3
},
{
"id": "305021b2-cf36-4d29-9ddd-fd31eca8902d",
"name": "设置 Revolut Pro 的交易",
"type": "n8n-nodes-base.set",
"position": [
320,
-180
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "= {\n \"transaction\": {\n \"account_id\": \"\",\n \"name\": \"{{ $json.creditorName || $json.remittanceInformationUnstructuredArray[0]}}\",\n \"date\": \"{{ $json.bookingDate }}\",\n \"amount\": \"{{ Math.abs(parseFloat($json.transactionAmount.amount)) }}\",\n \"currency\": \"{{ $json.transactionAmount.currency }}\",\n \"nature\": \"{{ parseFloat($json.transactionAmount.amount) >= 0 ? 'income' : 'expense' }}\"\n }}"
},
"typeVersion": 3.4
},
{
"id": "6205fdc5-b59c-41b9-9c00-c3a6a9d67a72",
"name": "设置 Revolut Personal 的交易",
"type": "n8n-nodes-base.set",
"position": [
320,
60
],
"parameters": {
"mode": "raw",
"options": {},
"jsonOutput": "= {\n \"transaction\": {\n \"account_id\": \"\",\n \"name\": \"{{ $json.creditorName || $json.remittanceInformationUnstructuredArray[0]}}\",\n \"date\": \"{{ $json.bookingDate }}\",\n \"amount\": \"{{ Math.abs(parseFloat($json.transactionAmount.amount)) }}\",\n \"currency\": \"{{ $json.transactionAmount.currency }}\",\n \"nature\": \"{{ parseFloat($json.transactionAmount.amount) >= 0 ? 'income' : 'expense' }}\"\n }}"
},
"typeVersion": 3.4
},
{
"id": "2b010267-68da-4c25-81e1-547ea4795c45",
"name": "计划触发器",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1220,
-80
],
"parameters": {
"rule": {
"interval": [
{
"field": "weeks",
"triggerAtDay": [
1
],
"triggerAtHour": 4
}
]
}
},
"typeVersion": 1.2
},
{
"id": "f22aa661-1a95-4dbe-b37a-4322bfb7251c",
"name": "步骤 4 - 与 Revolut 建立链接",
"type": "n8n-nodes-base.httpRequest",
"position": [
840,
-540
],
"parameters": {
"url": "https://bankaccountdata.gocardless.com/api/v2/requisitions/",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "redirect",
"value": "http://www.yourwebpage.com"
},
{
"name": "institution_id",
"value": "ABNAMRO_ABNANL2A"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $json.access }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "496d6d35-6844-4b72-90ff-4daa2d8ae9fa",
"name": "步骤 3a - 与第一个 Revolut 账户的用户协议",
"type": "n8n-nodes-base.httpRequest",
"position": [
280,
-540
],
"parameters": {
"url": "https://bankaccountdata.gocardless.com/api/v2/agreements/enduser/",
"method": "POST",
"options": {},
"jsonBody": "{\n \"institution_id\": \"ABNAMRO_ABNANL2A\",\n \"max_historical_days\": \"180\",\n \"access_valid_for_days\": \"90\",\n \"access_scope\": [\n \"balances\",\n \"details\",\n \"transactions\"\n ]\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $json.access }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "1d76a8c1-10fd-4252-80a7-cece9a0e8e6e",
"name": "步骤 3a - 与第二个 Revolut 账户的用户协议",
"type": "n8n-nodes-base.httpRequest",
"position": [
560,
-540
],
"parameters": {
"url": "https://bankaccountdata.gocardless.com/api/v2/agreements/enduser/",
"method": "POST",
"options": {},
"jsonBody": "{\n \"institution_id\": \"REVOLUT_REVOGB21\",\n \"max_historical_days\": \"180\",\n \"access_valid_for_days\": \"90\",\n \"access_scope\": [\n \"balances\",\n \"details\",\n \"transactions\"\n ]\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{ $json.access }}"
}
]
}
},
"typeVersion": 4.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "7ec2a3e7-4e68-4229-bb92-2a12ab1aac24",
"connections": {
"Get access token": {
"main": [
[
{
"node": "Get Revolut Personal transactions",
"type": "main",
"index": 0
},
{
"node": "Get Revolut Pro transactions",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get access token",
"type": "main",
"index": 0
}
]
]
},
"Get accounts id from Maybe": {
"main": [
[]
]
},
"Create transactions to Maybe": {
"main": [
[
{
"node": "Resend",
"type": "main",
"index": 0
}
]
]
},
"Extract booked - Revolut Pro": {
"main": [
[
{
"node": "Set transactions for Revolut Pro",
"type": "main",
"index": 0
}
]
]
},
"Get Revolut Pro transactions": {
"main": [
[
{
"node": "Extract booked - Revolut Pro",
"type": "main",
"index": 0
}
]
]
},
"Set transactions for Revolut Pro": {
"main": [
[
{
"node": "Merge all transactions in one array",
"type": "main",
"index": 0
}
]
]
},
"Extract booked - Revolut Personal": {
"main": [
[
{
"node": "Set transactions for Revolut Personal",
"type": "main",
"index": 0
}
]
]
},
"Get Revolut Personal transactions": {
"main": [
[
{
"node": "Extract booked - Revolut Personal",
"type": "main",
"index": 0
}
]
]
},
"Merge all transactions in one array": {
"main": [
[
{
"node": "Create transactions to Maybe",
"type": "main",
"index": 0
}
]
]
},
"Set transactions for Revolut Personal": {
"main": [
[
{
"node": "Merge all transactions in one array",
"type": "main",
"index": 1
}
]
]
},
"Step 3a - User agreement with second Revolut Account": {
"main": [
[]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 杂项
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
4个病毒式新闻到AI头像视频
使用Perplexity和HeyGen创建病毒式新闻AI头像视频并发布到9个平台
If
Set
Wait
+7
35 节点Sabrina Ramonov 🍄
杂项
每日 WhatsApp 群组智能分析:GPT-4.1 分析与语音消息转录
每日 WhatsApp 群组智能分析:GPT-4.1 分析与语音消息转录
If
Set
Code
+20
52 节点Daniel Lianes
杂项
使用AI分析检测病毒式YouTube视频并发送邮件报告
使用AI分析检测病毒式YouTube视频并发送邮件报告
Set
Code
Sort
+14
26 节点gclbck
杂项
Telegram论坛脉搏:使用Gemini和Groq AI模型的社区监控
Telegram论坛脉搏:使用Gemini和Groq AI模型的社区监控
If
Set
Code
+13
59 节点Nguyen Thieu Toan
杂项
3个Hackernews到AI克隆视频
使用Heygen和Blotato生成并自动发布科技新闻AI虚拟形象视频到社交媒体
If
Set
Wait
+9
30 节点Sabrina Ramonov 🍄
内容创作
抓取 Crunchbase 近期融资轮次
抓取 Crunchbase 近期融资轮次
Set
Code
Merge
+5
13 节点Lucas Perret
销售