{"workflow":{"id":14901,"name":"Track and analyze Google Sheets expenses with Gemini and Gmail alerts","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-08T11:27:00.546Z","description":"# Expense Leak Detector \n*Smart Expense Monitoring in Minutes*\n\n---\n\nThis n8n workflow reads your expenses from Google Sheets, categorizes them using predefined keywords, summarizes spending per category, generates AI-powered financial advice using Gemini, stores results in another sheet and sends email alerts for high or normal expenses.\n\n###  Quick Start Guide\n\n1. Import the workflow into n8n  \n\n2. Connect:\n   - Google Sheets OAuth2\n   - Google Gemini API\n   - Gmail OAuth2  \n\n3. Update the **Settings node**:\n   - Budget limit  \n   - Recipient email  \n   - Sender name  \n\n4. Ensure:\n   - Sheet1 → `Date, Description, Amount`\n   - Sheet2 → `Date, Category, Total Spent, AI Report, Status, Reviewed On`  \n\n5. Click **\"Execute Workflow\"**\n\n\n##  What It Does\n\nThis workflow automates your expense tracking and financial analysis using a combination of Google Sheets and AI.\n\nIt begins by fetching raw expense data from a Google Sheet (Sheet1), where each row contains a date, description and amount. The workflow then processes each row by cleaning the data and assigning a category such as Food, Transport, Subscription, Shopping, Utilities, Health or Other using predefined keyword matching.\n\nOnce categorized, it aggregates total spending per category and evaluates whether the spending exceeds a defined budget limit. Based on this evaluation, it generates a detailed, personalized financial advisory report using Google Gemini AI.\n\nFinally, the workflow stores all results in another sheet (Sheet2) and sends an email notification—either a high expense alert or a normal summary—based on the spending status.\n\n\n##  Who’s It For\n\n- Individuals managing personal finances  \n- Freelancers tracking monthly expenses  \n- Families monitoring household spending  \n- Finance enthusiasts wanting AI-driven insights  \n- Anyone using Google Sheets for expense tracking  \n\n\n##  Requirements\n\nTo use this workflow, you need:\n\n- n8n (self-hosted or cloud)\n- Google Sheets account\n- Google Gemini API key\n- Gmail account (for sending emails)\n- A Google Sheet with:\n  - **Sheet1**: Expense data\n  - **Sheet2**: Output report\n\n\n##  How To Set Up\n\n### 1. Import Workflow\n\nImport the provided JSON file into n8n\n\n### 2. Connect Credentials\n\n- **Google Sheets OAuth2** → For reading and writing data  \n- **Google Gemini API** → For AI report generation  \n- **Gmail OAuth2** → For sending emails  \n\n### 3. Prepare Google Sheets\n\n#### Sheet1 (Input)\n\n| Date | Description | Amount |\n|------|------------|--------|\n\n#### Sheet2 (Output)\n\n| Date | Category | Total Spent | AI Report | Status | Reviewed On |\n|------|------------|--------|------|------------|--------|\n\n### 4. Configure Settings Node\n\nUpdate the **“Settings — Change These Before Running”** node:\n\n- `Budget Limit` → Threshold for high expense detection  \n- `Send Report To Email` → Recipient email  \n- `Email Sender Name` → Display name  \n- `Currency Symbol` → Example: Rs.  \n- `Report Period` → Example: This Month  \n\n### 5. Run Workflow\n\n- Click **“Execute Workflow”**\n- The workflow will:\n  - Read expenses\n  - Categorize them\n  - Generate AI insights\n  - Save results\n  - Send email alerts\n\n\n##  How It Works (Step-by-Step Flow)\n\n1. **Manual Trigger**\n   - Starts the workflow\n\n2. **Read Expenses**\n   - Fetches rows from Sheet1\n\n3. **Settings Node**\n   - Stores all configurable values\n\n4. **Clean & Categorize**\n   - Converts description to lowercase\n   - Assigns categories using **hardcoded keyword logic**\n\n5. **Summarize**\n   - Groups data by category\n   - Calculates total spend\n\n6. **Build AI Fields**\n   - Prepares structured input for Gemini\n\n7. **Gemini AI**\n   - Generates detailed financial advisory report\n\n8. **Collect Data**\n   - Formats data for storage and email\n\n9. **Save to Sheet2**\n   - Appends results\n\n10. **Condition Check**\n   - Determines if expense is high or normal\n\n11. **Email Notifications**\n   - Sends:\n     - High Expense Alert OR\n     - Normal Summary\n\n\n##  How To Customize Nodes\n\n### 1. Categorization Logic\n\n- Modify the **“Clean and Categorise Each Expense Row”** node\n- Add or update keyword checks for categories\n\n### 2. Budget Threshold\n\n- Change `Budget Limit` in Settings node\n\n### 3. AI Prompt\n- Edit **“Ask Gemini to Write Expense Report”**\n- Customize tone, format or advice style\n\n### 4. Email Content\n\n- Modify:\n  - Subject lines\n  - Email body\n  - Sender name\n\n### 5. Currency & Region\n\n- Update:\n  - Currency symbol\n  - Date format (if needed)\n\n\n##  Add-Ons (Enhancements)\n\n- Add **Cron Trigger** for automatic daily/monthly runs  \n- Integrate **Slack/WhatsApp alerts**  \n- Add **dashboard visualization (Google Data Studio / Looker)**  \n- Store reports in **Notion or Airtable**  \n- Add **multi-user expense tracking**  \n- Enable **PDF report generation**  \n\n\n##  Use Case Examples\n\n1. **Monthly Personal Expense Review**\n   - Automatically analyze and summarize monthly spending\n\n2. **High Spending Alerts**\n   - Get notified when a category exceeds your budget\n\n3. **Subscription Cost Optimization**\n   - Identify unnecessary recurring expenses\n\n4. **Family Budget Monitoring**\n   - Track combined household expenses\n\n5. **Freelancer Expense Tracking**\n   - Monitor business vs personal expenses\n\nThere can be many more variations of this workflow depending on your needs.\n\n\n## Troubleshooting Guide\n\n| Issue | Possible Cause | Solution |\n|------|--------------|---------|\n| No data fetched | Incorrect Sheet ID or tab | Verify Sheet1 configuration |\n| Categories not accurate | Keyword mismatch | Update categorization logic |\n| AI report not generated | Invalid Gemini API key | Reconnect API credentials |\n| Emails not sent | Gmail not connected | Reauthorize Gmail OAuth |\n| Sheet2 not updating | Column mismatch | Ensure correct headers |\n| Always \"Normal Expense\" | Budget too high | Adjust Budget Limit |\n| Missing email recipient | Email not set in Settings | Add recipient email |\n\n\n## Need Help?\n\nIf you need help setting up, customizing or extending this workflow, we’re here to support you.\n\nWhether you want:\n- Advanced automation  \n- Custom AI workflows  \n- Business process optimization  \n- Integration with your existing systems  \n\nReach out to **[WeblineIndia](https://www.weblineindia.com/)** for expert assistance in building powerful, scalable automation solutions tailored to your needs.","workflow":{"id":"CAUI5X0Bf5z2nnQx","meta":{"instanceId":"84598b41d26eb2b7aa8f6258e3e33525d70f194053bb1eca12a4e88b9ad881d9","templateCredsSetupCompleted":true},"name":"Expense Analyser","tags":[],"nodes":[{"id":"0745df76-72dc-4a75-ad35-17ce63c3027b","name":"Overview — Read This First","type":"n8n-nodes-base.stickyNote","position":[-1552,-448],"parameters":{"width":660,"height":380,"content":"## Expense Analyser\n\n## How it works\nReads expense rows from Sheet1, cleans and categorises each row by keyword (Zomato, Uber, Netflix, etc.), summarises total spend per category, sends each to Gemini for a detailed financial advisory report, saves results to Sheet2 and emails an alert — High Expense or Normal Summary — based on a configurable threshold.\n\n## Setup steps\n1. Connect your Google Sheets OAuth2 credential\n2. Add your Google Gemini API key\n3. Add your Gmail OAuth2 credential\n4. In the Settings node, set your budget threshold, recipient email and sender name\n5. Confirm Sheet1 has columns: Date, Description, Amount\n6. Confirm Sheet2 has headers: Date, Category, Total Spent, AI Report, Status, Reviewed On"},"typeVersion":1},{"id":"d87b419d-9625-40fc-9ef1-a028bb23f34e","name":"Group — Data Ingestion","type":"n8n-nodes-base.stickyNote","position":[-1344,128],"parameters":{"color":7,"width":780,"height":364,"content":"## Data Ingestion\nFetches raw rows from Sheet1. Settings node holds all configurable values. Clean and Categorise assigns a category per row by matching keywords in the Description column. Summarise adds up totals per category."},"typeVersion":1},{"id":"8620c0b1-c772-49b1-a2c2-cf5d1b38335b","name":"Group — AI Analysis and Sheet Output","type":"n8n-nodes-base.stickyNote","position":[-544,64],"parameters":{"color":7,"width":824,"height":396,"content":"## AI Analysis and Output\nBuild AI Prompt Fields prepares category, amount and status for the prompt. Gemini generates a full advisory report per category. Collect Report Fields gathers everything needed before writing to Sheet2."},"typeVersion":1},{"id":"b34a0d72-3645-483a-ad06-1eeb8c7eedd0","name":"Group — Email Notifications","type":"n8n-nodes-base.stickyNote","position":[320,48],"parameters":{"color":7,"width":664,"height":508,"content":"## Email Alerts\nKeep Data Alive recovers all fields lost after the Sheets write node. Check Expense Level splits the flow — High Expense goes to an urgent alert email, Normal goes to a friendly summary email."},"typeVersion":1},{"id":"e10cece5-20fc-463f-a365-508edbf46ec4","name":"Click Here to Run","type":"n8n-nodes-base.manualTrigger","position":[-1504,256],"parameters":{},"typeVersion":1},{"id":"d62e07c1-6aaa-4088-a5cd-95bf937c4405","name":"Read Expenses from Google Sheet","type":"n8n-nodes-base.googleSheets","position":[-1296,256],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1j-xbSU2cuJRgQUwoQS3mK8G1SPzeGesgl4g_71JrifE/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1j-xbSU2cuJRgQUwoQS3mK8G1SPzeGesgl4g_71JrifE","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1j-xbSU2cuJRgQUwoQS3mK8G1SPzeGesgl4g_71JrifE/edit","cachedResultName":"Expenses"}},"credentials":{"googleSheetsOAuth2Api":{"id":"CF3TiZ0bzlFyaSE4","name":"Google Sheets OAuth2 API"}},"typeVersion":4.7},{"id":"66cbd010-4697-4720-ab39-7e4c0a304cb5","name":"Settings — Change These Before Running","type":"n8n-nodes-base.set","position":[-1104,256],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cfg-001","name":"Budget Limit","type":"number","value":1000},{"id":"cfg-002","name":"Send Report To Email","type":"string","value":""},{"id":"cfg-003","name":"Email Sender Name","type":"string","value":"ARTHA Expense Tracker"},{"id":"cfg-004","name":"Report Period","type":"string","value":"This Month"},{"id":"cfg-005","name":"Currency Symbol","type":"string","value":"Rs."},{"id":"cfg-006","name":"AI Model Name","type":"string","value":"models/gemini-2.5-flash"},{"id":"cfg-007","name":"Food Keywords","type":"string","value":"zomato,swiggy,foodpanda,dunzo"},{"id":"cfg-008","name":"Transport Keywords","type":"string","value":"uber,ola,rapido,irctc,redbus"},{"id":"cfg-009","name":"Subscription Keywords","type":"string","value":"netflix,spotify,amazon prime,hotstar,youtube premium"},{"id":"cfg-010","name":"Shopping Keywords","type":"string","value":"amazon,flipkart,myntra,meesho,ajio"},{"id":"cfg-011","name":"Utilities Keywords","type":"string","value":"electricity,water,broadband,airtel,jio,bsnl"},{"id":"cfg-012","name":"Health Keywords","type":"string","value":"pharmacy,hospital,clinic,medplus,apollo,1mg"},{"id":"cfg-013","name":"High Expense Label","type":"string","value":"High Expense Detected"},{"id":"cfg-014","name":"Normal Expense Label","type":"string","value":"Normal Expense"},{"id":"cfg-015","name":"Output Sheet Name","type":"string","value":"Sheet2"},{"id":"cfg-016","name":"Run Timestamp","type":"string","value":"={{ new Date().toLocaleString('en-IN') }}"},{"id":"cfg-017","name":"Run Date","type":"string","value":"={{ new Date().toLocaleDateString('en-IN') }}"}]}},"typeVersion":3.4},{"id":"74324b4a-1962-4a36-ad65-d664cdeef4fb","name":"Clean and Categorise Each Expense Row","type":"n8n-nodes-base.set","position":[-896,256],"parameters":{"options":{},"assignments":{"assignments":[{"id":"clean-001","name":"Expense Amount","type":"number","value":"={{ $('Read Expenses from Google Sheet').item.json.Amount }}"},{"id":"clean-002","name":"Description Lowercase","type":"string","value":"={{ $('Read Expenses from Google Sheet').item.json.Description.toLowerCase().trim() }}"},{"id":"clean-003","name":"Expense Date","type":"string","value":"={{ $('Read Expenses from Google Sheet').item.json.Date }}"},{"id":"clean-004","name":"Category","type":"string","value":"={{\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"zomato\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"swiggy\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"foodpanda\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"dunzo\")\n? \"Food\"\n\n: $('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"uber\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"ola\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"rapido\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"irctc\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"redbus\")\n? \"Transport\"\n\n: $('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"netflix\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"spotify\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"amazon prime\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"hotstar\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"youtube premium\")\n? \"Subscription\"\n\n: $('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"amazon\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"flipkart\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"myntra\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"meesho\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"ajio\")\n? \"Shopping\"\n\n: $('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"electricity\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"broadband\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"airtel\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"jio\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"bsnl\")\n? \"Utilities\"\n\n: $('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"pharmacy\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"hospital\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"clinic\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"medplus\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"apollo\") ||\n$('Read Expenses from Google Sheet').item.json.Description.toLowerCase().includes(\"1mg\")\n? \"Health\"\n\n: \"Other\"\n}}"},{"id":"clean-005","name":"Original Description","type":"string","value":"={{ $('Read Expenses from Google Sheet').item.json.Description }}"}]}},"typeVersion":3.4},{"id":"5648a384-c4b6-4a28-90e7-3a53b36dd5fc","name":"Add Up Total Spent per Category","type":"n8n-nodes-base.summarize","position":[-704,256],"parameters":{"options":{},"fieldsToSplitBy":"Category","fieldsToSummarize":{"values":[{"field":"Expense Amount","aggregation":"sum"}]}},"typeVersion":1.1},{"id":"31d83ab6-8dc4-4a8c-b0c3-e017d0fb862c","name":"Build AI Prompt Fields","type":"n8n-nodes-base.set","position":[-496,256],"parameters":{"options":{},"assignments":{"assignments":[{"id":"ai-001","name":"Category Name","type":"string","value":"={{ $json.Category }}"},{"id":"ai-002","name":"Total Amount Spent","type":"number","value":"={{ $json.sum_Expense_Amount }}"},{"id":"ai-003","name":"Expense Status","type":"string","value":"={{\n$json.sum_Expense_Amount >\n$('Settings — Change These Before Running').first().json['Budget Limit']\n\n? $('Settings — Change These Before Running').first().json['High Expense Label']\n\n: $('Settings — Change These Before Running').first().json['Normal Expense Label']\n}}"},{"id":"ai-004","name":"Budget Limit","type":"number","value":"={{ $('Settings — Change These Before Running').first().json['Budget Limit'] }}"},{"id":"ai-005","name":"Currency","type":"string","value":"={{ $('Settings — Change These Before Running').first().json['Currency Symbol'] }}"},{"id":"ai-006","name":"Report Period","type":"string","value":"={{ $('Settings — Change These Before Running').first().json['Report Period'] }}"},{"id":"ai-007","name":"Today Date","type":"string","value":"={{ $('Settings — Change These Before Running').first().json['Run Date'] }}"},{"id":"ai-008","name":"Today Timestamp","type":"string","value":"={{ $('Settings — Change These Before Running').first().json['Run Timestamp'] }}"}]}},"typeVersion":3.4},{"id":"43d9f126-40e1-40ca-82d9-94af102f582e","name":"Ask Gemini to Write Expense Report","type":"@n8n/n8n-nodes-langchain.googleGemini","position":[-352,256],"parameters":{"modelId":{"__rl":true,"mode":"list","value":"models/gemini-2.5-flash","cachedResultName":"models/gemini-2.5-flash"},"options":{},"messages":{"values":[{"content":"=You are ARTHA — a sharp, caring and honest personal financial advisor for Indians. Analyze the person's spending honestly and help them save money in practical ways.\n\nEXPENSE DATA:\nCategory: {{ $json['Category Name'] }}\nTotal Spent {{ $json['Report Period'] }}: {{ $json['Currency'] }}{{ $json['Total Amount Spent'] }}\nStatus: {{ $json['Expense Status'] }}\nBudget Limit: {{ $json['Currency'] }}{{ $json['Budget Limit'] }}\nReport Date: {{ $json['Today Date'] }}\n\nWrite a financial report using exactly these sections:\n\nEXPENSE REPORT — {{ $json['Category Name'].toUpperCase() }}\n\nWHY IS THIS DRAINING YOUR MONEY?\nIn 3 lines, explain why {{ $json['Category Name'] }} spending quietly gets expensive over time. Be specific and relatable to an Indian middle-class person.\n\nHONEST VERDICT\nPick one verdict:\n\"This spending is largely wasteful and can be reduced significantly.\"\n\"This is a necessary expense but can still be optimised.\"\n\"This is mixed — partly needed, partly habit-driven.\"\nExplain the verdict in 2 lines.\n\nTOP 3 WAYS TO CUT THIS EXPENSE\nTip 1: [action] — Save approx {{ $json['Currency'] }}[X] per month\nTip 2: [action] — Save approx {{ $json['Currency'] }}[X] per month\nTip 3: [action] — Save approx {{ $json['Currency'] }}[X] per month\n\nSMARTER ALTERNATIVES\nAlternative 1: [name] — [why it is better and cheaper]\nAlternative 2: [name] — [why it is better and cheaper]\n\nSPENDING HEALTH SCORE\nScore: [X] out of 10\nReason: [one line]\n\nMONTHLY SAVING POTENTIAL\nMinimum saving: {{ $json['Currency'] }}[X]\nMaximum saving: {{ $json['Currency'] }}[X]\nIn 1 year you could save: {{ $json['Currency'] }}[X]\n\nYOUR ACTION FOR THIS WEEK\nOne very specific action the person can take this week.\n\nCLOSING NOTE\nOne short, honest, emotionally resonant line — like advice from a trusted friend."}]},"builtInTools":{}},"credentials":{"googlePalmApi":{"id":"n5sKBxpETaEXUSG2","name":"Google Gemini(PaLM) Api account"}},"typeVersion":1.1},{"id":"1be17846-37a3-4749-914f-b004288fc923","name":"Collect Report Fields for Sheet and Email","type":"n8n-nodes-base.set","position":[-96,256],"parameters":{"options":{},"assignments":{"assignments":[{"id":"fmt-001","name":"AI Report Text","type":"string","value":"={{ $json.content.parts[0].text }}"},{"id":"fmt-002","name":"Category Name","type":"string","value":"={{ $('Build AI Prompt Fields').item.json['Category Name'] }}"},{"id":"fmt-003","name":"Total Amount Spent","type":"number","value":"={{ $('Build AI Prompt Fields').item.json['Total Amount Spent'] }}"},{"id":"fmt-004","name":"Report Date","type":"string","value":"={{ $('Build AI Prompt Fields').item.json['Today Date'] }}"},{"id":"fmt-005","name":"Expense Status","type":"string","value":"={{ $('Build AI Prompt Fields').item.json['Expense Status'] }}"},{"id":"fmt-006","name":"Reviewed On","type":"string","value":"={{ $('Build AI Prompt Fields').item.json['Today Timestamp'] }}"},{"id":"fmt-007","name":"Is High Expense","type":"boolean","value":"={{ $('Build AI Prompt Fields').item.json['Expense Status'] === $('Settings — Change These Before Running').first().json['High Expense Label'] }}"},{"id":"fmt-008","name":"Recipient Email","type":"string","value":"={{ $('Settings — Change These Before Running').first().json['Send Report To Email'] }}"},{"id":"fmt-009","name":"Sender Name","type":"string","value":"={{ $('Settings — Change These Before Running').first().json['Email Sender Name'] }}"},{"id":"fmt-010","name":"Currency","type":"string","value":"={{ $('Settings — Change These Before Running').first().json['Currency Symbol'] }}"},{"id":"fmt-011","name":"Report Period","type":"string","value":"={{ $('Build AI Prompt Fields').item.json['Report Period'] }}"},{"id":"fmt-012","name":"Budget Limit","type":"number","value":"={{ $('Build AI Prompt Fields').item.json['Budget Limit'] }}"}]}},"typeVersion":3.4},{"id":"14b93413-b1af-4adc-856f-c4da48e5de03","name":"Save Report to Sheet2","type":"n8n-nodes-base.googleSheets","position":[112,256],"parameters":{"columns":{"value":{"Date":"={{ $json['Report Date'] }}","Status":"={{ $json['Expense Status'] }}","Category":"={{ $json['Category Name'] }}","AI Report":"={{ $json['AI Report Text'] }}","Reviewed On":"={{ $json['Reviewed On'] }}","Total Spent":"={{ $json['Total Amount Spent'] }}"},"schema":[{"id":"Date","type":"string","display":true,"required":false,"displayName":"Date","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Category","type":"string","display":true,"required":false,"displayName":"Category","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Total Spent","type":"string","display":true,"required":false,"displayName":"Total Spent","defaultMatch":false,"canBeUsedToMatch":true},{"id":"AI Report","type":"string","display":true,"required":false,"displayName":"AI Report","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Status","type":"string","display":true,"required":false,"displayName":"Status","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Reviewed On","type":"string","display":true,"required":false,"displayName":"Reviewed On","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":true},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"name","value":"Sheet2"},"documentId":{"__rl":true,"mode":"list","value":"1j-xbSU2cuJRgQUwoQS3mK8G1SPzeGesgl4g_71JrifE","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1j-xbSU2cuJRgQUwoQS3mK8G1SPzeGesgl4g_71JrifE/edit?usp=drivesdk","cachedResultName":"Expenses"}},"credentials":{"googleSheetsOAuth2Api":{"id":"CF3TiZ0bzlFyaSE4","name":"Google Sheets OAuth2 API"}},"typeVersion":4.7},{"id":"5d8c0358-cf83-48d7-87ab-4c763cec1bc0","name":"Keep Data Alive After Sheet Write","type":"n8n-nodes-base.set","position":[368,256],"parameters":{"options":{},"assignments":{"assignments":[{"id":"pass-001","name":"AI Report Text","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['AI Report Text'] }}"},{"id":"pass-002","name":"Category Name","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Category Name'] }}"},{"id":"pass-003","name":"Total Amount Spent","type":"number","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Total Amount Spent'] }}"},{"id":"pass-004","name":"Report Date","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Report Date'] }}"},{"id":"pass-005","name":"Expense Status","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Expense Status'] }}"},{"id":"pass-006","name":"Reviewed On","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Reviewed On'] }}"},{"id":"pass-007","name":"Is High Expense","type":"boolean","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Is High Expense'] }}"},{"id":"pass-008","name":"Recipient Email","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Recipient Email'] }}"},{"id":"pass-009","name":"Sender Name","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Sender Name'] }}"},{"id":"pass-010","name":"Currency","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Currency'] }}"},{"id":"pass-011","name":"Report Period","type":"string","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Report Period'] }}"},{"id":"pass-012","name":"Budget Limit","type":"number","value":"={{ $('Collect Report Fields for Sheet and Email').item.json['Budget Limit'] }}"}]}},"typeVersion":3.4},{"id":"1787296b-7c5d-4f2a-a33d-575cf56cdf67","name":"Check Expense Level — High or Normal?","type":"n8n-nodes-base.if","position":[576,256],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"if-cond-001","operator":{"type":"boolean","operation":"true"},"leftValue":"={{ $json['Is High Expense'] }}","rightValue":true}]}},"typeVersion":2.2},{"id":"b5dcedf5-49ec-4564-9038-e0eb08dfe08b","name":"Send High Expense Alert Email","type":"n8n-nodes-base.gmail","position":[784,160],"webhookId":"7b8d2378-e609-466e-89b1-3a83b75de359","parameters":{"sendTo":"={{ $json['Recipient Email'] }}","message":"=Hi,\n\nARTHA has flagged a HIGH EXPENSE in your {{ $json['Report Period'] }} report.\n\nCategory: {{ $json['Category Name'] }}\nTotal Spent: {{ $json['Currency'] }}{{ $json['Total Amount Spent'] }}\nBudget Limit: {{ $json['Currency'] }}{{ $json['Budget Limit'] }}\nStatus: {{ $json['Expense Status'] }}\nReviewed On: {{ $json['Reviewed On'] }}\n\n--- AI ADVISORY REPORT ---\n\n{{ $json['AI Report Text'] }}\n\n---\n\nThis report was auto-generated by {{ $json['Sender Name'] }}.\nCheck Sheet2 in your Expenses spreadsheet for the full record.","options":{"senderName":"={{ $json['Sender Name'] }}"},"subject":"=Alert: High Expense Detected — {{ $json['Category Name'] }} ({{ $json['Currency'] }}{{ $json['Total Amount Spent'] }}) | {{ $json['Report Period'] }}","emailType":"text"},"credentials":{"gmailOAuth2":{"id":"bhTwTAB1KntHO05R","name":"Gmail OAuth2 API"}},"typeVersion":2.1},{"id":"1fb680f7-cecd-475b-b577-5aec9737ea78","name":"Send Normal Expense Summary Email","type":"n8n-nodes-base.gmail","position":[784,368],"webhookId":"1395f040-bb0a-4b5a-a02a-2ad212efdf46","parameters":{"sendTo":"={{ $json['Recipient Email'] }}","message":"=Hi,\n\nHere is your {{ $json['Report Period'] }} expense summary for {{ $json['Category Name'] }}.\n\nCategory: {{ $json['Category Name'] }}\nTotal Spent: {{ $json['Currency'] }}{{ $json['Total Amount Spent'] }}\nStatus: {{ $json['Expense Status'] }}\nReviewed On: {{ $json['Reviewed On'] }}\n\n--- AI ADVISORY REPORT ---\n\n{{ $json['AI Report Text'] }}\n\n---\n\nThis report was auto-generated by {{ $json['Sender Name'] }}.\nCheck Sheet2 in your Expenses spreadsheet for the full record.","options":{"senderName":"={{ $json['Sender Name'] }}"},"subject":"=Expense Summary — {{ $json['Category Name'] }} ({{ $json['Currency'] }}{{ $json['Total Amount Spent'] }}) | {{ $json['Report Period'] }}","emailType":"text"},"credentials":{"gmailOAuth2":{"id":"bhTwTAB1KntHO05R","name":"Gmail OAuth2 API"}},"typeVersion":2.1}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","executionOrder":"v1"},"versionId":"d3865d61-0023-4d26-9871-858aaba417f6","connections":{"Click Here to Run":{"main":[[{"node":"Read Expenses from Google Sheet","type":"main","index":0}]]},"Save Report to Sheet2":{"main":[[{"node":"Keep Data Alive After Sheet Write","type":"main","index":0}]]},"Build AI Prompt Fields":{"main":[[{"node":"Ask Gemini to Write Expense Report","type":"main","index":0}]]},"Add Up Total Spent per Category":{"main":[[{"node":"Build AI Prompt Fields","type":"main","index":0}]]},"Read Expenses from Google Sheet":{"main":[[{"node":"Settings — Change These Before Running","type":"main","index":0}]]},"Keep Data Alive After Sheet Write":{"main":[[{"node":"Check Expense Level — High or Normal?","type":"main","index":0}]]},"Ask Gemini to Write Expense Report":{"main":[[{"node":"Collect Report Fields for Sheet and Email","type":"main","index":0}]]},"Clean and Categorise Each Expense Row":{"main":[[{"node":"Add Up Total Spent per Category","type":"main","index":0}]]},"Check Expense Level — High or Normal?":{"main":[[{"node":"Send High Expense Alert Email","type":"main","index":0}],[{"node":"Send Normal Expense Summary Email","type":"main","index":0}]]},"Settings — Change These Before Running":{"main":[[{"node":"Clean and Categorise Each Expense Row","type":"main","index":0}]]},"Collect Report Fields for Sheet and Email":{"main":[[{"node":"Save Report to Sheet2","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":17,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":5},"n8n-nodes-base.gmail":{"count":2},"n8n-nodes-base.summarize":{"count":1},"n8n-nodes-base.stickyNote":{"count":4},"n8n-nodes-base.googleSheets":{"count":2},"n8n-nodes-base.manualTrigger":{"count":1},"@n8n/n8n-nodes-langchain.googleGemini":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"WeblineIndia","username":"weblineindia","bio":"A Leading Software Engineering, Consulting & Outsourcing Services Company in USA & India serving Clients Globally since 1999.","verified":true,"links":["https://www.weblineindia.com/hire-n8n-developers/"],"avatar":"https://gravatar.com/avatar/a229d43aefca4588581583c58bb37b4773aebbdf4c1fef86a08bb1d38eae91fa?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":356,"icon":"file:gmail.svg","name":"n8n-nodes-base.gmail","codex":{"data":{"alias":["email","human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"transform\"]","defaults":{"name":"Gmail"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"},"displayName":"Gmail","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1241,"icon":"file:summarize.svg","name":"n8n-nodes-base.summarize","codex":{"data":{"alias":["Append","Array","Average","Concatenate","Count","Group","Item","List","Max","Min","Pivot","Sum","Summarise","Summarize","Transform","Unique"],"details":"","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.summarize/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Summarize"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48cGF0aCBmaWxsPSIjRjkyIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMzIgOTFjLTE1LjQ2NCAwLTI4IDEyLjUzNi0yOCAyOHYzMTdjMCAxNS40NjQgMTIuNTM2IDI4IDI4IDI4aDI0OGMxNS40NjQgMCAyOC0xMi41MzYgMjgtMjhWMTE5YzAtMTUuNDY0LTEyLjUzNi0yOC0yOC0yOGgtNmE2IDYgMCAwIDEtNi02VjQ5YTYgNiAwIDAgMSA2LTZoNmM0MS45NzQgMCA3NiAzNC4wMjYgNzYgNzZ2MzE3YzAgNDEuOTc0LTM0LjAyNiA3Ni03NiA3NkgxMzJjLTQxLjk3NCAwLTc2LTM0LjAyNi03Ni03NlYxMTljMC00MS45NzQgMzQuMDI2LTc2IDc2LTc2aDZhNiA2IDAgMCAxIDYgNnYzNmE2IDYgMCAwIDEtNiA2eiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI0Y5MiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMjU2IDBjLTI3LjIzMiAwLTUwLjIyNyAxOC4xNDItNTcuNTU4IDQzSDE4MmE2IDYgMCAwIDAtNiA2djcwYTYgNiAwIDAgMCA2IDZoMTQ4YTYgNiAwIDAgMCA2LTZWNDlhNiA2IDAgMCAwLTYtNmgtMTYuNDQyQzMwNi4yMjcgMTguMTQyIDI4My4yMzIgMCAyNTYgMG0wIDQwYTE5LjkgMTkuOSAwIDAgMC0xMC41NDEgM0MyMzkuNzgxIDQ2LjUyOCAyMzYgNTIuODIzIDIzNiA2MGMwIDExLjA0NiA4Ljk1NCAyMCAyMCAyMHMyMC04Ljk1NCAyMC0yMGMwLTcuMTc3LTMuNzgxLTEzLjQ3Mi05LjQ1OS0xN0ExOS45IDE5LjkgMCAwIDAgMjU2IDQwbTEwMSAxNzljMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgyMzNjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBmaWxsPSIjRjkyIiBkPSJNMTk3IDIwN2MwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRzLTI0LTEwLjc0NS0yNC0yNCAxMC43NDUtMjQgMjQtMjQgMjQgMTAuNzQ1IDI0IDI0Ii8+PHBhdGggZmlsbD0iI0Y5MiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzU3IDM5NWMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDIzM2MtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiNGOTIiIGQ9Ik0xOTcgMzgzYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNHMtMjQtMTAuNzQ1LTI0LTI0IDEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjQiLz48cGF0aCBmaWxsPSIjRjkyIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNTcgMzA3YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjMzYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDExMmM2LjYyNyAwIDEyIDUuMzczIDEyIDEyeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PHBhdGggZmlsbD0iI0Y5MiIgZD0iTTE5NyAyOTVjMCAxMy4yNTUtMTAuNzQ1IDI0LTI0IDI0cy0yNC0xMC43NDUtMjQtMjQgMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNCIvPjwvc3ZnPg=="},"displayName":"Summarize","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1309,"icon":"file:gemini.svg","name":"@n8n/n8n-nodes-langchain.googleGemini","codex":{"data":{"alias":["LangChain","video","document","audio","transcribe","assistant"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-langchain.googlegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Miscellaneous","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iX2Zvb3RlclNwYXJrXzk4dWR0XzE1MSIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjQgNjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTU3LjA2NjcgMjguNjEwM0M1Mi4xMzU5IDI2LjQ4NzggNDcuODIxNyAyMy41NzYgNDQuMTIyMyAxOS44Nzg0QzQwLjQyNDcgMTYuMTgwOCAzNy41MTI4IDExLjg2NDkgMzUuMzkwMiA2LjkzNDJDMzQuNTc1NCA1LjA0NDQ5IDMzLjkyMDYgMy4xMDIwNCAzMy40MTg2IDEuMTEwNDlDMzMuMjU0OSAwLjQ1OTM2OCAzMi42NzExIDAuMDAxMDM3NiAzMiAwLjAwMTAzNzZDMzEuMzI4OCAwLjAwMTAzNzYgMzAuNzQ1IDAuNDU5MzY4IDMwLjU4MTMgMS4xMTA0OUMzMC4wNzkzIDMuMTAyMDQgMjkuNDI0NiA1LjA0MjY3IDI4LjYwOTcgNi45MzQyQzI2LjQ4NzIgMTEuODY0OSAyMy41NzUzIDE2LjE4MDggMTkuODc3NyAxOS44Nzg0QzE2LjE4IDIzLjU3NiAxMS44NjQgMjYuNDg3OCA2LjkzMzI3IDI4LjYxMDNDNS4wNDM1MyAyOS40MjUxIDMuMTAxMDUgMzAuMDc5OSAxLjEwOTQ3IDMwLjU4MTlDMC40NTgzMzggMzAuNzQ1NiAwIDMxLjMyOTQgMCAzMi4wMDA1QzAgMzIuNjcxNiAwLjQ1ODMzOCAzMy4yNTU1IDEuMTA5NDcgMzMuNDE5MUMzLjEwMTA1IDMzLjkyMTEgNS4wNDE3MiAzNC41NzU5IDYuOTMzMjcgMzUuMzkwN0MxMS44NjQgMzcuNTEzMiAxNi4xNzgyIDQwLjQyNTEgMTkuODc3NyA0NC4xMjI2QzIzLjU3NzEgNDcuODIwMiAyNi40ODcyIDUyLjEzNjEgMjguNjA5NyA1Ny4wNjY4QzI5LjQyNDYgNTguOTU2NSAzMC4wNzkzIDYwLjg5OSAzMC41ODEzIDYyLjg5MDVDMzAuNzQ1IDYzLjU0MTYgMzEuMzI4OCA2NCAzMiA2NEMzMi42NzExIDY0IDMzLjI1NDkgNjMuNTQxNiAzMy40MTg2IDYyLjg5MDVDMzMuOTIwNiA2MC44OTkgMzQuNTc1NCA1OC45NTgzIDM1LjM5MDIgNTcuMDY2OEMzNy41MTI4IDUyLjEzNjEgNDAuNDI0NyA0Ny44MjIgNDQuMTIyMyA0NC4xMjI2QzQ3LjgxOTkgNDAuNDI1MSA1Mi4xMzU5IDM3LjUxMzIgNTcuMDY2NyAzNS4zOTA3QzU4Ljk1NjQgMzQuNTc1OSA2MC44OTg5IDMzLjkyMTEgNjIuODkwNSAzMy40MTkxQzYzLjU0MTYgMzMuMjU1NSA2NCAzMi42NzE2IDY0IDMyLjAwMDVDNjQgMzEuMzI5NCA2My41NDE2IDMwLjc0NTYgNjIuODkwNSAzMC41ODE5QzYwLjg5ODkgMzAuMDc5OSA1OC45NTgyIDI5LjQyNTEgNTcuMDY2NyAyOC42MTAzWiIgZmlsbD0id2hpdGUiPjwvcGF0aD48bWFzayBpZD0ibWFzazBfMTA4NTlfNDg5NCIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeD0iMCIgeT0iMCIgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0Ij48cGF0aCBkPSJNMzIgMEMzMi42NzExIDEuMTQ0ZS0wNSAzMy4yNTUzIDAuNDU4MjYzIDMzLjQxODkgMS4xMDkzOEMzMy45MjA5IDMuMTAwOTMgMzQuNTc1OCA1LjA0Mzg5IDM1LjM5MDYgNi45MzM1OUMzNy41MTMxIDExLjg2MzkgNDAuNDI0NyAxNi4xNzk2IDQ0LjEyMjEgMTkuODc3QzQ3LjgyMTUgMjMuNTc0NSA1Mi4xMzU3IDI2LjQ4NjkgNTcuMDY2NCAyOC42MDk0QzU4Ljk1OCAyOS40MjQyIDYwLjg5OSAzMC4wNzkxIDYyLjg5MDYgMzAuNTgxMUM2My41NDE1IDMwLjc0NDggNjMuOTk5OCAzMS4zMjgxIDY0IDMxLjk5OUM2NCAzMi42NzAxIDYzLjU0MTcgMzMuMjU0MiA2Mi44OTA2IDMzLjQxOEM2MC44OTkgMzMuOTE5OSA1OC45NTYxIDM0LjU3NDggNTcuMDY2NCAzNS4zODk2QzUyLjEzNTggMzcuNTEyMSA0Ny44MTk2IDQwLjQyMzcgNDQuMTIyMSA0NC4xMjExQzQwLjQyNDYgNDcuODIwNCAzNy41MTMxIDUyLjEzNDkgMzUuMzkwNiA1Ny4wNjU0QzM0LjU3NTggNTguOTU3IDMzLjkyMDkgNjAuODk4MSAzMy40MTg5IDYyLjg4OTZDMzMuMjU1MiA2My41NDA3IDMyLjY3MTEgNjMuOTk5IDMyIDYzLjk5OUMzMS4zMjg5IDYzLjk5OSAzMC43NDQ4IDYzLjU0MDcgMzAuNTgxMSA2Mi44ODk2QzMwLjA3OTEgNjAuODk4MSAyOS40MjQyIDU4Ljk1NTEgMjguNjA5NCA1Ny4wNjU0QzI2LjQ4NjkgNTIuMTM0OSAyMy41NzczIDQ3LjgxODYgMTkuODc3OSA0NC4xMjExQzE2LjE3ODYgNDAuNDIzNyAxMS44NjQyIDM3LjUxMjEgNi45MzM1OSAzNS4zODk2QzUuMDQyMDQgMzQuNTc0OCAzLjEwMDk2IDMzLjkxOTkgMS4xMDkzOCAzMy40MThDMC40NTgzMDkgMzMuMjU0MiAwIDMyLjY3MDEgMCAzMS45OTlDMC4wMDAyMDE1NDggMzEuMzI4MSAwLjQ1ODQ2MyAzMC43NDQ4IDEuMTA5MzggMzAuNTgxMUMzLjEwMDk2IDMwLjA3OTEgNS4wNDM4NiAyOS40MjQyIDYuOTMzNTkgMjguNjA5NEMxMS44NjQzIDI2LjQ4NjkgMTYuMTgwNCAyMy41NzQ1IDE5Ljg3NzkgMTkuODc3QzIzLjU3NTMgMTYuMTc5NiAyNi40ODY5IDExLjg2MzkgMjguNjA5NCA2LjkzMzU5QzI5LjQyNDIgNS4wNDIwNyAzMC4wNzkxIDMuMTAwOTMgMzAuNTgxMSAxLjEwOTM4QzMwLjc0NDggMC40NTgyNiAzMS4zMjg5IDAgMzIgMFoiIGZpbGw9ImJsYWNrIj48L3BhdGg+PHBhdGggZD0iTTMyIDBDMzIuNjcxMSAxLjE0NGUtMDUgMzMuMjU1MyAwLjQ1ODI2MyAzMy40MTg5IDEuMTA5MzhDMzMuOTIwOSAzLjEwMDkzIDM0LjU3NTggNS4wNDM4OSAzNS4zOTA2IDYuOTMzNTlDMzcuNTEzMSAxMS44NjM5IDQwLjQyNDcgMTYuMTc5NiA0NC4xMjIxIDE5Ljg3N0M0Ny44MjE1IDIzLjU3NDUgNTIuMTM1NyAyNi40ODY5IDU3LjA2NjQgMjguNjA5NEM1OC45NTggMjkuNDI0MiA2MC44OTkgMzAuMDc5MSA2Mi44OTA2IDMwLjU4MTFDNjMuNTQxNSAzMC43NDQ4IDYzLjk5OTggMzEuMzI4MSA2NCAzMS45OTlDNjQgMzIuNjcwMSA2My41NDE3IDMzLjI1NDIgNjIuODkwNiAzMy40MThDNjAuODk5IDMzLjkxOTkgNTguOTU2MSAzNC41NzQ4IDU3LjA2NjQgMzUuMzg5NkM1Mi4xMzU4IDM3LjUxMjEgNDcuODE5NiA0MC40MjM3IDQ0LjEyMjEgNDQuMTIxMUM0MC40MjQ2IDQ3LjgyMDQgMzcuNTEzMSA1Mi4xMzQ5IDM1LjM5MDYgNTcuMDY1NEMzNC41NzU4IDU4Ljk1NyAzMy45MjA5IDYwLjg5ODEgMzMuNDE4OSA2Mi44ODk2QzMzLjI1NTIgNjMuNTQwNyAzMi42NzExIDYzLjk5OSAzMiA2My45OTlDMzEuMzI4OSA2My45OTkgMzAuNzQ0OCA2My41NDA3IDMwLjU4MTEgNjIuODg5NkMzMC4wNzkxIDYwLjg5ODEgMjkuNDI0MiA1OC45NTUxIDI4LjYwOTQgNTcuMDY1NEMyNi40ODY5IDUyLjEzNDkgMjMuNTc3MyA0Ny44MTg2IDE5Ljg3NzkgNDQuMTIxMUMxNi4xNzg2IDQwLjQyMzcgMTEuODY0MiAzNy41MTIxIDYuOTMzNTkgMzUuMzg5NkM1LjA0MjA0IDM0LjU3NDggMy4xMDA5NiAzMy45MTk5IDEuMTA5MzggMzMuNDE4QzAuNDU4MzA5IDMzLjI1NDIgMCAzMi42NzAxIDAgMzEuOTk5QzAuMDAwMjAxNTQ4IDMxLjMyODEgMC40NTg0NjMgMzAuNzQ0OCAxLjEwOTM4IDMwLjU4MTFDMy4xMDA5NiAzMC4wNzkxIDUuMDQzODYgMjkuNDI0MiA2LjkzMzU5IDI4LjYwOTRDMTEuODY0MyAyNi40ODY5IDE2LjE4MDQgMjMuNTc0NSAxOS44Nzc5IDE5Ljg3N0MyMy41NzUzIDE2LjE3OTYgMjYuNDg2OSAxMS44NjM5IDI4LjYwOTQgNi45MzM1OUMyOS40MjQyIDUuMDQyMDcgMzAuMDc5MSAzLjEwMDkzIDMwLjU4MTEgMS4xMDkzOEMzMC43NDQ4IDAuNDU4MjYgMzEuMzI4OSAwIDMyIDBaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTA4NTlfNDg5NCkiPjwvcGF0aD48L21hc2s+PGcgbWFzaz0idXJsKCNtYXNrMF8xMDg1OV80ODk0KSI+PGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZl8xMDg1OV80ODk0KSI+PGVsbGlwc2UgY3g9IjE0LjIwODQiIGN5PSIxNi43MTY0IiByeD0iMTQuMjA4NCIgcnk9IjE2LjcxNjQiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTQyMzQzIDAuMzM0NjQ5IC0wLjMzNDY1NiAwLjk0MjM0IC03Ljk3OSAxMy43NzM1KSIgZmlsbD0iI0ZGRTQzMiI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyMV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMjcuMDU0MyIgY3k9IjIuNTUxMTQiIHJ4PSIxOC4zOTQ0IiByeT0iMTguNzk4NSIgZmlsbD0iI0ZDNDEzRCI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyMl9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMTkuMjI0NSIgY3k9IjI0LjkwNDIiIHJ4PSIxOS4yMjQ1IiByeT0iMjQuOTA0MiIgdHJhbnNmb3JtPSJtYXRyaXgoMC45OTg4MDcgLTAuMDQ4ODI1NCAwLjA0ODgyNjYgMC45OTg4MDcgLTEuNzI3NzggMzIuNjU3MykiIGZpbGw9IiMwMEI5NUMiPjwvZWxsaXBzZT48L2c+PGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjNfZl8xMDg1OV80ODk0KSI+PGVsbGlwc2UgY3g9IjE5LjIyNDUiIGN5PSIyNC45MDQyIiByeD0iMTkuMjI0NSIgcnk9IjI0LjkwNDIiIHRyYW5zZm9ybT0ibWF0cml4KDAuOTk4ODA3IC0wLjA0ODgyNTQgMC4wNDg4MjY2IDAuOTk4ODA3IC0xLjcyNzc4IDMyLjY1NzMpIiBmaWxsPSIjMDBCOTVDIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI0X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIxOC44NDI5IiBjeT0iMjAuNzQ0MSIgcng9IjE4Ljg0MjkiIHJ5PSIyMC43NDQxIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg1NDMwMSAtMC41MTk3NzkgMC41MTk3OSAwLjg1NDI5NCAtNy4xMzU3NCA0Ny41MDc4KSIgZmlsbD0iIzAwQjk1QyI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyNV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iNjYuNDYxNyIgY3k9IjI0Ljk3NyIgcng9IjE4LjA5MzMiIHJ5PSIxNy40MjI5IiBmaWxsPSIjMzE4NkZGIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI2X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIyMC45MjkyIiBjeT0iMjIuMDc1MiIgcng9IjIwLjkyOTIiIHJ5PSIyMi4wNzUyIiB0cmFuc2Zvcm09Im1hdHJpeCgwLjc5NTk5IDAuNjA1MzEgLTAuNjA1MzIgMC43OTU5ODIgLTIuODE4ODUgLTcuNDMzMjMpIiBmaWxsPSIjRkJCQzA0Ij48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI3X2ZfMTA4NTlfNDg5NCkiPjxlbGxpcHNlIGN4PSIyNC4xMzExIiBjeT0iMjIuMjkxOSIgcng9IjI0LjEzMTEiIHJ5PSIyMi4yOTE5IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjgyNDAzNyAwLjU2NjUzNiAtMC41NjY1NDYgMC44MjQwMyAzOS42MzM4IDAuMzEwNjA4KSIgZmlsbD0iIzMxODZGRiI+PC9lbGxpcHNlPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyOF9mXzEwODU5XzQ4OTQpIj48cGF0aCBkPSJNNTQuMjI1NSAtMi4zMDQwM0M1Ny4wMTk1IDEuNDk0NjIgNTMuNDI5NCA4Ljg4MDQgNDYuMjA2OCAxNC4xOTI2QzM4Ljk4NDIgMTkuNTA0OCAzMC44NjQyIDIwLjczMTggMjguMDcwMiAxNi45MzMxQzI1LjI3NjIgMTMuMTM0NSAyOC44NjYzIDUuNzQ4NjcgMzYuMDg4OSAwLjQzNjQ4NkM0My4zMTE1IC00Ljg3NTcgNTEuNDMxNSAtNi4xMDI2NyA1NC4yMjU1IC0yLjMwNDAzWiIgZmlsbD0iIzc0OUJGRiI+PC9wYXRoPjwvZz48ZyBmaWx0ZXI9InVybCgjZmlsdGVyOV9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMjcuNTg1MyIgY3k9IjE3LjE0NzgiIHJ4PSIyNy41ODUzIiByeT0iMTcuMTQ3OCIgdHJhbnNmb3JtPSJtYXRyaXgoMC43MzMxNjYgLTAuNjgwMDQ5IDAuNjgwMDYxIDAuNzMzMTU1IC0xMi4yNTgzIDkuNDk2OTUpIiBmaWxsPSIjRkM0MTNEIj48L2VsbGlwc2U+PC9nPjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIxMF9mXzEwODU5XzQ4OTQpIj48ZWxsaXBzZSBjeD0iMTQuNzgxOSIgY3k9IjguNTk2MzciIHJ4PSIxNC43ODE5IiByeT0iOC41OTYzNyIgdHJhbnNmb3JtPSJtYXRyaXgoMC44MTMxODYgMC41ODIwMDQgLTAuNTgyMDE2IDAuODEzMTc3IDYuMzc4NDIgMzAuNTExKSIgZmlsbD0iI0ZGRUU0OCI+PC9lbGxpcHNlPjwvZz48L2c+PGRlZnM+PGZpbHRlciBpZD0iZmlsdGVyMF9mXzEwODU5XzQ4OTQiIHg9Ii0xOS42MTgiIHk9IjEyLjkwMjciIHdpZHRoPSIzOC44NjgxIiBoZWlnaHQ9IjQyLjc1NjIiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMi40NTk2NSIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyMV9mXzEwODU5XzQ4OTQiIHg9Ii0xNS4xMjIzIiB5PSItNDAuMDI5NiIgd2lkdGg9Ijg0LjM1MzMiIGhlaWdodD0iODUuMTYxNSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ij48L2ZlRmxvb2Q+PGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiPjwvZmVCbGVuZD48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxMS44OTExIiByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMTA4NTlfNDg5NCI+PC9mZUdhdXNzaWFuQmx1cj48L2ZpbHRlcj48ZmlsdGVyIGlkPSJmaWx0ZXIyX2ZfMTA4NTlfNDg5NCIgeD0iLTIwLjc2ODIiIHk9IjExLjQ4MzUiIHdpZHRoPSI3OC45MTYxIiBoZWlnaHQ9IjkwLjIxOTYiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMTAuMTA4NiIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyM19mXzEwODU5XzQ4OTQiIHg9Ii0yMC43NjgyIiB5PSIxMS40ODM1IiB3aWR0aD0iNzguOTE2MSIgaGVpZ2h0PSI5MC4yMTk2IiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEwLjEwODYiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjRfZl8xMDg1OV80ODk0IiB4PSItMTkuODUiIHk9IjE0Ljk2NjQiIHdpZHRoPSI3OS4xODg2IiBoZWlnaHQ9IjgwLjkzNzgiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMTAuMTA4NiIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyNV9mXzEwODU5XzQ4OTQiIHg9IjI5LjE1NjEiIHk9Ii0xMS42NTgyIiB3aWR0aD0iNzQuNjExMSIgaGVpZ2h0PSI3My4yNzAzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjkuNjA2MTMiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjZfZl8xMDg1OV80ODk0IiB4PSItMzguMjkxIiB5PSItMTYuMjY4NyIgd2lkdGg9Ijc3LjUzOCIgaGVpZ2h0PSI3OC4xNTEzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjguNzA1OTEiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjdfZl8xMDg1OV80ODk0IiB4PSI3Ljc4MDM4IiB5PSItNi4wOTgxIiB3aWR0aD0iNzguMjE4MSIgaGVpZ2h0PSI3Ni44OTgyIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjcuNzc0NzMiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjhfZl8xMDg1OV80ODk0IiB4PSIxMy4yMDgyIiB5PSItMTguNDI1IiB3aWR0aD0iNTUuODc5MyIgaGVpZ2h0PSI1MS40NzkxIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiPjwvZmVGbG9vZD48ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSI+PC9mZUJsZW5kPjxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjYuOTU2OTQiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8xMDg1OV80ODk0Ij48L2ZlR2F1c3NpYW5CbHVyPjwvZmlsdGVyPjxmaWx0ZXIgaWQ9ImZpbHRlcjlfZl8xMDg1OV80ODk0IiB4PSItMTUuNDczOSIgeT0iLTMxLjAyNzIiIHdpZHRoPSI3MC4yMDM0IiBoZWlnaHQ9IjY4LjY3MzUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCI+PC9mZUZsb29kPjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIj48L2ZlQmxlbmQ+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iNS44NzU5OCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzEwODU5XzQ4OTQiPjwvZmVHYXVzc2lhbkJsdXI+PC9maWx0ZXI+PGZpbHRlciBpZD0iZmlsdGVyMTBfZl8xMDg1OV80ODk0IiB4PSItMTQuMTczIiB5PSIyMC40NzQiIHdpZHRoPSI1NS4xMzczIiBoZWlnaHQ9IjUxLjI2MSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ij48L2ZlRmxvb2Q+PGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiPjwvZmVCbGVuZD48ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI3LjI3MjUzIiByZXN1bHQ9ImVmZmVjdDFfZm9yZWdyb3VuZEJsdXJfMTA4NTlfNDg5NCI+PC9mZUdhdXNzaWFuQmx1cj48L2ZpbHRlcj48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTA4NTlfNDg5NCIgeDE9IjE4LjE5MzEiIHkxPSI0Mi44MjEiIHgyPSI1MS40MzM1IiB5Mj0iMTQuNzk1OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiM0ODkzRkMiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuMjciIHN0b3AtY29sb3I9IiM0ODkzRkMiPjwvc3RvcD48c3RvcCBvZmZzZXQ9IjAuNzc2OTgxIiBzdG9wLWNvbG9yPSIjOTY5REZGIj48L3N0b3A+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQkQ5OUZFIj48L3N0b3A+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PC9zdmc+Cg=="},"displayName":"Google Gemini","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":35,"name":"Document Extraction"},{"id":49,"name":"AI Summarization"}],"image":[]}}