AI agents for QuickBooks
The books — kept clean without the keying. AGNT connects to QuickBooks so agents can read what happens there, reason about it, and act — with a receipt for every run.
Accounts Payable is a ready-made agent that works in QuickBooks — free, and it runs on your machine.
QuickBooks and AGNT, in brief
| What it does | Lets an AGNT agent read from and act in QuickBooks. |
|---|---|
| Connects with | OAuth 2.0 Bearer — held in the local vault |
| AGNT node | custom-api, or the zapier-action bridge |
| Runs when | An invoice is created or paid |
| Typical build time | Ten minutes |
| Where data goes | Nowhere by default — AGNT runs on your machine and credentials never leave it. |
What you can automate
Reacts when…
- an invoice is created or paid
- an expense posts
Agents can…
- create invoices and records
- match transactions
- export financial summaries
Teams use it for
- invoices extracted from email into the ledger
- PO matching with exceptions queued
- month-end summaries drafted early
Build it: the QuickBooks workflow
Design goal for QuickBooks: invoices extracted from email into the ledger; PO matching with exceptions queued; month-end summaries drafted early. The template below supplies configurable nodes, not the complete logic for those goals.
Use this QuickBooks setup template to arrange the schedule, input review and API operation. Configure the account-specific fields and add your own decision and approval controls before activation.
This is a schema-checked starting point, not an end-to-end tested automation. Replace every CONFIGURE_ value, choose the operations you intend, connect credentials and map source outputs into later inputs. An edge orders steps; it does not supply a condition, an approval gate or a field mapping. Add and test those controls explicitly before any write. Cloud APIs and model providers may receive data. Keep the workflow inactive until tested with fixtures.
{
"id": "7b8964bb-1904-4361-acd4-b38a607d1856",
"name": "QuickBooks — read, decide, act",
"nodes": [
{
"id": "4db5d26a-435b-43f3-a2dc-772b82504afa",
"text": "Run on a schedule",
"x": 512,
"y": 144,
"isEditing": false,
"type": "trigger-timer",
"icon": "clock",
"category": "trigger",
"isSelected": false,
"parameters": {
"fireOnStart": "No",
"scheduleType": "Interval",
"schedule": "Every 15 Minutes"
},
"description": "Setup template for Timer Trigger. This trigger node fires the workflow at specified intervals or at a specific time. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "b63e397a-b42d-4085-a755-5abfbd2479ea",
"text": "Review source and draft",
"x": 512,
"y": 336,
"isEditing": false,
"type": "agnt-agent",
"icon": "agnt",
"category": "action",
"isSelected": false,
"parameters": {
"agentId": "CONFIGURE_AGENTID",
"message": "Decide what needs to happen in QuickBooks. Explain your reasoning.\nSource input: CONFIGURE_SOURCE_INPUT. Produce a reviewable draft only; do not take external actions."
},
"description": "Setup template for Agent Chat. Chat with an AI agent from your agent library. Select an agent and send messages to interact with it within your workflow. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "63004fb3-78d4-4fd6-af34-15a7e2caa7e8",
"text": "Call the QuickBooks API",
"x": 512,
"y": 528,
"isEditing": false,
"type": "custom-api",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"url": "https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice",
"method": "GET",
"authType": "None",
"headers": "{}",
"query": ""
},
"description": "Setup template for Custom API Request. This action node makes a custom API request to any endpoint with configurable method, headers, and authentication. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
}
],
"edges": [
{
"id": "aea901fd-d6a7-4bb5-ab06-20b43562f8de",
"start": {
"id": "4db5d26a-435b-43f3-a2dc-772b82504afa",
"type": "output"
},
"end": {
"id": "b63e397a-b42d-4085-a755-5abfbd2479ea",
"type": "input"
},
"startX": 800,
"startY": 168,
"endX": 512,
"endY": 360
},
{
"id": "383c8026-ca32-4e9c-a04e-f292d248bc04",
"start": {
"id": "b63e397a-b42d-4085-a755-5abfbd2479ea",
"type": "output"
},
"end": {
"id": "63004fb3-78d4-4fd6-af34-15a7e2caa7e8",
"type": "input"
},
"startX": 800,
"startY": 360,
"endX": 512,
"endY": 552
}
],
"zoomLevel": 1,
"canvasOffsetX": 0,
"canvasOffsetY": 0,
"isTinyNodeMode": false
}
Configure Custom API Request
This action node makes a custom API request to any endpoint with configurable method, headers, and authentication.
- url — The URL of the API endpoint Current example:
https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice. - method — The HTTP method for the request Current example:
GET. - authType — The type of authentication Current example:
None. - query — Query parameters for the request (e.g., 'key1=value1&key2=value2') Current example:
. - headers — Optional headers for the request. e.g., {"Content-Type": "application/json"} Current example:
{}.
Install Accounts Payable — it runs on QuickBooks
Accounts Payable is a working agent that uses QuickBooks. Installing it drops the whole workflow onto your canvas — connected, editable, and yours to change.
Runs on your own machine · See what it does
The ledger without the keying
Bookkeeping is dominated by transcription: read a document, type eight fields, file it somewhere findable. An agent doing the reading and writing removes most of the labour while leaving the approval — the part that is genuinely accounting — with a person.
Exceptions, not entries
The measure of a good AP automation is how little reaches a human. Clean matches post; price mismatches, duplicates and unknown suppliers queue with the problem stated explicitly rather than buried in a batch.
How to reach QuickBooks from a workflow
Reaching QuickBooks means one custom-api node rather than a purpose-built one. The endpoint and its oauth 2.0 bearer credentials are all it needs, and the zapier-action bridge covers it too if you would rather not hand-roll the request.
| What you need | Value |
|---|---|
| Endpoint | https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice |
| Method | POST |
| Authentication | OAuth 2.0 Bearer |
| Header | Authorization: Bearer {oauthAccessToken} |
| Reference | QuickBooks API documentation |
Worth knowing: Access tokens expire hourly and the refresh token rotates on every use — store the new one each time or the next call fails.
The part that catches people out
Access tokens expire hourly and the refresh token rotates on every use — store the new one each time or the next call fails.
It is worth getting right first, because the failure is quiet rather than loud — you get a response, it just is not the one you wanted. Once past it, QuickBooks is a straightforward API to automate against.
Connect QuickBooks in two minutes
- Download AGNT Community Core — free, local-first, no account needed to run.
- Connect with one OAuth sign-in from AGNT’s vault — tokens are stored encrypted on your machine and never leave it.
- Drop the QuickBooks node into a workflow or hand it to an agent — the first run produces a receipt you can read line by line.
QuickBooks + AGNT — common questions
Does anything post without approval?
Only within thresholds you set. Many teams approve everything at first and relax it for small clean matches later.
Can invoices be matched to purchase orders?
Yes, including three-way matching where you use goods receipts.
Is there an audit trail?
Every entry links to its source document, the checks that ran and the approval that released it.