Connect your Google account to ExpenseBot. It scans Gmail for receipt emails, reads the merchant, date, amount, and tax off each one, and writes them as rows in a Google Sheet created in your own Google Drive (you own the folder and the spreadsheet). Each processed email is labelled so it isn't handled twice.
What happens, step by step:
- Connect your Google account (needs a click) — a folder + spreadsheet are created in your Drive.
- Gmail is scanned for receipts (automatic) — the first connection scans the last 60 days; a nightly scan runs after that. You can also trigger a manual "Scan Gmail for receipts" any time.
- Each receipt is read (automatic) — details extracted from the email body or a PDF attachment.
- A row is written to your Sheet (automatic).
- The email is labelled (automatic) so it isn't reprocessed.
Permissions (exact):
- Drive:
drive.file— per-file / Picker-based, not your whole Drive. - Gmail: read + label — it reads receipt emails and applies its own labels. It never sends email and never permanently deletes email. (The label permission uses Google's
gmail.modifyscope, so the consent screen shows broad wording, but ExpenseBot only reads and labels.)
Coverage — honest edges: emailed receipts with details in the body, PDF invoice attachments, and common vendors read cleanly. Receipts behind a login link and portal-style "your invoice is ready" notifications are flagged for manual review rather than dropped. Forwarding to receipts@expensebot.ai and photographed-receipt upload are separate routes from the Gmail scan.
DIY vs product: a Google Apps Script or Zapier zap works for a few known senders with a stable format, but gets expensive when vendor formats change, PDFs need OCR, currencies vary, or a rule silently stops matching.
The Sheet is a normal Google Sheet you own — sortable, exportable, shareable with an accountant.
Full guide: Gmail Receipts to Google Sheets.
