Gmail to QuickBooks — Without the Cleanup
Most receipt-to-QBO tools default every transaction to a Bill — wrong for company-card spend, wrong for vendor invoices already in A/P, wrong for anything that isn't a genuine out-of-pocket reimbursement. ExpenseBot reads each receipt, classifies it, and routes it to the QuickBooks entity that matches how it was actually paid.
60-day free trial • No credit card • Works with QuickBooks Online
The "Dump Everything as a Bill" Problem
Most receipt-to-QBO tools take the path of least resistance: every receipt becomes a Bill payable to the submitter. That's wrong for roughly 70% of real-world workflows. Company-card spend is already paid — it should be a Purchase posted against the bank or credit card account. Vendor invoices waiting in your A/P queue are Bills, but payable to the vendor with the invoice number as DocNumber. Only genuine out-of-pocket expenses should become Bills payable to staff.
The consequence of getting this wrong: Purchases created as Bills produce duplicates against your bank feed when you reconcile. Wrong vendor names land in your A/P aging report. Month-end close turns into a manual cleanup exercise instead of a 15-minute review.
ExpenseBot routes each receipt to the entity that matches how it was actually paid — without asking you to pre-sort your inbox. See the existing QuickBooks integration for the full feature overview.
Three Routes, One Click
Purchase (matched to bank)
Creates a QBO Purchase posted against the bank or credit card account. During reconciliation, QuickBooks auto-matches the Purchase to the bank-feed transaction — one ledger entry, receipt attached, no duplicate.
Bill payable to vendor
Vendor invoices waiting to be paid. Creates a QBO Bill with the invoice number as DocNumber, payable to the correct vendor. Lands in your A/P queue ready for payment — no re-entry, no wrong vendor names.
Bill payable to staff
Out-of-pocket expenses that need to be reimbursed to an employee or contractor. Standard reimbursement workflow in QBO — only used when the expense really was paid personally.
How to Push Gmail Receipts to QuickBooks — 3 Steps
Setup takes about 10 minutes. After that, receipts route themselves.
Connect Gmail + QuickBooks
Authorize ExpenseBot with Gmail access and QuickBooks Online OAuth. ExpenseBot reads receipts and labels them so it doesn't process the same one twice — it never sends email and never permanently deletes anything. It imports your Chart of Accounts for GL mapping — no manual coding list to build.
Set routing rules
Map Gmail labels or payment methods to QuickBooks transaction types: company-card receipts → Purchase, vendor invoices → Bill, out-of-pocket → Reimbursement. Set Class and Customer defaults per client if needed.
Review in QuickBooks
Receipts appear in QuickBooks with vendor, amount, date, GL account, and the original receipt image attached. Review and approve in your normal QBO workflow — no separate tool to check.
Smart Routing — Mixed Reports, Zero Pre-Sorting
The old approach required separate reports: one for receipts, one for invoices, one for reimbursements. Smart routing ends that. Receipts, vendor invoices, and reimbursements can all live in the same report — the system classifies each row at push time and sends it to the right QBO entity automatically.
What Smart (default) mode does
- Already-paid receipts → QBO Purchase posted against your bank/CC account (bank-feed match-ready)
- Unpaid vendor invoices → QBO Bill payable to vendor, one Bill per vendor with invoice rows as line items
- Out-of-pocket reimbursements → QBO Bill payable to the staff member
Before the push completes, a preview banner shows: "We'll create X already-paid expenses + Y unpaid bills payable to [vendor list]." You confirm or adjust — nothing lands in QuickBooks until you say so. Force-mode overrides (Force Bill / Force Purchase) are still available under the same picker for edge cases.
Class, Customer & Tax Account — Grant-Ready Out of the Box
Nonprofits, government-grant recipients, and multi-project organizations need more than a GL code. The QuickBooks push dialog lets you set three additional dimensions at export time — no per-row setup required:
Class
Tag every line item to a restricted grant, program, or department. Example: 'Literacy Grant 2026', 'Program — Youth Outreach'. Set once per report push.
Customer
Associate expenses with a funder, donor, or client. Example: 'United Way', 'City of Toronto', 'Acme Corp'. Pulled live from your QBO account.
Tax Account
Route tax lines to a dedicated GL account rather than lumping them into the expense amount. Critical for grant reporting where tax must be separated from base expense.
Recommended workflow for grant-funded orgs: Submit one report per grant — all rows in that report share the same Class and Customer. Set both once in the push dialog. No per-row tagging. No spreadsheet columns to fill in before pushing. For the full nonprofit grant accounting workflow, see the nonprofit expense tracking guide.
Receipts Attach to Every QBO Transaction — Automatically
When a receipt is pushed to QuickBooks, the original document — PDF invoice, Gmail receipt image, or scanned attachment — is attached to the QBO transaction record automatically. No second step. No manual upload in QuickBooks after the fact.
The attachment appears on the Purchase or Bill record in QBO the same way it would if you'd uploaded it manually. For nonprofits managing government grants, this matters: grant auditors expect documentation attached to the expense record, not filed in a separate folder and cross-referenced by hand. For bookkeepers managing multiple clients, it means the QBO file is the complete audit trail — you don't need to store receipts separately and hope the filenames match.
Built for the Outsourced Bookkeeper — Client Submits, You Push
Most tools assume the person collecting receipts and the person doing the books are the same person. For outsourced bookkeeping firms, they're not. ExpenseBot is built for the split:
- Client employees forward receipts or connect Gmail — no bookkeeper involvement needed at this stage.
- ExpenseBot auto-generates a weekly (or on-demand) expense report in the client's Google Sheet.
- Client reviews and recodes categories directly in the spreadsheet. The sheet is the source of truth.
- Client notifies the bookkeeper when the report is ready to push.
- Bookkeeper logs into the accountant dashboard (free forever), opens the client's workspace, reviews the report, sets Class + Customer in the push dialog, and pushes to QBO — all in under 5 minutes per client.
One bookkeeper login connects to any number of client workspaces. Each client's QBO file is separate. Use the free accountant dashboard to manage all of them from one place — no seat fees, no per-client licenses. See the full outsourced bookkeeper workflow →
How It Works — 3 Steps
- 1Connect Gmail + QuickBooks Online via OAuth
Grant Gmail access and QuickBooks write access. ExpenseBot reads receipts and adds a label so it doesn't process the same one twice — it never sends email and never permanently deletes anything — and only creates new QBO transactions.
- 2ExpenseBot scans Gmail nightly for receipts and invoices
Every email receipt and PDF invoice is extracted, classified (Receipt / Invoice / Bill), and queued for routing. No forwarding rules needed.
- 3Create a report → route to the right QBO entity → done
Review the report, confirm or adjust routing decisions, and push to QuickBooks. Purchases, Bills, and reimbursements land in the right place automatically.
Preparing for VAT or year-end? See tax-period receipt export for period-based download and zip export.
Frequently Asked Questions
Will this duplicate transactions if my bank is also connected?+
No — Purchase mode posts against your bank account, which QuickBooks matches to the existing bank-feed transaction. One ledger entry, receipt attached.
Do I need to sort receipts by type before importing?+
No. ExpenseBot classifies each receipt at extraction time (Receipt / Invoice / Bill) and uses that to default the right QBO routing.
Does it work with QuickBooks Online and Desktop?+
QuickBooks Online today. Desktop is on the roadmap.
I manage multiple client QBO files. Can I switch between them?+
Yes — the ExpenseBot accountant dashboard (free forever) lets you manage multiple clients from one place.
How is this different from Dext or Hubdoc?+
Dext and Hubdoc focus on extraction quality. ExpenseBot does extraction + categorization + routing. Extraction is comparable; routing to the right QBO entity type is meaningfully different.
What happens to receipts I've already uploaded to QuickBooks?+
Nothing changes. ExpenseBot only creates new transactions — it never modifies existing QuickBooks entries.
Can I review routing decisions before they sync to QuickBooks?+
Yes — ExpenseBot creates a report for your review. You approve the routing (or change it) before anything is pushed to QuickBooks.
Does ExpenseBot access my QuickBooks payroll or bank data?+
No. ExpenseBot requests minimal permissions: creating bills/expenses, reading Chart of Accounts for GL mapping, and reading your vendor list. Never payroll, never existing bank transactions.
Can I mix receipts and invoices in the same QuickBooks push?+
Yes. Smart routing handles mixed reports automatically — already-paid receipts become QBO Purchases, unpaid vendor invoices become QBO Bills payable to the vendor. The push dialog shows a preview before you confirm. You don't need to separate receipts and invoices into different reports anymore.
Do receipts attach automatically to QuickBooks expenses?+
Yes. When a receipt is pushed to QuickBooks, the original PDF or image is attached to the QBO transaction record automatically — no manual upload in QuickBooks after the fact. The attachment appears on the Purchase or Bill record, which is useful for audit trails and grant reporting.
How do I apply a Class or Customer to expenses before pushing to QuickBooks?+
In the push dialog, set Class and Customer once — both apply to every line item in that push. Class maps to a grant, department, or program. Customer maps to the funder, donor, or client. The recommended workflow is one report per grant, so you set both values once per push rather than per row. Dropdowns are pulled live from your QBO account.
What is the recommended workflow for outsourced bookkeepers managing multiple clients?+
Clients forward receipts (or allow a Gmail scan). ExpenseBot generates a report automatically. Client reviews and adjusts categories in the spreadsheet. Client notifies the bookkeeper. Bookkeeper logs into the accountant dashboard, reviews the report, sets Class + Customer, and pushes to QuickBooks — all in under 5 minutes per client. The accountant dashboard is free forever with no per-client fees.
Ready to stop cleaning up QBO Bills?
Connect Gmail and QuickBooks in 60 seconds. 60-day free trial, no credit card required.
Start Free Trial →