{"product_id":"n8n-expense-receipt-approval-gmail-to-sheets-openai","title":"n8n Expense Receipt Approval: Gmail to Sheets + OpenAI","description":"\u003ch3\u003eTurn Gmail expense receipts into approved reimbursement—automatically\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow reads new expense receipt emails in Gmail, uses \u003cstrong\u003eOpenAI\u003c\/strong\u003e to extract structured receipt data, validates each claim against your rules and Google Sheets history, and routes approval requests to the right people—then handles weekly payouts and missing-receipt chasing.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDetects incoming receipts:\u003c\/strong\u003e When a new email arrives in a dedicated Gmail inbox, the workflow downloads attachments.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eLoads reference data:\u003c\/strong\u003e It pulls \u003cem\u003eEmployees\u003c\/em\u003e, \u003cem\u003ePolicy\u003c\/em\u003e, \u003cem\u003eprior Claims\u003c\/em\u003e, and \u003cem\u003eCard transactions\u003c\/em\u003e from Google Sheets to validate and match claims.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eExtracts receipt fields with OpenAI:\u003c\/strong\u003e Each email is split into individual receipt items (images, PDFs, or forwarded text). OpenAI extracts fields such as dates and amounts, which are normalized for comparison.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidates, checks duplicates, and applies policy:\u003c\/strong\u003e The workflow fetches historical exchange rates from the \u003cstrong\u003eFrankfurter (ECB) API\u003c\/strong\u003e and checks:\n    age\/eligibility, currency conversion, company card matches, duplicates, and policy limits to determine reimbursable values and whether manager\/finance approval is required.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eApproves or requests review:\u003c\/strong\u003e Within-policy claims are auto-approved; otherwise, the workflow emails the appropriate approver via Gmail using approve\/decline action links.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eLogs outcomes and informs employees:\u003c\/strong\u003e It writes one row per receipt line to the \u003cem\u003eClaims\u003c\/em\u003e tab in Google Sheets with decision details, then emails the employee a line-by-line outcome summary.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eWeekly payout operations:\u003c\/strong\u003e Every Friday, it reads approved unpaid claims and employee banking details from Google Sheets, emails missing-receipt chasers for unmatched company card spend, and sends finance a single Gmail approval to release the payout.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eCompanies processing frequent employee expense submissions from a shared inbox.\u003c\/li\u003e\n  \u003cli\u003eSaaS operators automating “receipt → extraction → approval → payout” using n8n and Google Sheets.\u003c\/li\u003e\n  \u003cli\u003eTeams needing duplicate detection and card-match verification for policy compliance.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eTriggers \u0026amp; logic:\u003c\/strong\u003e n8n nodes including \u003cstrong\u003egmail\u003c\/strong\u003e, \u003cstrong\u003eswitch\u003c\/strong\u003e, \u003cstrong\u003eif\u003c\/strong\u003e, \u003cstrong\u003eset\u003c\/strong\u003e, \u003cstrong\u003ecode\u003c\/strong\u003e, and \u003cstrong\u003eno op\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eAI extraction:\u003c\/strong\u003e \u003cstrong\u003eOpenAI\u003c\/strong\u003e for structured receipt data extraction from images\/PDFs\/forwarded text.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReference data:\u003c\/strong\u003e \u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e (Employees, Policy, prior Claims, Card transactions; writes to Claims tab).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eExchange rates:\u003c\/strong\u003e \u003cstrong\u003eFrankfurter (ECB) API\u003c\/strong\u003e for historical currency conversion.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46123193565363,"sku":"N8N-20104","price":74.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/ugVeJcDHcoo7ZqJ_FXWc-_kH9EPiDH.png?v=1790673325","url":"https:\/\/buyflowscripts.com\/products\/n8n-expense-receipt-approval-gmail-to-sheets-openai","provider":"N8N Commerce","version":"1.0","type":"link"}