{
  "workflow": {
    "id": 8227,
    "name": "🎓 Learn evaluate tool. Tutorial for beginners with Gemini and Google Sheets",
    "views": 484,
    "recentViews": 0,
    "totalViews": 484,
    "createdAt": "2025-09-03T17:10:56.887Z",
    "description": "\nThis workflow is a beginner-friendly tutorial demonstrating how to use the **Evaluation tool** to automatically score the AI’s output against a known correct answer (“ground truth”) stored in a Google Sheet.\n\n\n---\n\n### **Advantages**\n\n* ✅ **Beginner-friendly** – Provides a simple and clear structure to understand AI evaluation.\n* ✅ **Flexible input sources** – Works with both Google Sheets datasets and manual test entries.\n* ✅ **Integrated with Google Gemini** – Leverages a powerful AI model for text-based tasks.\n* ✅ **Tool usage** – Demonstrates how an AI agent can call external tools (e.g., calculator) for accurate answers.\n* ✅ **Automated evaluation** – Outputs are automatically compared against ground truth data for factual correctness.\n* ✅ **Scalable testing** – Can handle multiple dataset rows, making it useful for structured AI model evaluation.\n* ✅ **Result tracking** – Saves both answers and correctness scores back to Google Sheets for easy monitoring.\n\n---\n\n### **How it Works**\n\nThe workflow operates in two distinct modes, determined by the trigger:\n1.  **Manual Test Mode:** Triggered by \"When clicking 'Execute workflow'\". It sends a fixed question (\"How much is 8 * 3?\") to the AI agent and returns the answer to the user. This mode is for quick, ad-hoc testing.\n2.  **Evaluation Mode:** Triggered by \"When fetching a dataset row\". This mode reads rows of data from a linked Google Sheet. Each row contains an `input` (a question) and an `expected_output` (the correct answer). It processes each row as follows:\n    *   The `input` question is sent to the **AI Agent** node.\n    *   The AI Agent, powered by a **Google Gemini** model and equipped with a **Calculator** tool, processes the question and generates an answer (`output`).\n    *   The workflow then checks if it's in evaluation mode.\n    *   Instead of just returning the answer, it passes the AI's `actual_output` and the sheet's `expected_output` to another **Evaluation node**.\n    *   This node uses a second **Google Gemini** model as a \"judge\" to evaluate the factual correctness of the AI's answer compared to the expected one, generating a `Correctness` score on a scale from 1 to 5.\n    *   Finally, both the AI's `actual_output` and the automated `correctness` score are written back to a new column in the same row of the Google Sheet.\n\n---\n\n### **Set up Steps**\n\nTo use this workflow, you need to complete the following setup steps:\n\n1.  **Credentials Configuration:**\n    *   Set up the **Google Sheets OAuth2 API** credentials (named \"Google Sheets account\"). This allows n8n to read from and write to your Google Sheet.\n    *   Set up the **Google Gemini (PaLM) API** credentials (named \"Google Gemini(PaLM) (Eure)\"). This provides the AI language model capabilities for both the agent and the evaluator.\n\n2.  **Prepare Your Google Sheet:**\n    *   The workflow is pre-configured to use a specific Google Sheet. You must **clone** the provided template sheet (the URL is in the Sticky Note) to your own Google Drive.\n    *   In your cloned sheet, ensure you have at least two columns: one for the input/question (e.g., `input`) and one for the expected correct answer (e.g., `expected_output`). You may need to update the node parameters that reference `$json.input` and `$json.expected_output` to match your column names exactly.\n\n3.  **Update Document IDs:**\n    *   After cloning the sheet, get its new Document ID from its URL and update the `documentId` field in **all three Evaluation nodes** (\"When fetching a dataset row\", \"Set output Evaluation\", and \"Set correctness\") to point to your new sheet instead of the original template.\n\n4.  **Activate the Workflow:**\n    *   Once the credentials and sheet are configured, toggle the workflow to **Active**. You can then trigger a manual test run or set the \"When fetching a dataset row\" node to poll your sheet automatically to evaluate all rows.\n----\n\n### **Need help customizing?**  \n[Contact me](mailto:info@n3w.it) for consulting and support or add me on [Linkedin](https://www.linkedin.com/in/davideboizza/).\n",
    "workflow": {
      "id": "xmOsgkv5077DUdwA",
      "meta": {
        "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
        "templateCredsSetupCompleted": true
      },
      "name": "Learn Evaluate tool. Tutorial for Beginners",
      "tags": [],
      "nodes": [
        {
          "id": "22780f9e-13f3-456d-9c5e-65cba74c648c",
          "name": "When fetching a dataset row",
          "type": "n8n-nodes-base.evaluationTrigger",
          "position": [
            -320,
            -320
          ],
          "parameters": {
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-v29IpsgdFx3VqIYzWQ/edit#gid=0",
              "cachedResultName": "Foglio1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1y6Gyjws8se12QX0uG4eS9il5-v29IpsgdFx3VqIYzWQ",
              "cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-v29IpsgdFx3VqIYzWQ/edit?usp=drivesdk",
              "cachedResultName": "Simple Evaluation Test"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.6
        },
        {
          "id": "8e5f86a4-75eb-4eaa-a1c5-3d772a068f00",
          "name": "AI Agent",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            176,
            -192
          ],
          "parameters": {
            "text": "={{ $json.text }}",
            "options": {
              "systemMessage": "You are a helpful assistant.\n\nUse the calculator for math operations or tasks. \n\nReply only with the result",
              "returnIntermediateSteps": true
            },
            "promptType": "define"
          },
          "typeVersion": 2.2
        },
        {
          "id": "f64d8c51-0bba-4af6-9215-fac691b5b2ae",
          "name": "Calculator",
          "type": "@n8n/n8n-nodes-langchain.toolCalculator",
          "position": [
            336,
            16
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "34454af4-4bf8-4f01-a5fc-ead383a33cbc",
          "name": "Google Gemini Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
          "position": [
            176,
            16
          ],
          "parameters": {
            "options": {}
          },
          "credentials": {
            "googlePalmApi": {
              "id": "credential-id",
              "name": "googlePalmApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "c909b2c0-a6f3-430c-890b-e5d808384bea",
          "name": "Google Gemini Chat Model1",
          "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
          "position": [
            1344,
            -144
          ],
          "parameters": {
            "options": {}
          },
          "credentials": {
            "googlePalmApi": {
              "id": "credential-id",
              "name": "googlePalmApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "932c05a1-d041-46f6-9908-caa7f751796f",
          "name": "When clicking ‘Execute workflow’",
          "type": "n8n-nodes-base.manualTrigger",
          "position": [
            -320,
            -48
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "08627269-df4a-44e9-80a2-566006be0712",
          "name": "Evaluation?",
          "type": "n8n-nodes-base.evaluation",
          "position": [
            480,
            -192
          ],
          "parameters": {
            "operation": "checkIfEvaluating"
          },
          "typeVersion": 4.7
        },
        {
          "id": "07c2955e-bb88-4e85-85af-930f03981216",
          "name": "Return chat response",
          "type": "n8n-nodes-base.noOp",
          "position": [
            736,
            -96
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "4f910377-a0ea-4f9e-a1ce-31b4c1cef790",
          "name": "Set output Evaluation",
          "type": "n8n-nodes-base.evaluation",
          "position": [
            960,
            -304
          ],
          "parameters": {
            "outputs": {
              "values": [
                {
                  "outputName": "actual_output",
                  "outputValue": "={{ $json.output }}"
                }
              ]
            },
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-v29IpsgdFx3VqIYzWQ/edit#gid=0",
              "cachedResultName": "Foglio1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1y6Gyjws8se12QX0uG4eS9il5-v29IpsgdFx3VqIYzWQ",
              "cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-v29IpsgdFx3VqIYzWQ/edit?usp=drivesdk",
              "cachedResultName": "Simple Evaluation Test"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "bc2b70a6-8761-4ded-8453-36d0f3661885",
          "name": "Get output",
          "type": "n8n-nodes-base.set",
          "position": [
            736,
            -304
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "f9cbadca-1b23-48f3-9362-8c83f6580912",
                  "name": "output",
                  "type": "string",
                  "value": "={{ $json.output }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "88732929-f06b-42ec-8e87-166f8074a802",
          "name": "Get input",
          "type": "n8n-nodes-base.set",
          "position": [
            -48,
            -320
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "9bba92a2-259f-4b52-8d8c-33e0c8aadeae",
                  "name": "text",
                  "type": "string",
                  "value": "={{ $json.input }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "171ac411-e369-4e43-a8b5-f655fcd8bace",
          "name": "Get manual input",
          "type": "n8n-nodes-base.set",
          "position": [
            -48,
            -48
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "cac1815d-78eb-4df9-9ad0-e1926a3bafab",
                  "name": "text",
                  "type": "string",
                  "value": "=How much is 8 * 3?"
                }
              ]
            }
          },
          "typeVersion": 3.4
        },
        {
          "id": "53e78ed8-5af7-4d88-9446-08ae12a8bfd7",
          "name": "Sticky Note",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -320,
            -656
          ],
          "parameters": {
            "width": 576,
            "height": 240,
            "content": "## Learn Evaluate tool. Tutorial for Beginners\n\nThis workflow is a beginner-friendly tutorial demonstrating how to use the **Evaluation tool** to automatically score the AI’s output against a known correct answer (“ground truth”) stored in a Google Sheet.\n\nEvaluate the factual correctness of a given output compared to the provided ground truth on a scale from 1 to 5.\n\n\n- Clone this [sheet](https://docs.google.com/spreadsheets/d/1y6Gyjws8se12QX0uG4eS9il5-v29IpsgdFx3VqIYzWQ/edit?usp=sharing)\n"
          },
          "typeVersion": 1
        },
        {
          "id": "7d232a78-21cd-473a-82b5-8dcc883c7b3d",
          "name": "Corectness",
          "type": "n8n-nodes-base.evaluation",
          "position": [
            1152,
            -304
          ],
          "parameters": {
            "options": {
              "metricName": "Correctness"
            },
            "operation": "setMetrics",
            "actualAnswer": "={{ $('Get output').item.json.output }}",
            "expectedAnswer": "={{ $('When fetching a dataset row').item.json.expected_output }}"
          },
          "typeVersion": 4.7
        },
        {
          "id": "a1f6b120-ad00-48a8-938c-c137911c416b",
          "name": "Set correctness",
          "type": "n8n-nodes-base.evaluation",
          "position": [
            1472,
            -304
          ],
          "parameters": {
            "outputs": {
              "values": [
                {
                  "outputName": "correctness",
                  "outputValue": "={{ $json.Correctness }}"
                }
              ]
            },
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-v29IpsgdFx3VqIYzWQ/edit#gid=0",
              "cachedResultName": "Foglio1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1y6Gyjws8se12QX0uG4eS9il5-v29IpsgdFx3VqIYzWQ",
              "cachedResultUrl": "https://docs.google.com/YOUR_AWS_SECRET_KEY_HERE-v29IpsgdFx3VqIYzWQ/edit?usp=drivesdk",
              "cachedResultName": "Simple Evaluation Test"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "credential-id",
              "name": "googleSheetsOAuth2Api Credential"
            }
          },
          "typeVersion": 4.7
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "bc99c4ad-2614-4cc7-b823-b0fabf05e7d9",
      "connections": {
        "AI Agent": {
          "main": [
            [
              {
                "node": "Evaluation?",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get input": {
          "main": [
            [
              {
                "node": "AI Agent",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Calculator": {
          "ai_tool": [
            [
              {
                "node": "AI Agent",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Corectness": {
          "main": [
            [
              {
                "node": "Set correctness",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Get output": {
          "main": [
            [
              {
                "node": "Set output Evaluation",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Evaluation?": {
          "main": [
            [
              {
                "node": "Get output",
                "type": "main",
                "index": 0
              }
            ],
            [
              {
                "node": "Return chat response",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Set correctness": {
          "main": [
            []
          ]
        },
        "Get manual input": {
          "main": [
            [
              {
                "node": "AI Agent",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Set output Evaluation": {
          "main": [
            [
              {
                "node": "Corectness",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Google Gemini Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI Agent",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Google Gemini Chat Model1": {
          "ai_languageModel": [
            [
              {
                "node": "Corectness",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "When fetching a dataset row": {
          "main": [
            [
              {
                "node": "Get input",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "When clicking ‘Execute workflow’": {
          "main": [
            [
              {
                "node": "Get manual input",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 15,
      "nodeTypes": {
        "n8n-nodes-base.set": {
          "count": 3
        },
        "n8n-nodes-base.noOp": {
          "count": 1
        },
        "n8n-nodes-base.evaluation": {
          "count": 4
        },
        "n8n-nodes-base.stickyNote": {
          "count": 1
        },
        "n8n-nodes-base.manualTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.agent": {
          "count": 1
        },
        "n8n-nodes-base.evaluationTrigger": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.toolCalculator": {
          "count": 1
        },
        "@n8n/n8n-nodes-langchain.lmChatGoogleGemini": {
          "count": 2
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Davide",
      "username": "n3witalia",
      "bio": "Full-stack Web Developer based in Italy specialising in Marketing & AI-powered automations. For business enquiries, send me an email at info@n3w.it or add me on Linkedin.com/in/davideboizza",
      "verified": true,
      "links": [
        "https://n3w.it"
      ],
      "avatar": "https://gravatar.com/avatar/d41b8a0aa81139243509c58870f5b4be292824a507ab57d10ed066d8628ed8da?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 26,
        "icon": "fa:arrow-right",
        "name": "n8n-nodes-base.noOp",
        "codex": {
          "data": {
            "alias": [
              "nothing"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.noop/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"organization\"]",
        "defaults": {
          "name": "No Operation, do nothing",
          "color": "#b0b0b0"
        },
        "iconData": {
          "icon": "arrow-right",
          "type": "icon"
        },
        "displayName": "No Operation, do nothing",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 38,
        "icon": "fa:pen",
        "name": "n8n-nodes-base.set",
        "codex": {
          "data": {
            "alias": [
              "Set",
              "JS",
              "JSON",
              "Filter",
              "Transform",
              "Map"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Edit Fields"
        },
        "iconData": {
          "icon": "pen",
          "type": "icon"
        },
        "displayName": "Edit Fields (Set)",
        "typeVersion": 3,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 838,
        "icon": "fa:mouse-pointer",
        "name": "n8n-nodes-base.manualTrigger",
        "codex": {
          "data": {
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "When clicking ‘Execute workflow’",
          "color": "#909298"
        },
        "iconData": {
          "icon": "mouse-pointer",
          "type": "icon"
        },
        "displayName": "Manual Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 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": 1195,
        "icon": "fa:calculator",
        "name": "@n8n/n8n-nodes-langchain.toolCalculator",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator/"
                }
              ]
            },
            "categories": [
              "AI",
              "Langchain"
            ],
            "subcategories": {
              "AI": [
                "Tools"
              ],
              "Tools": [
                "Other Tools"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Calculator"
        },
        "iconData": {
          "icon": "calculator",
          "type": "icon"
        },
        "displayName": "Calculator",
        "typeVersion": 1,
        "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": 1300,
        "icon": "fa:check-double",
        "name": "n8n-nodes-base.evaluationTrigger",
        "codex": {
          "data": {
            "alias": [
              "Test",
              "Metrics",
              "Evals",
              "Set Output",
              "Set Metrics"
            ],
            "categories": []
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "When fetching a dataset row",
          "color": "#c3c9d5"
        },
        "iconData": {
          "icon": "check-double",
          "type": "icon"
        },
        "displayName": "Evaluation Trigger",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": null,
            "name": null
          }
        ]
      },
      {
        "id": 1301,
        "icon": "fa:check-double",
        "name": "n8n-nodes-base.evaluation",
        "codex": {
          "data": {
            "alias": [
              "Test",
              "Metrics",
              "Evals",
              "Set Output",
              "Set Metrics"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.evaluation/"
                }
              ]
            },
            "categories": [
              "Utility"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Evaluation",
          "color": "#c3c9d5"
        },
        "iconData": {
          "icon": "check-double",
          "type": "icon"
        },
        "displayName": "Evaluation",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 7,
            "name": "Utility"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 5,
        "name": "Engineering"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}