{"workflow":{"id":14843,"name":"Analyze stocks in Warren Buffett style from Telegram with OpenAI and Gmail","views":0,"recentViews":0,"totalViews":0,"createdAt":"2026-04-07T04:27:12.075Z","description":"This workflow turns a simple Telegram message into a full stock research report inspired by Warren Buffett’s value investing approach. A user sends a ticker symbol such as AAPL, MSFT, or AMZN, and the workflow validates the input, runs AI-powered research, performs discounted cash flow calculations, and sends a polished HTML report to Gmail with a final verdict.\n\nIt is designed as a reusable finance analysis template for creators, developers, and automation builders who want to combine Telegram, AI agents, live research, and email delivery in one workflow. Templates in n8n are intended to help users learn, reuse best practices, and quickly adapt a workflow to their own setup, so this version is structured to be easy to follow and reconfigure after import.\n\n## What this workflow does\n- Receives a stock ticker from Telegram and cleans the input before processing.\n\n- Validates the ticker format and stops invalid requests early with a helpful reply.\n\n- Uses an AI agent to generate a Buffett-style investment analysis.\n\n- Uses SerpAPI for live company and market research.\n\n- Uses a calculator tool for DCF and margin-of-safety math.\n\n- Sends the final HTML report to Gmail and confirms completion in Telegram.\n\n## Setup instructions\n1. Import the workflow into n8n and reconnect your credentials for Telegram, OpenAI, SerpAPI, and Gmail. n8n templates are designed to be imported and then configured in the user’s own environment.\n\n2. Open the Extract Ticker, Chat ID & Email node and replace YOUR_EMAIL@gmail.com with your destination email address.\n \n3. Create or connect your Telegram bot credentials, then test by sending a stock ticker like AAPL or MSFT.\n\n4. Connect your Gmail OAuth2 account so the workflow can send the HTML report email.\n\n5. Activate the workflow and run a live test from Telegram.\n\n## Requirements\n- Telegram Bot API credentials\n- OpenAI API credentials\n- SerpAPI credentials\n- Gmail OAuth2 credentials\n\n## Best for\n- Finance research demos\n- AI agent workflow examples\n- Telegram-to-email automations\n- Value investing and stock analysis use cases\n","workflow":{"id":"8o0fo712OHfq5NZ5","meta":{"instanceId":"917bc29bfa2c82f24f16831fb4e0bfe2709765de8e62d99b486a2dcfe168d792"},"name":"Warren Buffett Style Stock Analyzer","tags":[{"id":"8znohpKnw8UWpUXV","name":"Finance","createdAt":"2026-04-04T19:06:47.261Z","updatedAt":"2026-04-04T19:06:47.261Z"},{"id":"iAT3xNNYy5ayYMai","name":"Telegram","createdAt":"2026-04-04T19:06:47.199Z","updatedAt":"2026-04-04T19:06:47.199Z"},{"id":"uTa9o5O84yXLMQ9f","name":"AI Agent","createdAt":"2026-04-04T19:06:47.228Z","updatedAt":"2026-04-04T19:06:47.228Z"}],"nodes":[{"id":"be5ab63d-fda5-4f5c-abc4-93c54e5a7eaf","name":"📱 Telegram Trigger","type":"n8n-nodes-base.telegramTrigger","position":[544,-48],"webhookId":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","parameters":{"updates":["message"],"additionalFields":{}},"typeVersion":1.1},{"id":"45b7dc7f-bb23-4b79-92a9-30f2db4f2ff4","name":"🔤 Extract Ticker & User","type":"n8n-nodes-base.set","position":[768,-48],"parameters":{"options":{},"assignments":{"assignments":[{"id":"assign_ticker","name":"ticker","type":"string","value":"={{ $json.message.text.toUpperCase().replace(/[^A-Z0-9.]/g, '').trim() }}"},{"id":"assign_chat_id","name":"chat_id","type":"string","value":"={{ $json.message.chat.id }}"},{"id":"assign_username","name":"username","type":"string","value":"={{ $json.message.from.first_name || $json.message.from.username || 'Investor' }}"},{"id":"assign_email","name":"recipientEmail","type":"string","value":"user@example.com"}]}},"typeVersion":3.3},{"id":"ea9e5098-9e68-434a-a749-ff5a4e5c890f","name":"📨 Send Acknowledgement","type":"n8n-nodes-base.telegram","position":[992,-48],"webhookId":"9ad8c307-5d7b-478f-80a5-2be38261d30d","parameters":{"text":"=🔍 *Analyzing {{ $('🔤 Extract Ticker & User').item.json.ticker }} using Warren Buffett's value investing framework...*\n\n⏳ Running live web research across:\n• Financial statements & 10-year history\n• Competitive moat assessment\n• Management quality review\n• DCF intrinsic value model\n• Margin of safety calculation\n\n_This usually takes 30–60 seconds. Results will be emailed to you._","chatId":"={{ $('🔤 Extract Ticker & User').item.json.chat_id }}","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"9a8d70d5-1ad2-4c83-91f9-09797a48abd9","name":"🧠 Buffett AI Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[1360,-48],"parameters":{"text":"=Analyze the company with ticker symbol: {{ $('🔤 Extract Ticker & User').item.json.ticker }}\n\nRequested by: {{ $('🔤 Extract Ticker & User').item.json.username }}\n\nDate of analysis: {{ $now.format('MMMM D, YYYY') }}\n\n","options":{"maxIterations":15,"systemMessage":"You are Warren Buffett — the legendary value investor, Chairman of Berkshire Hathaway, and one of the greatest capital allocators in history. Your task is to perform a rigorous, research-backed investment analysis on the provided stock ticker using your core value investing philosophy.\n\nYou MUST use the web search tool extensively to gather current, real data before writing your analysis. Search for:\n1. Latest annual revenue, net income, EPS, and earnings releases\n2. Return on equity (ROE) for the past 10 years\n3. Free cash flow history and current levels\n4. Debt levels and balance sheet strength\n5. Current stock price, market cap, and P/E ratio\n6. Competitive position, moat analysis, market share\n7. Management quality, CEO track record, share buybacks, dividends\n8. Key risks: regulatory, competitive, technological\n9. Analyst price targets and independent DCF estimates\n10. Any recent material news (lawsuits, acquisitions, guidance)\n\nAFTER gathering all research, produce a comprehensive analysis covering ALL SEVEN sections below. Write in Warren Buffett's voice — plain-spoken, folksy, wise, occasionally self-deprecating, and always grounded in first principles. Use analogies (See's Candies, Coca-Cola, GEICO) where appropriate.\n\n---\n\n## TOOL USAGE — MANDATORY ORDER\n\nYou have access to these tools inside this workflow:\n1. Web Search (SerpAPI)\n2. Calculator\n\nUse them in this order:\n\n### STEP 1 — Web Search for current data\nUse SerpAPI extensively to gather current, real-world information for the company. Search for:\n1. Latest revenue, net income, EPS, and recent earnings results\n2. Return on equity (ROE) history and profitability trends\n3. Free cash flow and balance sheet strength\n4. Debt levels, cash position, and capital allocation\n5. Current stock price, market cap, valuation multiples\n6. Competitive moat, market share, and industry position\n7. Management quality, CEO track record, buybacks, dividends\n8. Recent material news, risks, lawsuits, acquisitions, or guidance\n9. Analyst expectations, price targets, and external valuation views\n\nPerform multiple focused searches. Prefer specific facts and recent sources over generic summaries.\n\n### STEP 2 — Calculator for valuation math\nUse the Calculator tool for all DCF and margin-of-safety calculations:\n- Growth projections\n- Discounting cash flows\n- Terminal value\n- Present value of terminal value\n- Intrinsic value per share\n- Margin of safety percentage\n\nDo not estimate DCF math mentally when the Calculator can be used.\n\n### STEP 3 — Final output\nAfter research and calculations, produce the final answer as a complete HTML document only, following the required structure below.\nDo not return markdown.\nDo not explain your process.\nReturn only the final HTML.\n\n---\n\n---\n\n## REQUIRED OUTPUT STRUCTURE\n\nGenerate your response as a fully formatted HTML email body using the exact structure below. Use inline CSS only (no external stylesheets). The output will be sent directly as an HTML Gmail message.\n\nUse this exact HTML template structure:\n\n```html\n<!DOCTYPE html>\n<html>\n<head><meta charset=\"UTF-8\"></head>\n<body style=\"font-family: Georgia, 'Times New Roman', serif; max-width: 780px; margin: 0 auto; background: #fafaf8; color: #1a1a1a; padding: 0;\">\n\n<!-- HEADER BANNER -->\n<div style=\"background: #1a3a1a; color: #f5f0e8; padding: 32px 40px; border-radius: 8px 8px 0 0;\">\n  <div style=\"font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: #8fb88f; margin-bottom: 8px;\">Warren Buffett Value Investing Framework</div>\n  <h1 style=\"margin: 0; font-size: 32px; font-weight: 400; color: #f5f0e8;\">[COMPANY NAME] <span style=\"font-size: 16px; color: #8fb88f;\">([TICKER])</span></h1>\n  <div style=\"margin-top: 10px; font-size: 13px; color: #b8cbb8;\">Analysis Date: [DATE] &nbsp;·&nbsp; Analyst: Warren Buffett (simulated) &nbsp;·&nbsp; Berkshire Hathaway Research</div>\n  <!-- VERDICT BADGE: Use appropriate color -->\n  <!-- BUY = background #2d6a2d | HOLD = background #7a5c1e | AVOID = background #8b2020 -->\n  <div style=\"display: inline-block; margin-top: 16px; padding: 8px 24px; border-radius: 20px; font-size: 14px; font-weight: bold; letter-spacing: 1px; background: [VERDICT_COLOR]; color: white;\">\n    ● VERDICT: [BUY / HOLD / AVOID]\n  </div>\n</div>\n\n<!-- KEY METRICS STRIP -->\n<div style=\"background: #2c2c2c; padding: 20px 40px; display: flex; gap: 0;\">\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n    <tr>\n      <td style=\"text-align: center; padding: 0 16px; border-right: 1px solid #444;\">\n        <div style=\"font-size: 10px; color: #888; text-transform: uppercase; letter-spacing: 1px;\">Stock Price</div>\n        <div style=\"font-size: 22px; font-weight: bold; color: #f5f0e8; margin-top: 4px;\">[PRICE]</div>\n      </td>\n      <td style=\"text-align: center; padding: 0 16px; border-right: 1px solid #444;\">\n        <div style=\"font-size: 10px; color: #888; text-transform: uppercase; letter-spacing: 1px;\">Market Cap</div>\n        <div style=\"font-size: 22px; font-weight: bold; color: #f5f0e8; margin-top: 4px;\">[MKTCAP]</div>\n      </td>\n      <td style=\"text-align: center; padding: 0 16px; border-right: 1px solid #444;\">\n        <div style=\"font-size: 10px; color: #888; text-transform: uppercase; letter-spacing: 1px;\">Revenue</div>\n        <div style=\"font-size: 22px; font-weight: bold; color: #f5f0e8; margin-top: 4px;\">[REVENUE]</div>\n      </td>\n      <td style=\"text-align: center; padding: 0 16px; border-right: 1px solid #444;\">\n        <div style=\"font-size: 10px; color: #888; text-transform: uppercase; letter-spacing: 1px;\">ROE</div>\n        <div style=\"font-size: 22px; font-weight: bold; color: [ROE_COLOR]; margin-top: 4px;\">[ROE]%</div>\n      </td>\n      <td style=\"text-align: center; padding: 0 16px; border-right: 1px solid #444;\">\n        <div style=\"font-size: 10px; color: #888; text-transform: uppercase; letter-spacing: 1px;\">P/E Ratio</div>\n        <div style=\"font-size: 22px; font-weight: bold; color: #f5f0e8; margin-top: 4px;\">[PE]x</div>\n      </td>\n      <td style=\"text-align: center; padding: 0 16px;\">\n        <div style=\"font-size: 10px; color: #888; text-transform: uppercase; letter-spacing: 1px;\">Free Cash Flow</div>\n        <div style=\"font-size: 22px; font-weight: bold; color: [FCF_COLOR]; margin-top: 4px;\">[FCF]</div>\n      </td>\n    </tr>\n  </table>\n</div>\n\n<!-- MAIN CONTENT -->\n<div style=\"background: white; padding: 40px; border: 1px solid #e5e0d8; border-top: none;\">\n\n  <!-- SECTION 1 -->\n  <div style=\"margin-bottom: 36px;\">\n    <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 16px;\">\n      <div style=\"background: #1a3a1a; color: white; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: bold; flex-shrink: 0; text-align: center; line-height: 28px;\">1</div>\n      <h2 style=\"margin: 0; font-size: 20px; font-weight: 600; color: #1a3a1a;\">Business Understanding</h2>\n      <span style=\"margin-left: auto; padding: 3px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; background: #eaf3ea; color: #2d6a2d;\">[BADGE e.g. Crystal Clear]</span>\n    </div>\n    <p style=\"line-height: 1.8; color: #333; font-size: 15px; margin: 0;\">[BUSINESS_UNDERSTANDING_TEXT — write 3-4 paragraphs in Buffett's voice. Explain what the business does, how it makes money, its segments and revenue model. Be specific with real numbers from your research.]</p>\n  </div>\n\n  <hr style=\"border: none; border-top: 1px solid #e5e0d8; margin: 0 0 36px 0;\">\n\n  <!-- SECTION 2 -->\n  <div style=\"margin-bottom: 36px;\">\n    <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 16px;\">\n      <div style=\"background: #1a3a1a; color: white; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: bold; flex-shrink: 0; text-align: center; line-height: 28px;\">2</div>\n      <h2 style=\"margin: 0; font-size: 20px; font-weight: 600; color: #1a3a1a;\">Durable Competitive Moat</h2>\n      <span style=\"margin-left: auto; padding: 3px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; background: [MOAT_BADGE_BG]; color: [MOAT_BADGE_COLOR];\">[MOAT_STRENGTH]</span>\n    </div>\n    <p style=\"line-height: 1.8; color: #333; font-size: 15px; margin: 0;\">[MOAT_TEXT — 3-4 paragraphs. Assess brand power, switching costs, network effects, cost advantages. Use the castle-and-moat metaphor. Be honest about weaknesses. Compare to See's Candies, Coca-Cola, or GEICO where applicable.]</p>\n  </div>\n\n  <hr style=\"border: none; border-top: 1px solid #e5e0d8; margin: 0 0 36px 0;\">\n\n  <!-- SECTION 3 -->\n  <div style=\"margin-bottom: 36px;\">\n    <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 16px;\">\n      <div style=\"background: #1a3a1a; color: white; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: bold; flex-shrink: 0; text-align: center; line-height: 28px;\">3</div>\n      <h2 style=\"margin: 0; font-size: 20px; font-weight: 600; color: #1a3a1a;\">Management Quality</h2>\n      <span style=\"margin-left: auto; padding: 3px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; background: [MGMT_BADGE_BG]; color: [MGMT_BADGE_COLOR];\">[MGMT_RATING]</span>\n    </div>\n    <p style=\"line-height: 1.8; color: #333; font-size: 15px; margin: 0;\">[MANAGEMENT_TEXT — 2-3 paragraphs. CEO background and track record, capital allocation (buybacks, dividends, acquisitions), shareholder communication, SBC levels, any controversies.]</p>\n  </div>\n\n  <hr style=\"border: none; border-top: 1px solid #e5e0d8; margin: 0 0 36px 0;\">\n\n  <!-- SECTION 4 -->\n  <div style=\"margin-bottom: 36px;\">\n    <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 16px;\">\n      <div style=\"background: #1a3a1a; color: white; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: bold; flex-shrink: 0; text-align: center; line-height: 28px;\">4</div>\n      <h2 style=\"margin: 0; font-size: 20px; font-weight: 600; color: #1a3a1a;\">Financial Health (10-Year Review)</h2>\n      <span style=\"margin-left: auto; padding: 3px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; background: [FIN_BADGE_BG]; color: [FIN_BADGE_COLOR];\">[FIN_RATING]</span>\n    </div>\n    <!-- Financial Scorecard Table -->\n    <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"margin-bottom: 20px; border: 1px solid #e5e0d8; border-radius: 6px; overflow: hidden;\">\n      <thead>\n        <tr style=\"background: #f5f0e8;\">\n          <th style=\"padding: 10px 16px; text-align: left; font-size: 12px; color: #666; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;\">Metric</th>\n          <th style=\"padding: 10px 16px; text-align: center; font-size: 12px; color: #666; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;\">Value</th>\n          <th style=\"padding: 10px 16px; text-align: center; font-size: 12px; color: #666; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;\">Buffett Standard</th>\n          <th style=\"padding: 10px 16px; text-align: center; font-size: 12px; color: #666; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px;\">Pass/Fail</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr style=\"border-top: 1px solid #e5e0d8;\">\n          <td style=\"padding: 10px 16px; font-size: 14px; color: #333;\">Return on Equity (ROE)</td>\n          <td style=\"padding: 10px 16px; font-size: 14px; font-weight: 600; color: #333; text-align: center;\">[ROE_VALUE]%</td>\n          <td style=\"padding: 10px 16px; font-size: 13px; color: #666; text-align: center;\">&gt; 15% consistently</td>\n          <td style=\"padding: 10px 16px; text-align: center;\"><span style=\"padding: 3px 10px; border-radius: 10px; font-size: 12px; font-weight: 600; background: [ROE_PASS_BG]; color: [ROE_PASS_COLOR];\">[ROE_PASS]</span></td>\n        </tr>\n        <tr style=\"border-top: 1px solid #e5e0d8; background: #fafaf8;\">\n          <td style=\"padding: 10px 16px; font-size: 14px; color: #333;\">Free Cash Flow</td>\n          <td style=\"padding: 10px 16px; font-size: 14px; font-weight: 600; color: #333; text-align: center;\">[FCF_VALUE]</td>\n          <td style=\"padding: 10px 16px; font-size: 13px; color: #666; text-align: center;\">Positive &amp; growing</td>\n          <td style=\"padding: 10px 16px; text-align: center;\"><span style=\"padding: 3px 10px; border-radius: 10px; font-size: 12px; font-weight: 600; background: [FCF_PASS_BG]; color: [FCF_PASS_COLOR];\">[FCF_PASS]</span></td>\n        </tr>\n        <tr style=\"border-top: 1px solid #e5e0d8;\">\n          <td style=\"padding: 10px 16px; font-size: 14px; color: #333;\">Debt / Equity Ratio</td>\n          <td style=\"padding: 10px 16px; font-size: 14px; font-weight: 600; color: #333; text-align: center;\">[DE_RATIO]</td>\n          <td style=\"padding: 10px 16px; font-size: 13px; color: #666; text-align: center;\">Low / Manageable</td>\n          <td style=\"padding: 10px 16px; text-align: center;\"><span style=\"padding: 3px 10px; border-radius: 10px; font-size: 12px; font-weight: 600; background: [DE_PASS_BG]; color: [DE_PASS_COLOR];\">[DE_PASS]</span></td>\n        </tr>\n        <tr style=\"border-top: 1px solid #e5e0d8; background: #fafaf8;\">\n          <td style=\"padding: 10px 16px; font-size: 14px; color: #333;\">Net Profit Margin</td>\n          <td style=\"padding: 10px 16px; font-size: 14px; font-weight: 600; color: #333; text-align: center;\">[MARGIN]%</td>\n          <td style=\"padding: 10px 16px; font-size: 13px; color: #666; text-align: center;\">Widening over time</td>\n          <td style=\"padding: 10px 16px; text-align: center;\"><span style=\"padding: 3px 10px; border-radius: 10px; font-size: 12px; font-weight: 600; background: [MARGIN_PASS_BG]; color: [MARGIN_PASS_COLOR];\">[MARGIN_PASS]</span></td>\n        </tr>\n        <tr style=\"border-top: 1px solid #e5e0d8;\">\n          <td style=\"padding: 10px 16px; font-size: 14px; color: #333;\">10-Year Profitability Record</td>\n          <td style=\"padding: 10px 16px; font-size: 14px; font-weight: 600; color: #333; text-align: center;\">[PROFIT_HISTORY]</td>\n          <td style=\"padding: 10px 16px; font-size: 13px; color: #666; text-align: center;\">Consistent profits</td>\n          <td style=\"padding: 10px 16px; text-align: center;\"><span style=\"padding: 3px 10px; border-radius: 10px; font-size: 12px; font-weight: 600; background: [HIST_PASS_BG]; color: [HIST_PASS_COLOR];\">[HIST_PASS]</span></td>\n        </tr>\n      </tbody>\n    </table>\n    <p style=\"line-height: 1.8; color: #333; font-size: 15px; margin: 0;\">[FINANCIAL_HEALTH_TEXT — 2-3 paragraphs of narrative commentary on the financials.]</p>\n  </div>\n\n  <hr style=\"border: none; border-top: 1px solid #e5e0d8; margin: 0 0 36px 0;\">\n\n  <!-- SECTION 5 -->\n  <div style=\"margin-bottom: 36px;\">\n    <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 16px;\">\n      <div style=\"background: #1a3a1a; color: white; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: bold; flex-shrink: 0; text-align: center; line-height: 28px;\">5</div>\n      <h2 style=\"margin: 0; font-size: 20px; font-weight: 600; color: #1a3a1a;\">Intrinsic Value (DCF Model)</h2>\n      <span style=\"margin-left: auto; padding: 3px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; background: [DCF_BADGE_BG]; color: [DCF_BADGE_COLOR];\">[DCF_VERDICT]</span>\n    </div>\n    <p style=\"line-height: 1.8; color: #333; font-size: 15px; margin-bottom: 20px;\">[DCF_INTRO — 1 paragraph explaining assumptions: base earnings, growth rates years 1-5, years 6-10, discount rate, terminal growth rate. Use conservative Buffett-style assumptions.]</p>\n    <!-- DCF Result Cards -->\n    <table width=\"100%\" cellpadding=\"0\" cellspacing=\"12\" style=\"margin-bottom: 20px;\">\n      <tr>\n        <td width=\"25%\" style=\"padding: 4px;\">\n          <div style=\"background: #f5f0e8; border-radius: 8px; padding: 16px; text-align: center;\">\n            <div style=\"font-size: 11px; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px;\">Base Earnings</div>\n            <div style=\"font-size: 20px; font-weight: bold; color: #1a3a1a;\">[BASE_EARNINGS]</div>\n          </div>\n        </td>\n        <td width=\"25%\" style=\"padding: 4px;\">\n          <div style=\"background: #f5f0e8; border-radius: 8px; padding: 16px; text-align: center;\">\n            <div style=\"font-size: 11px; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px;\">PV 10-Year Earnings</div>\n            <div style=\"font-size: 20px; font-weight: bold; color: #1a3a1a;\">[PV_10YR]</div>\n          </div>\n        </td>\n        <td width=\"25%\" style=\"padding: 4px;\">\n          <div style=\"background: #f5f0e8; border-radius: 8px; padding: 16px; text-align: center;\">\n            <div style=\"font-size: 11px; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px;\">PV Terminal Value</div>\n            <div style=\"font-size: 20px; font-weight: bold; color: #1a3a1a;\">[PV_TERMINAL]</div>\n          </div>\n        </td>\n        <td width=\"25%\" style=\"padding: 4px;\">\n          <div style=\"background: #1a3a1a; border-radius: 8px; padding: 16px; text-align: center;\">\n            <div style=\"font-size: 11px; color: #8fb88f; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px;\">Intrinsic Value/Share</div>\n            <div style=\"font-size: 20px; font-weight: bold; color: white;\">[INTRINSIC_PER_SHARE]</div>\n          </div>\n        </td>\n      </tr>\n    </table>\n    <!-- Price Comparison Bar -->\n    <div style=\"background: #f5f0e8; border-radius: 8px; padding: 16px; display: flex; text-align: center;\">\n      <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n        <tr>\n          <td width=\"33%\" style=\"text-align: center; padding: 8px; border-right: 1px solid #d5cfc8;\">\n            <div style=\"font-size: 11px; color: #888; margin-bottom: 4px;\">Intrinsic Value</div>\n            <div style=\"font-size: 22px; font-weight: bold; color: #2d6a2d;\">[INTRINSIC_PER_SHARE]</div>\n          </td>\n          <td width=\"33%\" style=\"text-align: center; padding: 8px; border-right: 1px solid #d5cfc8;\">\n            <div style=\"font-size: 11px; color: #888; margin-bottom: 4px;\">Current Price</div>\n            <div style=\"font-size: 22px; font-weight: bold; color: [CURR_PRICE_COLOR];\">[CURRENT_PRICE]</div>\n          </td>\n          <td width=\"33%\" style=\"text-align: center; padding: 8px;\">\n            <div style=\"font-size: 11px; color: #888; margin-bottom: 4px;\">Buy Price (25-30% MOS)</div>\n            <div style=\"font-size: 22px; font-weight: bold; color: #7a5c1e;\">[BUY_TARGET]</div>\n          </td>\n        </tr>\n      </table>\n    </div>\n  </div>\n\n  <hr style=\"border: none; border-top: 1px solid #e5e0d8; margin: 0 0 36px 0;\">\n\n  <!-- SECTION 6 -->\n  <div style=\"margin-bottom: 36px;\">\n    <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 16px;\">\n      <div style=\"background: #1a3a1a; color: white; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: bold; flex-shrink: 0; text-align: center; line-height: 28px;\">6</div>\n      <h2 style=\"margin: 0; font-size: 20px; font-weight: 600; color: #1a3a1a;\">Margin of Safety</h2>\n      <span style=\"margin-left: auto; padding: 3px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; background: [MOS_BADGE_BG]; color: [MOS_BADGE_COLOR];\">[MOS_VERDICT]</span>\n    </div>\n    <p style=\"line-height: 1.8; color: #333; font-size: 15px; margin: 0;\">[MARGIN_OF_SAFETY_TEXT — 2-3 paragraphs. State clearly whether there is a 25-30% margin of safety. Reference current price vs intrinsic value. Discuss what price would represent a good entry. Mention the 10-year holding comfort.]</p>\n  </div>\n\n  <hr style=\"border: none; border-top: 1px solid #e5e0d8; margin: 0 0 36px 0;\">\n\n  <!-- SECTION 7 -->\n  <div style=\"margin-bottom: 36px;\">\n    <div style=\"display: flex; align-items: center; gap: 12px; margin-bottom: 16px;\">\n      <div style=\"background: #1a3a1a; color: white; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: bold; flex-shrink: 0; text-align: center; line-height: 28px;\">7</div>\n      <h2 style=\"margin: 0; font-size: 20px; font-weight: 600; color: #1a3a1a;\">Circle of Competence &amp; Key Risks</h2>\n      <span style=\"margin-left: auto; padding: 3px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; background: [COC_BADGE_BG]; color: [COC_BADGE_COLOR];\">[COC_VERDICT]</span>\n    </div>\n    <p style=\"line-height: 1.8; color: #333; font-size: 15px; margin-bottom: 20px;\">[CIRCLE_OF_COMPETENCE_TEXT — 2 paragraphs. What is inside the circle, what is not. What you'd need to understand before investing.]</p>\n    <!-- Risk List -->\n    <div style=\"background: #fafaf8; border: 1px solid #e5e0d8; border-radius: 8px; padding: 16px;\">\n      <div style=\"font-size: 12px; font-weight: 600; color: #666; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px;\">Key Risk Factors</div>\n      [RISK_ITEMS — format each risk as: <div style=\"padding: 8px 0; border-bottom: 1px solid #e5e0d8; font-size: 14px; color: #333;\"><strong style=\"color: #1a3a1a;\">[Risk Name]:</strong> [Risk description]</div> ]\n    </div>\n  </div>\n\n  <!-- VERDICT SECTION -->\n  <div style=\"background: #1a3a1a; border-radius: 8px; padding: 32px; margin-top: 8px;\">\n    <div style=\"font-size: 11px; color: #8fb88f; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 8px;\">Annual Letter to Shareholders — Final Verdict</div>\n    <div style=\"font-size: 28px; font-weight: bold; color: white; margin-bottom: 20px;\">● [BUY / HOLD / AVOID]</div>\n    <p style=\"line-height: 1.9; color: #d5e8d5; font-size: 15px; font-style: italic; margin: 0;\">[ANNUAL_LETTER_PARAGRAPH — Write a single, rich paragraph in Warren Buffett's annual letter voice. Should be 200-300 words. Plain-spoken, wise, use at least one analogy (See's Candies, GEICO, Coke, etc.), acknowledge what's good about the business even if avoiding, explain the pricing or moat concern clearly. End with either where you'd buy or why you're holding or why you're passing entirely.]</p>\n  </div>\n\n</div>\n\n<!-- FOOTER -->\n<div style=\"background: #f0ebe3; padding: 20px 40px; border-radius: 0 0 8px 8px; border: 1px solid #e5e0d8; border-top: none;\">\n  <p style=\"font-size: 11px; color: #999; margin: 0; line-height: 1.6;\">⚠️ <strong>Disclaimer:</strong> This analysis is AI-generated for educational purposes only, simulating Warren Buffett's publicly documented value investing framework. It is not financial advice. Always conduct your own due diligence before making investment decisions. Past performance is not indicative of future results.</p>\n  <p style=\"font-size: 11px; color: #bbb; margin: 8px 0 0 0;\">Generated by n8n AI Agent · Powered by Claude · Analysis Date: [DATE]</p>\n</div>\n\n</body>\n</html>\n```\n\nIMPORTANT RULES:\n- Always populate ALL placeholder values with real researched data\n- Use these badge colors: Strong/Excellent = background #eaf3ea, color #2d6a2d | Moderate/Mixed = background #fef3e2, color #7a5c1e | Weak/Poor = background #fde8e8, color #8b2020\n- ROE_COLOR: green (#2d6a2d) if >15%, orange (#c17d00) if 10-15%, red (#8b2020) if <10%\n- FCF_COLOR: green if positive, red if negative\n- CURR_PRICE_COLOR: green if below intrinsic value, red if above\n- Verdict colors: BUY = #2d6a2d | HOLD = #7a5c1e | AVOID = #8b2020\n- Do NOT return markdown. Return ONLY the complete HTML document, nothing else before or after it."},"promptType":"define"},"typeVersion":3.1,"continueOnFail":true},{"id":"9d6dfa06-5afb-4156-b2a1-0bc8107bbabb","name":"🔍 SerpAPI Web Search","type":"@n8n/n8n-nodes-langchain.toolSerpApi","position":[1408,144],"parameters":{"options":{}},"typeVersion":1},{"id":"028f0308-27ae-4a50-b5ff-62fb9f50049f","name":"📧 Send Gmail Report","type":"n8n-nodes-base.gmail","position":[2352,-64],"webhookId":"47c80b61-2d5b-4a3e-a4bc-87d5b68d8d43","parameters":{"sendTo":"={{ $('🔤 Extract Ticker & User').item.json.recipientEmail }}","message":"={{ $('🧠 Buffett AI Agent').item.json.output }}","options":{"appendAttribution":false},"subject":"=📊 Buffett Analysis: {{ $('🔤 Extract Ticker & User').item.json.ticker }} — {{ $('🧠 Buffett AI Agent').item.json.output.match(/VERDICT: (BUY|HOLD|AVOID)/)?.[1] || 'Analysis Complete' }} | {{ $now.format('dd/LL/yyyy') }}"},"typeVersion":2.1},{"id":"99fd2afb-8a4c-47f0-a044-d035e7894651","name":"✅ Telegram Confirmation","type":"n8n-nodes-base.telegram","position":[2592,-64],"webhookId":"dd2d5675-715d-4fb6-964d-88257e7813b7","parameters":{"text":"=✅ *{{ $('🔤 Extract Ticker & User').item.json.ticker }} Analysis Complete!*\n\n📧 Your full Warren Buffett-style report has been sent to your Gmail inbox.\n\n*Verdict:* {{ $('🧠 Buffett AI Agent').item.json.output.match(/VERDICT: (BUY|HOLD|AVOID)/)?.[1] || 'See email for details' }}\n\n_To analyze another stock, simply send me a new ticker symbol (e.g. AAPL, MSFT, AMZN)._","chatId":"={{ $('🔤 Extract Ticker & User').item.json.chat_id }}","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"b18b9929-244b-4bc6-9808-c0a344248617","name":"❌ Telegram Error Handler","type":"n8n-nodes-base.telegram","position":[2400,160],"webhookId":"6ca5c99b-bd24-4f3b-a07a-a62b9eb0799e","parameters":{"text":"=❌ *Analysis Failed*\n\nSorry, I encountered an error analyzing *{{ $('🔤 Extract Ticker & User').item.json.ticker }}*.\n\nPlease check:\n• Is the ticker symbol correct? (e.g. AAPL, GOOGL, MSFT)\n• Try again in a moment\n\nDetails: {{ $json.output?.substring(0, 200) || 'No details available. Please try again.' }}","chatId":"={{ $('🔤 Extract Ticker & User').item.json.chat_id }}","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"dcd52436-a925-4fdb-95f5-0d0b714fbfda","name":"🔎 Validate Ticker","type":"n8n-nodes-base.if","position":[992,-240],"parameters":{"options":{},"conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"ticker_regex","operator":{"type":"string","operation":"regex"},"leftValue":"={{ $json.ticker }}","rightValue":"^[A-Z0-9.\\-]{1,10}$"}]}},"typeVersion":2},{"id":"bcda63ad-bb06-4201-af76-dd7e1f8fa3c8","name":"⚠️ Invalid Ticker Reply","type":"n8n-nodes-base.telegram","position":[1216,-224],"webhookId":"145a8b14-7b7f-4528-bce4-9a2139a8ee75","parameters":{"text":"=⚠️ *Invalid Input*\n\nPlease send a valid stock ticker symbol.\n\n*Examples:*\n• `AAPL` — Apple\n• `MSFT` — Microsoft\n• `GOOGL` — Alphabet\n• `AMZN` — Amazon\n• `BRK.B` — Berkshire Hathaway\n\n_Just type the ticker and hit send._","chatId":"={{ $('🔤 Extract Ticker & User').item.json.chat_id }}","additionalFields":{"parse_mode":"Markdown"}},"typeVersion":1.2},{"id":"971f7cfd-3f14-4f3c-ad31-29309bed3e7a","name":"🔀 Check Agent Output","type":"n8n-nodes-base.if","position":[1920,-48],"parameters":{"options":{},"conditions":{"options":{"version":1,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"html_check","operator":{"type":"string","operation":"contains"},"leftValue":"={{ $json.output }}","rightValue":"</html>"}]}},"typeVersion":2},{"id":"18a45af2-bdd9-4c5d-8acd-d6a7fafe8848","name":"📌 Overview","type":"n8n-nodes-base.stickyNote","position":[480,-480],"parameters":{"color":6,"width":1800,"height":156,"content":"## 🏦 Warren Buffett Style Stock Analyzer\n\nSend any **stock ticker** to your Telegram bot (e.g. `AAPL`, `MSFT`, `AMZN`) and receive a full **value investing analysis** in your Gmail inbox — written in Warren Buffett's voice.\n\n**The AI agent researches 10 data points in real-time** (financials, moat, management, DCF model, margin of safety) then delivers a formatted HTML report with a BUY / HOLD / AVOID verdict."},"typeVersion":1},{"id":"dc57917d-ccc2-48f8-8026-0138d283e8d2","name":"📌 Setup Required","type":"n8n-nodes-base.stickyNote","position":[128,-224],"parameters":{"color":5,"width":344,"height":472,"content":"## ⚙️ Required Setup\n\n**1. Credentials to connect:**\n- 📱 Telegram Bot API\n- 🔍 SerpAPI (web search)\n- 🤖 OpenAI API\n- 📧 Gmail OAuth2\n\n**2. Set your email:**\n→ Open **🔤 Extract Ticker & User**\n→ Change `recipientEmail` value to your Gmail\n\n**3. Create a Telegram bot:**\n→ Message `@BotFather` on Telegram\n→ Use `/newbot` command\n→ Copy token to credentials\n\n**4. SerpAPI free tier:**\n→ 100 searches/month free\n→ Sign up at serpapi.com"},"typeVersion":1},{"id":"cdecb44e-0c24-4f7a-9031-36e932e24639","name":"📌 Step 1 - Input","type":"n8n-nodes-base.stickyNote","position":[512,112],"parameters":{"width":420,"height":248,"content":"## 📥 Step 1 - Input\n\n1. User sends ticker via Telegram\n2. Ticker is sanitized (uppercase, non-alpha stripped)\n3. Config node supplies recipient email\n4. **Validation** checks ticker is 1–10 chars\n5. Acknowledgement sent (sets expectations)\n\n💡 *Tip: The bot also works for international tickers (e.g. `ASML`, `TSM`)*"},"typeVersion":1},{"id":"7f23301f-06ac-485c-b99e-426b6b5907e1","name":"📌 Step 2 - AI Engine","type":"n8n-nodes-base.stickyNote","position":[1200,336],"parameters":{"width":460,"height":152,"content":"## 🧠 Step 2 - AI Engine\n\n**Agent tools (for qualitative research):**\n- 🔍 **SerpAPI** — moat, management, news, analyst opinions\n- 🧮 **Calculator** — precise DCF arithmetic\n"},"typeVersion":1},{"id":"7863b9ce-c338-48a3-aca0-bb67e42db9ef","name":"📌 Step 3 - Output","type":"n8n-nodes-base.stickyNote","position":[1760,128],"parameters":{"color":2,"width":416,"height":296,"content":"## 📤 Step 3 - Output\n\n1. **IF node** validates HTML output exists\n2. ✅ Valid → Email + Telegram confirmation\n3. ❌ Invalid → Error message to Telegram\n\n📧 *Gmail sends full HTML with inline CSS — renders as a styled financial report*\n\n💡 *The verdict (BUY/HOLD/AVOID) is extracted from the HTML and shown in the Telegram reply and email subject.*"},"typeVersion":1},{"id":"1160468e-8a66-45fb-a67c-24668c2ef0d7","name":"📌 Error Handling","type":"n8n-nodes-base.stickyNote","position":[2384,352],"parameters":{"color":3,"width":300,"height":274,"content":"## ❌ Error Handling\n\nTwo error paths are covered:\n\n**Path A** — Invalid ticker (too short/long)\n→ Caught before agent runs\n→ Sends friendly Telegram hint\n\n**Path B** — Agent failure or bad output\n→ `continueOnFail` keeps workflow alive\n→ IF node checks for valid HTML\n→ Routes to this error message node"},"typeVersion":1},{"id":"fbbe50e7-8766-4315-9d7a-8998195ce9a7","name":"📌 Email Config","type":"n8n-nodes-base.stickyNote","position":[2368,-320],"parameters":{"color":4,"width":360,"height":240,"content":"## ✉️ Email Recipient\n\nSet your email in the **🔤 Extract Ticker & User** node — look for the `recipientEmail` field.\n\nChange `REPLACE_WITH_YOUR_GMAIL@gmail.com` to your actual Gmail address.\n\n*The Gmail account sending the report must be connected via OAuth2 in credentials.*"},"typeVersion":1},{"id":"bd736c98-560d-4809-a5ca-2c1f0b479b1e","name":"🧮 Calculator (DCF Math)","type":"@n8n/n8n-nodes-langchain.toolCalculator","position":[1584,144],"parameters":{},"typeVersion":1},{"id":"57fc76ab-2a97-4da1-a617-066d341819f6","name":"🤖 OpenAI GPT-4o-mini","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1184,160],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{},"builtInTools":{}},"typeVersion":1.3}],"active":false,"pinData":{},"settings":{"binaryMode":"separate","executionOrder":"v1"},"versionId":"35fe3dcf-4ef1-41a7-bcb7-3ef8f2416698","connections":{"🔎 Validate Ticker":{"main":[[{"node":"📨 Send Acknowledgement","type":"main","index":0}],[{"node":"⚠️ Invalid Ticker Reply","type":"main","index":0}]]},"📱 Telegram Trigger":{"main":[[{"node":"🔤 Extract Ticker & User","type":"main","index":0}]]},"🧠 Buffett AI Agent":{"main":[[{"node":"🔀 Check Agent Output","type":"main","index":0}]]},"📧 Send Gmail Report":{"main":[[{"node":"✅ Telegram Confirmation","type":"main","index":0}]]},"🔀 Check Agent Output":{"main":[[{"node":"📧 Send Gmail Report","type":"main","index":0}],[{"node":"❌ Telegram Error Handler","type":"main","index":0}]]},"🔍 SerpAPI Web Search":{"ai_tool":[[{"node":"🧠 Buffett AI Agent","type":"ai_tool","index":0}]]},"🤖 OpenAI GPT-4o-mini":{"ai_languageModel":[[{"node":"🧠 Buffett AI Agent","type":"ai_languageModel","index":0}]]},"📨 Send Acknowledgement":{"main":[[{"node":"🧠 Buffett AI Agent","type":"main","index":0}]]},"🔤 Extract Ticker & User":{"main":[[{"node":"🔎 Validate Ticker","type":"main","index":0}]]},"🧮 Calculator (DCF Math)":{"ai_tool":[[{"node":"🧠 Buffett AI Agent","type":"ai_tool","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":20,"nodeTypes":{"n8n-nodes-base.if":{"count":2},"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.gmail":{"count":1},"n8n-nodes-base.telegram":{"count":4},"n8n-nodes-base.stickyNote":{"count":7},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.telegramTrigger":{"count":1},"@n8n/n8n-nodes-langchain.toolSerpApi":{"count":1},"@n8n/n8n-nodes-langchain.lmChatOpenAi":{"count":1},"@n8n/n8n-nodes-langchain.toolCalculator":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Sankar Battula","username":"sankarbattula","bio":"","verified":false,"links":[],"avatar":"https://gravatar.com/avatar/8bc7d15f2d6dfe97ec4986dc0b8ad308f6dd046101a739701f115ae3b502b637?r=pg&d=retro&size=200"},"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":49,"icon":"file:telegram.svg","name":"n8n-nodes-base.telegram","codex":{"data":{"alias":["human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"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/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"},{"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/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/creating-telegram-bots-with-n8n-a-no-code-platform/","icon":"💬","label":"Creating Telegram Bots with n8n, a No-Code Platform"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.telegram/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/telegram/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"output\"]","defaults":{"name":"Telegram"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Telegram","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":50,"icon":"file:telegram.svg","name":"n8n-nodes-base.telegramTrigger","codex":{"data":{"resources":{"generic":[{"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/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/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/creating-telegram-bots-with-n8n-a-no-code-platform/","icon":"💬","label":"Creating Telegram Bots with n8n, a No-Code Platform"},{"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/trigger-nodes/n8n-nodes-base.telegramtrigger/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/telegram/"}]},"categories":["Communication"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"Telegram Trigger"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjYgNjYiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ii41IiB5PSIuNSIvPjxzeW1ib2wgaWQ9ImEiIG92ZXJmbG93PSJ2aXNpYmxlIj48ZyBmaWxsLXJ1bGU9Im5vbnplcm8iIHN0cm9rZT0ibm9uZSI+PHBhdGggZmlsbD0iIzM3YWVlMiIgZD0iTTAgMzJjMCAxNy42NzMgMTQuMzI3IDMyIDMyIDMyczMyLTE0LjMyNyAzMi0zMlM0OS42NzMgMCAzMiAwIDAgMTQuMzI3IDAgMzIiLz48cGF0aCBmaWxsPSIjYzhkYWVhIiBkPSJtMjEuNjYxIDM0LjMzOCAzLjc5NyAxMC41MDhzLjQ3NS45ODMuOTgzLjk4MyA4LjA2OC03Ljg2NCA4LjA2OC03Ljg2NGw4LjQwNy0xNi4yMzctMjEuMTE5IDkuODk4eiIvPjxwYXRoIGZpbGw9IiNhOWM2ZDgiIGQ9Im0yNi42OTUgMzcuMDM0LS43MjkgNy43NDZzLS4zMDUgMi4zNzMgMi4wNjggMGw0LjY0NC00LjIwMyIvPjxwYXRoIGQ9Im0yMS43MyAzNC43MTItNy44MDktMi41NDVzLS45MzItLjM3OC0uNjMzLTEuMjM3Yy4wNjItLjE3Ny4xODYtLjMyOC41NTktLjU4OCAxLjczMS0xLjIwNiAzMi4wMjgtMTIuMDk2IDMyLjAyOC0xMi4wOTZzLjg1Ni0uMjg4IDEuMzYxLS4wOTdjLjIzMS4wODguMzc4LjE4Ny41MDMuNTQ4LjA0NS4xMzIuMDcxLjQxMS4wNjguNjg5LS4wMDMuMjAxLS4wMjcuMzg2LS4wNDUuNjc4LS4xODQgMi45NzgtNS43MDYgMjUuMTk4LTUuNzA2IDI1LjE5OHMtLjMzIDEuMy0xLjUxNCAxLjM0NWMtLjQzMi4wMTYtLjk1Ni0uMDcxLTEuNTgyLS42MS0yLjMyMy0xLjk5OC0xMC4zNTItNy4zOTQtMTIuMTI2LTguNThhLjM0LjM0IDAgMCAxLS4xNDYtLjIzOWMtLjAyNS0uMTI1LjEwOC0uMjguMTA4LS4yOHMxMy45OC0xMi40MjcgMTQuMzUyLTEzLjczMWMuMDI5LS4xMDEtLjA3OS0uMTUxLS4yMjYtLjEwNy0uOTI5LjM0Mi0xNy4wMjUgMTAuNTA2LTE4LjgwMSAxMS42MjktLjEwNC4wNjYtLjM5NS4wMjMtLjM5NS4wMjMiLz48L2c+PC9zeW1ib2w+PC9zdmc+"},"displayName":"Telegram Trigger","typeVersion":1,"nodeCategories":[{"id":6,"name":"Communication"}]},{"id":356,"icon":"file:gmail.svg","name":"n8n-nodes-base.gmail","codex":{"data":{"alias":["email","human","form","wait","hitl","approval"],"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/","icon":"💪","label":"Using Automation to Boost Productivity in the Workplace"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.gmail/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Communication","HITL"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"HITL":["Human in the Loop"]}}},"group":"[\"transform\"]","defaults":{"name":"Gmail"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTYiIGhlaWdodD0iMTkzIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTU4LjE4MiAxOTIuMDVWOTMuMTRMMjcuNTA3IDY1LjA3NyAwIDQ5LjUwNHYxMjUuMDkxYzAgOS42NTggNy44MjUgMTcuNDU1IDE3LjQ1NSAxNy40NTV6Ii8+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTE5Ny44MTggMTkyLjA1aDQwLjcyN2M5LjY1OSAwIDE3LjQ1NS03LjgyNiAxNy40NTUtMTcuNDU1VjQ5LjUwNWwtMzEuMTU2IDE3LjgzNy0yNy4wMjYgMjUuNzk4eiIvPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Im01OC4xODIgOTMuMTQtNC4xNzQtMzguNjQ3IDQuMTc0LTM2Ljk4OUwxMjggNjkuODY4bDY5LjgxOC01Mi4zNjQgNC42NyAzNC45OTItNC42NyA0MC42NDRMMTI4IDE0NS41MDR6Ii8+PHBhdGggZmlsbD0iI0ZCQkMwNCIgZD0iTTE5Ny44MTggMTcuNTA0VjkzLjE0TDI1NiA0OS41MDRWMjYuMjMxYzAtMjEuNTg1LTI0LjY0LTMzLjg5LTQxLjg5LTIwLjk0NXoiLz48cGF0aCBmaWxsPSIjQzUyMjFGIiBkPSJtMCA0OS41MDQgMjYuNzU5IDIwLjA3TDU4LjE4MiA5My4xNFYxNy41MDRMNDEuODkgNS4yODZDMjQuNjEtNy42NiAwIDQuNjQ2IDAgMjYuMjN6Ii8+PC9zdmc+"},"displayName":"Gmail","typeVersion":2,"nodeCategories":[{"id":6,"name":"Communication"},{"id":28,"name":"HITL"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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":1153,"icon":"file:openAiLight.svg","name":"@n8n/n8n-nodes-langchain.lmChatOpenAi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Language Models","Root Nodes"],"Language Models":["Chat Models (Recommended)"]}}},"group":"[\"transform\"]","defaults":{"name":"OpenAI Chat Model"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTM2Ljg2NzEgMTYuMzcxOEMzNy43NzQ2IDEzLjY0OCAzNy40NjIxIDEwLjY2NDIgMzYuMDEwOCA4LjE4NjYxQzMzLjgyODIgNC4zODY1MyAyOS40NDA3IDIuNDMxNDkgMjUuMTU1NiAzLjM1MTUxQzIzLjI0OTMgMS4yMDM5NiAyMC41MTA1IC0wLjAxNzMxNDggMTcuNjM5MiAwLjAwMDE4NTUzM0MxMy4yNTkxIC0wLjAwOTgxNDY4IDkuMzcyNzMgMi44MTAyNSA4LjAyNTIgNi45Nzc4M0M1LjIxMTM5IDcuNTU0MSAyLjc4MjU4IDkuMzE1MzggMS4zNjEzIDExLjgxMTdDLTAuODM3NDkzIDE1LjYwMTggLTAuMzM2MjMyIDIwLjM3OTQgMi42MDEzMyAyMy42Mjk0QzEuNjkzODEgMjYuMzUzMiAyLjAwNjMyIDI5LjMzNzEgMy40NTc2IDMxLjgxNDZDNS42NDAxNSAzNS42MTQ3IDEwLjAyNzcgMzcuNTY5NyAxNC4zMTI4IDM2LjY0OTdDMTYuMjE3OSAzOC43OTczIDE4Ljk1NzkgNDAuMDE4NSAyMS44MjkyIDM5Ljk5OThDMjYuMjExOCA0MC4wMTEgMzAuMDk5NCAzNy4xODg1IDMxLjQ0NjkgMzMuMDE3MUMzNC4yNjA4IDMyLjQ0MDkgMzYuNjg5NiAzMC42Nzk2IDM4LjExMDggMjguMTgzM0M0MC4zMDcxIDI0LjM5MzIgMzkuODA0NiAxOS42MTk0IDM2Ljg2ODMgMTYuMzY5M0wzNi44NjcxIDE2LjM3MThaTTIxLjgzMTcgMzcuMzg2QzIwLjA3OCAzNy4zODg1IDE4LjM3OTIgMzYuNzc0NyAxNy4wMzI5IDM1LjY1MDlDMTcuMDk0MSAzNS42MTg0IDE3LjIwMDQgMzUuNTU5NyAxNy4yNjkxIDM1LjUxNzJMMjUuMjM0MyAzMC45MTcxQzI1LjY0MTggMzAuNjg1OCAyNS44OTE4IDMwLjI1MjEgMjUuODg5MyAyOS43ODMzVjE4LjU1NDNMMjkuMjU1NyAyMC40OTgxQzI5LjI5MTkgMjAuNTE1NiAyOS4zMTU3IDIwLjU1MDYgMjkuMzIwNyAyMC41OTA2VjI5Ljg4OTZDMjkuMzE1NyAzNC4wMjQ3IDI1Ljk2NjggMzcuMzc3MiAyMS44MzE3IDM3LjM4NlpNNS43MjY0IDMwLjUwNzFDNC44NDc2MyAyOC45ODk2IDQuNTMxMzcgMjcuMjEwOCA0LjgzMjYzIDI1LjQ4NDVDNC44OTEzOCAyNS41MTk1IDQuOTk1MTMgMjUuNTgzMiA1LjA2ODg4IDI1LjYyNTdMMTMuMDM0MSAzMC4yMjU4QzEzLjQzNzggMzAuNDYyMSAxMy45Mzc4IDMwLjQ2MjEgMTQuMzQyOCAzMC4yMjU4TDI0LjA2NjggMjQuNjEwN1YyOC40OTgzQzI0LjA2OTMgMjguNTM4MyAyNC4wNTA1IDI4LjU3NyAyNC4wMTkzIDI4LjYwMkwxNS45Njc5IDMzLjI1MDlDMTIuMzgxNSAzNS4zMTU5IDcuODAxNDQgMzQuMDg4NCA1LjcyNzY1IDMwLjUwNzFINS43MjY0Wk0zLjYzMDEgMTMuMTIwNUM0LjUwNTEyIDExLjYwMDQgNS44ODY0IDEwLjQzNzkgNy41MzE0NCA5LjgzNDE1QzcuNTMxNDQgOS45MDI5IDcuNTI3NjkgMTAuMDI0MiA3LjUyNzY5IDEwLjEwOTJWMTkuMzEwNkM3LjUyNTE5IDE5Ljc3ODEgNy43NzUxOSAyMC4yMTE5IDguMTgxNDUgMjAuNDQzMUwxNy45MDU0IDI2LjA1N0wxNC41MzkxIDI4LjAwMDhDMTQuNTA1MyAyOC4wMjMzIDE0LjQ2MjggMjguMDI3IDE0LjQyNTMgMjguMDEwOEw2LjM3MjY2IDIzLjM1ODJDMi43OTM4MyAyMS4yODU2IDEuNTY2MzEgMTYuNzA2OCAzLjYyODg1IDEzLjEyMTdMMy42MzAxIDEzLjEyMDVaTTMxLjI4ODIgMTkuNTU2OUwyMS41NjQyIDEzLjk0MTdMMjQuOTMwNiAxMS45OTkyQzI0Ljk2NDMgMTEuOTc2NyAyNS4wMDY4IDExLjk3MjkgMjUuMDQ0MyAxMS45ODkyTDMzLjA5NyAxNi42MzhDMzYuNjgyMSAxOC43MDkzIDM3LjkxMDggMjMuMjk1NyAzNS44Mzk1IDI2Ljg4MDhDMzQuOTYzMyAyOC4zOTgzIDMzLjU4MzIgMjkuNTYwOCAzMS45Mzk1IDMwLjE2NThWMjAuNjg5NEMzMS45NDMyIDIwLjIyMTkgMzEuNjk0NSAxOS43ODk0IDMxLjI4OTQgMTkuNTU2OUgzMS4yODgyWk0zNC42MzgzIDE0LjUxNDJDMzQuNTc5NSAxNC40NzggMzQuNDc1OCAxNC40MTU1IDM0LjQwMiAxNC4zNzNMMjYuNDM2OCA5Ljc3Mjg5QzI2LjAzMzEgOS41MzY2NCAyNS41MzMxIDkuNTM2NjQgMjUuMTI4MSA5Ljc3Mjg5TDE1LjQwNDEgMTUuMzg4VjExLjUwMDRDMTUuNDAxNiAxMS40NjA0IDE1LjQyMDQgMTEuNDIxNyAxNS40NTE2IDExLjM5NjdMMjMuNTAzIDYuNzUxNThDMjcuMDg5NCA0LjY4Mjc5IDMxLjY3NDUgNS45MTQwNiAzMy43NDIgOS41MDE2NEMzNC42MTU4IDExLjAxNjcgMzQuOTMyIDEyLjc5MDUgMzQuNjM1OCAxNC41MTQySDM0LjYzODNaTTEzLjU3NDEgMjEuNDQzMUwxMC4yMDY1IDE5LjQ5OTRDMTAuMTcwMiAxOS40ODE5IDEwLjE0NjUgMTkuNDQ2OCAxMC4xNDE1IDE5LjQwNjhWMTAuMTA3OUMxMC4xNDQgNS45Njc4MSAxMy41MDI4IDIuNjEyNzQgMTcuNjQyOSAyLjYxNTI0QzE5LjM5NDIgMi42MTUyNCAyMS4wODkyIDMuMjMwMjUgMjIuNDM1NSA0LjM1MDI4QzIyLjM3NDMgNC4zODI3OCAyMi4yNjkzIDQuNDQxNTMgMjIuMTk5MiA0LjQ4NDAzTDE0LjIzNDEgOS4wODQxM0MxMy44MjY2IDkuMzE1MzggMTMuNTc2NiA5Ljc0Nzg5IDEzLjU3OTEgMTAuMjE2N0wxMy41NzQxIDIxLjQ0MDZWMjEuNDQzMVpNMTUuNDAyOSAxNy41MDA2TDE5LjczNDIgMTQuOTk5M0wyNC4wNjU1IDE3LjQ5OTNWMjIuNTAwN0wxOS43MzQyIDI1LjAwMDdMMTUuNDAyOSAyMi41MDA3VjE3LjUwMDZaIiBmaWxsPSIjN0Q3RDg3Ii8+Cjwvc3ZnPgo="},"displayName":"OpenAI Chat Model","typeVersion":1,"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":1199,"icon":"file:serpApi.svg","name":"@n8n/n8n-nodes-langchain.toolSerpApi","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolserpapi/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Tools"],"Tools":["Other Tools"]}}},"group":"[\"transform\"]","defaults":{"name":"SerpAPI"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMCIgdmlld0JveD0iMCAwIDQ2ODAgMTM0MCI+PHBhdGggZmlsbD0iIzdEN0Q4NyIgZD0iTTQ0NjMgMTIxdjExMGgyMDdWMTFoLTIwN3pNMzAwLjUgNDcuNmMtMi43LjItMTIuMi44LTIxIDEuNC02OC4yIDQuNi0xMjMuOCAxOC4xLTE2MSAzOS4yQzYwLjYgMTIxIDMxLjggMTc0LjIgMjQgMjYzYy0yLjcgMzEuNS0yLjIgOTguMyAxLjEgMTM1QzM1IDUwOS40IDcyLjggNTU1LjEgMTg1IDU5MS41YzI0IDcuNyA1NS4xIDE1LjggOTguMiAyNS41IDIwIDQuNSA0Ny4xIDEwLjkgNjAuMyAxNC4yIDcxLjggMTggOTUgMzIuNSAxMDIuNSA2My45IDUuMiAyMS45IDUuMiA3NC4zLjEgOTcuOS05IDQwLjktMzYuMSA1NS44LTEwNS44IDU3LjgtOTEuNiAyLjgtMTc3LTkuMy0yNzkuNi0zOS41LTEwLjQtMy0xOS4yLTUuMS0xOS43LTQuNy0uOSAxLjEtMzYuMyAxNjUuNC0zNS43IDE2NiAxLjMgMS4zIDM0LjQgMTQuMyA0OS43IDE5LjUgNTkuOSAyMC41IDEyMy4yIDMzLjMgMTk3LjUgNDAgMTkuMiAxLjcgOTIuMSAyLjMgMTE3IDEgMTMzLjYtNy4yIDIxMC0zNi40IDI1My4xLTk2LjggMzQuMy00OCA0Ni44LTExNy4yIDQyLjUtMjM1LjMtMi4zLTYyLjgtNy41LTkyLjEtMjEuNi0xMjEuNS0yNy41LTU3LjItODktOTAuMS0yMzUuNS0xMjYuMS05Mi44LTIyLjgtMTA0LjktMjYuMS0xMjMuMy0zMy40LTI1LjctMTAuMy0zNy41LTIyLTQyLjctNDIuNS0zLjctMTQuNS01LjItNTUuOS0yLjktNzkgNC0zOS45IDIwLjEtNTYuMyA2MS45LTYzIDMzLjctNS40IDExNC42LTMuNiAxODQuNSA0LjEgMjcgMyA3NC41IDkuNyAxMTAuOSAxNS43IDE2LjMgMi43IDI2IDMuOSAyNi4yIDMuMi42LTEuOSAyMS41LTE3OS44IDIxLjEtMTgwLjEtLjctLjgtNDAuNS04LjUtNjMuNi0xMi4zQzUzMS43IDU4IDQ4OS40IDUzIDQzMy41IDQ4LjljLTE0LjEtMS0xMjIuMS0yLjEtMTMzLTEuM20yNjk5IDE0LjZjLTEgMi45LTI5MS41IDk1Ni44LTI5MS41IDk1Ny4zIDAgLjMgNTAuNS40IDExMi4yLjNsMTEyLjMtLjMgMjUuMi05MWMxMy44LTUwLjEgMjUuNC05MiAyNS44LTkzLjNsLjUtMi4yIDE2MC44LjIgMTYwLjcuMyAyNS41IDkyYzE0LjEgNTAuNiAyNS44IDkyLjYgMjYgOTMuMy40IDEgMjMuNCAxLjIgMTEyLjYgMWwxMTItLjMtMTQ2LjYtNDc5LTE0Ni43LTQ3OS0xNDQuMi0uM2MtMTE0LjgtLjItMTQ0LjMgMC0xNDQuNiAxbTE5OS4zIDM5MGMyOS44IDEwOS42IDU0LjIgMTk5LjYgNTQuMiAyMDAgMCAuNS00OS41LjgtMTEwLjEuOC05MS4zIDAtMTEwLS4yLTEwOS42LTEuMy4zLS44IDI1LjItOTAuOCA1NS4zLTIwMCAzMC4xLTEwOS4zIDU1LjEtMTk4LjcgNTUuNC0xOTguN3MyNSA4OS43IDU0LjggMTk5LjJNMTA2MiAzMDQuNmMtMTcuNC45LTM4LjYgMi43LTQ4LjUgNC0xMjkuOCAxNy41LTIwNS44IDg1LjktMjI2LjUgMjA0LjEtNS4yIDI5LjctNS4zIDMwLjktNS43IDE0Mi44LS41IDExMC4xLS4xIDEyNi43IDMuOCAxNTQuNCA3LjEgNTAuOCAyNSA5NS43IDUxLjQgMTI4LjYgMzcuMyA0Ni42IDk0LjggNzYuOSAxNjguOSA4OC45IDM0LjEgNS42IDU3LjQgNyAxMDIuMSA2LjMgNTMuNC0uOSA5OC41LTUuOSAxNTMuNS0xNy4yIDM5LjItOCA5Ny0yNC42IDk3LTI3LjcgMC0xLjItMjguOS0xNTAuNi0yOS42LTE1Mi45LS40LTEuNS0uOS0xLjUtNS4yLS4zLTQwLjggMTIuNC0xMTAuNSAyMy45LTE2Ni45IDI3LjUtMjQuOCAxLjYtNzcuNC43LTkxLjEtMS41LTQxLTYuNy02MC41LTIwLjQtNzAuMy00OS43LTQuMS0xMi40LTUuOS0yNS4yLTYuNi00OS4ybC0uNi0yMC43SDEzNjZ2LTczLjhjMC03Ni42LS45LTEwOS40LTMuNi0xMzMuNS0xMi4yLTExMC43LTYwLjUtMTc4LjgtMTQ5LjYtMjEwLjgtMjIuNS04LTUzLjYtMTQuNi04Mi44LTE3LjMtMTUuNS0xLjUtNTUuNy0yLjctNjgtMm0zOSAxNjMuNGMyMS43IDIuNyAzNS42IDguNiA0Ny4xIDIwIDE2LjMgMTYuMyAyMS4yIDMzLjMgMjEuMyA3NC41bC4xIDI0aC0xODFsLS4zLTE1Yy0uOC00MS4yIDYuMy02NC43IDI0LjYtODEuNyAxMS4zLTEwLjQgMjUuMy0xNy4xIDQyLjMtMjAuMiAxNC42LTIuNyAzMi0zLjMgNDUuOS0xLjZtMTI5Ni41LTE2Mi45Yy0zOS4zIDIuNy04NSAxNC42LTEzMC43IDM0LTE3LjggNy42LTQ0LjQgMjEtNTguMSAyOS4ybC0xMC44IDYuNS0xLjItMy4xYy0uNy0xLjgtNS42LTE0LjMtMTAuOC0yNy45bC05LjQtMjQuOEgyMDE0djUwNi41YzAgNDY0LjcuMSA1MDYuNSAxLjYgNTA2LjUuOSAwIDQ3LTYuMyAxMDIuNC0xNCA1NS41LTcuNyAxMDEuMy0xNCAxMDEuOS0xNCAuOCAwIDEuMS00Mi40IDEuMS0xNDQuOHYtMTQ0LjlsOC4zIDEuOGMzNS42IDcuOSA4MiAxNCAxMjguNSAxNyAyNC4yIDEuNSA3Mi42LjcgODguNy0xLjUgNjcuOS05LjUgMTE1LjMtMzYuNSAxNDYuOS04My42IDcuNi0xMS4zIDE5LjUtMzUuNyAyNC40LTUwIDcuNi0yMi4yIDEyLjUtNDYuMSAxNS45LTc2LjUgMS4zLTExLjYgMS42LTM0LjkgMi0xMzYgLjUtMTIzLjkgMC0xNTEuNC0zLjItMTc3LjUtMTAtODIuMi00MS42LTEzOS43LTk0LjctMTcyLjYtMjguOC0xNy45LTYyLjgtMjcuNy0xMDUuMy0zMC40LTE2LjUtMS4xLTE5LTEuMS0zNSAuMU0yMzY0IDQ4NWMxOS45IDEuOSAzMi40IDYuOCA0My4xIDE2LjhzMTYuNiAyMiAxOS40IDM5LjVjMi4yIDEzLjcgMi4yIDI0Mi4yIDAgMjU1LTQuOCAyNy4zLTE3LjkgNDQuNS00MC40IDUyLjctMTIgNC40LTIxLjUgNS40LTQ2LjEgNC43LTIyLjUtLjYtNDQuOS0yLjktNzEtNy4xLTE1LjctMi42LTM3LjEtNi44LTQ0LjItOC42bC0zLjgtMS4xVjUzOS4ybDQuMy0zLjdjNi42LTUuNyAyNi4yLTE4LjYgMzcuOC0yNC44IDMwLjItMTYuMiA1Ny43LTI0LjQgODguNC0yNi42IDEuMSAwIDYuNy40IDEyLjUuOW0xNzE0LjUtMTgwLjRjLTU5IDMuNS0xMzQuNCAyOC4zLTE5My43IDYzLjdsLTEwLjcgNi40LTQuOS0xMi42Yy0yLjctNi45LTcuNS0xOS41LTEwLjctMjcuOWwtNS45LTE1LjJIMzY5MHY1MDYuNWMwIDQ2OCAuMSA1MDYuNSAxLjYgNTA2LjUuOSAwIDQ3LjEtNi4zIDEwMi42LTE0czEwMS4zLTE0IDEwMS44LTE0Yy42IDAgMS01My4zIDEtMTQ0Ljh2LTE0NC44bDE4LjMgMy43YzMwLjIgNi4xIDU2LjUgOS43IDk3LjcgMTMuNiAyMy41IDIuMiA4OC45IDIuNSAxMDUgLjUgMzEtMy45IDU5LjUtMTIgODIuOS0yMy45IDE5LjItOS42IDMwLjktMTguMSA0Ni4xLTMzLjMgMjkuMi0yOS4yIDQ3LTY1LjEgNTctMTE1IDcuNC0zNyA4LTUxLjMgOC0xOTEgMC0xMzguOS0uNi0xNTIuOC04LTE5MC0yMC4zLTEwMi04MC42LTE2MC44LTE3Ny0xNzIuNC0xMy0xLjUtMzguMS0yLjYtNDguNS0yTTQwNDEgNDg1YzEyLjYgMS4yIDE5LjggMy4yIDI5LjcgOCAxNS4zIDcuNSAyNS4yIDIwLjggMzAuNiA0MWwyLjIgOC41djI1M2wtMi4yIDguNGMtNi4yIDIzLjEtMjAuMiAzOS00MC4xIDQ1LjUtMTMuMSA0LjMtMTkuNyA0LjktNDQuMiA0LjMtMjIuMi0uNi0zNi4xLTEuOS02My41LTUuOC0xMy43LTItNDUuMy04LTUyLjctMTBsLTMuOC0xVjUzOWw1LjgtNC41YzMyLjctMjYuMSA3OC44LTQ2IDExNC41LTQ5LjQgMTEuNi0xLjIgMTMuMS0xLjIgMjMuNy0uMU0xODc5IDMwNy42Yy00NS4xIDExLjgtMTE1LjcgNDIuNi0xNjIuNSA3MC45LTcuOCA0LjgtMTIuMiA2LjktMTIuNiA2LjItLjMtLjctMy43LTE1LjctNy40LTMzLjVsLTYuOC0zMi4ySDE1MTd2NzAxaDIwN1Y1OTIuMmwxMC44LTdjMzUuNy0yMy4xIDk3LjctNTMuNyAxNTguNC03OC4yIDguNC0zLjQgMTUuNi02LjUgMTYtNi44LjQtLjQtMy4xLTQzLjctNy44LTk2LjItNC42LTUyLjUtOC40LTk2LjMtOC40LTk3LjMgMC0yLjMtMi40LTIuMi0xNCAuOW0yNTg0IDM2MS45VjEwMjBoMjA3VjMxOWgtMjA3eiIvPjwvc3ZnPg=="},"displayName":"SerpApi (Google Search)","typeVersion":1,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]}],"categories":[{"id":44,"name":"Crypto Trading"},{"id":47,"name":"AI Chatbot"}],"image":[]}}