ExpenseBot has a native Zapier app, listed in the Zapier App Directory under Accounting. Add ExpenseBot as an app inside a Zap and sign in when Zapier opens ExpenseBot's consent screen. There are no API keys and no client secrets to copy by hand.
Connecting
- In Zapier, create a Zap and add ExpenseBot as the app for a trigger, action, or search step.
- Choose Sign in. Zapier opens ExpenseBot's authorization screen.
- Approve the request. Authentication is OAuth 2.0 with PKCE, and Zapier obtains and refreshes the tokens itself.
- The connection is labelled with your ExpenseBot account email so you can tell several connections apart.
The connection carries five scopes: read expenses, write expenses, start Gmail scans, read reports, and create reports.
What you need before it does anything useful
- An ExpenseBot account with its Google Sheet connected. The connection writes into your sheet. No sheet means there is nowhere for a receipt to land.
- Gmail connected inside ExpenseBot, before any scan action. The Start Gmail Receipt Scan action uses the Gmail access you authorized in ExpenseBot. It does not grant that access itself and cannot scan an account ExpenseBot has never seen.
- A stable unique ID from your trigger. Every data-creating action requires a Source Event ID. See prevent duplicate expenses.
What is available in a Zap
Triggers — New Expense, New Report. Both are polling triggers: the right tool for reacting to activity, the wrong tool for exporting a large historical ledger.
Actions — Upload Receipt, Create Expense, Add Mileage Entry, Add Income Entry, Start Gmail Receipt Scan, Create Expense Report.
Searches — Find Expense, Find Report, Get Receipt Processing Result, Get Gmail Scan Status.
The client, project, and trip group fields load from groups that already exist in ExpenseBot. No action creates a group.
The division of labour
ExpenseBot connects receipt capture and structured expense workflows to Zapier. ExpenseBot remains responsible for extraction, duplicate detection, review, financial validation, and Google Sheets writes. Zapier coordinates triggers, delays, paths, and notifications. Downstream accounting platforms remain the accounting source of truth.
The boundary
ExpenseBot is not a general ledger and does not do double-entry bookkeeping. It does not reconcile a bank feed and it does not file anything with a tax authority. A Zap that completes successfully proves a receipt was captured and given a terminal result — it does not prove anything downstream reconciled. None of this is unattended approval: review your mappings and test one controlled record before enabling a Zap on live data.
Related
- Connect ExpenseBot to Zapier — the full setup page
- Zapier REST API reference — the endpoint-level contract
- Upload receipt files from Zapier
- Native integration or Zapier MCP Client?
