{"workflow":{"id":13118,"name":"Convert GitHub commits into review-ready pull requests with Google Gemini","views":41,"recentViews":0,"totalViews":41,"createdAt":"2026-01-30T14:07:54.978Z","description":"## Description  \n**Categories**  \nDeveloper Automation, AI Agents, GitHub Automation, DevOps Productivity\n\n---\n\n## Build an AI-Driven GitHub Pull Request Automation with n8n + MCP\n\nThis workflow creates an AI-powered GitHub automation that turns raw commit history into a clean, professional pull request automatically.\n\nWhen triggered via MCP or another workflow, it extracts repository details, fetches all commits from a target branch, uses AI to understand the intent behind the changes, and creates a well-structured pull request with a clear title and description.\n\nThe result is a reliable, no-manual-work system that standardizes pull requests and reduces review friction across teams.\n\n---\n\n## Benefits\n\n### Consistent Pull Requests  \nEvery PR follows a clean, readable structure regardless of who triggered it.\n\n### Zero Manual Formatting  \nNo copy-pasting commit messages or writing descriptions by hand.\n\n### Faster Review Cycles  \nReviewers get clear context upfront, reducing back-and-forth.\n\n### AI-Assisted Context Awareness  \nCommit history is summarized intelligently, not blindly concatenated.\n\n### MCP-Ready Automation  \nCan be called directly by AI tools like Cursor through MCP.\n\n---\n\n## How It Works\n\n### MCP or Workflow Trigger  \n- Triggered via MCP server or another n8n workflow  \n- Accepts natural language or structured input  \n\n### Repository Information Extraction  \n- AI extracts:\n  - Repository owner  \n  - Repository name  \n  - Source branch  \n  - Base branch  \n\n### Commit Retrieval (GitHub API)  \n- Fetches all commits for the source branch  \n- Collects commit messages as context  \n\n### Commit Summarization (AI)  \n- AI analyzes commit history  \n- Generates:\n  - A concise PR title  \n  - A clear bullet-point description  \n\n### Pull Request Creation  \n- Creates a GitHub pull request automatically  \n- Uses correct base and head branches  \n- Inserts AI-generated title and description  \n\n---\n\n## Required Setup\n\n### GitHub  \n- Repository access  \n- OAuth or personal access token  \n- Permission to read commits and create pull requests  \n\n### AI Model  \n- Google Gemini or compatible LLM  \n- Connected via n8n AI nodes  \n\n### n8n  \n- Self-hosted or cloud  \n- HTTP access to GitHub APIs  \n- MCP Trigger enabled for AI tool access  \n\n---\n\n## Business Use Cases\n\n### Engineering Teams  \n- Standardize PR quality across developers  \n- Reduce cognitive load on contributors  \n\n### DevOps & Platform Teams  \n- Enforce PR hygiene automatically  \n- Improve velocity without extra process  \n\n### Founders & Tech Leads  \n- Maintain clean repositories without micromanagement  \n\n### Agencies & Consultants  \n- Deliver AI-assisted GitHub automation to clients  \n\n---\n\n## Difficulty Level  \nIntermediate\n\n---\n\n## Estimated Build Time  \n45–75 minutes\n\n---\n\n## Monthly Operating Cost  \n- GitHub: Existing plan  \n- AI Model: Free tier or usage-based  \n- n8n: Self-hosted or cloud  \n\nTypical range: $0–20/month\n\n---\n\n## Why This Workflow Works\n\n- Commits are the most reliable source of change intent  \n- AI summarizes meaning, not noise  \n- MCP enables direct AI-to-automation execution  \n- GitHub remains the single source of truth  \n\n---\n\n## Possible Extensions\n\n- Auto-assign reviewers based on files changed  \n- Add PR labels using AI classification  \n- Generate changelog entries automatically  \n- Post PR summary to Slack or Teams  \n- Enforce branch naming or commit standards  \n\n---\n\n## Details\n\n**Nodes used in workflow**\n- MCP Trigger  \n- AI Agent (Repository Extraction)  \n- Structured Output Parser  \n- GitHub API (Commits)  \n- Summarize  \n- AI LLM Chain  \n- GitHub API (Create Pull Request)  \n- If  \n- Edit Fields (Set)  \n- Sticky Note","workflow":{"id":"Y6oy5VN_oASw3lZR2RpMk","meta":{"instanceId":"5ed678343855bdfe05a1f5a84e9357d4b8adfee68f81e4406b050b3a4dceeabe","templateCredsSetupCompleted":true},"name":"AI Agent to respond to github repo issues","tags":[],"nodes":[{"id":"1e461404-a788-40d5-8c41-e2f24e062cd0","name":"Google Gemini Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[272,624],"parameters":{"options":{"temperature":0.5}},"credentials":{"googlePalmApi":{"id":"2ZbYbFKpZtzR5Ccp","name":"Google Gemini(PaLM) Api account"}},"typeVersion":1},{"id":"3ff48ae4-f4a8-4ed4-a878-caf91b19338d","name":"Structured Output Parser","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[544,624],"parameters":{"jsonSchemaExample":"{\n\t\"owner\": \"GitHub repository owner username\",\n\t\"repo\": \"GitHub repository name\",\n\t\"branch_name\": \"Source branch name for the pull request\",\n\t\"base_branch\": \"Target branch name (usually main or master)\"\n}"},"typeVersion":1.3},{"id":"a79a9efb-4269-44ad-a33b-3cb0d9f1a54b","name":"Check for Repository error","type":"n8n-nodes-base.if","position":[992,272],"parameters":{"options":{},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"335ff773-f79e-4c59-99bd-7f617bc00b06","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.message }}","rightValue":""}]}},"typeVersion":2.3},{"id":"0c9f5f07-8059-48d7-aa97-9ea45d64dd8d","name":"MCP Server Trigger for Github","type":"@n8n/n8n-nodes-langchain.mcpTrigger","position":[128,-352],"webhookId":"a2c1b2dd-32ed-463a-97c0-0f7139719c3c","parameters":{"path":"a2c1b2dd-32ed-463a-97c0-0f7139719c3c"},"typeVersion":2},{"id":"c96743bb-f689-4aa4-a365-35c2b918b9be","name":"create_github_pr","type":"@n8n/n8n-nodes-langchain.toolWorkflow","position":[464,-80],"parameters":{"workflowId":{"__rl":true,"mode":"list","value":"Y6oy5VN_oASw3lZR2RpMk","cachedResultUrl":"/workflow/Y6oy5VN_oASw3lZR2RpMk","cachedResultName":"My workflow"},"description":"Creates a GitHub Pull Request. IMPORTANT: You must provide the full repository owner and name (e.g., 'AhmedSAAhmed/Example-Auth-service') even if you have a local git context, so the backend API can route the request correctly.","workflowInputs":{"value":{},"schema":[],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false}},"typeVersion":2.2},{"id":"8def05a1-46d6-42d7-8039-a25340c0438f","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-720,-320],"parameters":{"width":576,"height":800,"content":"## How it works\n\nA GitHub issue triggers the MCP server.\n\nMCP forwards the issue context to this workflow.\n\nRepository details are extracted using AI.\n\nCommits from the target branch are fetched.\n\nCommit messages are summarized into intent.\n\nAn LLM generates a PR title and description.\n\nA pull request is created via GitHub API.\n\n## Setup steps\n\nEnable MCP and connect it to your GitHub repo.\n\nConfigure GitHub API credentials with PR access.\n\nSet default base branch, for example main.\n\nConnect an LLM, such as Google Gemini.\n\nEnsure the sub-workflow is callable and active.\n\n## Customization\n\nModify prompts to align with your issue template.\n\nEnforce branch or naming rules before PR creation.\n\nAdd guards to skip draft or WIP issues."},"typeVersion":1},{"id":"92915031-6779-4b8a-bef5-ba27acac07f5","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[64,-496],"parameters":{"color":7,"width":592,"height":576,"content":"## MCP Issue Trigger\n\nListens for new or updated GitHub issues via MCP and starts the automation flow."},"typeVersion":1},{"id":"89bb2592-02bd-4345-ae79-39bd4f8862a5","name":"Subworkflow Entry Point","type":"n8n-nodes-base.executeWorkflowTrigger","position":[-16,368],"parameters":{"inputSource":"passthrough"},"typeVersion":1.1},{"id":"336cb283-c4ff-4c00-852e-d8d8a0ab1ed3","name":"Extract Repo & Branch Context","type":"@n8n/n8n-nodes-langchain.agent","position":[320,368],"parameters":{"text":"You are a data extraction assistant. Your task is to extract structured repository information from natural language queries about GitHub pull requests. Always provide all four fields: owner, repo, branch_name, and base_branch. Use the defaults provided when information is not explicitly mentioned in the query.","options":{},"promptType":"define","hasOutputParser":true},"typeVersion":3.1},{"id":"7f6cb32c-7363-4fa4-b01f-55ca9ee4344d","name":"Fetch GitHub Issues","type":"n8n-nodes-base.githubTool","position":[112,-80],"webhookId":"4d9dbde9-a850-4d73-b9fd-217fd81758e4","parameters":{"owner":{"__rl":true,"mode":"url","value":"https://github.com/AhmedSAAhmed"},"resource":"repository","returnAll":true,"repository":{"__rl":true,"mode":"url","value":"https://github.com/AhmedSAAhmed/Dog-Classifier-CNN"},"authentication":"oAuth2","descriptionType":"manual","toolDescription":"Fetch GitHub issue details including the full comment thread, so Cursor can understand complete context and requirements from discussions.","getRepositoryIssuesFilters":{}},"credentials":{"githubOAuth2Api":{"id":"rdYdd8Sg4X1vJLtL","name":"GitHub account"}},"typeVersion":1.1},{"id":"c4a0643f-433f-440e-a37b-edfe2ebd7c34","name":"Repo or Branch Validation","type":"n8n-nodes-base.httpRequest","onError":"continueErrorOutput","position":[784,368],"parameters":{"url":"={{ 'https://api.github.com/repos/' + $json.output.owner + '/' + $json.output.repo + '/commits' }}","options":{},"sendQuery":true,"authentication":"predefinedCredentialType","queryParameters":{"parameters":[{"name":"sha","value":"={{ $json.output.branch_name }}"}]},"nodeCredentialType":"githubApi"},"credentials":{"githubApi":{"id":"BIkto8aaYXx9FWHh","name":"GitHub account 2"}},"typeVersion":4.3},{"id":"a2d1a0b6-f3d4-4dc1-83d2-9c68b05b89e6","name":"Build Error Response","type":"n8n-nodes-base.set","position":[1424,288],"parameters":{"options":{},"assignments":{"assignments":[{"id":"a2b9ef40-b4b2-41f6-b038-1d0a800fd3fa","name":"result","type":"string","value":"=Error: I couldn't find the repository \"{{ $('Extract Repository Info').item.json.output.owner }}/{{ $('Extract Repository Info').item.json.output.repo }}\" or branch \"{{ $('Extract Repository Info').item.json.output.branch_name }}\". Please double-check the spelling or ensure the repo is public and the branch exists."}]}},"typeVersion":3.4},{"id":"8703f716-6780-44ed-a195-c71e7ce3658c","name":"Prepare PR Payload","type":"n8n-nodes-base.set","position":[1424,480],"parameters":{"options":{},"assignments":{"assignments":[{"id":"9f397f03-26a2-4561-ad25-0251a43c21f3","name":"owner","type":"string","value":"={{ $('Extract Repository Info').item.json.output.owner }}"},{"id":"a19746d8-c346-4c32-a2b5-91035fed234e","name":"repo","type":"string","value":"={{ $('Extract Repository Info').item.json.output.repo }}"},{"id":"5425ce9e-24fa-4680-bd5c-a1e4955dfa56","name":"branch_name","type":"string","value":"={{ $('Extract Repository Info').item.json.output.branch_name }}"},{"id":"3f5ae6c9-9d61-424a-9e31-dc29d35bd195","name":"base_branch","type":"string","value":"={{ $('Extract Repository Info').item.json.output.base_branch }}"},{"id":"11cd1a81-d84d-4138-9c5c-d11a6231e7ff","name":"message","type":"string","value":"={{ $json.commit.message }}"}]}},"typeVersion":3.4},{"id":"e66b73c9-e51b-4db2-a63f-d665f152e516","name":"Create Pull Request","type":"n8n-nodes-base.httpRequest","position":[2192,288],"parameters":{"url":"={{ 'https://api.github.com/repos/' + $('Extract Repository Info').item.json.output.owner + '/' + $('Extract Repository Info').item.json.output.repo + '/pulls' }}","method":"POST","options":{},"sendBody":true,"authentication":"predefinedCredentialType","bodyParameters":{"parameters":[{"name":"title","value":"={{ $('Generate PR Title & Description').item.json.text.split('Title:')[1].split('Description:')[0].trim() }}"},{"name":"head","value":"={{ $('Extract Repository Info').item.json.output.branch_name }}"},{"name":"base","value":"={{ $('Extract Repository Info').item.json.output.base_branch }}"},{"name":"body","value":"={{ $('Generate PR Title & Description').item.json.text.split('Description:')[1].trim() }}"}]},"nodeCredentialType":"githubApi"},"credentials":{"githubApi":{"id":"BIkto8aaYXx9FWHh","name":"GitHub account 2"}},"typeVersion":4.3},{"id":"5607aebb-6cb5-43e3-8c3a-8034bca002c1","name":"Generate PR Title & Description","type":"@n8n/n8n-nodes-langchain.chainLlm","position":[1840,288],"parameters":{"text":"=Here are all the commit messages for this branch:\n{{ $('summarize_commits').first().json.concatenated_message }}\n\nPlease write a professional Pull Request:\n1. A Title that summarizes the overall goal of these changes (max 72 characters).\n2. A Description that lists the key changes in bullet points.\n\nIMPORTANT: Return ONLY plain text without any markdown formatting. Do not use asterisks (**), bold, italics, or any other markdown syntax.\n\nFormat your response as:\nTitle: [your title here]\nDescription:\n[your description here]","batching":{},"promptType":"define"},"typeVersion":1.9},{"id":"d32a4f90-f1f7-46a6-a64e-643ce2711624","name":"Aggregate Commit Messages","type":"n8n-nodes-base.summarize","position":[1632,288],"parameters":{"options":{},"fieldsToSummarize":{"values":[{"field":"message","separateBy":"\n","aggregation":"concatenate"}]}},"typeVersion":1.1},{"id":"e08a9e7a-7a99-4278-b80d-4c60fae0dbdb","name":"LLM PR Writer Model","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[1936,480],"parameters":{"options":{}},"credentials":{"googlePalmApi":{"id":"2ZbYbFKpZtzR5Ccp","name":"Google Gemini(PaLM) Api account"}},"typeVersion":1},{"id":"ab4b402d-e845-4dfa-84da-ae6d02956754","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-64,160],"parameters":{"color":7,"width":1184,"height":608,"content":"## Context & Intelligence\n\nReceives data from MCP, extracts repository and branch context, fetches commits, and prepares structured input for AI reasoning."},"typeVersion":1},{"id":"55f95864-7bf0-48aa-b47f-3bf315649e9f","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1136,160],"parameters":{"color":7,"width":1232,"height":608,"content":"## PR Generation & Execution\n\nTransforms commit context into a PR title and description, validates output, and creates the pull request via GitHub API."},"typeVersion":1}],"active":false,"pinData":{"Subworkflow Entry Point":[{"json":{},"pairedItem":{"item":0}}]},"settings":{"availableInMCP":false,"executionOrder":"v1"},"versionId":"a5e92d5b-f4e0-43de-acce-d71e4d849e24","connections":{"create_github_pr":{"ai_tool":[[{"node":"MCP Server Trigger for Github","type":"ai_tool","index":0}]]},"Fetch GitHub Issues":{"ai_tool":[[{"node":"MCP Server Trigger for Github","type":"ai_tool","index":0}]]},"LLM PR Writer Model":{"ai_languageModel":[[{"node":"Generate PR Title & Description","type":"ai_languageModel","index":0}]]},"Build Error Response":{"main":[[{"node":"Aggregate Commit Messages","type":"main","index":0}]]},"Subworkflow Entry Point":{"main":[[{"node":"Extract Repo & Branch Context","type":"main","index":0}]]},"Google Gemini Chat Model":{"ai_languageModel":[[{"node":"Extract Repo & Branch Context","type":"ai_languageModel","index":0}]]},"Structured Output Parser":{"ai_outputParser":[[{"node":"Extract Repo & Branch Context","type":"ai_outputParser","index":0}]]},"Aggregate Commit Messages":{"main":[[{"node":"Generate PR Title & Description","type":"main","index":0}]]},"Repo or Branch Validation":{"main":[[{"node":"Check for Repository error","type":"main","index":0}]]},"Check for Repository error":{"main":[[{"node":"Prepare PR Payload","type":"main","index":0}],[{"node":"Build Error Response","type":"main","index":0}]]},"Extract Repo & Branch Context":{"main":[[{"node":"Repo or Branch Validation","type":"main","index":0}]]},"Generate PR Title & Description":{"main":[[{"node":"Create Pull Request","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":19,"nodeTypes":{"n8n-nodes-base.if":{"count":1},"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.summarize":{"count":1},"n8n-nodes-base.githubTool":{"count":1},"n8n-nodes-base.stickyNote":{"count":4},"n8n-nodes-base.httpRequest":{"count":2},"@n8n/n8n-nodes-langchain.agent":{"count":1},"@n8n/n8n-nodes-langchain.chainLlm":{"count":1},"@n8n/n8n-nodes-langchain.mcpTrigger":{"count":1},"@n8n/n8n-nodes-langchain.toolWorkflow":{"count":1},"n8n-nodes-base.executeWorkflowTrigger":{"count":1},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":2},"@n8n/n8n-nodes-langchain.outputParserStructured":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Ahmed Salama","username":"ahmedsalama","bio":"Founders and ops teams use me to replace manual work with reliable n8n systems. Manual work is costing you money every day. Every week you delay makes the problem harder and more expensive.\n\n👉 Book a n8n build or training call.","verified":true,"links":["https://www.linkedin.com/in/ahmedsaahmed/"],"avatar":"https://gravatar.com/avatar/97bfd5c5011a7654cc19bd8344b0c419b7166258e9f5ff7842fe4b86208c1cdd?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"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/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-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content 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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"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/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"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/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"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/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/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"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/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"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.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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":1123,"icon":"fa:link","name":"@n8n/n8n-nodes-langchain.chainLlm","codex":{"data":{"alias":["LangChain"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Chains","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"Basic LLM Chain","color":"#909298"},"iconData":{"icon":"link","type":"icon"},"displayName":"Basic LLM Chain","typeVersion":2,"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":1205,"icon":"fa:network-wired","name":"@n8n/n8n-nodes-langchain.toolWorkflow","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolworkflow/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Recommended Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"Call n8n Workflow Tool"},"iconData":{"icon":"network-wired","type":"icon"},"displayName":"Call n8n Workflow Tool","typeVersion":2,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"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"}]},{"id":1293,"icon":"file:../mcp.svg","name":"@n8n/n8n-nodes-langchain.mcpTrigger","codex":{"data":{"alias":["Model Context Protocol","MCP Server"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcptrigger/"}]},"categories":["AI","Core Nodes","Langchain"],"subcategories":{"AI":["Root Nodes","Model Context Protocol"],"Core Nodes":["Other Trigger Nodes"]}}},"group":"[\"trigger\"]","defaults":{"name":"MCP Server Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgwIiBoZWlnaHQ9IjE4MCIgdmlld0JveD0iMCAwIDE5NSAxOTUiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgk8ZyBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMTIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCI+CgkJPHBhdGggZD0iTTI1IDk3Ljg1MjhMOTIuODgyMyAyOS45NzA2QzEwMi4yNTUgMjAuNTk4IDExNy40NTEgMjAuNTk4IDEyNi44MjMgMjkuOTcwNlYyOS45NzA2QzEzNi4xOTYgMzkuMzQzMSAxMzYuMTk2IDU0LjUzOTEgMTI2LjgyMyA2My45MTE3TDc1LjU1ODEgMTE1LjE3NyIvPgoJCTxwYXRoIGQ9Ik03Ni4yNjUzIDExNC40N0wxMjYuODIzIDYzLjkxMTdDMTM2LjE5NiA1NC41MzkxIDE1MS4zOTIgNTQuNTM5MSAxNjAuNzY1IDYzLjkxMTdMMTYxLjExOCA2NC4yNjUyQzE3MC40OTEgNzMuNjM3OCAxNzAuNDkxIDg4LjgzMzggMTYxLjExOCA5OC4yMDYzTDk5LjcyNDggMTU5LjZDOTYuNjAwNiAxNjIuNzI0IDk2LjYwMDYgMTY3Ljc4OSA5OS43MjQ4IDE3MC45MTNMMTEyLjMzMSAxODMuNTIiLz4KCQk8cGF0aCBkPSJNMTA5Ljg1MyA0Ni45NDExTDU5LjY0ODIgOTcuMTQ1N0M1MC4yNzU3IDEwNi41MTggNTAuMjc1NyAxMjEuNzE0IDU5LjY0ODIgMTMxLjA4N1YxMzEuMDg3QzY5LjAyMDggMTQwLjQ1OSA4NC4yMTY4IDE0MC40NTkgOTMuNTg5NCAxMzEuMDg3TDE0My43OTQgODAuODgyMiIvPgoJPC9nPgo8L3N2Zz4K"},"displayName":"MCP Server Trigger","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"},{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":16,"name":"DevOps"},{"id":48,"name":"AI RAG"}],"image":[]}}