ExpenseBot

ExpenseBot for accountants & bookkeepers: a cheat sheet to train your clients

ExpenseBot is free forever for accountants and bookkeepers. This is the train-the-trainer reference — the non-obvious setup, plus the answers your clients will ask. Hand the client-facing parts straight to them.

ExpenseBot is free forever for accountants and bookkeepers. This is the train-the-trainer reference — the non-obvious setup, plus the answers your clients will ask. Hand the client-facing parts straight to them.

Looking for the client-facing version? → User cheat sheet — covers voice entry, mileage, subject-line commands, personal tagging, and the features clients discover on their own too slowly. Forward it directly to clients.

👥 Run every client from one login — "acting for"

Use the client switcher to act as any client. You see exactly what they see — create reports, fix tags, recategorize, push to QuickBooks — without logging in and out.

It's a full identity swap. Anything you do applies to the client's account, not yours. The banner at the top always shows whose account you're in. Use it to clean up mis-tagged receipts, build a report before month-end, or push to QBO — without giving the client any instructions.

One exception: Gmail scanning is the client's own step. Connecting an inbox grants access to their private mail, so each client connects and scans it themselves — you can't, by design. See "Receipt scanning is self-serve" below.

✉️ Inviting clients — two billing models

Send the invite link from your accountant dashboard. At invite time, you choose how billing works:

Option A — Client pays their own subscription ($10/mo) The client receives an invite link, signs up, and pays Stripe directly. You get full access to their workspace via the accountant dashboard. This keeps the cost off your books and is the most common model — clients who are already paying for software feel more ownership of their data.

Option B — You pay and bundle into your service fee You cover the client's $10/mo and roll it into your retainer. The client never sees a Stripe charge or a pricing page. Good for clients you're fully managing where you want zero friction on their end.

Critical: the invite must be opened from the link you send — a client who signs up at expensebot.ai directly instead won't be connected to your dashboard. Always send the link.

💳 Subscription vs. one-time add-ons — explain this to clients

Keep two things separate when a client asks "what am I paying for?":

The subscription (the client's own, or your sponsorship) is the ongoing engine — everything going forward. Daily automatic scanning of new income and expenses as they arrive, tracking, reports, reconciliation, plus current-year catch-up. Annual also includes last year's historical scan after the first annual payment as a $20 value.

Reaching historical years is a one-time fee the client adds on their own account — only the client can buy historical unlocks in-app (there's no in-app way for you to pay it for them). If you want to absorb the cost, reimburse them or bill it into your fee. It's a one-time cost, never recurring. So: subscription = forward automation/current year; historical catch-up = a one-time unlock the client buys when they need it.

One-time unlockCostWhat it adds
Last-year unlock$20 one-timeLast completed calendar year of historical scan across all connected inboxes
Any-year unlock$40 one-timeAny older or custom historical year, one year at a time

Multiple connected Gmail accounts (up to 3) is a subscription feature — no separate add-on needed. Current-year scanning is also included in the subscription. The unlocks are only for completed prior years.

Why accountants need to know this: when a new client says "it only found receipts from the last 2 months," the answer is "run a historical scan." If they want last year, it's the $20 unlock. Anything older is $40 per year. Have them buy unlocks on their own account — there's no in-app way for you to pay it for them. If you want to absorb the cost, reimburse them or bill it into your fee.

📧 Gmail connected vs forwarding — what each plan gets

Two completely different features. Accountants are often asked which one clients should use:

Forwarding address (any plan, including free trial):

  • A non-Gmail address (work email, partner email) that the client manually forwards receipts from
  • Nothing in that inbox is read automatically — every forward is manual, one email at a time
  • Free on any plan. Good for one-off receipts from Outlook, work addresses, or partner accounts

Connected Gmail (subscription feature):

  • A full Gmail inbox that ExpenseBot scans automatically every night
  • Receipts are found without the client doing anything
  • Free trial: primary Gmail and last-60-days delight scan
  • Subscribe or sponsored: up to 3 connected Gmail inboxes and current-year scanning
  • Historical unlocks: $20 for last year immediately, or $40 for older/custom periods

The short answer for clients: if receipts are sitting in Gmail and they want automatic capture, they should connect that Gmail under their subscription. If they want to occasionally forward from a work Outlook or other non-Gmail address, a forwarding address is free and enough. Most clients with years of existing Gmail receipts benefit from a historical unlock at setup — one-time cost, permanent reach.

Multi-account behavior — two things clients always ask:

  • One spreadsheet for all inboxes. Every connected Gmail flows into the client's single master spreadsheet, organized together. They don't get separate sheets per account.
  • Source tagged in Notes. Each receipt is tagged with the inbox it came from, right in the Notes column — so you can tell accounts apart at a glance without opening the original email.

Personal inboxes vs team inboxes — which path to take: Connected Gmail works best when all the accounts belong to one person (e.g. Ashley's personal Gmail + her business Gmail). If some inboxes belong to other people on the client's team, forwarding is usually simpler: each team member forwards their receipts to receipts@expensebot.ai — no additional account setup required, works on any plan.

🔵 QuickBooks push — what makes it different

The QB push is the main reason bookkeepers prefer ExpenseBot over manual receipt collection. Four things worth knowing:

1. Smart routing — Purchase vs. Bill (and why it matters) ExpenseBot classifies each document before the push dialog opens. Company-card receipts and already-paid expenses become Purchases (posted against the bank/CC account — auto-matches your bank feed during reconciliation). Vendor invoices become Bills payable to the vendor, with the invoice number as DocNumber. Reimbursement requests become Bills payable to staff.

This prevents the most common QBO cleanup problem: if everything is pushed as a Bill, the bank feed clears the same transaction and you have a duplicate. The routing is shown in the push dialog so you can override any line before it hits QBO.

2. Class and Customer — set once per push, applies to all lines In the push dialog, set a Class (department, location, grant) and Customer (donor, funder, project) once — it applies to every line item in the report. The recommended workflow: organize reports so all rows in one report belong to the same grant or donor, then set Class + Customer once at push time. No per-row tagging needed. This is the primary workflow for nonprofit and grant-funded clients.

3. Receipt attachment — no "where's the receipt?" in QBO The receipt image attaches directly to the Purchase or Bill record in QBO, the same way it would if you had used QBO's own Attach button. It appears in the Attachments section of the transaction. Auditors, clients, and the CRA/IRS can see the source document without coming back to you.

4. GL mapping — upload chart of accounts once Go to the client's Settings → Expense Categories and upload their chart of accounts (or enter GL codes manually per category). The AI maps every receipt to the correct account code. Every export and report includes the coded columns — your import is ready without manual recoding. Ask the client for their COA once at setup; you won't need to touch it again unless they restructure.

How fast is the push? For a typical small-business client with 30–80 transactions/month, the QBO push takes under 5 minutes once the report is reviewed. The actual batch push is under 60 seconds.

📧 Receipt scanning is self-serve — and how to see who's done it

Connecting a Gmail grants access to someone's private inbox, so each client connects their own and runs their own scan — you can't do it for them, by design. Your job is to get them started and keep an eye on it.

Getting a client scanning: forward them the user cheat sheet → "Activate Gmail scanning." They connect their inbox, pick a period, and click Scan. Their plan (or your sponsorship) covers year-to-date; annual includes last year after the first annual payment, while last year can be unlocked immediately for $20 one-time and older/custom periods for $40 one-time. After the first scan it runs nightly on its own. Receipts from all of a client's inboxes land in their one spreadsheet.

See who's connected at a glance. Your client list shows a Gmail status on every client:

  • "Gmail connected · scanned 3 days ago" — all good
  • "Gmail connected · no scans yet" — connected but hasn't run one yet → a quick nudge
  • "Gmail not connected" — they still need to connect their inbox

Use it to spot exactly who to follow up with.

🏷️ Tags = each client's structure

Use client / project tags to partition a client's data; tags drive both reports and tax forms. Consistent tags during the year = clean exports at year-end.

The Calendar → Tags wizard (Tag Management → "Create tags from calendar") is worth setting up for clients with recurring client engagements — it creates tags automatically from their Google Calendar patterns. Run it for them in acting-for mode.

🏷️ Personal expense identification — make sure every client does it

When a client runs personal and business spending through the same account or Gmail, the AI needs to know what's personal so it doesn't land on the business books. The Personal Identifier wizard (Settings → Expense Organization → "Improve your Personal tagging") trains it in about 90 seconds — it asks which card is personal, what they buy on Amazon for themselves, which streaming services they pay for, etc.

This is a client step, not one you do for them — only the client knows which card is personal or which Amazon order was for the kids. (If you guessed on their behalf, you'd actively worsen the classification.) Your job is to make sure it gets done: for a client running everything through one account, it's one of the highest-leverage 90 seconds they'll spend — the difference between a clean Personal/Business split and you re-tagging rows every month.

Walk them through it at onboarding, or point them to the user cheat sheet → "Personal Identifier wizard." It's worth confirming each new client has completed it before you rely on their Personal/Business split.

✅ Client setup at a glance

Your client list shows each client's setup status, so you can see who still needs what without opening their account:

  • Gmail — connected, nightly auto-scan on/off, and which prior years are scanned (or "no historical scan yet")
  • Personal expenses — identified or not set up
  • Bank / card — connected via Plaid or not. Like Gmail, the client connects their own bank (it's their banking login, granted through Plaid) — you can't do it for them.
  • Home country · currency · city — a quick locale sanity-check before you rely on their books

All of these are client steps; your job is to spot what's missing and nudge them to finish setup. (Reconciliation today runs in the client's own account — not yet via acting-for.)

🎓 What your clients always ask (and the answer)

Client saysWhat's happeningTell them
"It only goes back ~2 months"Nightly scan reads only recent mailRun a historical scan — period depends on their plan
"I can't add my other Gmail"Multiple Gmail auto-scan is a subscription featureClient subscribes (or you sponsor them) — then they connect up to 3 inboxes
"Forwarding vs. connecting Gmail?"Two different featuresForwarding = manual one-offs; connecting = whole inbox, automatic
"My receipts are in Outlook / work email"Non-Gmail can't be connected for auto-scanSet up a forwarding address — free, manual
"The report is missing some expenses"Expenses already in another report are hiddenEach expense can only appear in one report — check My Reports for prior reports with those rows
"I got an error signing up"They signed up from homepage instead of your linkHave them sign out and use the original invite link

Hand clients the user cheat sheet so they can self-serve the rest.

✅ Report approval — no ExpenseBot account required for reviewers

When a client shares a report with you (or you share one with a manager or approver), the recipient clicks a link and gets a full read-only view: all expenses with receipt images, amounts, categories, and notes. They can:

  • Add comments on specific line items
  • Approve the report or request changes
  • Import directly to their accounting system

No ExpenseBot login needed for the reviewer. This means you can put a report in front of a client, their controller, or a grant administrator without them needing an account. The Supademo walkthrough at approve-report shows the full flow.

🚨 Compliance check — flag policy violations before the push

If a client has an expense policy (meal limits, receipt requirements, travel rules), upload the PDF once in their Settings → Compliance. ExpenseBot then automatically checks every expense against the rules and marks rows as compliant or non-compliant with the specific reason. The report view shows the compliance status per line item before you push to QBO. Audit-ready compliance reports available on demand.

📈 Income tracking + per-client P&L

ExpenseBot tracks income too — not just expenses. Stripe, PayPal, Square, Shopify, Etsy, Amazon seller deposits, and manual entries all land on the Income tab alongside expenses in the same spreadsheet. This matters for two reasons:

  1. Both sides of the P&L in one place. Clients who are agencies, freelancers, or consultants can see gross profit by client, project, or property without a separate income spreadsheet.
  2. Per-tag P&L. A single chat question — "profit by client this year" — returns income, expenses, and net margin for every tag prefix (Client – Acme, Project – Website, Prop – Brooklyn). Useful when you're helping a client understand where they're actually making money.

🏦 Year-end verification — bank + credit card reconciliation

Two tools for verifying completeness before filing:

Bank deposit reconciliation — matches every bank deposit against the income already recorded (email-detected payouts, manual entries). 4-layer matcher deduplicates Stripe/PayPal/Square deposits automatically. The Reconcile button walks through any gaps (Accept / Edit / Ignore). The year-end tax workbook shows a Bank Summary status per month — ✓ Reconciled, ⚠️ Partial, or ℹ️ Not enabled — so you can confirm the client's Schedule C / T2125 gross receipts are bank-verified before filing.

Credit card reconciliation — matches Gmail receipts against credit card statement charges. Missing receipts surface immediately; unmatched charges get a one-click triage (ignore, add cash expense, or flag for receipt). Run this for clients who want to confirm nothing slipped through the cracks before month-end close.

📊 Reports & exports — QuickBooks and Xero

QuickBooks: see the QB push section above — smart routing, Class + Customer, receipt attachment, GL mapping, 5-minute push cadence.

Xero: ExpenseBot exports to Xero with the same GL coding and receipt attachment. Expenses map to the client's Xero chart of accounts. Export from the report card → Xero button. See Xero integration for the full setup.

Create per-client reports by date or by tag for either platform.

If "Create Report" ever seems to do nothing: the client's files may live in a Google Shared Drive. Everything still works, but Shared Drive permissions can silently block report creation — flag it to us if you see it.

📋 Year-end tax workbook — what to ask clients to generate

At tax time, have clients generate the Year-End Tax Workbook (Settings → Year-End Report). It includes:

  • Full expense breakdown by category mapped to Schedule C / T2125 line numbers (or Schedule E for rental, Schedule B for interest/dividends)
  • Bank Summary reconciliation status — tells you whether gross receipts are bank-verified
  • Mileage log in IRS/CRA format
  • Income summary by source

This is the document to hand to a tax preparer or use for filing. It covers every expense — including ones already in submitted reports — and doesn't mark anything as "used." Contrast with Create Report, which is for reimbursement batches and marks expenses as submitted.

🔒 Data security — what to tell clients who ask

Key facts for accountants who get asked by clients:

  • Gmail access is receipt-only. ExpenseBot reads mail to find receipts and applies a label ("Processed") so it doesn't reprocess them (the gmail.modify scope). It never sends email and never permanently deletes anything. Full scope detail: data security & privacy.
  • Client data stays in their own Google Drive. The spreadsheet lives in the client's account, not ExpenseBot's servers. If they cancel, the data is still there.
  • CASA Tier 2 certified — independent security audit (OWASP-based penetration testing via ESOF AppSec) covering the full API surface including Plaid, Gmail, and Google Drive integrations.
  • Data is never sold or used for AI training. Gemini processes receipts in-flight for extraction; processed data is not retained for model training.

Full details: data security and privacy.

📚 Go deeper

Share:

Try ExpenseBot Free

AI extracts every receipt into a Google Sheet you own. Gmail scan, mileage, tax reports, profit-by-client. No credit card needed.

No credit card required · Setup in 30 seconds