match weekly receipts to the sheet you already keep
once a week, have a bot compare emailed receipts with the expense rows you already keep in google sheets. it can search gmail or outlook, read receipt attachments and check the named sheet range. ask for unmatched rows, receipts absent from the sheet and uncertain duplicates. this routine produces a review list in chat without labelling mail or updating your expense records.

the message
paste this into a chat with your bot
every monday at 9, compare receipts from the previous monday through sunday with my expense sheet. use only the gmail and outlook accounts i name, and the google sheets file, tab and range i give you.
read the receipt messages and accessible attachments. compare merchant, transaction date, total, currency and receipt reference with the sheet. don't match on amount alone. distinguish the receipt date from the date the email arrived.
return four groups in this chat: receipts with a clear matching row, sheet rows with no receipt found, receipts with no matching row, and uncertain or possible duplicate records. include the sheet row and message reference for each proposed match. keep refunds separate from purchases. flag unreadable or missing amounts; don't guess them.
don't change the sheet, label or move mail, pay anything or contact suppliers. if both sources cannot be read, say the comparison is incomplete.- when
- mondays at 9:00, reviewing the previous monday through sunday in your chosen time zone
- needs
- gmail or outlook, or both, plus google sheets; read-only access and a named expense range with merchant, date, amount and currency columns
what comes back
an example, not a real run
weekly receipt comparison for priya
clear match: acme supplies receipt a17, usd 42.00, matches expenses row 18 on merchant, transaction date and reference.
no receipt found: row 21, sam's print shop, usd 18.00. the inbox search is not proof it was never issued.
no sheet row found: acme supplies receipt a22, usd 12.00.
uncertain: two acme emails show receipt a17; likely copies of the same receipt, not two expenses.
coverage: work gmail and work outlook read; expenses rows 2 to 40 read. no records changed.make it yours
- choose the account labels explicitly so a personal purchase does not enter a business expense review
- name the date column and what it means; transaction date and statement posting date should not silently be treated as identical
- provide merchant aliases you already know, while requiring the bot to explain any new proposed alias
- use a longer lookback for late receipts, keeping the transaction window separate from the email search window
- ask for exceptions only once clear matches are consistently easy to check
when it goes wrong
- equal amounts get matched to unrelated merchants. require several agreeing fields and put weak matches in the uncertain group rather than choosing the nearest row.
- a scan or attachment cannot be read. keep its message reference in the review list and inspect it yourself; a blank amount must not become zero.
- the same receipt arrived in both mailboxes. compare the receipt reference and transaction details before counting it twice. a forwarded copy is not necessarily a second purchase.
- an expense has no email match because its receipt is elsewhere. record the search scope and check your other records. this is not a bank reconciliation or proof that every expense is accounted for.
match first, change the ledger later
the gmail page has a smaller friday sweep that labels messages and lists amounts. this routine does a different job: comparing receipt evidence with existing expense rows, including mail from outlook. it leaves both sources unchanged.
on read only, the bot reads the google sheet with Look up spreadsheet row and Get Spreadsheet by Data Filter; test the first run.5 identify the exact tab and range before scheduling the sweep. keep sheets and mail read-only and tell the bot not to change any row. you decide what to enter after checking the evidence, including currency and refund treatment.
questions
can it check receipts across gmail and outlook?
yes. connect and name each account you want included. it can search and read messages in both, and both can read attachments. ask it to report which accounts it actually checked.
will it fill the spreadsheet automatically?
this version only reads the sheet and proposes matches in chat. keep the sheet on read only and tell the bot not to change any row. if you later add write actions, include an explicit instruction to ask before changing any row.
does a matched receipt prove the bill was paid?
the match only says the email and the row appear to describe the same transaction. check the underlying receipt and your payment records before drawing any conclusion about payment or bookkeeping treatment.
sources
- dusk bot docs: routines
- dusk bot docs: connected app permissions
- composio: gmail mail and attachment actions, checked 12 november 2026
- composio: outlook message and attachment actions, checked 12 november 2026
- composio: google sheets range and row reads, checked 12 november 2026
drafted with ai help from the dusk bot docs and the sources listed on this page, then checked against them. if something here is wrong or out of date, write to [email protected].
a gmail assistant that sorts, drafts and briefs you
a google sheets bot with a clear range to work in
an outlook bot for the mail around your meetings
claude connectors: connect the job you actually need
ai email triage: let a bot sort your inbox and draft the replies
meeting prep briefs for outside calls, every weekday at 8