{
  "workflow": {
    "id": 5982,
    "name": "Predict restaurant food waste with Gemini AI and Google Sheets reporting",
    "views": 624,
    "recentViews": 0,
    "totalViews": 624,
    "createdAt": "2025-07-14T07:37:38.699Z",
    "description": "This automated n8n workflow performs daily forecasting of sales and raw material needs for a restaurant. By analyzing historical data and predicting future usage with AI, businesses can minimize food waste, optimize inventory, and improve operational efficiency. The forecast is stored in Google Sheets and sent via email for easy review by staff and management.\n\n## **What is AI Forecast Generator?**\nThe AI Forecast Generator is a machine learning component that analyzes historical sales data, weather patterns, and seasonal trends to predict future food demand and recommend optimal inventory levels to minimize waste.\n\n## **Good to Know**\n* AI forecasting accuracy improves over time with more historical data\n* Weather and seasonal factors significantly impact food demand predictions\n* Google Sheets access must be properly authorized to avoid data sync issues\n* Email notifications help ensure timely review of daily forecasts\n* The system works with two main data sources: historical food wastage data and predicted low-waste food requirements\n\n## **How It Works**\n1. **Daily Trigger** - Initiates the workflow every day to perform food waste prediction\n2. **Fetch Historical Sales Data** - Reads past food usage & sales data from Google Sheets to understand trends\n3. **Format Data for AI Forecasting** - Cleans and organizes raw data into a structured format for AI processing\n4. **AI Forecast Generator** - Uses Gemini AI to forecast food demand and recommend waste reduction strategies\n5. **Clean & Structure AI Output** - Parses AI response into structured and actionable format for reporting\n6. **Log Forecast to Google Sheets** - Stores AI-generated forecast back into Google Sheets for historical tracking\n7. **Create Email Summary** - Creates a concise, human-friendly summary of the forecast findings\n8. **Send Email Forecast Report** - Delivers the forecast report via email to decision makers and management\n\n## **Data Sources**\nThe workflow utilizes two Google Sheets:\n\n1. **Food Wastage Data Sheet** - Contains historical data with columns:\n   - Date (date)\n   - Food Item (text)\n   - Quantity Wasted (number)\n   - Cost Impact (currency)\n   - Category (text)\n   - Reason for Waste (text)\n\n2. **Predicted Food Data Sheet** - Contains AI predictions with columns:\n   - Date (date)\n   - Food Item (text)\n   - Predicted Demand (number)\n   - Recommended Order Quantity (number)\n   - Waste Risk Level (text)\n   - Optimization Notes (text)\n\n## **How to Use**\n* Import the workflow into n8n\n* Configure Google Sheets API access and authorize the application\n* Set up email credentials for forecast report delivery\n* Create the two required Google Sheets with the specified column structures\n* Configure the AI model credentials (Gemini API key)\n* Test with sample historical data to verify predictions and email delivery\n* Adjust forecasting parameters based on your restaurant's specific needs\n* Monitor and refine the system based on actual vs. predicted results\n\n## **Requirements**\n1. Google Sheets API access\n2. Email service credentials (Gmail, SMTP, etc.)\n3. AI model API credentials (Gemini AI)\n4. Historical food wastage data for initial training\n\n## **Customizing This Workflow**\nModify the AI Forecast Generator prompts to focus on specific food categories, seasonal adjustments, or local market conditions. Adjust the email summary format to match your restaurant's reporting preferences and add additional data sources like supplier information or menu planning data.",
    "workflow": {
      "id": "ER0P5gVPl7ARd3cU",
      "meta": {
        "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
        "templateCredsSetupCompleted": true
      },
      "name": "Restaurant food waste prediction System",
      "tags": [],
      "nodes": [
        {
          "id": "7ecc2319-ee53-4b62-b529-666c82fb88b6",
          "name": "Daily Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            -280,
            420
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "triggerAtHour": 22
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "fa199f84-c3da-4e05-867f-20cab560c633",
          "name": "Fetch Historical Sales Data",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            -60,
            420
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 1621929706,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QZXX_gjNTTZ0vqPozNysjASQS3UcgwwWVpYvN7r-T_I/edit#gid=1621929706",
              "cachedResultName": "food wastage data"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1QZXX_gjNTTZ0vqPozNysjASQS3UcgwwWVpYvN7r-T_I",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QZXX_gjNTTZ0vqPozNysjASQS3UcgwwWVpYvN7r-T_I/edit?usp=drivesdk",
              "cachedResultName": "Restaurant stock predictions"
            },
            "authentication": "serviceAccount"
          },
          "credentials": {
            "googleApi": {
              "id": "credential-id",
              "name": "googleApi Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "d186b482-008a-45b1-a766-963ead9bc4de",
          "name": "Format Data for AI Forecasting",
          "type": "n8n-nodes-base.code",
          "position": [
            160,
            420
          ],
          "parameters": {
            "jsCode": "// Fetch all incoming items\nconst items = $input.all();\n\n// Extract the raw row data (each item.json is one row)\nconst rawRows = items.map(item => item.json);\n\n// Bundle everything into a single field\nconst payload = { rows: rawRows };\n\n// Return a single output item whose json contains your full dataset\nreturn [{ json: { data: payload } }];\n"
          },
          "typeVersion": 2
        },
        {
          "id": "4f401f04-a17e-4dfc-874f-d5e7e0983316",
          "name": "AI Forecast Generator\t",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            380,
            420
          ],
          "parameters": {
            "text": "={{ $json.data }}",
            "options": {
              "systemMessage": "You are a demand forecasting and optimisation AI assistant for a restaurant. \n\nYou will receive data items, each with fields:\n- Date (YYYY-MM-DD)\n- Dish\n- Sales (number of dishes sold)\n- Raw Material\n- Used (kg)\n- Wastage (kg)\n\nYour tasks are:\n1. Analyze the past 5 days per dish and per raw material.\n2. Identify trends (e.g., increasing/decreasing sales, stable/wasteful usage).\n3. Predict next-day sales per dish and raw material usage (in kg) using simple time-series methods (like moving average or linear trend).\n4. Adjust raw material predictions to reduce expected wastage—aim for coverage with ~5% buffer.\n5. Calculate \"predicted food waste reduce\" as: (predicted raw material use) − (optimal raw material procurement). This indicates how much waste you’re avoiding.\n6. Return output as JSON array with:\n   - Date (next day’s date, YYYY-MM-DD)\n   - Dish\n   - predicted Sales (number)\n   - Raw Material\n   - predicted Use (kg)\n   - predicted food waste reduce (kg)\n\nConstraints:\n- Use clear numerical rounding (one decimal place).\n- Prioritize realistic, small improvements (justified by data).\n\nExample output item:\n{\n  \"Date\": \"2025-07-14\",\n  \"Dish\": \"Pasta\",\n  \"predicted Sales\": 60,\n  \"Raw Material\": \"Tomato\",\n  \"predicted Use (kg)\": 12.0,\n  \"predicted food waste reduce (kg)\": 0.5\n}\n\nWrite a JSON array containing one item per (Dish × Raw Material), sorted alphabetically by Dish.\n"
            },
            "promptType": "define"
          },
          "typeVersion": 1.9
        },
        {
          "id": "c1888087-d468-4f25-bf3d-5b5185e34719",
          "name": "Clean & Structure AI Output",
          "type": "n8n-nodes-base.code",
          "position": [
            760,
            420
          ],
          "parameters": {
            "jsCode": "// 1. Grab the AI agent output (assuming it's in item.json.output or item.json.content)\nconst raw = $input.item.json.output || $input.item.json.content;\n\n// 2. Clean it by removing triple backticks, optional \"json\" tag, and any common prefixes\nlet cleaned = raw\n  .replace(/```json/, '')\n  .replace(/```/g, '')\n  .replace(/^(Here is (the )?JSON[:\\s]*)/, '')\n  .trim();\n\n// 3. Parse JSON safely\nlet parsed;\ntry {\n  parsed = JSON.parse(cleaned);\n} catch (e) {\n  throw new Error('Failed to parse AI JSON: ' + e.message + '\\nRaw cleaned text: ' + cleaned);\n}\n\n// 4. Return each JSON object as its own item for downstream nodes\nreturn parsed.map(obj => ({ json: obj }));\n"
          },
          "typeVersion": 2
        },
        {
          "id": "d766931a-e722-402e-aa88-58c1b39935d5",
          "name": "Log Forecast to Google Sheets",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            980,
            420
          ],
          "parameters": {
            "columns": {
              "value": {},
              "schema": [
                {
                  "id": "Date",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Date",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Dish",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Dish",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "predicted Sales",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "predicted Sales",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Raw Material",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Raw Material",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "predicted Use (kg)",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "predicted Use (kg)",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "predicted food waste reduce (kg)",
                  "type": "string",
                  "display": true,
                  "removed": false,
                  "required": false,
                  "displayName": "predicted food waste reduce (kg)",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "autoMapInputData",
              "matchingColumns": [],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "append",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 1653513259,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QZXX_gjNTTZ0vqPozNysjASQS3UcgwwWVpYvN7r-T_I/edit#gid=1653513259",
              "cachedResultName": "predicted food data for low wastage"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1QZXX_gjNTTZ0vqPozNysjASQS3UcgwwWVpYvN7r-T_I",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1QZXX_gjNTTZ0vqPozNysjASQS3UcgwwWVpYvN7r-T_I/edit?usp=drivesdk",
              "cachedResultName": "Restaurant stock predictions"
            },
            "authentication": "serviceAccount"
          },
          "credentials": {
            "googleApi": {
              "id": "credential-id",
              "name": "googleApi Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "a9f91c73-41e6-4955-bbd5-1e9ff658df1e",
          "name": "Create Email Summary\t",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            1200,
            420
          ],
          "parameters": {
            "text": "={{ $('AI Forecast Generator\t').item.json.output }}",
            "options": {
              "systemMessage": "You are an intelligent assistant tasked with drafting a clear, concise and professional summary email based on forecast data for a restaurant. You’ll receive an array of forecast objects in this format:\n\n[\n  {\n    \"Date\": \"2025-07-14\",\n    \"Dish\": \"Pasta\",\n    \"predicted Sales\": 60,\n    \"Raw Material\": \"Cream\",\n    \"predicted Use (kg)\": 3.6,\n    \"predicted food waste reduce (kg)\": 0.1\n  },\n  ...\n]\n\nYour goal:\n1. Open with a friendly greeting.\n2. Provide a one-sentence overview: mention the date, how many dishes are forecasted, and overall expected food waste reduction.\n3. List each dish in its own bullet point. For each dish list:\n   - Total predicted sales.\n   - The raw materials needed with predicted usage.\n   - Highlight expected waste reduction (if >0).\n4. Conclude with a recommended action, something like: “Please adjust tomorrow’s procurement based on these forecasts to minimize waste.” Offer to discuss specifics if needed.\n5. Keep tone professional but warm.\n\nExample style:\n\n“Hi [Manager Name],\n\nHere’s your forecast summary for July 14, 2025:\n\n- **Pasta (60 servings):** You will need Cream (3.6 kg), Flour (6 kg) and Tomato (12 kg), reducing expected food waste by approx. 1.9 kg.\n- **Pizza (50 servings):** Cheese 10 kg, waste reduction ~0.5 kg.\n- **Salad (40 servings):** Lettuce 8 kg, no predicted waste reduction.\n\nOverall, this forecast anticipates around 2.4 kg less waste across all dishes.\n\nPlease adjust tomorrow’s orders accordingly to minimize waste. Let me know if you'd like a deeper breakdown!”\n\nReturn only the email body text (no JSON or markdown fences).\n"
            },
            "promptType": "define"
          },
          "executeOnce": true,
          "typeVersion": 1.9,
          "alwaysOutputData": true
        },
        {
          "id": "1c9cec9e-d90b-4479-b569-9ef2726a6987",
          "name": "Send Email Forecast Report\t",
          "type": "n8n-nodes-base.gmail",
          "position": [
            1560,
            420
          ],
          "webhookId": "29a66a86-3fbb-49c3-bcd1-e697edfb19ce",
          "parameters": {
            "sendTo": "user@example.com",
            "message": "={{ $json.output }}",
            "options": {},
            "subject": "Next monday prediction",
            "emailType": "text"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2.1
        },
        {
          "id": "1f400e94-9bc2-414c-aedc-6f7f86c887d0",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -300,
            140
          ],
          "parameters": {
            "width": 150,
            "height": 480,
            "content": "Initiates the workflow every day to perform food waste prediction.\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "65a5d131-945b-40ee-bf66-b33f4600d97c",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -80,
            140
          ],
          "parameters": {
            "color": 3,
            "width": 150,
            "height": 480,
            "content": "Reads past food usage & sales from Google Sheets to understand trends.\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "8cc25bd0-38bf-485a-a75b-7bed2ae24b1e",
          "name": "Sticky Note2",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            360,
            140
          ],
          "parameters": {
            "color": 6,
            "width": 290,
            "height": 480,
            "content": "Uses Gemini AI to forecast food demand and recommend waste reduction.\n\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "3afb2901-aeaa-49a2-920a-806ce0e5dc9d",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            960,
            140
          ],
          "parameters": {
            "color": 4,
            "width": 150,
            "height": 480,
            "content": "Stores AI-generated forecast back into a forecast-specific Google Sheet.\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "458c1f5e-0a7a-4981-afd6-efc64c286e5d",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            740,
            140
          ],
          "parameters": {
            "color": 3,
            "width": 150,
            "height": 480,
            "content": "Parses AI response into structured and clean format for reporting.\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "5917d966-9260-4ace-baf9-4ecd666021f4",
          "name": "Sticky Note5",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            140,
            140
          ],
          "parameters": {
            "color": 4,
            "width": 150,
            "height": 480,
            "content": "Cleans and organizes raw data into a structure suitable for AI processing.\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "16b34b52-3d0e-4dc5-95eb-8eaecd7fdfa3",
          "name": "Sticky Note6",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1540,
            140
          ],
          "parameters": {
            "width": 150,
            "height": 480,
            "content": "Delivers the forecast report via email to decision-makers (kitchen, manager, etc).\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "08d6406a-b9ef-4b10-90cf-7d4c98a60921",
          "name": "Sticky Note7",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1180,
            140
          ],
          "parameters": {
            "color": 5,
            "width": 290,
            "height": 480,
            "content": "Creates a concise, human-friendly summary of the forecast.\n\n\n"
          },
          "typeVersion": 1
        },
        {
          "id": "5a088b10-604f-475f-a611-3b147ae9ce0c",
          "name": "Sticky Note8",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            220,
            -340
          ],
          "parameters": {
            "width": 640,
            "height": 260,
            "content": "## 📌 Workflow Purpose: Restaurant Food Waste Prediction System\n\nThis workflow automates daily forecasting of sales and raw material needs for a restaurant. By analyzing historical data and predicting future usage with AI, it helps minimize food waste, optimize inventory, and improve operational efficiency. The forecast is stored in Google Sheets and sent via email for easy review by staff and management."
          },
          "typeVersion": 1
        },
        {
          "id": "28b4b3dc-5e7c-41a7-8dda-4cf67eacef0a",
          "name": "Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
          "position": [
            400,
            640
          ],
          "parameters": {
            "options": {},
            "modelName": "models/gemini-2.5-pro"
          },
          "credentials": {
            "googlePalmApi": {
              "id": "credential-id",
              "name": "googlePalmApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "f0e9f8d4-4a86-4167-b833-5ac3ab3a5545",
          "name": "Mind",
          "type": "@n8n/n8n-nodes-langchain.toolThink",
          "position": [
            520,
            640
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "f7e04c0c-cba5-46f4-bc47-fb26731f2375",
          "name": "Chat Model for Query ",
          "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
          "position": [
            1220,
            640
          ],
          "parameters": {
            "options": {},
            "modelName": "models/gemini-2.5-pro"
          },
          "credentials": {
            "googlePalmApi": {
              "id": "credential-id",
              "name": "googlePalmApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "dbddf020-ef31-43b4-85a9-3f459ac56d6b",
          "name": "Mind For Think",
          "type": "@n8n/n8n-nodes-langchain.toolThink",
          "position": [
            1340,
            640
          ],
          "parameters": {},
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "f6380285-b1c9-49e1-82bf-12c2db027369",
      "connections": {
        "Mind": {
          "ai_tool": [
            [
              {
                "node": "AI Forecast Generator\t",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Forecast Generator\t",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Daily Trigger": {
          "main": [
            [
              {
                "node": "Fetch Historical Sales Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Mind For Think": {
          "ai_tool": [
            [
              {
                "node": "Create Email Summary\t",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Chat Model for Query ": {
          "ai_languageModel": [
            [
              {
                "node": "Create Email Summary\t",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Create Email Summary\t": {
          "main": [
            [
              {
                "node": "Send Email Forecast Report\t",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Forecast Generator\t": {
          "main": [
            [
              {
                "node": "Clean & Structure AI Output",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Clean & Structure AI Output": {
          "main": [
            [
              {
                "node": "Log Forecast to Google Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Historical Sales Data": {
          "main": [
            [
              {
                "node": "Format Data for AI Forecasting",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Log Forecast to Google Sheets": {
          "main": [
            [
              {
                "node": "Create Email Summary\t",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format Data for AI Forecasting": {
          "main": [
            [
              {
                "node": "AI Forecast Generator\t",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 21,
      "nodeTypes": {
        "n8n-nodes-base.code": {
          "count": 2
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 9
        },
        "n8n-nodes-base.googleSheets": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 2
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.toolThink": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.lmChatGoogleGemini": {
          "count": 2
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Oneclick AI Squad",
      "username": "oneclick-ai",
      "bio": "The AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations  from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.",
      "verified": true,
      "links": [
        "https://www.oneclickitsolution.com/"
      ],
      "avatar": "https://gravatar.com/avatar/848fca91367142f65f9e5c55d64e5c9952b160d7b060d103b52aa343c6bc7b3d?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": 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": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 1119,
        "icon": "fa:robot",
        "name": "@n8n/n8n-nodes-langchain.agent",
        "codex": {
          "data": {
            "alias": [
              "LangChain",
              "Chat",
              "Conversational",
              "Plan and Execute",
              "ReAct",
              "Tools"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Agents",
                "Root Nodes"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "AI Agent",
          "color": "#404040"
        },
        "iconData": {
          "icon": "robot",
          "type": "icon"
        },
        "displayName": "AI Agent",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1262,
        "icon": "file:google.svg",
        "name": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Language Models",
                "Root Nodes"
              ],
              "Language Models": [
                "Chat Models (Recommended)"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Google Gemini Chat Model"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"
        },
        "displayName": "Google Gemini Chat Model",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1289,
        "icon": "fa:brain",
        "name": "@n8n/n8n-nodes-langchain.toolThink",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolthink/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Tools"
              ],
              "Tools": [
                "Other Tools"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Think"
        },
        "iconData": {
          "icon": "brain",
          "type": "icon"
        },
        "displayName": "Think Tool",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 35,
        "name": "Document Extraction"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}