{"product_id":"gmail-google-drive-invoice-processing-with-gemini-slack-sheets","title":"Gmail \u0026 Google Drive Invoice Processing with Gemini, Slack \u0026 Sheets","description":"\u003ch3\u003eAutomate Invoice Processing from Gmail \u0026amp; Google Drive—With Gemini, Slack approvals, and Google Sheets ledgers\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow automatically detects new invoice and receipt files in \u003cstrong\u003eGmail\u003c\/strong\u003e and a \u003cstrong\u003eGoogle Drive\u003c\/strong\u003e folder, extracts structured data with \u003cstrong\u003eGoogle Gemini\u003c\/strong\u003e, logs results into \u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e, and sends higher-value invoices to \u003cstrong\u003eSlack\u003c\/strong\u003e for approve\/reject decisions—then updates your ledger automatically.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRuns every minute\u003c\/strong\u003e to check for new unread Gmail messages with invoice\/receipt attachments and for newly created files in a specified Google Drive folder.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eFilters by file type:\u003c\/strong\u003e processes only \u003cstrong\u003ePDFs and images\u003c\/strong\u003e. Unsupported items are marked as read, and a Slack notification is sent when a file type is skipped.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eExtracts invoice fields with Gemini:\u003c\/strong\u003e sends each supported document to \u003cstrong\u003eGoogle Gemini\u003c\/strong\u003e, parses and validates the JSON output, and posts to Slack if extraction is incomplete or totals don’t reconcile.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003ePrevents duplicate ledger entries:\u003c\/strong\u003e checks \u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e for an existing row using the invoice number. If found, it skips logging and notifies Slack about the duplicate.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCategories and approval routing:\u003c\/strong\u003e uses Gemini to assign an expense category, then compares the invoice total against a threshold.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eLedger actions:\u003c\/strong\u003e appends under-threshold totals as \u003cem\u003eApproved\u003c\/em\u003e, while over-threshold totals are logged as \u003cem\u003ePending Review\u003c\/em\u003e with Slack Approve\/Reject buttons.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDecision handling:\u003c\/strong\u003e waits up to \u003cstrong\u003ethree days\u003c\/strong\u003e for the Slack response, then updates the matching Google Sheets row to \u003cem\u003eApproved\u003c\/em\u003e, \u003cem\u003eRejected\u003c\/em\u003e, or \u003cem\u003eNo Response\u003c\/em\u003e. Errors trigger a Slack alert.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eTurning email receipts into an audit-ready expense ledger without manual copy\/paste.\u003c\/li\u003e\n  \u003cli\u003eAutomatically routing invoices over a spend limit to Slack for approval workflows.\u003c\/li\u003e\n  \u003cli\u003eConsolidating invoices from both Gmail attachments and Google Drive uploads.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eIntegrations \/ nodes:\u003c\/strong\u003e Gmail, Google Drive, Google Gemini, Slack, Google Sheets\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eWorkflow logic nodes:\u003c\/strong\u003e if, set, code, merge\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46086676054195,"sku":"N8N-19845","price":23.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/aAUl5oY02fqrq3AxdYVnt_V3GMRZ8I.png?v=1790327804","url":"https:\/\/buyflowscripts.com\/products\/gmail-google-drive-invoice-processing-with-gemini-slack-sheets","provider":"N8N Commerce","version":"1.0","type":"link"}