Post bank statement transactions to QuickBooks Online using OpenRouter AI
Needs changesWhat this workflow does
This AI workflow has 24 nodes and runs when someone submits an n8n form (“QuickBooks Bank Statement Upload”). Along the way it connects OpenRouter Chat Model and QuickBooks Online. It also calls sandbox-quickbooks.api.intuit.com over HTTP.
How it runs
Trigger: When someone submits an n8n form (“QuickBooks Bank Statement Upload”).
- Extract PDF Text (Extract from File): extracts data from a file (pdf)
- Transaction Extractor AI (AI Agent): runs an AI agent, with model: OpenRouter Chat Model; output parser: JSON Output Parser
- Split Transactions (Split Out): splits a list into separate items
- Loop Over Items (Loop Over Items (Split in Batches)): loops over the items in batches
- Credit or Debit? (Switch): routes items into 2 branches
- Get All QB Items (QuickBooks Online): get many (item)
- Search Categories (HTTP Request): calls sandbox-quickbooks.api.intuit.com
- Check Which Items to Create (Code): runs custom JavaScript code
- Find Vendor (QuickBooks Online): get many (vendor)
- Need to Create Items? (If): checks a condition and branches into true / false
…plus 11 more steps. See the full node list below.
Services it uses
HTTP calls to: sandbox-quickbooks.api.intuit.com
Before you upgrade to n8n 3.0
1 thing in this workflow is removed in n8n 3.0. Fix it before you upgrade:
- AI Agent v1 (old agent modes) in Transaction Extractor AI (v1.7): replace with Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent.
| Removed in 3.0 | Replace with |
|---|---|
| AI Agent v1 (old agent modes) Transaction Extractor AI (v1.7) | Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent. |
Nodes used (12)
- Extract from File
n8n-nodes-base.extractFromFile - AI Agent
@n8n/n8n-nodes-langchain.agent - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - HTTP Request
n8n-nodes-base.httpRequest - n8n Form Trigger
n8n-nodes-base.formTrigger - OpenRouter Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenRouter - Split Out
n8n-nodes-base.splitOut - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - Code
n8n-nodes-base.code - QuickBooks Online
n8n-nodes-base.quickbooks - If
n8n-nodes-base.if - Switch
n8n-nodes-base.switch
From the author
✅ What problem does this workflow solve? Manually entering bank statements into QuickBooks is one of the most time-consuming and error-prone accounting tasks. Accountants often spend hours converting PDF bank statements into individual income and expense…