{"workflow":{"id":13641,"name":"Build an AI agent for WhatsApp with WOZTELL and Google Gemini","views":242,"recentViews":1,"totalViews":242,"createdAt":"2026-02-24T02:00:02.600Z","description":"## ✨ What this template does\nThis workflow automatically replies to incoming WhatsApp messages using AI.\n\nWhen a customer sends a text message, the workflow retrieves the recent conversation history, generates a professional AI reply based on context, and sends it back through WOZTELL.\n\nUse this to provide instant automated responses without live agents.\n\n## 👷 Who it’s for\nIdeal for businesses that receive frequent WhatsApp inquiries and want automated, context aware replies without manual handling. Suitable for teams looking to reduce response workload using AI.\n\n## ⚙️ How it works\n1. Receives an incoming WhatsApp message via webhook.\n2. Checks that the message is a text message and not handled by live chat.\n3. Retrieves the recent conversation history.\n4. Formats the conversation for AI analysis.\n5. Generates a professional reply using Google Gemini.\n6. Sends the reply back to the customer.\n\n## 🧭 How to use\n1. Import the template into your n8n workspace.\n2. Copy the webhook Production URL into your WOZTELL inbound webhook settings.\n3. Connect your WOZTELL credentials.\n4. Connect your Google Gemini API credentials.\n5. Activate the workflow.\n\n## 🧩 Requirements\n- n8n account\n- WOZTELL account with WhatsApp channel configured\n- Google Gemini API key\n\n## 🧠 Customization ideas\n- Modify the AI system prompt to match your brand tone and response style\n- Add additional IF nodes for routing logic, keyword detection, or data validation\n- Replace the AI provider with another supported model instead of Google Gemini\n- Customize the WOZTELL message format, tone rules, or response structure\n\n## 🤖About WOZTELL\nThis template uses WOZTELL to connect n8n with the official WhatsApp Business Platform, allowing you to send and receive WhatsApp messages through approved templates and automation workflows.\n\nYou can create a WOZTELL account and register a WhatsApp Business API account for free.\n\n1. Sign up [here](\nhttps://platform.woztell.com/signup?lang=en&utm_campaign=plugin-n8n&utm_medium=plugin-n8n&utm_source=N8N)\n2. Verify your email and complete your account setup.\n3. Follow the WhatsApp Business API [setup guide](\nhttps://doc.woztell.com/docs/procedures/basic-whatsapp-chatbot-setup/standard-procedures-wa-connect-waba/)\n\nOnce your WhatsApp Business account is connected and message templates are approved, you can activate this workflow.\n\n## 🚀 More templates\nWe’re continuously building more WOZTELL n8n templates. Check our n8n profile to explore the latest workflows.","workflow":{"meta":{"instanceId":"574790a99b7e37f1ffe2f835995bf4db1944e5da17e34a32ce69f9888fd147d8","templateCredsSetupCompleted":true},"nodes":[{"id":"ab801970-59d7-4124-8215-da0273e183ce","name":"Webhook","type":"n8n-nodes-base.webhook","position":[-464,-64],"webhookId":"89343f0d-bced-4e4a-9d1c-7006993f6688","parameters":{"path":"inbound/message","options":{},"httpMethod":"POST"},"typeVersion":2.1},{"id":"4768557e-ecb3-4e52-b8f5-fc5f60c2581d","name":"Filter","type":"n8n-nodes-base.filter","position":[-240,-64],"parameters":{"options":{"ignoreCase":true},"conditions":{"options":{"version":3,"leftValue":"","caseSensitive":false,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"a2aca282-ff80-4653-b79f-a666ffb14926","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.eventType }}","rightValue":"inbound"},{"id":"38402f61-dad9-46e0-a830-7fa8073f6909","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.body.type }}","rightValue":"text"},{"id":"6821ba4d-78c2-441c-8f7f-344898a2187b","operator":{"type":"boolean","operation":"equals"},"leftValue":"={{ $json.body.memberExtra.liveChat }}","rightValue":false}]}},"typeVersion":2.3},{"id":"935ade7d-eb39-4289-b076-26f2ee4caa63","name":"Edit Fields","type":"n8n-nodes-base.set","position":[208,-64],"parameters":{"options":{},"assignments":{"assignments":[{"id":"5d6bc1d9-1b9a-41bc-9c19-60643ec454de","name":"messages","type":"string","value":"={{ $json.edges.filter(item => item?.node?.messageEvent?.type === 'TEXT').map(item => ( [[item?.node?.from === 'MEMBER' ? 'Customer' : 'Agent'], item?.node?.messageEvent?.data?.text].join(':') )).join('\\n') }}"},{"id":"ca9db894-efe9-49ce-93d1-4b3c7e7ad9df","name":"member","type":"string","value":"={{ $json.edges[0].node.memberId }}"}]}},"typeVersion":3.4},{"id":"c844b321-42fa-4249-b8fd-d1f1b69589f3","name":"AI Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[432,-64],"parameters":{"text":"={{ $json.messages }}","options":{"systemMessage":"You are a Professional Conversation Analyst and Reply Generator Agent. Analyze the provided conversation snippets. Generate a single, concise, and contextually appropriate reply that directly addresses the last [Customer] statement in a professional tone, (Output **ONLY the plain text** of the reply)."},"promptType":"define"},"retryOnFail":true,"typeVersion":3.1},{"id":"38feeb01-e777-4816-9517-02b232e7bf67","name":"Google Gemini Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","position":[504,160],"parameters":{"options":{"maxOutputTokens":1000}},"credentials":{"googlePalmApi":{"id":"9KjrBrULLICrOME4","name":"Google Gemini(PaLM) Api account"}},"typeVersion":1},{"id":"81b95510-013a-4c79-ba79-36ef3b1f529d","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-1152,-800],"parameters":{"color":5,"width":560,"height":1456,"content":"## ✨ What this template does\nThis workflow automatically replies to incoming WhatsApp messages using AI.\n\nWhen a customer sends a text message, the workflow retrieves the recent conversation history, generates a professional AI reply based on context, and sends it back through WOZTELL.\n\nUse this to provide instant automated responses without live agents.\n\n## 👷 Who it’s for\nIdeal for businesses that receive frequent WhatsApp inquiries and want automated, context aware replies without manual handling. Suitable for teams looking to reduce response workload using AI.\n\n## ⚙️ How it works\n1. Receives an incoming WhatsApp message via webhook.\n2. Checks that the message is a text message and not handled by live chat.\n3. Retrieves the recent conversation history.\n4. Formats the conversation for AI analysis.\n5. Generates a professional reply using Google Gemini.\n6. Sends the reply back to the customer.\n\n## 🧭 How to use\n1. Import the template into your n8n workspace.\n2. Copy the webhook Production URL into your WOZTELL inbound webhook settings.\n3. Connect your WOZTELL credentials.\n4. Connect your Google Gemini API credentials.\n5. Activate the workflow.\n\n## 🧩 Requirements\n- n8n account\n- WOZTELL account with WhatsApp channel configured\n- Google Gemini API key\n\n## 🧠 Customization ideas\n- Modify the AI system prompt to match your brand tone and response style\n- Add additional IF nodes for routing logic, keyword detection, or data validation\n- Replace the AI provider with another supported model instead of Google Gemini\n- Customize the WOZTELL message format, tone rules, or response structure\n\n## 🤖About WOZTELL\nThis template uses WOZTELL to connect n8n with the official WhatsApp Business Platform, allowing you to send and receive WhatsApp messages through approved templates and automation workflows.\n\nYou can create a WOZTELL account and register a WhatsApp Business API account for free.\n\n1. Sign up [here](\nhttps://platform.woztell.com/signup?lang=en&utm_campaign=plugin-n8n&utm_medium=plugin-n8n&utm_source=N8N)\n2. Verify your email and complete your account setup.\n3. Follow the WhatsApp Business API [setup guide](\nhttps://doc.woztell.com/docs/procedures/basic-whatsapp-chatbot-setup/standard-procedures-wa-connect-waba/)\n##\nOnce your WhatsApp Business account is connected and message templates are approved, you can activate this workflow.\n\n## 🚀 More templates\nWe’re continuously building more WOZTELL n8n templates. Check our n8n profile to explore the latest workflows."},"typeVersion":1},{"id":"2590285c-5ba7-4bb3-b997-2458dd5d02ae","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-528,-576],"parameters":{"width":208,"height":480,"content":"### 1) Receives incoming WhatsApp messages from WOZTELL.\n\nAfter activating this workflow, copy the **Production URL** and paste it into your WOZTELL inbound webhook settings.\n\nCheck how to configure the webhook [here](https://support.woztell.com/portal/en/kb/articles/web#Create_Webhooks).\n\nSelect **Inbound Messages** in the Event Subscriptions.\n \nIn the Member Metadata field, fill in the following details:\nMember Metadata: **liveChat**\nMember Path: **member.botMeta.liveChat**"},"typeVersion":1},{"id":"386073bd-b77a-4669-96a7-e15d48954757","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-272,-496],"parameters":{"width":192,"height":400,"content":"### 2) Checks whether the incoming event meets all conditions:\n- Event type is inbound\n- Message type is text\n- Live chat is not active\n###\n\nIf any condition is not met, the message will be ignored. This prevents AI from replying to non text messages or live agent sessions."},"typeVersion":1},{"id":"32fc2d00-72f7-43ca-9715-cf7a8c03442b","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[192,-576],"parameters":{"width":208,"height":480,"content":"### 4) Formats the conversation for AI processing.\n\nLabels messages as Customer or Agent and combines them into a structured conversation block."},"typeVersion":1},{"id":"75a50143-6baf-4851-b653-c1b00eb40e3b","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-32,-768],"parameters":{"width":176,"height":672,"content":"### 3) Retrieves previous conversation history\n\nReads up to 100 messages for the account to provide context to the AI.\n\nSet up your WOZTELL credentials. To generate the access token, follow the step-by-step guide [here]( https://support.woztell.com/portal/en/kb/articles/access-token#Access_Token_Generation).\n\nRequired permissions:\n- channel:list\n- channel:getBasicInfo\n- member:getConversations\n- bot:sendResponses\n- member:getDetails\n###\nFor the WOZTELL Channel API field, follow [this guide](https://support.woztell.com/portal/en/kb/articles/access-token-channels-in-woztell#How_to_Create_an_Access_Token_for_a_Channel_in_WOZTELL) to create a new token. If you have already generated a token, you may reuse it."},"typeVersion":1},{"id":"53cc2e3c-d160-469d-b1b0-9a900d2c85a6","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[448,-576],"parameters":{"width":208,"height":480,"content":"### 5) Generates an AI reply.\n\nThe system prompt defines tone and behavior. You can edit it to match your brand voice.\n\nThis node uses a connected language model."},"typeVersion":1},{"id":"526d2fd2-805c-43b3-bc02-6bd4d4bc827a","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[432,320],"parameters":{"width":208,"height":304,"content":"### 5) Google Gemini Chat Model provides the AI language model used to generate replies.\n\nConnect your Google Gemini API key. Follow the official n8n documentation [here](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/).\n\nYou can adjust token limits or switch to another supported model if needed."},"typeVersion":1},{"id":"21e468e1-6b33-443c-b930-f2f26739d3a7","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[736,-576],"parameters":{"width":208,"height":480,"content":"### 6) Sends the AI generated reply back to the customer via WhatsApp.\n\nThe recipient ID is automatically taken from the inbound message."},"typeVersion":1},{"id":"1a9c9ae1-ee23-427d-ba8e-32f339535847","name":"Send responses","type":"@woztell-sanuker/n8n-nodes-woztell-sanuker.woztell","position":[784,-64],"parameters":{"channel":{"__rl":true,"mode":"id","value":"={{ $('Webhook').item.json.body.channel }}"},"responses":{"response":[{"detail":"={\n  \"type\": \"TEXT\",\n  \"text\": {{ $json.output.toJsonString() }}\n}"}]},"recipientId":"={{ $('Webhook').item.json.body.from }}","requestOptions":{}},"credentials":{"woztellCredentialApi":{"id":"4RPlUsVfCa3jiQNA","name":"WOZTELL account - Chudaxi"}},"typeVersion":1},{"id":"ba580cc1-e77b-423f-a0da-f51d76fb2d33","name":"Get conversation history by id1","type":"@woztell-sanuker/n8n-nodes-woztell-sanuker.woztell","position":[-16,-64],"parameters":{"channel":{"__rl":true,"mode":"id","value":"={{ $json.body.channel }}"},"options":{},"resource":"memberAPI","operation":"getConversationHistory","externalId":"={{ $json.body.from }}","maxResults":10,"requestOptions":{}},"credentials":{"woztellCredentialApi":{"id":"4RPlUsVfCa3jiQNA","name":"WOZTELL account - Chudaxi"}},"typeVersion":1}],"pinData":{"Webhook":[{"body":{"to":"850000000000","app":"******","data":{"text":"Hi"},"from":"123123123123","type":"TEXT","member":"*******","channel":"test_channel_id","eventType":"INBOUND","messageId":"wamid.*****","timestamp":1769757880000,"memberExtra":{"liveChat":false}},"query":{},"params":{},"headers":{"accept":"*/*","cf-visitor":"{\"scheme\":\"https\"}","connection":"keep-alive","content-type":"application/json","content-length":"382","accept-encoding":"gzip, br"},"executionMode":"production"}]},"connections":{"Filter":{"main":[[{"node":"Get conversation history by id1","type":"main","index":0}]]},"Webhook":{"main":[[{"node":"Filter","type":"main","index":0}]]},"AI Agent":{"main":[[{"node":"Send responses","type":"main","index":0}]]},"Edit Fields":{"main":[[{"node":"AI Agent","type":"main","index":0}]]},"Google Gemini Chat Model":{"ai_languageModel":[[{"node":"AI Agent","type":"ai_languageModel","index":0}]]},"Get conversation history by id1":{"main":[[{"node":"Edit Fields","type":"main","index":0}]]}}},"lastUpdatedBy":29,"workflowInfo":{"nodeCount":15,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.filter":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":8},"@n8n/n8n-nodes-langchain.agent":{"count":1},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":1},"@woztell-sanuker/n8n-nodes-woztell-sanuker.woztell":{"count":2}}},"status":"published","readyToDemo":null,"user":{"name":"Kris newey","username":"krisatwoztell","bio":"","verified":true,"links":[],"avatar":"https://gravatar.com/avatar/42bf4caabc2c0bfd51ff9c456e1846f83a1df77ed609ef44c61036cd38edcef3?r=pg&d=retro&size=200"},"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":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"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/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"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/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/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/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/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, 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/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/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"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/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-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"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":844,"icon":"fa:filter","name":"n8n-nodes-base.filter","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The Filter node can be used to filter items based on a condition. If the condition is met, the item will be passed on to the next node. If the condition is not met, the item will be omitted. Conditions can be combined together by AND(meet all conditions), or OR(meet at least one condition).","resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.filter/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Filter","color":"#229eff"},"iconData":{"icon":"filter","type":"icon"},"displayName":"Filter","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":1262,"icon":"file:google.svg","name":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatgooglegemini/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"Google Gemini Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNCIvPjwvZGVmcz48Y2xpcFBhdGggaWQ9ImIiPjx1c2UgeGxpbms6aHJlZj0iI2EiIG92ZXJmbG93PSJ2aXNpYmxlIi8+PC9jbGlwUGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im0wIDExIDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Im0wIDM3IDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiIGNsaXAtcGF0aD0idXJsKCNiKSIvPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OCAxNyAyNGwtNC0zIDM1LTEweiIgY2xpcC1wYXRoPSJ1cmwoI2IpIi8+PC9zdmc+"},"displayName":"Google Gemini Chat Model","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":40,"name":"Support Chatbot"},{"id":47,"name":"AI Chatbot"}],"image":[]}}