Catch a double charge from your emailed receipts
Whenever a payment receipt lands in Gmail, the agent pulls out the merchant and amount, logs it in a spreadsheet and alerts you if the same amount from the same merchant shows up twice within 48 hours.
- Difficulty
- Intermediate
- Setup time
- ≈ 1 h 30 (estimate)
- Estimated cost
- n8n: €0 self-hosted or from €20/month (Starter, billed annually); Gemini API: free tier with limits, then pay as you go; Slack: free plan available
- Category
- Personal productivity
⏱ Trigger
New receipt email in Gmail (Gmail trigger, checked every minute)
✋ Human approval
The agent never touches a payment: it only flags. You check your statement and contact the merchant or your bank.
→ Output
Payment log in Google Sheets + Slack alert for possible duplicates
Autonomy level 3 — Autonomous: Runs end to end on its own; only low-risk actions (read, notify, archive).
01Connected tools
02What the agent does on its own
- step 01
Fires on every new email matching your Gmail search (for example "receipt").
- step 02
Fetches the full message and has Gemini extract merchant, amount, currency, date, reference and transaction type.
- step 03
Keeps only successful charges with all required fields, then normalises merchant, amount and timestamps.
- step 04
Checks recent transactions in the sheet: same merchant, same amount and same currency within 48 hours flags a possible duplicate.
- step 05
Appends the transaction to Google Sheets, posts a Slack alert for a possible duplicate and labels the email as processed.
03Agent instructions
> Here is an email from {SENDER}: "{BODY}". If it confirms a successful payment, return JSON {"merchant":"…","amount":0.00,"currency":"EUR","date":"YYYY-MM-DDTHH:MM","reference":"…","type":"charge|refund|other"}. If something is missing, use null instead of guessing.04Limits and legal points
The agent only sees payments that come with an emailed receipt: a direct debit with no receipt slips through, so this is not a bank reconciliation. Two identical, legitimate purchases (two tickets, two coffees) will also trigger an alert: it's a signal, not proof. Tune the 48-hour window to your habits. On the Gemini API free tier, Google says data may be used to improve its products: for receipts, prefer the paid tier or send less. To get alerts by email or Telegram instead of Slack, swap the last step.
05In short
- When does the agent run, and what does it produce?
- Trigger: New receipt email in Gmail (Gmail trigger, checked every minute). Output: Payment log in Google Sheets + Slack alert for possible duplicates.
- What stays under your control?
- The agent never touches a payment: it only flags. You check your statement and contact the merchant or your bank. Autonomy level 3 — Autonomous: Runs end to end on its own; only low-risk actions (read, notify, archive).
- How much does it cost and how long does setup take?
- Estimated cost: n8n: €0 self-hosted or from €20/month (Starter, billed annually); Gemini API: free tier with limits, then pay as you go; Slack: free plan available. Setup time: ≈ 1 h 30 (estimate), difficulty "intermediate". Tools: n8n – Gmail Trigger, n8n – Google Gemini, n8n – Google Sheets, n8n – Slack, n8n – Gmail.
Answers taken from this recipe · updated 22 October 2026
06Source
07Related recipes
Same category or same connected tools.