{
  "workflow": {
    "id": 7450,
    "name": "Natural language Google Sheets data analysis with Gemini AI",
    "views": 1299,
    "recentViews": 1,
    "totalViews": 1299,
    "createdAt": "2025-08-15T18:11:40.313Z",
    "description": "\nThis n8n workflow template creates an efficient data analysis system that uses Google Gemini AI to interpret user questions about spreadsheet data and processes them through a specialized sub-workflow for optimized token usage and faster responses.\n\n## What This Workflow Does\n\n- **Smart Query Parsing**: Uses Gemini AI to understand natural language questions about your data\n- **Efficient Processing**: Routes calculations through a dedicated sub-workflow to minimize token consumption\n- **Structured Output**: Automatically identifies the column, aggregation type, and grouping levels from user queries\n- **Multiple Aggregation Types**: Supports sum, average, count, count distinct, min, and max operations\n- **Flexible Grouping**: Can aggregate data by single or multiple dimensions\n- **Token Optimization**: Processes large datasets without overwhelming AI context limits\n\n## Tools Used\n\n- **Google Gemini Chat Model** - Natural language query understanding and response formatting\n- **Google Sheets Tool** - Data access and column metadata extraction\n- **Execute Workflow** - Sub-workflow processing for data calculations\n- **Structured Output Parser** - Converts AI responses to actionable parameters\n- **Memory Buffer Window** - Basic conversation context management\n- **Switch Node** - Routes to appropriate aggregation method\n- **Summarize Nodes** - Performs various data aggregations\n\n## 📋 MAIN WORKFLOW - Query Parser\n\n### What This Workflow Does\nThe main workflow receives natural language questions from users and converts them into structured parameters that the sub-workflow can process. It uses Google Gemini AI to understand the intent and extract the necessary information.\n\n### Prerequisites for Main Workflow\n- Google Cloud Platform account with Gemini API access\n- Google account with access to Google Sheets\n- n8n instance (cloud or self-hosted)\n\n### Main Workflow Setup Instructions\n\n#### 1. Import the Main Workflow\n1. Copy the main workflow JSON provided\n2. In your n8n instance, go to **Workflows** → **Import from JSON**\n3. Paste the JSON and click **Import**\n4. Save with name: \"Gemini Data Query Parser\"\n\n#### 2. Set Up Google Gemini Connection\n1. Go to [Google AI Studio](https://aistudio.google.com/)\n2. Sign in with your Google account\n3. Go to **Get API Key** section\n4. Create a new API key or use an existing one\n5. Copy the API key\n\n**Configure in n8n:**\n1. Click on **Google Gemini Chat Model** node\n2. Click **Create New Credential**\n3. Select **Google PaLM API**\n4. Paste your API key\n5. Save the credential\n\n#### 3. Set Up Google Sheets Connection for Main Workflow\n1. Go to [Google Cloud Console](https://console.cloud.google.com/)\n2. Create a new project or select existing one\n3. Enable the **Google Sheets API**\n4. Create OAuth 2.0 Client ID credentials\n5. In n8n, click on **Get Column Info** node\n6. Create **Google Sheets OAuth2 API** credential\n7. Complete OAuth flow\n\n#### 4. Configure Your Data Source\n**Option A: Use Sample Data**\n- The workflow is pre-configured for: [Sample Marketing Data](https://docs.google.com/spreadsheets/d/19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA/edit?usp=drivesdk)\n- Make a copy to your Google Drive\n\n**Option B: Use Your Own Sheet**\n1. Update **Get Column Info** node with your Sheet ID\n2. Ensure you have a \"Columns\" sheet for metadata\n3. Update sheet references as needed\n\n#### 5. Set Up Workflow Trigger\n1. Configure how you want to trigger this workflow (webhook, manual, etc.)\n2. The workflow will output structured JSON for the sub-workflow\n\n---\n\n## ⚙️ SUB-WORKFLOW - Data Processor\n\n### What This Workflow Does\nThe sub-workflow receives structured parameters from the main workflow and performs the actual data calculations. It handles fetching data, routing to appropriate aggregation methods, and formatting results.\n\n### Sub-Workflow Setup Instructions\n\n#### 1. Import the Sub-Workflow\n1. Create a new workflow in n8n\n2. Copy the sub-workflow JSON (embedded in the Execute Workflow node)\n3. Import as a separate workflow\n4. Save with name: \"Data Processing Sub-Workflow\"\n\n#### 2. Configure Google Sheets Connection for Sub-Workflow\n1. Apply the same Google Sheets OAuth2 credential you created for the main workflow\n2. Update the **Get Data** node with your Sheet ID\n3. Ensure it points to your data sheet (e.g., \"Data\" sheet)\n\n#### 3. Configure Google Gemini for Output Formatting\n1. Apply the same Gemini API credential to the **Google Gemini Chat Model1** node\n2. This handles final result formatting\n\n#### 4. Link Workflows Together\n1. In the main workflow, find the **Execute Workflow - Summarize Data** node\n2. Update the workflow reference to point to your sub-workflow\n3. Ensure the sub-workflow is set to accept execution from other workflows\n\n### Sub-Workflow Components\n- **When Executed by Another Workflow**: Trigger that receives parameters\n- **Get Data**: Fetches all data from Google Sheets\n- **Type of Aggregation**: Switch node that routes based on aggregation type\n- **Multiple Summarize Nodes**: Handle different aggregation types (sum, avg, count, etc.)\n- **Bring All Data Together**: Combines results from different aggregation paths\n- **Write into Table Output**: Formats final results using Gemini AI\n\n### Example Usage\n\nOnce both workflows are set up, you can ask questions like:\n\n**Overall Metrics:**\n- \"Show total Spend ($)\"\n- \"Show total Clicks\"\n- \"Show average Conversions\"\n\n**Single Dimension:**\n- \"Show total Spend ($) by Channel\"\n- \"Show total Clicks by Campaign\"\n\n**Two Dimensions:**\n- \"Show total Spend ($) by Channel and Campaign\"\n- \"Show average Clicks by Channel and Campaign\"\n\n### Data Flow Between Workflows\n1. **Main Workflow**: User question → Gemini AI → Structured JSON output\n2. **Sub-Workflow**: Receives JSON → Fetches data → Performs calculations → Returns formatted table\n\n\n\n---\n\n## Contact Information\n\n\nFor support, customization, or questions about this template:\n\n- **Email**: robert@ynteractive.com\n- **LinkedIn**: [Robert Breen](https://www.linkedin.com/in/robert-breen-29429625/)\n\n*Need help implementing these workflows, want to remove limitations, or require custom modifications? Reach out for professional n8n automation services and AI integration support.*",
    "workflow": {
      "meta": {
        "instanceId": "ad0113c344ee237399e44e9f11798b05baeb83a6196d514a9ae9d2ad71c3b5c9",
        "templateCredsSetupCompleted": true
      },
      "nodes": [
        {
          "id": "e1a46833-62a4-49ff-84c6-bdb1fc727d30",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1696,
            -176
          ],
          "parameters": {
            "width": 736,
            "height": 96,
            "content": "## 📬 Need Help or Want to Customize This?\n📧 [robert@ynteractive.com](mailto:robert@ynteractive.com)  \n🔗 [LinkedIn](https://www.linkedin.com/in/robert-breen-29429625/)"
          },
          "typeVersion": 1
        },
        {
          "id": "a1988728-13a9-43f3-bffa-214a242eaf57",
          "name": "Google Gemini Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
          "position": [
            -544,
            224
          ],
          "parameters": {
            "options": {}
          },
          "credentials": {
            "googlePalmApi": {
              "id": "credential-id",
              "name": "googlePalmApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "57a8f11e-4e9a-4899-88a7-c82cbbde49dd",
          "name": "Get Column Info",
          "type": "n8n-nodes-base.googleSheetsTool",
          "position": [
            -320,
            640
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 467321788,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA/edit#gid=467321788",
              "cachedResultName": "Columns"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA/edit?usp=drivesdk",
              "cachedResultName": "Sample Marketing Data"
            },
            "descriptionType": "manual",
            "toolDescription": "Extracts a sheet’s column metadata so downstream steps (querying, validation, docs) can rely on a clean, typed schema. It returns each column’s name, inferred data type, and human-readable description, plus helpful profiling hints."
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "42696475-5531-423c-b5b1-ef07f232dabd",
          "name": "When Executed by Another Workflow",
          "type": "n8n-nodes-base.executeWorkflowTrigger",
          "position": [
            144,
            336
          ],
          "parameters": {
            "inputSource": "passthrough"
          },
          "typeVersion": 1.1
        },
        {
          "id": "a224c359-aa48-4bd3-aff8-057ba8e7d448",
          "name": "Structured Output Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            -128,
            640
          ],
          "parameters": {
            "jsonSchemaExample": "{\n\t\"column\": \"customer\",\n\t\"aggregation\": \"sum\", \n\t\"level\": \"date, channel\"\n}\n"
          },
          "typeVersion": 1.3
        },
        {
          "id": "fb666df2-8966-406c-a9be-cc6d9929b4c3",
          "name": "Google Gemini Chat Model1",
          "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
          "position": [
            1648,
            576
          ],
          "parameters": {
            "options": {}
          },
          "credentials": {
            "googlePalmApi": {
              "id": "credential-id",
              "name": "googlePalmApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "75d28c95-61e6-4628-b447-2cce457a4a08",
          "name": "Simple Memory",
          "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
          "position": [
            -368,
            304
          ],
          "parameters": {},
          "typeVersion": 1.3
        },
        {
          "id": "0b30c4bc-8078-452c-a4e2-1c398a7a1eb0",
          "name": "Sticky Note1",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1696,
            -48
          ],
          "parameters": {
            "width": 736,
            "height": 1088,
            "content": "## 📊 Aggregate-Only Pivot Questions — One Metric at a Time\n\n### Overall Metrics\n- Show total **Spend ($)**.\n- Show total **Clicks**.\n- Show total **Conversions**.\n- Show average **Spend ($)**.\n- Show average **Clicks**.\n- Show average **Conversions**.\n- Show distinct **Customer ID** count.\n- Show distinct **Campaign** count.\n- Show distinct **Channel** count.\n\n### Single Dimension\n- Show total **Spend ($)** by Channel.\n- Show total **Spend ($)** by Campaign.\n- Show total **Clicks** by Channel.\n- Show total **Clicks** by Campaign.\n- Show total **Conversions** by Channel.\n- Show total **Conversions** by Campaign.\n- Show distinct **Customer ID** count by Channel.\n- Show distinct **Customer ID** count by Campaign.\n\n### Two Dimensions\n- Show total **Spend ($)** by Channel and Campaign.\n- Show total **Clicks** by Channel and Campaign.\n- Show total **Conversions** by Channel and Campaign.\n- Show average **Spend ($)** by Channel and Campaign.\n- Show average **Clicks** by Channel and Campaign.\n- Show average **Conversions** by Channel and Campaign.\n- Show distinct **Customer ID** count by Channel and Campaign.\n"
          },
          "typeVersion": 1
        },
        {
          "id": "0d92421a-7a7b-47d2-a302-1e50a60a147c",
          "name": "Sticky Note3",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            96,
            -160
          ],
          "parameters": {
            "color": 4,
            "width": 1952,
            "height": 1200,
            "content": "## ⚙️ SUB-WORKFLOW - Data Processor\n\n#### 1. Configure Google Sheets Connection for Sub-Workflow\n1. Apply the same Google Sheets OAuth2 credential you created for the main workflow\n2. Update the **Get Data** node with your Sheet ID\n3. Ensure it points to your data sheet (e.g., \"Data\" sheet)\n\n#### 2. Configure Google Gemini for Output Formatting\n1. Apply the same Gemini API credential to the **Google Gemini Chat Model1** node\n2. This handles final result formatting\n\n#### 3. Link Workflows Together\n1. In the main workflow, find the **Execute Workflow - Summarize Data** node\n2. Update the workflow reference to point to your sub-workflow\n3. Ensure the sub-workflow is set to accept execution from other workflows\n"
          },
          "typeVersion": 1
        },
        {
          "id": "70c73294-f496-41a1-9e61-ebadece9ee9b",
          "name": "Sticky Note4",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -928,
            -176
          ],
          "parameters": {
            "color": 3,
            "width": 976,
            "height": 1216,
            "content": "## 📋 MAIN WORKFLOW - Query Parser\n\n### Prerequisites for Main Workflow\n- Google Cloud Platform account with Gemini API access\n- Google account with access to Google Sheets\n- n8n instance (cloud or self-hosted)\n\n### Main Workflow Setup Instructions\n\n#### 1. Set Up Google Gemini Connection\n1. Go to [Google AI Studio](https://aistudio.google.com/)\n2. Sign in with your Google account\n3. Go to **Get API Key** section\n4. Create a new API key or use an existing one\n5. Copy the API key\n\n**Configure in n8n:**\n1. Click on **Google Gemini Chat Model** node\n2. Click **Create New Credential**\n3. Select **Google PaLM API**\n4. Paste your API key\n5. Save the credential\n\n#### 2. Set Up Google Sheets Connection for Main Workflow\n1. Go to [Google Cloud Console](https://console.cloud.google.com/)\n2. Create a new project or select existing one\n3. Enable the **Google Sheets API**\n4. Create OAuth 2.0 Client ID credentials\n5. In n8n, click on **Get Column Info** node\n6. Create **Google Sheets OAuth2 API** credential\n7. Complete OAuth flow\n\n#### 3. Configure Your Data Source\n**Option A: Use Sample Data**\n- The workflow is pre-configured for: [Sample Marketing Data](https://docs.google.com/spreadsheets/d/19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA/edit?usp=drivesdk)\n- Make a copy to your Google Drive\n\n\n#### 4. Set Up Workflow Trigger\n1. Configure how you want to trigger this workflow (webhook, manual, etc.)\n2. The workflow will output structured JSON for the sub-workflow\n\n---\n "
          },
          "typeVersion": 1
        },
        {
          "id": "5445ff22-cd04-4811-91ea-1ac9d0394726",
          "name": "Talk to Data with Gemini",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            -368,
            64
          ],
          "parameters": {
            "options": {
              "systemMessage": "# MVP System Prompt — Google Sheets Ask-YOUR_OPENAI_KEY_HERE\n\nRule, you must always use the column tool for every question and followup question to know the column names\n\nif a user asks for multiple metrics, just do the first one\n\nYou are Ask-YOUR_OPENAI_KEY_HERE. Answer questions using Google Sheets ONLY via the tools below. Be precise and conservative.\n\nThere is only one dataset. dont ask what dataset it is. \nalways reference the column names tool before going to the data tool. \n\n\nOutput the data as which column is supposed to be analyzed and what is the aggregation. aggregations can only be sum, avg, count, countd, max, min. \n\nthe column needs to be written exactly as the column name is from the other tool. \n\noutput one more column for level of detail comma separated. If its a total aggregate, output \"All\" for level of detail. \n\n\noutput 4 more columns  \n\n\n\n{\n\t\"column\": \"customer\",\n\t\"aggregation\": \"sum\", \n\t\"level\": \"date, channel\"\n}\n\n"
            },
            "hasOutputParser": true
          },
          "typeVersion": 2.2
        },
        {
          "id": "0ef3d740-e2c9-4c95-89bc-2fd66811caa9",
          "name": "Execute Workflow - Summarize Data",
          "type": "n8n-nodes-base.executeWorkflow",
          "position": [
            -80,
            272
          ],
          "parameters": {
            "source": "parameter",
            "options": {},
            "workflowJson": "{\n  \"nodes\": [\n    {\n      \"parameters\": {\n        \"inputSource\": \"passthrough\"\n      },\n      \"type\": \"n8n-nodes-base.executeWorkflowTrigger\",\n      \"typeVersion\": 1.1,\n      \"position\": [\n        16,\n        496\n      ],\n      \"id\": \"42696475-5531-423c-b5b1-ef07f232dabd\",\n      \"name\": \"When Executed by Another Workflow\"\n    },\n    {\n      \"parameters\": {\n        \"documentId\": {\n          \"__rl\": true,\n          \"value\": \"19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA\",\n          \"mode\": \"list\",\n          \"cachedResultName\": \"Sample Marketing Data\",\n          \"cachedResultUrl\": \"https://docs.google.com/spreadsheets/d/19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA/edit?usp=drivesdk\"\n        },\n        \"sheetName\": {\n          \"__rl\": true,\n          \"value\": 365710158,\n          \"mode\": \"list\",\n          \"cachedResultName\": \"Data\",\n          \"cachedResultUrl\": \"https://docs.google.com/spreadsheets/d/19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA/edit#gid=365710158\"\n        },\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.googleSheets\",\n      \"typeVersion\": 4.7,\n      \"position\": [\n        592,\n        496\n      ],\n      \"id\": \"c8f62b21-0027-4aa0-b6e0-d33025a8719f\",\n      \"name\": \"Get row(s) in sheet\",\n      \"credentials\": {\n        \"googleSheetsOAuth2Api\": {\n          \"id\": \"HlBW2puZbuCCq8jJ\",\n          \"name\": \"Google Sheets account 3\"\n        }\n      }\n    },\n    {\n      \"parameters\": {\n        \"fieldsToSummarize\": {\n          \"values\": [\n            {\n              \"aggregation\": \"countUnique\",\n              \"field\": \"={{ $('When Executed by Another Workflow').item.json.output.column }}\"\n            }\n          ]\n        },\n        \"fieldsToSplitBy\": \"={{ $('When Executed by Another Workflow').item.json.output.level }}\",\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.summarize\",\n      \"typeVersion\": 1.1,\n      \"position\": [\n        1120,\n        160\n      ],\n      \"id\": \"3a9774c9-e95c-4dc9-9812-120907a2176a\",\n      \"name\": \"Summarize\"\n    },\n    {\n      \"parameters\": {\n        \"rules\": {\n          \"values\": [\n            {\n              \"conditions\": {\n                \"options\": {\n                  \"caseSensitive\": true,\n                  \"leftValue\": \"\",\n                  \"typeValidation\": \"strict\",\n                  \"version\": 2\n                },\n                \"conditions\": [\n                  {\n                    \"leftValue\": \"={{ $('When Executed by Another Workflow').item.json.output.aggregation }}\",\n                    \"rightValue\": \"countd\",\n                    \"operator\": {\n                      \"type\": \"string\",\n                      \"operation\": \"equals\"\n                    },\n                    \"id\": \"297ff075-7abd-4343-8bc7-0c847c9f709a\"\n                  }\n                ],\n                \"combinator\": \"and\"\n              },\n              \"renameOutput\": true,\n              \"outputKey\": \"countd\"\n            },\n            {\n              \"conditions\": {\n                \"options\": {\n                  \"caseSensitive\": true,\n                  \"leftValue\": \"\",\n                  \"typeValidation\": \"strict\",\n                  \"version\": 2\n                },\n                \"conditions\": [\n                  {\n                    \"id\": \"9845fa13-3f60-459c-8265-17031d741464\",\n                    \"leftValue\": \"={{ $('When Executed by Another Workflow').item.json.output.aggregation }}\",\n                    \"rightValue\": \"sum\",\n                    \"operator\": {\n                      \"type\": \"string\",\n                      \"operation\": \"equals\",\n                      \"name\": \"filter.operator.equals\"\n                    }\n                  }\n                ],\n                \"combinator\": \"and\"\n              },\n              \"renameOutput\": true,\n              \"outputKey\": \"sum\"\n            },\n            {\n              \"conditions\": {\n                \"options\": {\n                  \"caseSensitive\": true,\n                  \"leftValue\": \"\",\n                  \"typeValidation\": \"strict\",\n                  \"version\": 2\n                },\n                \"conditions\": [\n                  {\n                    \"id\": \"0b51e6c0-9734-4db8-a5ed-6f0fd102f03f\",\n                    \"leftValue\": \"={{ $('When Executed by Another Workflow').item.json.output.aggregation }}\",\n                    \"rightValue\": \"avg\",\n                    \"operator\": {\n                      \"type\": \"string\",\n                      \"operation\": \"equals\",\n                      \"name\": \"filter.operator.equals\"\n                    }\n                  }\n                ],\n                \"combinator\": \"and\"\n              },\n              \"renameOutput\": true,\n              \"outputKey\": \"avg\"\n            },\n            {\n              \"conditions\": {\n                \"options\": {\n                  \"caseSensitive\": true,\n                  \"leftValue\": \"\",\n                  \"typeValidation\": \"strict\",\n                  \"version\": 2\n                },\n                \"conditions\": [\n                  {\n                    \"id\": \"cea94521-373b-4c86-97a9-293c8c27a307\",\n                    \"leftValue\": \"={{ $('When Executed by Another Workflow').item.json.output.aggregation }}\",\n                    \"rightValue\": \"min\",\n                    \"operator\": {\n                      \"type\": \"string\",\n                      \"operation\": \"equals\",\n                      \"name\": \"filter.operator.equals\"\n                    }\n                  }\n                ],\n                \"combinator\": \"and\"\n              },\n              \"renameOutput\": true,\n              \"outputKey\": \"min\"\n            },\n            {\n              \"conditions\": {\n                \"options\": {\n                  \"caseSensitive\": true,\n                  \"leftValue\": \"\",\n                  \"typeValidation\": \"strict\",\n                  \"version\": 2\n                },\n                \"conditions\": [\n                  {\n                    \"id\": \"4dd86101-6290-4c33-aa4d-f7a9acfc97f8\",\n                    \"leftValue\": \"={{ $('When Executed by Another Workflow').item.json.output.aggregation }}\",\n                    \"rightValue\": \"max\",\n                    \"operator\": {\n                      \"type\": \"string\",\n                      \"operation\": \"equals\",\n                      \"name\": \"filter.operator.equals\"\n                    }\n                  }\n                ],\n                \"combinator\": \"and\"\n              },\n              \"renameOutput\": true,\n              \"outputKey\": \"max\"\n            },\n            {\n              \"conditions\": {\n                \"options\": {\n                  \"caseSensitive\": true,\n                  \"leftValue\": \"\",\n                  \"typeValidation\": \"strict\",\n                  \"version\": 2\n                },\n                \"conditions\": [\n                  {\n                    \"id\": \"8707085d-91b4-4016-8e30-f8574354f020\",\n                    \"leftValue\": \"={{ $('When Executed by Another Workflow').item.json.output.aggregation }}\",\n                    \"rightValue\": \"count\",\n                    \"operator\": {\n                      \"type\": \"string\",\n                      \"operation\": \"equals\",\n                      \"name\": \"filter.operator.equals\"\n                    }\n                  }\n                ],\n                \"combinator\": \"and\"\n              },\n              \"renameOutput\": true,\n              \"outputKey\": \"count\"\n            }\n          ]\n        },\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.switch\",\n      \"typeVersion\": 3.2,\n      \"position\": [\n        816,\n        496\n      ],\n      \"id\": \"81b3dbc8-d49b-4ab3-aaa3-b1fdbced4723\",\n      \"name\": \"Switch\"\n    },\n    {\n      \"parameters\": {\n        \"fieldsToSummarize\": {\n          \"values\": [\n            {\n              \"aggregation\": \"sum\",\n              \"field\": \"={{ $('When Executed by Another Workflow').item.json.output.column }}\"\n            }\n          ]\n        },\n        \"fieldsToSplitBy\": \"={{ $('When Executed by Another Workflow').item.json.output.level }}\",\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.summarize\",\n      \"typeVersion\": 1.1,\n      \"position\": [\n        1136,\n        336\n      ],\n      \"id\": \"b33509be-33f9-43ec-b59c-b021885a9091\",\n      \"name\": \"Summarize1\"\n    },\n    {\n      \"parameters\": {\n        \"fieldsToSummarize\": {\n          \"values\": [\n            {\n              \"aggregation\": \"average\",\n              \"field\": \"={{ $('When Executed by Another Workflow').item.json.output.column }}\"\n            }\n          ]\n        },\n        \"fieldsToSplitBy\": \"={{ $('When Executed by Another Workflow').item.json.output.level }}\",\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.summarize\",\n      \"typeVersion\": 1.1,\n      \"position\": [\n        1152,\n        480\n      ],\n      \"id\": \"8a272c6f-0844-47bc-bb3a-b3fcb6e0736c\",\n      \"name\": \"Summarize2\"\n    },\n    {\n      \"parameters\": {\n        \"fieldsToSummarize\": {\n          \"values\": [\n            {\n              \"aggregation\": \"min\",\n              \"field\": \"={{ $('When Executed by Another Workflow').item.json.output.column }}\"\n            }\n          ]\n        },\n        \"fieldsToSplitBy\": \"={{ $('When Executed by Another Workflow').item.json.output.level }}\",\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.summarize\",\n      \"typeVersion\": 1.1,\n      \"position\": [\n        1168,\n        656\n      ],\n      \"id\": \"1b2b472d-e080-4202-aba8-2edda368c991\",\n      \"name\": \"Summarize3\"\n    },\n    {\n      \"parameters\": {\n        \"fieldsToSummarize\": {\n          \"values\": [\n            {\n              \"aggregation\": \"max\",\n              \"field\": \"={{ $('When Executed by Another Workflow').item.json.output.column }}\"\n            }\n          ]\n        },\n        \"fieldsToSplitBy\": \"={{ $('When Executed by Another Workflow').item.json.output.level }}\",\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.summarize\",\n      \"typeVersion\": 1.1,\n      \"position\": [\n        1200,\n        816\n      ],\n      \"id\": \"cf32aa9a-79fa-4aa9-bb78-e24fb06ea9eb\",\n      \"name\": \"Summarize4\"\n    },\n    {\n      \"parameters\": {\n        \"fieldsToSummarize\": {\n          \"values\": [\n            {\n              \"field\": \"={{ $('When Executed by Another Workflow').item.json.output.column }}\"\n            }\n          ]\n        },\n        \"fieldsToSplitBy\": \"={{ $('When Executed by Another Workflow').item.json.output.level }}\",\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.summarize\",\n      \"typeVersion\": 1.1,\n      \"position\": [\n        1216,\n        976\n      ],\n      \"id\": \"eaafbe35-02f0-4bfe-9659-d7db0348fcdc\",\n      \"name\": \"Summarize5\"\n    },\n    {\n      \"parameters\": {\n        \"aggregate\": \"aggregateAllItemData\",\n        \"options\": {}\n      },\n      \"type\": \"n8n-nodes-base.aggregate\",\n      \"typeVersion\": 1,\n      \"position\": [\n        1504,\n        528\n      ],\n      \"id\": \"93897c1f-9403-4146-973e-3dd0febc61c4\",\n      \"name\": \"Aggregate\"\n    },\n    {\n      \"parameters\": {\n        \"promptType\": \"define\",\n        \"text\": \"={{ $json.data }}\",\n        \"options\": {\n          \"systemMessage\": \"write this into one table\"\n        }\n      },\n      \"type\": \"@n8n/n8n-nodes-langchain.agent\",\n      \"typeVersion\": 2.2,\n      \"position\": [\n        1760,\n        512\n      ],\n      \"id\": \"6f061b81-725d-4202-a22b-15458a7ae8a0\",\n      \"name\": \"AI Agent1\"\n    },\n    {\n      \"parameters\": {\n        \"options\": {}\n      },\n      \"type\": \"@n8n/n8n-nodes-langchain.lmChatGoogleGemini\",\n      \"typeVersion\": 1,\n      \"position\": [\n        1824,\n        704\n      ],\n      \"id\": \"fb666df2-8966-406c-a9be-cc6d9929b4c3\",\n      \"name\": \"Google Gemini Chat Model1\",\n      \"credentials\": {\n        \"googlePalmApi\": {\n          \"id\": \"Mhhn3j8lRxEgMtc5\",\n          \"name\": \"Google Gemini(PaLM) Api account\"\n        }\n      }\n    }\n  ],\n  \"connections\": {\n    \"When Executed by Another Workflow\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Get row(s) in sheet\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Get row(s) in sheet\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Switch\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Summarize\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Aggregate\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Switch\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Summarize\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ],\n        [\n          {\n            \"node\": \"Summarize1\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ],\n        [\n          {\n            \"node\": \"Summarize2\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ],\n        [\n          {\n            \"node\": \"Summarize3\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ],\n        [\n          {\n            \"node\": \"Summarize4\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ],\n        [\n          {\n            \"node\": \"Summarize5\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Summarize1\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Aggregate\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Summarize2\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Aggregate\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Summarize3\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Aggregate\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Summarize4\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Aggregate\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Summarize5\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"Aggregate\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Aggregate\": {\n      \"main\": [\n        [\n          {\n            \"node\": \"AI Agent1\",\n            \"type\": \"main\",\n            \"index\": 0\n          }\n        ]\n      ]\n    },\n    \"Google Gemini Chat Model1\": {\n      \"ai_languageModel\": [\n        [\n          {\n            \"node\": \"AI Agent1\",\n            \"type\": \"ai_languageModel\",\n            \"index\": 0\n          }\n        ]\n      ]\n    }\n  },\n  \"pinData\": {\n    \"When Executed by Another Workflow\": [\n      {\n        \"output\": {\n          \"column\": \"Spend ($)\",\n          \"aggregation\": \"sum\",\n          \"level\": \"Channel\"\n        }\n      }\n    ]\n  },\n  \"meta\": {\n    \"templateCredsSetupCompleted\": true,\n    \"instanceId\": \"ad0113c344ee237399e44e9f11798b05baeb83a6196d514a9ae9d2ad71c3b5c9\"\n  }\n}"
          },
          "typeVersion": 1.2
        },
        {
          "id": "c8f62b21-0027-4aa0-b6e0-d33025a8719f",
          "name": "Get Data",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            448,
            336
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": 365710158,
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA/edit#gid=365710158",
              "cachedResultName": "Data"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/19aUQYZq02qHsCelO4eeV4sx_MTJJupC5qe0gDLQBtRA/edit?usp=drivesdk",
              "cachedResultName": "Sample Marketing Data"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "81b3dbc8-d49b-4ab3-aaa3-b1fdbced4723",
          "name": "Type of Aggregation",
          "type": "n8n-nodes-base.switch",
          "position": [
            704,
            336
          ],
          "parameters": {
            "rules": {
              "values": [
                {
                  "outputKey": "countd",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "297ff075-7abd-4343-8bc7-0c847c9f709a",
                        "operator": {
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $('When Executed by Another Workflow').item.json.output.aggregation }}",
                        "rightValue": "countd"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "sum",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "9845fa13-3f60-459c-8265-17031d741464",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $('When Executed by Another Workflow').item.json.output.aggregation }}",
                        "rightValue": "sum"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "avg",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "0b51e6c0-9734-4db8-a5ed-6f0fd102f03f",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $('When Executed by Another Workflow').item.json.output.aggregation }}",
                        "rightValue": "avg"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "min",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "cea94521-373b-4c86-97a9-293c8c27a307",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $('When Executed by Another Workflow').item.json.output.aggregation }}",
                        "rightValue": "min"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "max",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "4dd86101-6290-4c33-aa4d-f7a9acfc97f8",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $('When Executed by Another Workflow').item.json.output.aggregation }}",
                        "rightValue": "max"
                      }
                    ]
                  },
                  "renameOutput": true
                },
                {
                  "outputKey": "count",
                  "conditions": {
                    "options": {
                      "version": 2,
                      "leftValue": "",
                      "caseSensitive": true,
                      "typeValidation": "strict"
                    },
                    "combinator": "and",
                    "conditions": [
                      {
                        "id": "8707085d-91b4-4016-8e30-f8574354f020",
                        "operator": {
                          "name": "filter.operator.equals",
                          "type": "string",
                          "operation": "equals"
                        },
                        "leftValue": "={{ $('When Executed by Another Workflow').item.json.output.aggregation }}",
                        "rightValue": "count"
                      }
                    ]
                  },
                  "renameOutput": true
                }
              ]
            },
            "options": {}
          },
          "typeVersion": 3.2
        },
        {
          "id": "93897c1f-9403-4146-973e-3dd0febc61c4",
          "name": "Bring All Data together",
          "type": "n8n-nodes-base.aggregate",
          "position": [
            1392,
            368
          ],
          "parameters": {
            "options": {},
            "aggregate": "aggregateAllItemData"
          },
          "typeVersion": 1
        },
        {
          "id": "3a9774c9-e95c-4dc9-9812-120907a2176a",
          "name": "Count Unique",
          "type": "n8n-nodes-base.summarize",
          "position": [
            992,
            -96
          ],
          "parameters": {
            "options": {},
            "fieldsToSplitBy": "={{ $('When Executed by Another Workflow').item.json.output.level }}",
            "fieldsToSummarize": {
              "values": [
                {
                  "field": "={{ $('When Executed by Another Workflow').item.json.output.column }}",
                  "aggregation": "countUnique"
                }
              ]
            }
          },
          "typeVersion": 1.1
        },
        {
          "id": "b33509be-33f9-43ec-b59c-b021885a9091",
          "name": "Sum",
          "type": "n8n-nodes-base.summarize",
          "position": [
            1024,
            64
          ],
          "parameters": {
            "options": {},
            "fieldsToSplitBy": "={{ $('When Executed by Another Workflow').item.json.output.level }}",
            "fieldsToSummarize": {
              "values": [
                {
                  "field": "={{ $('When Executed by Another Workflow').item.json.output.column }}",
                  "aggregation": "sum"
                }
              ]
            }
          },
          "typeVersion": 1.1
        },
        {
          "id": "8a272c6f-0844-47bc-bb3a-b3fcb6e0736c",
          "name": "Average",
          "type": "n8n-nodes-base.summarize",
          "position": [
            1040,
            192
          ],
          "parameters": {
            "options": {},
            "fieldsToSplitBy": "={{ $('When Executed by Another Workflow').item.json.output.level }}",
            "fieldsToSummarize": {
              "values": [
                {
                  "field": "={{ $('When Executed by Another Workflow').item.json.output.column }}",
                  "aggregation": "average"
                }
              ]
            }
          },
          "typeVersion": 1.1
        },
        {
          "id": "1b2b472d-e080-4202-aba8-2edda368c991",
          "name": "Min",
          "type": "n8n-nodes-base.summarize",
          "position": [
            1040,
            368
          ],
          "parameters": {
            "options": {},
            "fieldsToSplitBy": "={{ $('When Executed by Another Workflow').item.json.output.level }}",
            "fieldsToSummarize": {
              "values": [
                {
                  "field": "={{ $('When Executed by Another Workflow').item.json.output.column }}",
                  "aggregation": "min"
                }
              ]
            }
          },
          "typeVersion": 1.1
        },
        {
          "id": "cf32aa9a-79fa-4aa9-bb78-e24fb06ea9eb",
          "name": "Max",
          "type": "n8n-nodes-base.summarize",
          "position": [
            1056,
            544
          ],
          "parameters": {
            "options": {},
            "fieldsToSplitBy": "={{ $('When Executed by Another Workflow').item.json.output.level }}",
            "fieldsToSummarize": {
              "values": [
                {
                  "field": "={{ $('When Executed by Another Workflow').item.json.output.column }}",
                  "aggregation": "max"
                }
              ]
            }
          },
          "typeVersion": 1.1
        },
        {
          "id": "eaafbe35-02f0-4bfe-9659-d7db0348fcdc",
          "name": "Count",
          "type": "n8n-nodes-base.summarize",
          "position": [
            1056,
            688
          ],
          "parameters": {
            "options": {},
            "fieldsToSplitBy": "={{ $('When Executed by Another Workflow').item.json.output.level }}",
            "fieldsToSummarize": {
              "values": [
                {
                  "field": "={{ $('When Executed by Another Workflow').item.json.output.column }}"
                }
              ]
            }
          },
          "typeVersion": 1.1
        },
        {
          "id": "6f061b81-725d-4202-a22b-15458a7ae8a0",
          "name": "Write into Table Output",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            1648,
            352
          ],
          "parameters": {
            "text": "={{ $json.data }}",
            "options": {
              "systemMessage": "write this into one table. output as dimensions, then metrics"
            },
            "promptType": "define"
          },
          "typeVersion": 2.2
        }
      ],
      "pinData": {
        "When Executed by Another Workflow": [
          {
            "output": {
              "level": "Channel",
              "column": "Spend ($)",
              "aggregation": "sum"
            }
          }
        ]
      },
      "connections": {
        "Max": {
          "main": [
            [
              {
                "node": "Bring All Data together",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Min": {
          "main": [
            [
              {
                "node": "Bring All Data together",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Sum": {
          "main": [
            [
              {
                "node": "Bring All Data together",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Count": {
          "main": [
            [
              {
                "node": "Bring All Data together",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Average": {
          "main": [
            [
              {
                "node": "Bring All Data together",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get Data": {
          "main": [
            [
              {
                "node": "Type of Aggregation",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Count Unique": {
          "main": [
            [
              {
                "node": "Bring All Data together",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Simple Memory": {
          "ai_memory": [
            [
              {
                "node": "Talk to Data with Gemini",
                "type": "ai_memory",
                "index": 0
              }
            ]
          ]
        },
        "Get Column Info": {
          "ai_tool": [
            [
              {
                "node": "Talk to Data with Gemini",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Type of Aggregation": {
          "main": [
            [
              {
                "node": "Count Unique",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Sum",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Average",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Min",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Max",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Count",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Bring All Data together": {
          "main": [
            [
              {
                "node": "Write into Table Output",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Google Gemini Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "Talk to Data with Gemini",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Structured Output Parser": {
          "ai_outputParser": [
            [
              {
                "node": "Talk to Data with Gemini",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Talk to Data with Gemini": {
          "main": [
            [
              {
                "node": "Execute Workflow - Summarize Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Google Gemini Chat Model1": {
          "ai_languageModel": [
            [
              {
                "node": "Write into Table Output",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Execute Workflow - Summarize Data": {
          "main": [
            []
          ]
        },
        "When Executed by Another Workflow": {
          "main": [
            [
              {
                "node": "Get Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 22,
      "nodeTypes": {
        "n8n-nodes-base.switch": {
          "count": 1
        },
        "n8n-nodes-base.aggregate": {
          "count": 1
        },
        "n8n-nodes-base.summarize": {
          "count": 6
        },
        "n8n-nodes-base.stickyNote": {
          "count": 4
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 2
        },
        "n8n-nodes-base.executeWorkflow": {
          "count": 1
        },
        "n8n-nodes-base.googleSheetsTool": {
          "count": 1
        },
        "n8n-nodes-base.executeWorkflowTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatGoogleGemini": {
          "count": 2
        },
        "@n8n/n8n-nodes-langchain.memoryBufferWindow": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.outputParserStructured": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Robert Breen",
      "username": "rbreen",
      "bio": "Professional services consultant with over 10 years of experience solving complex business problems across industries. I specialize in n8n and process automation—designing custom workflows that integrate tools like Google Calendar, Airtable, GPT, and internal systems. Whether you need to automate scheduling, sync data, or streamline operations, I build solutions that save time and drive results.",
      "verified": true,
      "links": [
        "https://ynteractive.com/"
      ],
      "avatar": "https://gravatar.com/avatar/15bb5ad97bad47ca2079e1fa123a8287000c72c86498c90043f70ec2adab05f3?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": 111,
        "icon": "fa:sign-in-alt",
        "name": "n8n-nodes-base.executeWorkflow",
        "codex": {
          "data": {
            "alias": [
              "n8n",
              "call",
              "sub",
              "workflow",
              "sub-workflow",
              "subworkflow"
            ],
            "details": "The Execute Workflow node can be used when you want your workflow to treat another workflow as a step in your flow. It allows you to modularize your workflows and have a single source of truth for series of actions you perform often. ",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflow/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Execute Workflow",
          "color": "#ff6d5a"
        },
        "iconData": {
          "icon": "sign-in-alt",
          "type": "icon"
        },
        "displayName": "Execute Sub-workflow",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 112,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.switch",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "If",
              "Path",
              "Filter",
              "Condition",
              "Logic",
              "Branch",
              "Case"
            ],
            "resources": {
              "generic": [
                {
                  "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/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/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.switch/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Switch",
          "color": "#506000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "Switch",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "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": 837,
        "icon": "fa:sign-out-alt",
        "name": "n8n-nodes-base.executeWorkflowTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflowtrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "When Executed by Another Workflow",
          "color": "#ff6d5a"
        },
        "iconData": {
          "icon": "sign-out-alt",
          "type": "icon"
        },
        "displayName": "Execute Workflow 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": 1163,
        "icon": "fa:database",
        "name": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Memory"
              ],
              "Memory": [
                "For beginners"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Simple Memory"
        },
        "iconData": {
          "icon": "database",
          "type": "icon"
        },
        "displayName": "Simple Memory",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1179,
        "icon": "fa:code",
        "name": "@n8n/n8n-nodes-langchain.outputParserStructured",
        "codex": {
          "data": {
            "alias": [
              "json",
              "zod"
            ],
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.outputparserstructured/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Output Parsers"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Structured Output Parser"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Structured Output Parser",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 25,
            "name": "AI"
          },
          {
            "id": 26,
            "name": "Langchain"
          }
        ]
      },
      {
        "id": 1236,
        "icon": "file:aggregate.svg",
        "name": "n8n-nodes-base.aggregate",
        "codex": {
          "data": {
            "alias": [
              "Aggregate",
              "Combine",
              "Flatten",
              "Transform",
              "Array",
              "List",
              "Item"
            ],
            "details": "",
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.aggregate/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Aggregate"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJub25lIj48ZyBmaWxsPSIjRkY2RDVBIiBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMyIDE0OGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE0NmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjI0YzAgNi42MjctNS4zNzMgMTItMTIgMTJINDRjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6bTAgOTZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNDZjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDQ0Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEyem0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTQ2YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg0NGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnoiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGQ9Ik03NCA3NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDExNi4yMTdjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjU2YzAgMjYuOTc4IDEwLjI3MiA1MS41NTcgMjcuMTE5IDcwLjAzOSA1LjA1NSA1LjU0NSA1LjA1NSAxNC4zNzcgMCAxOS45MjItMTYuODQ3IDE4LjQ4Mi0yNy4xMTkgNDMuMDYxLTI3LjExOSA3MC4wMzl2NTZjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMySDg2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjI0YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMTE2LjIxN2M0NC4xODMgMCA4MC0zNS44MTcgODAtODB2LTU2YzAtMzAuOTI4IDI1LjA3Mi01NiA1Ni01NmE1Ljc4MyA1Ljc4MyAwIDAgMCA1Ljc4My01Ljc4M3YtMzYuNDM0YTUuNzgzIDUuNzgzIDAgMCAwLTUuNzgzLTUuNzgzYy0zMC45MjggMC01Ni0yNS4wNzItNTYtNTZ2LTU2YzAtNDQuMTgzLTM1LjgxNy04MC04MC04MEg4NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnoiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zNzYgMjQ0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMTEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjRjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkgzODhjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUxMnY1MTJIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="
        },
        "displayName": "Aggregate",
        "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": 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"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 35,
        "name": "Document Extraction"
      },
      {
        "id": 51,
        "name": "Multimodal AI"
      }
    ],
    "image": []
  }
}