Finance & Accounting
Connect n8n and QuickBooks
Bookkeeping workflows you can read, own and rerun, posting to the QuickBooks file your accountant trusts.
- Connects
- n8n and QuickBooks
- Data flows
- 4 automated, two-way where safe
- Built with
- n8n, QuickBooks Online API, n8n HTTP Request node
- Timeline
- Live in 3 to 5 business days from scope
- Owned by
- You, with accounts, credentials and code in your name.
In short
Connecting n8n to QuickBooks Online lets workflows read documents, match them to the books and post or report without retyping. SBD runs six fixed-scope n8n automations with QuickBooks for a US rental portfolio of around 120 properties, including mortgage statement reconciliation and owner tax summaries. Token rotation and rate limits shape the design.
The workflows
What runs between n8n and QuickBooks.
Each line is one automated workflow. It shows the event in one tool, the checks and mapping in between, the action in the other tool and who is notified.
-
Mortgage statements reconciled
WhenA mortgage statement arrives
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenRead it, match it to the property and reconcile it against what is recorded in QuickBooks
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
Owner tax summaries at year end
WhenYear end
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenGenerate a tax summary per owner from the QuickBooks records
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
Utility and maintenance bills posted
WhenA utility or maintenance bill is received
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenCreate the bill in QuickBooks against the right vendor and property
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
-
Failures and doubtful matches reviewed
WhenAny workflow fails or a match is uncertain
Automation- Verify and validate
- Map and normalise
- Upsert by key
ThenRun the error workflow, alert a named person and queue the item for review
And- Audit log entry
- Alert if it fails or goes quiet
- Review queue if unsure
Every record passes through the same stages
- 1Receive
Webhook or polling from the source tool, with a signed payload and a replay log.
- 2Validate
We check required fields, types and the record key. Anything that fails goes to the review queue.
- 3Map
Fields are mapped to the destination schema, with dropdown values, currencies and dates normalised.
- 4Upsert
Each write is matched on the record key, so a retry updates the existing record.
- 5Confirm
The outcome is logged, an alert fires if the count stops moving, and a reconciliation runs each night.
Read this first
Where the simple setup breaks down.
A one-step Zap connects n8n and QuickBooks in an afternoon. This is what tends to go wrong once volume grows and edge cases appear.
The refresh token changes as you use it
QuickBooks access tokens last one hour. When a new refresh token is issued, Intuit expires the previous value, so the integration must store the newest one every time. Two tools sharing one QuickBooks connection will invalidate each other, and the books stop syncing without an obvious error.
The n8n node does not cover every object
The built-in QuickBooks Online node handles bills, customers, employees, estimates, invoices, items, payments, purchases, vendors and a transaction report. Anything outside that list goes through the HTTP Request node using the same QuickBooks credential, which needs the same care with errors as the node itself.
Throttling is per company and app
Intuit throttles at 500 requests a minute and 10 a second per company and app, and batch calls have their own lower limit. A backfill or month-end run that loops record by record gets 429 errors, and Intuit advises waiting 60 seconds before retrying.
A failed run is silent unless you wire the alert
n8n only runs an error workflow if one is set in the workflow settings, and that workflow must start with the Error Trigger. Without it, a reconciliation that failed on the third statement looks the same as one that finished.
What it costs today
The problem from the team's side and the technical side.
In the team
- Mortgage statements reconciled by hand each month
- Owner summaries assembled in a rush at year end
- Bills arrive across several inboxes
- Nobody notices when an automation stopped
- The accountant fixes the same miscoding every month
Under the hood
- One-hour access tokens and rotating refresh tokens
- Node coverage gaps filled by raw API calls
- 500 a minute and 10 a second per company and app
- Error workflows are opt-in per workflow
- Document reading needs a confidence threshold
What we wire up
The data flows.
- 01 When
A mortgage statement arrives
ThenRead it, match it to the property and reconcile it against what is recorded in QuickBooks
- 02 When
Year end
ThenGenerate a tax summary per owner from the QuickBooks records
- 03 When
A utility or maintenance bill is received
ThenCreate the bill in QuickBooks against the right vendor and property
- 04 When
Any workflow fails or a match is uncertain
ThenRun the error workflow, alert a named person and queue the item for review
Used for
- Mortgage statements reconciled
- Owner tax summaries at year end
- Utility and maintenance bills posted
- Failures and doubtful matches reviewed
- n8n QuickBooks Online workflows
- Property bookkeeping automation
- QuickBooks reconciliation automation
- Owner statements from QuickBooks
- Self-hosted bookkeeping automation
- Document reading into QuickBooks
Built with
Data map
Which fields map to which, and what each one matches on.
| In n8n | In QuickBooks | Matched on | Direction |
|---|---|---|---|
| Mortgage statements read by n8n | Matched entries per property | Loan and property reference | one-way |
| Utility and maintenance bills | Bills against vendors | Vendor ID and bill number | one-way |
| QuickBooks transactions | Owner tax summary | Owner and property | one-way |
| Vendors and customers | Lookup cache in n8n | QuickBooks ID | one-way |
Field-level mapping is agreed in the blueprint and written into the runbook. Two-way rows carry loop protection so a write from the sync never re-triggers the sync.
In every build
What every integration build includes.
Under the hood
- Upserts keyed on the record
Each write is matched on the source ID, so a retry or a re-fired event updates the existing record.
- Retries with backoff
Rate limits and timeouts are retried with increasing delays. If they still fail, they are parked for review.
- Idempotent, loop-safe writes
Two-way flows carry a marker so a change written by the sync does not re-trigger the sync.
- Reconciliation
A nightly job compares counts and totals on both sides and lists any record that differs.
- Audit log
Each run records the input, the mapping result, the action taken and what triggered it. You can search it by record.
- Error monitoring
Failed runs raise an alert. An outcome count also alerts when it stops moving, which catches failures that throw no error.
- Review queue
Records the sync is not sure about land in a screen a person can read, correct and release.
- Scoped credentials
Each connection has its own credential, limited to the objects it needs and stored encrypted in your account.
For the team
- Slack or email notifications
Alerts go to a named person on your team, by Slack, email or WhatsApp.
- A runbook
One document per integration: what it does, what each alert means, and what to do in the first ten minutes.
- Training
A live session with the people who will use the review queue, recorded for whoever joins later.
- Handover
Admin access, billing and code sit in accounts in your name from the start, so the build keeps running if we stop working together.
- Sixty days of hypercare
The engineers who built it stay on call after go-live, fix what breaks and tune what the team asks for.
- A monthly report
One page in plain language covering runs, records synced, exceptions handled and what changed.
Security and your data
Where the data goes, and who holds the keys.
- Accounts
- Every platform account is created in your name. We work through managed access you can revoke.
- Credentials
- Stored encrypted in the orchestration layer, scoped per connection and rotated at handover.
- Data in transit
- All traffic uses TLS, and webhooks are checked by signature before anything is processed.
- Data at rest
- We store only what the sync needs and keep no copies of your customer data on our machines.
- AI steps
- Where an integration uses a model, it is through a business API that does not train on your data.
- Retention
- Run logs are kept 90 days by default, which you can change. Card and ID numbers are redacted from payloads.
- Agreements
- DPA and NDA on request. Regional rules covered in our privacy policy.
Keys and sensitive data
How API keys, tokens and personal data are handled.
- Keys are kept in a vault
API keys and tokens are stored in the orchestration layer's encrypted credential store or the platform's secret manager. None are written into workflows, repos, spreadsheets or chat.
- One credential per connection
Each integration gets its own key, scoped to the objects and actions it needs. A lead sync cannot read invoices. Revoking one key stops one thing.
- Service accounts for connections
Connections use a dedicated service user in your account, so nothing breaks when a person leaves and nothing runs under someone's name.
- Two-factor on every account
Each platform account we set up has two-factor authentication on, and the recovery codes are handed to you.
- Rotation on handover and on request
Keys are rotated when the build is handed over, when anyone with access leaves, and at any time you ask.
- Secrets are redacted from logs
Audit logs redact tokens, card numbers, government IDs and anything you flag as sensitive before a line is written.
- Webhooks verified before processing
Inbound calls are checked against the sending tool's signature. Unsigned or stale payloads are dropped and counted.
- Access you can see and revoke
Our access is through managed roles in your accounts. You can see it, limit it or remove it without touching the build.
Engineering decisions
Decisions we make before writing the first workflow.
- Rate limits and backoff
Each API has a ceiling, so calls are batched, queued and retried with increasing delays during busy periods.
- Backfill and pagination
The first run loads history as well as new events. Backfills page through the source in order and resume after an interruption without writing a record twice.
- Out-of-order and duplicate events
Webhooks can arrive twice or out of sequence. Each event carries a version or timestamp, so an older version cannot overwrite a newer one.
- Schema changes
A renamed field or a new dropdown value is a common cause of silent failure. Payloads are checked against a contract, and a mismatch stops the run and raises a flag.
- Time zones, currencies, units
Dates are stored in UTC and shown in local time. Amounts carry their currency and quantities their unit, and conversions happen once, in the map step.
- Sandbox first
Builds run against sandbox or test accounts with seeded data first. Going live means switching credentials.
- Versioned and reversible
Workflows and code are version-controlled. A release can be rolled back in minutes without losing the records processed since.
- API deprecations watched
Tools retire API versions on a schedule. We track the dates for every connection in the runbook and upgrade before the cut-off.
- Cost per run known
Each run logs its cost, including any model calls, so you can see spend as it builds up.
- Run metrics
We chart runs per hour, records in and out, exception rate and latency, which often shows a problem before an alert fires.
Proof
Where we have done this.
The offer
Hire SBD to connect n8n and QuickBooks.
We agree a fixed scope in a discovery call and go live in three to five business days. The accounts are in your name, and the engineers who built it stay on call for sixty days after.
- ScopeOne call to agree the flows, the fields and the owner, written up the same day.
- Build4 workflows, the data map above, validation, upserts, retries and reconciliation.
- Go-liveWe test in a sandbox first, then switch over. Day three to five from scope for most pairs; longer only if a tool needs approval, such as WhatsApp templates.
- HandoverRunbook, training session, alerts to a named owner, admin access and code in your accounts.
- AfterSixty days of hypercare, then a care plan or run it yourself.
Questions
What people ask about this pair.
Why n8n rather than Zapier for bookkeeping?
Bookkeeping workflows branch, retry and need review queues, and n8n handles that in one readable workflow you can self-host. You can also call any QuickBooks endpoint through the HTTP Request node with the same credential when the built-in node does not cover it.
Will this post wrong entries to our books?
Matches below an agreed confidence go to a review queue instead of posting, and nothing forces a balancing entry. Account and tax mapping is agreed with your accountant before go-live, and we test against a QuickBooks sandbox company first.
How are the QuickBooks tokens kept working?
One connection per QuickBooks company, owned by one system, storing the newest refresh token each time. If a token lapses or access is revoked, the error workflow alerts a person to reauthorise rather than letting runs fail quietly.
What does a build like this cost?
Each automation is scoped and priced on its own, as in the rental portfolio work. Workflow automation starts from $1,500, and the $500 audit that maps the work is credited against the build.
Related
-
Shopify and QuickBooks
Sales, fees and refunds posted so the books match each payout.
-
Zoho Books and Airtable
Invoice from the event that earned it, and see what is outstanding without opening Books.
-
Tally and Airtable
Tally stays the book of record, and your team can see what is in it without asking accounts.
- Solution
Real estate
The workflows we automate for this kind of team.
Keep exploring
Related to this page
n8n and QuickBooks
n8n bookkeeping workflows that post to QuickBooks Online.
Statements reconciled, bills posted and owner summaries generated by n8n against QuickBooks Online, with doubtful items sent to a person, built in three to five business days per automation.
Start with a discovery call