This workflow follows the Agent → Chainllm recipe pattern — see all workflows that pair these two integrations.
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 →
{
"name": "*[Demo 2] \u65b0\u589e Jira Worklog_v2",
"nodes": [
{
"parameters": {
"options": {}
},
"id": "150eeccc-adc2-407b-a111-341df45f3d04",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.1,
"position": [
-2460,
580
]
},
{
"parameters": {
"model": "qwen-2.5-coder-32b",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
-1080,
460
],
"id": "3a77031b-5312-48dd-92dc-8911fa0dc023",
"name": "Groq Chat Model",
"credentials": {
"groqApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.output.relevant }}",
"value2": "={{ true }}"
}
]
}
},
"name": "Check Relevance",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
-1600,
660
],
"id": "879a5ccb-b438-4e48-9912-c9c50ee3ec7b"
},
{
"parameters": {
"model": "qwen-2.5-coder-32b",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
-1960,
960
],
"id": "75291e06-77ae-4556-9a04-3066e9ef6009",
"name": "Groq Chat Model1",
"credentials": {
"groqApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
"typeVersion": 1.3,
"position": [
-540,
920
],
"id": "f256cca8-1801-4721-99ea-165fc0fb1e12",
"name": "Postgres Chat Memory",
"credentials": {
"postgres": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"model": "qwen-2.5-coder-32b",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
-740,
940
],
"id": "1be7f90f-8fde-4075-b01c-36dbfd5d5269",
"name": "Groq Chat Model2",
"credentials": {
"groqApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "235d4760-abb8-42cb-92f8-ee22689c0cb3",
"name": "output",
"value": "=[Unknown input] \n{{ $json.output.message }}",
"type": "string"
},
{
"id": "05409264-737e-4791-8519-4742bb55bacc",
"name": "sessionId ",
"value": "={{ $('Edit Fields').item.json.sessionId }}",
"type": "string"
}
]
},
"options": {}
},
"name": "Set Not Relevant",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-1280,
980
],
"id": "e11c1a6a-21ba-4fec-9d1b-0d4051248de5"
},
{
"parameters": {
"httpMethod": "POST",
"path": "n8n_worklog",
"responseMode": "responseNode",
"options": {}
},
"id": "f482b1fa-6f52-48d2-8b68-b6d5953f921e",
"name": "Webhook (open-webui)",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
-2460,
780
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "75ebfdef-c8e2-4c3e-b716-1479d0cc2a73",
"name": "chatInput",
"value": "={{ $json?.chatInput || $json?.body?.chatInput || $json.query?.chatInput }}",
"type": "string"
},
{
"id": "59b7a20f-0626-4861-93e2-015d430c266e",
"name": "sessionId",
"value": "={{ $json?.sessionId || $json?.body?.sessionId || $json.query?.sessionId}}",
"type": "string"
}
]
},
"options": {}
},
"id": "f2a199fd-e9af-4fdf-93b1-02f809683433",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-2240,
660
]
},
{
"parameters": {
"jsonSchemaExample": "{\n\t\"relevant\": true,\n\t\"message\": \"Related to Jira worklog.\"\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
-1800,
920
],
"id": "d55c1fbb-7028-4126-8249-e91dfb955d06",
"name": "Structured Output Parser"
},
{
"parameters": {
"options": {}
},
"id": "1d31dd0a-67b6-4368-80e9-c7ab26fbb0b1",
"name": "Respond to Webhook (open-webui)",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.1,
"position": [
-100,
1000
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "c103d440-fe65-4745-a745-6d4ece6729e2",
"name": "output",
"value": "={{ $json.output }}",
"type": "object"
},
{
"id": "c00bdb73-997f-4e30-8939-34f932ce9b9e",
"name": "chatInput",
"value": "={{ $('Basic LLM Chain').item.json.output.message }}",
"type": "string"
},
{
"id": "d4cbb0ac-9cf6-43aa-b758-38a18909a629",
"name": "sessionId",
"value": "={{ $('Edit Fields').item.json.sessionId }}",
"type": "string"
}
]
},
"options": {}
},
"id": "dde963cb-dab6-4a8c-af4c-2287310821d7",
"name": "Set Relevant",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-1280,
520
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "235d4760-abb8-42cb-92f8-ee22689c0cb3",
"name": "output",
"value": "=Gmail Disapproval:\n{{ $('Set Relevant').item.json.output.message }}",
"type": "string"
},
{
"id": "05409264-737e-4791-8519-4742bb55bacc",
"name": "sessionId ",
"value": "={{ $('Edit Fields').item.json.sessionId }}",
"type": "string"
},
{
"id": "ba34d44c-e830-4ddb-a2e1-ae48a552963a",
"name": "data",
"value": "={{ $json.data.approved }}",
"type": "string"
}
]
},
"options": {}
},
"name": "Set Disapproval",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-100,
400
],
"id": "3d4166a0-bfdb-4353-b8f0-30206e4a2ce9"
},
{
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.data.approved }}",
"value2": "={{ true }}"
}
]
}
},
"name": "Check Gmail Approval",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
-420,
120
],
"id": "76b768d1-9583-4fe1-b0e3-28934ffde30f"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "c103d440-fe65-4745-a745-6d4ece6729e2",
"name": "output",
"value": "=Update worklogs successfuly:\n{{ $json.output }}",
"type": "string"
},
{
"id": "08d8f776-514f-49d8-bf40-347ce8ff55d9",
"name": "sessionId",
"value": "={{ $('Edit Fields').item.json.sessionId }}",
"type": "string"
}
]
},
"options": {}
},
"id": "f75f7828-2de7-4662-a92e-2c692f61049e",
"name": "Set Success Info",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-380,
780
],
"disabled": true
},
{
"parameters": {
"authentication": "basicAuth",
"requestMethod": "POST",
"url": "={{ $('Basic LLM Chain2').item.json.output[0].url }}",
"jsonParameters": true,
"options": {
"bodyContentType": "json"
},
"bodyParametersJson": "={{ JSON.stringify($('Basic LLM Chain2').item.json.output[0].body) }}"
},
"name": "HTTP Request to Jira",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
-100,
100
],
"id": "24eb4f32-f09a-4927-b6dc-670b5d97e5ad",
"alwaysOutputData": false,
"notesInFlow": false,
"credentials": {
"httpBasicAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"hasOutputParser": true,
"messages": {
"messageValues": [
{
"message": " \u4f60\u662f\u4e00\u500b\u5c08\u9580\u5c07\u300c\u4f7f\u7528\u8005\u91dd\u5c0d Jira \u5de5\u6642\u9700\u6c42\u7684\u81ea\u7136\u8a9e\u8a00\u63cf\u8ff0\u300d\u8f49\u6210\u4e00\u6bb5 JSON \u7684 AI\u3002 \u8acb\u52d9\u5fc5\u9075\u5b88\u4ee5\u4e0b\u898f\u7bc4\uff1a 1. \u4f60\u9700\u8981\u5728\u8f38\u51fa JSON \u88cf\uff0c\u540c\u6642\u5305\u542b \"url\" \u8207 \"body\" \u5169\u500b\u9375 (key)\uff1a { \"url\": \"<\u4e00\u500b\u5b57\u4e32>\", \"body\": { <\u5de5\u6642\u8a18\u9304\u7684 JSON \u683c\u5f0f> } } 2. \"url\" \u6b04\u4f4d\uff1a\u5c0d\u61c9 Jira \u65b0\u589e\u5de5\u6642\u7684 REST API\uff0c\u683c\u5f0f\u5982\uff1a \"https://istrd.atlassian.net/rest/api/3/issue/SWD-3677/worklog\" \u5176\u4e2d\u6700\u5f8c\u7684 \"SWD-3677\" \u662fissue key\u6216ID\uff0c\u8996\u4f7f\u7528\u8005\u6307\u4ee4\u800c\u5b9a\u3002 3. \"body\" \u6b04\u4f4d\uff1a\u9700\u662f\u4e00\u500bJSON\u7269\u4ef6\uff0c\u88e1\u9762\u5305\u542b - timeSpent: string (ex: \"120m\", \"2h\") - comment: ADF \u683c\u5f0f\uff0c\u5982\u4e0b\u7bc4\u4f8b { \"type\": \"doc\", \"version\": 1, \"content\": [ { \"type\": \"paragraph\", \"content\": [ { \"type\": \"text\", \"text\": \"\u9019\u88e1\u662f\u5099\u8a3b\u5167\u5bb9\" } ] } ] } - started: string (ISO8601\u6216\u5e36\u6642\u5340\uff0c\u5982 \"2025-02-14T15:00:00.000+0800\") 4. \u7bc4\u4f8b\u8f38\u51fa (\u8acb\u53ea\u8f38\u51fa JSON\uff0c\u52ff\u6dfb\u52a0\u591a\u9918\u8aaa\u660e)\uff1a { \"url\": \"https://istrd.atlassian.net/rest/api/3/issue/SWD-3677/worklog\", \"body\": { \"timeSpent\": \"120m\", \"comment\": { \"type\": \"doc\", \"version\": 1, \"content\": [] }, \"started\": \"2025-02-14T15:00:00.000+0800\" } } 5. \u4f7f\u7528\u8005\u53ef\u80fd\u6703\u8f38\u5165\u300c\u5728 SWD-3677 \u4e0a\u65b0\u589e 120 \u5206\u9418\u5de5\u6642\u2026\u300d\u4e4b\u985e\u8981\u6c42\uff0c\u4f60\u5c31\u52d5\u614b\u66ff\u63db \"SWD-3677\"\u3001timeSpent\u3001\u5099\u8a3b\u3001started \u7b49\u8cc7\u8a0a\u3002 \u8acb\u8b39\u8a18\uff1a**\u53ea\u8f38\u51fa JSON\uff0c\u4e14\u5fc5\u9808\u5305\u542b \"url\" \u8207 \"body\"**\uff0c\u4e26\u5728 \"body\" \u5167\u81f3\u5c11\u5305\u542b\u4e0a\u8ff0\u4e09\u500b\u4e3b\u8981\u6b04\u4f4d\u3002"
}
]
}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.5,
"position": [
-1020,
140
],
"id": "32dbfd9d-05ab-476f-ac61-96910ee03f5f",
"name": "Basic LLM Chain2",
"alwaysOutputData": false,
"onError": "continueRegularOutput"
},
{
"parameters": {
"jsonSchemaExample": "[\n\t{\n\t\t\"url\": \"https://istrd.atlassian.net/rest/api/3/issue/SWD-3813/worklog\",\n\t\t\"body\": {\n\t\t\t\"timeSpent\": \"1h\",\n\t\t\t\"comment\": {\n\t\t\t\t\"type\": \"doc\",\n\t\t\t\t\"version\": 1,\n\t\t\t\t\"content\": [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"type\": \"paragraph\",\n\t\t\t\t\t\t\"content\": [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\t\"text\": \"\u64b0\u5bebBDD\u6587\u4ef6+\u5be6\u4f5c\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"started\": \"2025-02-19T15:00:00.000+0800\"\n\t\t}\n\t}\n]"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
-920,
460
],
"id": "fa411dc6-fe74-48fe-8bdc-36562a0290ec",
"name": "Structured Output Parser1"
},
{
"parameters": {
"options": {
"systemMessage": "You are a helpful assistant designed to summarize work logs using bullet points.\n\nIf the input is relevant to a work log, it must contain the following information in this format:\n\nIssue ID\nWork Datetime (YYYY-MM-DD HH:MM:SS)\nWork Hours\nWork Summary\nIf there are any errors, summarize the failure information.\n\nDo not output any extra information."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.7,
"position": [
-760,
780
],
"id": "5e0286ff-87b6-4753-83e0-e079ab699f65",
"name": "AI Agent (Summary)",
"alwaysOutputData": false,
"onError": "continueRegularOutput"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "a1368590-2b1e-4ed0-b21f-f00936304967",
"name": "chatInput",
"value": "={{ $('Set Relevant').item.json.chatInput }}",
"type": "string"
},
{
"id": "08d8f776-514f-49d8-bf40-347ce8ff55d9",
"name": "sessionId",
"value": "={{ $('Edit Fields').item.json.sessionId }}",
"type": "string"
}
]
},
"options": {}
},
"id": "2474a86a-d5d4-4be5-a694-4eed29d39ee7",
"name": "Set Summary",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-920,
780
]
},
{
"parameters": {
"hasOutputParser": true,
"messages": {
"messageValues": [
{
"message": "\u4f60\u662f\u4e00\u4f4d\u5de5\u4f5c\u6642\u6578\uff08worklog\uff09\u5c08\u5bb6\u3002\u8acb\u5224\u65b7\u4f7f\u7528\u8005\u7684\u610f\u5716\u662f\u5426\u8207\u65b0\u589e Jira \u5de5\u4f5c\u6642\u6578\uff08worklog\uff09\u76f8\u95dc\u3002\u5982\u679c\u662f\uff0c\u8acb\u5c07\u4f7f\u7528\u8005\u60f3\u8981\u65b0\u589e\u7684\u5de5\u4f5c\u6642\u6578\u8cc7\u8a0a\u52a0\u5165\u5230 message \u4e2d\u3002 \u5982\u679c\u6c92\u6709\u95dc\u806f, \u4e5f\u65b0\u589e\u6c92\u6709\u95dc\u806f\u8a0a\u606f\u5230 message\u4e2d"
}
]
}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.5,
"position": [
-1980,
660
],
"id": "1feac9da-9f99-461b-9569-a7232e2936ae",
"name": "Basic LLM Chain",
"alwaysOutputData": false,
"onError": "continueRegularOutput"
},
{
"parameters": {
"content": "# \u5206\u6790\u4f86\u81ea n8n Chat \u6216 Open WebUI (Webhook) \u7684 Jira \u5de5\u4f5c\u65e5\u8a8c\u7528\u6236\u8f38\u5165\u610f\u5716\n",
"height": 807,
"width": 1389
},
"id": "c9f991cd-af7e-4e35-969f-bcf822400f72",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-2540,
380
]
},
{
"parameters": {
"content": "# \u751f\u6210 Jira REST API \u683c\u5f0f\uff0c\u900f\u904e Gmail \u57f7\u884c\u300cHITL\u300d\u6d41\u7a0b\uff0c\u4e26\u767c\u9001 HTTP \u8acb\u6c42\u4ee5\u66f4\u65b0 Jira \u5de5\u4f5c\u65e5\u8a8c\n",
"height": 667,
"width": 1269,
"color": 4
},
"id": "c0bad04d-9134-4b6c-aec4-a6907e18cbec",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1120,
0
]
},
{
"parameters": {
"operation": "sendAndWait",
"sendTo": "ray7711231@gmail.com",
"subject": "Update Jira Worklog Approval Required",
"message": "=\u89aa\u611b\u7684\u7528\u6236\uff0c\u60a8\u597d\uff1a\n\n\u60a8\u6709\u4e00\u7b46\u5de5\u6642\u8a18\u9304\u5f85\u78ba\u8a8d\uff0c\u8acb\u78ba\u8a8d\u662f\u5426\u8981\u5c07\u4ee5\u4e0b\u5de5\u6642\u65b0\u589e\u81f3 Jira\uff1a\n\"\"\"\n{{ $('Set Relevant').item.json.output.message }}\n\"\"\"\n\u82e5\u60a8\u6709\u4efb\u4f55\u7591\u554f\uff0c\u8acb\u56de\u8986\u6b64\u90f5\u4ef6\u6216\u806f\u7e6b\u7cfb\u7d71\u7ba1\u7406\u54e1\u3002 \n\n\u611f\u8b1d\u60a8\u7684\u78ba\u8a8d\uff01\n",
"approvalOptions": {
"values": {
"approvalType": "double"
}
},
"options": {}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
-620,
120
],
"id": "6de971f9-1052-429e-9e09-36295541863b",
"name": "Gmail (Human in the loop)",
"executeOnce": false,
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n# \u6458\u8981 Jira \u5de5\u4f5c\u65e5\u8a8c\u8acb\u6c42\u8cc7\u8a0a\u4e26\u56de\u50b3\u8a0a\u606f\u7d66 Open WebUI\n",
"height": 507,
"width": 1269,
"color": 3
},
"id": "b9d43241-6bc2-4b31-a060-da53f1beed65",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1120,
700
]
}
],
"connections": {
"Groq Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain2",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Check Relevance": {
"main": [
[
{
"node": "Set Relevant",
"type": "main",
"index": 0
}
],
[
{
"node": "Set Not Relevant",
"type": "main",
"index": 0
}
]
]
},
"Groq Chat Model1": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Postgres Chat Memory": {
"ai_memory": [
[
{
"node": "AI Agent (Summary)",
"type": "ai_memory",
"index": 0
}
]
]
},
"Groq Chat Model2": {
"ai_languageModel": [
[
{
"node": "AI Agent (Summary)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Set Not Relevant": {
"main": [
[
{
"node": "Respond to Webhook (open-webui)",
"type": "main",
"index": 0
}
]
]
},
"Webhook (open-webui)": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Basic LLM Chain",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Set Disapproval": {
"main": [
[
{
"node": "Respond to Webhook (open-webui)",
"type": "main",
"index": 0
}
]
]
},
"Check Gmail Approval": {
"main": [
[
{
"node": "HTTP Request to Jira",
"type": "main",
"index": 0
}
],
[
{
"node": "Set Disapproval",
"type": "main",
"index": 0
}
]
]
},
"Set Success Info": {
"main": [
[
{
"node": "Respond to Webhook (open-webui)",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request to Jira": {
"main": [
[
{
"node": "Set Summary",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain2": {
"main": [
[
{
"node": "Gmail (Human in the loop)",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "Basic LLM Chain2",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Set Relevant": {
"main": [
[
{
"node": "Basic LLM Chain2",
"type": "main",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"AI Agent (Summary)": {
"main": [
[
{
"node": "Set Success Info",
"type": "main",
"index": 0
}
]
]
},
"Set Summary": {
"main": [
[
{
"node": "AI Agent (Summary)",
"type": "main",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Check Relevance",
"type": "main",
"index": 0
}
]
]
},
"Gmail (Human in the loop)": {
"main": [
[
{
"node": "Check Gmail Approval",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "446dd607-59d8-4c4e-a0d8-c445085f1f6e",
"id": "zON9yXM67241Rqfo",
"tags": []
}
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.
gmailOAuth2groqApihttpBasicAuthpostgres
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
*[Demo 2] 新增 Jira Worklog_v2. Uses chatTrigger, lmChatGroq, memoryPostgresChat, outputParserStructured. Chat trigger; 25 nodes.
Source: https://github.com/RaySRChen/n8n_ollama_openwebui/blob/159d1bfdc01c6b1d86c05b40f73ab5e0aad26814/n8n_workflows/__Demo_2__Updating_Jira_Worklog.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
This Chatbot automates the process of discovering job openings and generating tailored job application emails.
Job Application PredictLeads & ScrapeGraph AI. Uses chatTrigger, lmChatOpenAi, mcpClientTool, memoryBufferWindow. Chat trigger; 32 nodes.
💰 Beginner Investor – Learn the market faster with AI-powered insights guiding your decisions. 📈 Retail Trader – Optimize your trading strategy with in-depth analysis typically reserved for profession
This comprehensive workflow automates the complete financial document processing pipeline using AI. Upload invoices via chat, drop expense receipts into a folder, or add bank statements - the system a