Hey friends,
Receipts pile up everywhere: in messy inbox folders, crumpled in your wallet, or sitting in your glovebox. Typing invoice numbers, tax amounts and dates into a spreadsheet line by line is repetitive busywork that nobody enjoys.
I know, because I always do this to myself. I lose a week every tax season going back and forth between folders, boxes and photos. But not anymore.
In this guide we'll set up your own receipt bot in 5 steps and about 15 minutes. After that, you just drop receipt photos into a Google Drive folder and watch your spreadsheet log every item by itself.
Let's get into it!
- 1Create your receipt folder and sheetSet up your Receipts Inbox folder and Receipt Log sheet in Google Drive.
- 2Get your AI keyCreate your personal API key from Claude, Gemini, ChatGPT or DeepSeek.
- 3Personalise and copy your scriptPaste your folder link and grab your ready-made script.
- 4Paste it into your Google SheetOpen Extensions › Apps Script and paste the code.
- 5Switch it on and test itGive permission, enter your key and process your first receipt.
If this is all too complicated, I can personalise and customise one for you, for your needs. Hit me up!
Which AI do you want to use?
All of them work well. Pick whichever company you'd rather open an account with. The instructions and script below update for your pick.
Create your receipt folder and sheet
In Google Drive, click New › New folder. Name it:
Open the folder and copy the full link from your browser's address bar. You'll need it in Step 3.
In Google Drive, click New › Google Sheets › Blank spreadsheet. Name it:
Leave it empty. The bot builds its own tabs and headers on the first run.
Keep both in your own Google Drive, not a restricted team folder. The script runs as you, so it can only read folders you can open.
💡 Malaysia only: make a second folder called MY Tax Receipts if you also want a Malaysian tax tab (LHDN categories, SST and e-Invoice details).
Copy the whole link. The highlighted part is your folder ID.
Get your AI key
Your bot needs an API key (a password that lets the bot use the AI). It sends each receipt to the AI with this key and gets the line items back.
Selected AI:
Switch any time. The link, instructions and script all update.
Copy the key somewhere safe. Most sites only show it once. If you close the window first, you'll need to make a new one.
⚠️ Subscription notice: a ChatGPT Plus, Gemini or Claude Pro subscription does NOT include this. The bot needs a developer account (the link above), which is pay-as-you-go and usually costs a few cents per receipt.
Note:
Personalise and copy your script
Paste your folder link below. This page builds your own copy of the bot, with your folder and your AI () already filled in.
Never copy the script by highlighting it with your mouse. Always use the Copy button, so you don't miss lines hidden at the bottom.
Paste your folder link above
Your ready-to-use script appears here.
Loading script…Something's not right
Paste it into your Google Sheet
Open your Receipt Log sheet. In the menu bar, click Extensions › Apps Script. A new tab opens with the Apps Script editor.
Then save with Cmd + S, or click the save icon in the toolbar.
Delete the sample function myFunction() text Google puts in the editor first. If you paste on top of it, you'll get an error when the script runs.
⚠️ Check the top line: the very first line must be /**. If you see anything else, you pasted the wrong thing. Go back to Step 3 and copy again.
💡 Time zone: click the gear icon (Project Settings) on the left and set Time zone to where you are, so the timestamps are right.
1 /** 2 * Receipt Bots - drop receipts into a Google Drive folder… 3 * - Claims folder -> "Claims Log" tab
/**, then press Save.Switch it on and test it
Go back to your Google Sheet tab and reload the page. After a few seconds a new Receipt Bots menu appears at the top, next to Help.
Click Receipt Bots › Set up (API key + auto-run). The first time, Google asks for your permission:
Google hasn't verified this app
The app is requesting access to sensitive info in your Google Account…
Don't be alarmed by the "Google hasn't verified this app" warning. Google shows it for every personal script. It's your own copy, it lives in your Google account, and nobody else can see or run it.
Now click Receipt Bots › Set up once more. A box asks for your API key. Paste the key you saved in Step 2.
Key check: your key .
Now test it. Drop a receipt photo or PDF into your Receipts Inbox folder. Then in your sheet, click Receipt Bots › Process new receipts now. Rows appear in about 30 seconds.
Hands-free from here: the bot checks the folder every 5 minutes by itself, even when your computer is off.
What you'll see
Your sheet gets a Claims Log tab with one row per item on each receipt: invoice number, item, price, quantity, discount, amount, total including tax, tax, total excluding tax, date, vendor, currency, a link to the original file, when it was processed, and a Needs Checking column.
When the AI hits a blurry total, a missing date or line items that don't add up, the whole row turns soft yellow and the reason is written in Needs Checking. Yellow rows are the only ones you need to look at.
| Invoice No. | Item | Price | Qty | Amount | Total incl. Tax | Tax | Date | Vendor | Currency | Source File | Needs Checking |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 00025091 | White coffee | 12.00 | 1 | 12.00 | 23.30 | 1.32 | 2026-09-12 | Underscore Coffee | MYR | receipt.jpg | |
| 00025091 | Black coffee | 10.00 | 1 | 10.00 | 2026-09-12 | Underscore Coffee | MYR | receipt.jpg | |||
| Client lunch | 92.00 | 1 | 92.00 | 108.50 | ? | 2026-10-05 | Harbour Bistro | MYR | lunch.pdf | Tax line is unreadable; items add up to 92.00 but the total is 108.50 |
If you added the Malaysian folder, you'll also get an MY Tax Claims tab (one row per receipt, with LHDN business categories, SST and e-Invoice details) and a Relief Summary tab with totals.
Troubleshooting
Here's how to fix the most common hiccups in under a minute:
No "Receipt Bots" menu appears in the sheet
"Syntax error … line 1" in Apps Script
A yellow row mentions 401
A yellow row mentions 402, 429, "quota" or "billing"
Nothing appears after dropping a receipt
A receipt was read wrongly
Switching to a different AI later
Your privacy
This page never sees your API key or your receipts. The key is pasted straight into your own Google Sheet, and receipts go only from your Drive to the AI you picked. Your folder link stays in this browser tab and isn't sent anywhere.