{"workflow":{"id":14165,"name":"Get chess.com game reviews by email using Google Gemini or other LLMs","views":24,"recentViews":1,"totalViews":24,"createdAt":"2026-03-18T13:51:15.807Z","description":"Improve your chess automatically — get a personalized AI coaching report delivered.\nThis workflow connects to the free Chess.com public API, fetches your most recent game, and sends it to an AI language model that acts as your personal chess coach. Within minutes, you receive a structured HTML email covering everything from critical turning points to a personalized training plan.\n\n🔧 How It Works\n\nTrigger — Runs on a daily schedule or manually on demand\nConfig Node — Set your Chess.com username and email address (one-time setup)\nFetch Games — Pulls your current month's games from Chess.com's public API (no API key required)\nSort & Enrich — Identifies your color, result (Win/Loss/Draw), opponent details, ratings, and ECO opening code\nAI Analysis — Sends the full PGN and game context to your chosen LLM with a structured coaching prompt\nEmail Report — Delivers a clean HTML coaching report directly to your inbox via Gmail\n\n\n📊 What's in the Coaching Report\n\nGame Summary — Opening, middlegame, and endgame narrative\nCritical Moments — 3–5 turning points with explanations of what happened and what should have been played\nMistake Categories — Tactical oversights, positional errors, opening issues, endgame technique, time management\nWhat Went Well — Genuine strengths recognized and reinforced\nFive Key Lessons — Specific, memorable takeaways tied to your actual game\nTraining Plan — Targeted drills and study resources based on your weaknesses\nClosing Motivation — Encouraging next step to keep you improving\n\n\n⚙️ Setup (Under 5 Minutes)\n\nImport the workflow into n8n\nOpen the Config node and enter your Chess.com username and target email address\nConnect your Gmail OAuth2 credential\nConnect your preferred LLM credential (Google Gemini is pre-wired; swap for OpenAI or Claude if preferred)\nActivate the workflow — done!\n\n\n🤖 Supported AI Models\nThe quality of the results depends on the model you choose. You can start with the free Gemini models and compare the output with your expected results.\n\nThe LLM node is plug-and-play, allowing you to switch between different models with a single click.\n\nGoogle Gemini 2.5 Flash (pre-configured)\nOpenAI GPT-4o — Best overall chess analysis quality\nAnthropic Claude Sonnet — Excellent at explanations and coaching tone\nMistral / Llama — Self-hosted options for privacy-conscious users\n\n\n💡 Stronger models produce better analysis. GPT-4o or Claude Sonnet are recommended for players rated 1000+.\n\n\n📬 Extend the Workflow\nAfter the email step, you can easily add nodes to also send the report via:\n\nTelegram — instant mobile notifications\nSlack — post to a personal or team channel\nNotion — build a game review database\nGoogle Drive — archive reports as files\nDiscord — share with your chess study group\n\n\n✅ Requirements\n\nn8n (self-hosted or cloud)\nA Chess.com account with at least one game this month\nGmail OAuth2 credential\nAny supported LLM API credential (Google Gemini, OpenAI, Anthropic, etc.)","workflow":{"id":"7SbPkpSZ8xLAd462","meta":{"instanceId":"9ce14f961436e71829905b08e9cfc7f61060f78c63cd19049ab8a86615689c86"},"name":"♟️ Chess Game Coach — Auto AI Review via Email","tags":[],"nodes":[{"id":"0d4738ef-2c9a-4e18-839a-c0d64a91cd49","name":"⏰ Daily Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","notes":"Runs once per day. Adjust the interval to your preferred cadence (e.g., every 12 hours for active players).","position":[-240,112],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.3},{"id":"7be06386-0800-4512-96a3-bcc01016d501","name":"▶️ Manual Test Run","type":"n8n-nodes-base.manualTrigger","notes":"Use this to test the workflow on demand without waiting for the schedule.","position":[-240,256],"parameters":{},"typeVersion":1},{"id":"b4abebbd-f769-4a39-9965-4a0bf5eac1b9","name":"📖 Workflow Overview","type":"n8n-nodes-base.stickyNote","position":[-880,-96],"parameters":{"color":7,"width":596,"height":688,"content":"# ♟️ AI Chess Game Coach\n\nAn n8n workflow that automatically fetches your latest Chess.com game, analyzes it with AI, and emails you a personalized coaching report.\n\n---\n\n## How It Works\n\n1. Triggers on a daily schedule (or manually on demand)\n2. Fetches your most recent game from the Chess.com public API\n3. Enriches the game data with player context, result, and opening code\n4. Sends the full game to an AI coach for structured analysis\n5. Emails you an HTML coaching report covering critical moments, mistakes, strengths, and a training plan\n\n---\n\n## Created by\n\n**Ucartz Online**\nFor any queries or clarifications about this workflow, feel free to reach out.\n📧 [support@ucartz.com](mailto:support@ucartz.com)"},"typeVersion":1},{"id":"f46f1571-6055-4708-9906-d0244a0c015d","name":"Step 1 Note","type":"n8n-nodes-base.stickyNote","position":[-112,-96],"parameters":{"color":4,"width":268,"height":676,"content":"## Step 1 — Configure\n\nOpen the **⚙️ Config** node and set:\n\n• `username` → your Chess.com handle\n• `email` → where to send reports\n\n💡 Username is case-insensitive."},"typeVersion":1},{"id":"ce451526-660c-4474-96c7-7c6f2e175790","name":"Steps 2-4 Note","type":"n8n-nodes-base.stickyNote","position":[176,-96],"parameters":{"color":4,"width":940,"height":676,"content":"## Steps 2–4 — Fetch & Enrich\n\n**Fetch Games** calls the free Chess.com API (no key needed).\n\n**Sort** orders games newest → oldest.\n\n**Add Context** determines:\n- Which color you played\n- Your result (Win / Loss / Draw)\n- Opponent info & ECO code\n\nAll data is passed directly into the AI prompt."},"typeVersion":1},{"id":"619ec4c7-de0b-4267-808b-af3eed746483","name":"Step 5 Note","type":"n8n-nodes-base.stickyNote","position":[1136,-96],"parameters":{"color":4,"width":340,"height":676,"content":"## Step 5 — AI Analysis\n\nThe AI coach receives the full PGN, player context, and ratings, then produces a structured HTML report.\n\n**Swap the LLM node** to use:\n- OpenAI GPT-4o\n- Anthropic Claude\n- Mistral, Llama, etc.\n\n💡 Better models → better analysis. GPT-4o or Claude Sonnet recommended for 1000+ rated players."},"typeVersion":1},{"id":"a6677a90-107f-48c8-ad7a-48a6169a6cd2","name":"Step 6 Note","type":"n8n-nodes-base.stickyNote","position":[1488,-96],"parameters":{"color":4,"width":280,"height":676,"content":"## Step 6 — Send Report\n\nThe HTML report is emailed directly.\n\n**Want other channels?**\nAdd nodes after the email step:\n- **Telegram** — send as message\n- **Slack** — post to channel\n- **Notion** — save to database\n- **Google Drive** — save as file\n- **Discord** — post to server"},"typeVersion":1},{"id":"837924db-0ad2-400d-945e-4150d9e53cc1","name":"📖 Workflow Overview1","type":"n8n-nodes-base.stickyNote","position":[1792,-96],"parameters":{"color":6,"width":548,"height":688,"content":"## ♟️ Chess Game Coach - Sample Result\n\n♟️ Game Review — daniel-albin\nPlaying as: White (829)  |  Opponent: mary_elliee00 (833)\nResult: 💔 Loss (timeout)  |  Time Control: 60s Bullet\nOpening: B00 — Nimzowitsch Defense  |  View Game →\n\n📊 Game Summary\nYou started the game well, immediately challenging the center with 1.e4 and 2.d4. The early queen exchange on move 6 simplified the position significantly, shifting the focus from attacking chess to piece coordination...\n\n🎯 Critical Moments\nMove 3 — Early capture relieves tension\nCapturing with 3.dxe5 resolved the central tension early, allowing Black to develop smoothly with ...Nxe5. Holding the tension longer often creates more attacking chances.\n\nMove 6 — Queen exchange changes the game\nAfter Qxd8+ Kxd8, the character of the game changes completely. Black's king becomes active in the center — a strength in simplified positions.\n\n💡 Five Key Lessons\nDon't rush to capture pawns unless you gain a clear advantage.\nExchanging queens early means your game plan must change accordingly.\nIn bullet chess, clock management is as important as move quality.\nAfter piece trades, the active king can be a strength — or a danger.\nIdentify the decisive moment: what one move changed the game?\n\n💪 Closing Motivation\nYou're already applying solid opening principles — that's a great foundation! Focus on time management in your next bullet session and you'll feel the improvement immediately. Keep going! 🚀"},"typeVersion":1},{"id":"c01781b4-9e5e-44ec-8213-67f5fa9097b7","name":"Add Player Context","type":"n8n-nodes-base.code","notes":"Enriches each game with perspective-aware data:\n• Which color did the reviewing player use?\n• What was the result from their perspective?\n• Opponent name, ratings, and ECO opening code\n\nThis context is passed directly into the AI prompt.","position":[768,192],"parameters":{"jsCode":"// Enrich game data with player-perspective context\n// Determines color played, ratings, result, and opening code\n\nconst game = $input.item.json;\nconst reviewingUsername = game._username;\n\nconst playedWhite = game.white.username.toLowerCase() === reviewingUsername.toLowerCase();\n\nconst playerColor    = playedWhite ? 'White' : 'Black';\nconst opponentColor  = playedWhite ? 'Black' : 'White';\nconst playerData     = playedWhite ? game.white : game.black;\nconst opponentData   = playedWhite ? game.black : game.white;\n\n// Map result codes to human-readable outcomes\nconst WIN_CODES  = ['win'];\nconst LOSS_CODES = ['resigned', 'checkmated', 'timeout', 'abandoned'];\nconst DRAW_CODES = ['agreed', 'stalemate', 'repetition', 'insufficient', '50move', 'timevsinsufficient'];\n\nlet gameResult = 'Unknown';\nlet resultEmoji = '❓';\n\nif (WIN_CODES.includes(playerData.result)) {\n  gameResult = 'Win';  resultEmoji = '🏆';\n} else if (LOSS_CODES.includes(playerData.result)) {\n  gameResult = 'Loss'; resultEmoji = '💔';\n} else if (DRAW_CODES.includes(playerData.result)) {\n  gameResult = 'Draw'; resultEmoji = '🤝';\n}\n\n// Extract ECO opening code from the eco URL field\nlet ecoCode = 'Unknown';\nif (game.eco) {\n  const ecoMatch = game.eco.match(/\\/([A-E]\\d{2})/);\n  if (ecoMatch) ecoCode = ecoMatch[1];\n}\n\nreturn {\n  json: {\n    ...game,\n    reviewingUsername,\n    playerColor,\n    opponentColor,\n    playerRating:    playerData.rating,\n    opponentUsername: opponentData.username,\n    opponentRating:  opponentData.rating,\n    gameResult,\n    resultEmoji,\n    playerResult:   playerData.result,\n    opponentResult: opponentData.result,\n    ecoCode\n  }\n};"},"typeVersion":2},{"id":"6c9a14c0-b8bc-48d3-b70f-56b23901262b","name":"Sort Games (Latest First)","type":"n8n-nodes-base.code","notes":"Sorts the game list by end time descending so the most recent game is processed first. Also injects the reviewing username into each game record.","position":[576,192],"parameters":{"jsCode":"// Sort all games by end time, newest first\n// Then output as individual items for the batch processor\nconst games = $input.item.json.games;\nconst username = $(\"Config  - Username - Email\").first().json.username;\n\nif (!games || games.length === 0) {\n  throw new Error(`No games found this month for player: ${username}`);\n}\n\n// Sort descending by end_time (most recent game first)\ngames.sort((a, b) => b.end_time - a.end_time);\n\n// Attach the reviewing username to each game for downstream use\nreturn games.map(game => ({\n  json: {\n    ...game,\n    _username: username\n  }\n}));"},"typeVersion":2},{"id":"36816dcf-f2d8-42fc-ba3d-f05875160e9a","name":"Fetch Games from Chess.com","type":"n8n-nodes-base.httpRequest","notes":"Calls the Chess.com public API to retrieve all games played this month. Returns a JSON object with a 'games' array.","position":[400,192],"parameters":{"url":"={{ $json.url }}","options":{"lowercaseHeaders":false},"jsonHeaders":"{\n  \"User-Agent\": \"Mozilla/5.0 (compatible; n8n-chess-coach-bot/1.0)\",\n  \"Accept\": \"application/json\",\n  \"Accept-Language\": \"en-US,en;q=0.9\"\n}","sendHeaders":true,"specifyHeaders":"json"},"typeVersion":4.2},{"id":"457a5e8c-eefc-4872-8c3b-570829ae6822","name":"Build API URL (Current Month)","type":"n8n-nodes-base.code","notes":"Constructs the Chess.com public API endpoint for the current calendar month. No API key required — Chess.com's game archive is publicly accessible.","position":[192,192],"parameters":{"jsCode":"// Build the Chess.com API URL for the current month's games\nconst username = $input.item.json.username;\n\nconst now = new Date();\nconst year = now.getFullYear();\nconst month = String(now.getMonth() + 1).padStart(2, '0');\n\n// Chess.com public API endpoint for monthly games\nconst url = `https://api.chess.com/pub/player/${username}/games/${year}/${month}`;\n\nreturn [\n  {\n    json: {\n      username: username,\n      year: year,\n      month: month,\n      url: url\n    }\n  }\n];"},"typeVersion":2},{"id":"36b601a1-63f6-46da-8a2c-c76c6c8fe217","name":"Process Last Game Only","type":"n8n-nodes-base.splitInBatches","notes":"Processes only the most recent game (batch size = 1 by default). The loop exits after the first game.\n\nTo analyze multiple recent games, remove this node and let all items flow through — but be mindful of AI API costs.","position":[944,192],"parameters":{"options":{}},"typeVersion":3},{"id":"e6974b0a-0837-4649-bba5-860e7a461ddb","name":"Config  - Username - Email","type":"n8n-nodes-base.set","notes":"🔧 CONFIGURE THIS NODE FIRST\n\nSet your Chess.com username (case-insensitive) and the email address where you want to receive your AI coaching reports.","position":[-16,192],"parameters":{"options":{},"assignments":{"assignments":[{"id":"username-assignment","name":"username","type":"string","value":"uer-name-here"},{"id":"706913d1-70af-4459-aba8-ee8f4a0a95d2","name":"email","type":"string","value":"user@example.com"}]}},"typeVersion":3.4},{"id":"1e69dea4-3cf0-4028-b8ce-8f9f54c72193","name":"AI Chess Coach (Analysis)","type":"@n8n/n8n-nodes-langchain.agent","notes":"The core AI analysis node. Sends the enriched game data to your chosen LLM with a detailed coaching prompt.\n\nThe prompt is structured for beginner-to-intermediate players (~600–1400 rating). Adjust the tone or depth in the System Message if needed.","position":[1168,208],"parameters":{"text":"=# Chess Game Analysis Request\n\n## Player Info\n- **Reviewing Player**: {{ $json.reviewingUsername }} ({{ $json.playerColor }}, Rated {{ $json.playerRating }})\n- **Opponent**: {{ $json.opponentUsername }} ({{ $json.opponentColor }}, Rated {{ $json.opponentRating }})\n- **Result**: {{ $json.resultEmoji }} {{ $json.gameResult }}\n- **Time Control**: {{ $json.time_control }} ({{ $json.time_class }})\n- **Opening (ECO)**: {{ $json.ecoCode }}\n- **Game Link**: {{ $json.url }}\n- **Player Result Code**: {{ $json.playerResult }}\n- **Opponent Result Code**: {{ $json.opponentResult }}\n\n## Position & Game Record\n**Final FEN**: `{{ $json.fen }}`\n\n**PGN**:\n```\n{{ $json.pgn }}\n```\n\n---\n\n## Analysis Instructions\n\nAnalyze this game from {{ $json.playerColor }}'s perspective ({{ $json.reviewingUsername }}, ~{{ $json.playerRating }} rating).\n\nProduce a complete coaching report in **clean HTML** (ready for Gmail) using the exact structure below.\n\n---\n\n### 1. 📊 Game Summary\n\nInclude a header block with all player info, result, time control, opening code, and a [View Game] hyperlink.\n\nThen write **2–3 paragraphs** covering:\n- Opening phase evaluation\n- Middlegame key developments\n- Endgame progression (if applicable)\n- The decisive moment(s)\n\n---\n\n### 2. 🎯 Critical Moments (3–5 turning points)\n\nFor each moment:\n- Clearly describe the position and what move was played\n- Explain what should have been done instead\n- State the **underlying concept or pattern**\n\n---\n\n### 3. ❌ Mistake Categories\n\nGroup errors under these headings (only include relevant ones):\n- **Tactical Oversights** — Missing captures, checks, threats\n- **Positional Errors** — Weak squares, piece placement, pawn structure\n- **Opening Issues** — Principle violations or theory deviations\n- **Endgame Technique** — Conversion or defensive mistakes\n- **Time Management** — If it influenced the result\n\n---\n\n### 4. ✅ What Went Well (2–4 highlights)\n\nRecognize genuine strengths — good tactics, solid positional choices, fighting spirit.\n\n---\n\n### 5. 💡 Five Key Lessons\n\nExactly 5 specific, memorable takeaways with context tied to THIS game.\n\n---\n\n### 6. 📚 Training Plan\n\n- **Primary Focus**: Main weakness to address\n- **Drill 1**: Specific exercise\n- **Drill 2**: Specific exercise\n- **Drill 3**: Specific exercise\n- **Study Resources**: Concrete recommendations (videos, books, Chess.com tools)\n\n---\n\n### 7. 💪 Closing Motivation\n\n1–2 encouraging sentences with a clear, actionable next step.","options":{"systemMessage":"# Chess Coach AI — System Prompt\n\nYou are an experienced, encouraging chess coach who reviews games for club-level players rated 600–1400.\n\n## Your Voice\n- Warm, clear, and conversational English\n- Always constructive — never harsh or discouraging\n- Explain WHY moves work, not just that they do\n- Use simple language; briefly explain any chess jargon on first use\n\n## Analysis Philosophy\n- Prioritize **big-picture understanding** over engine-perfect lines\n- Focus on **recurring patterns and themes**, not isolated blunders\n- Emphasize **practical improvement** the player can apply next game\n- Balance every critique with genuine positive reinforcement\n\n## What to Avoid\n- Long engine variations (e.g., \"After 15...Nxe4 16.Bxf7+ Ke8 17.Bd5...\")\n- Heavy opening theory jargon\n- Nitpicking minor inaccuracies in winning positions\n- Discouraging or condescending language\n\n## Output Format — STRICT HTML for Gmail\nUse ONLY these HTML elements:\n- `<h2>` and `<h3>` for section headers\n- `<p>` for paragraphs\n- `<ul>` and `<li>` for bullet lists\n- `<ol>` and `<li>` for numbered lists\n- `<strong>` for bold emphasis\n- `<em>` for italics\n- `<a href=\"...\">` for links\n- `<br>` for line breaks\n- `<hr>` for section dividers\n- `<blockquote>` for key takeaways\n\nDO NOT use:\n- Markdown syntax (no **, ##, -, *, ~~~)\n- Inline CSS styles\n- Tables (poor Gmail rendering)\n- Images or external assets\n\n## Philosophy\nEvery game, win or lose, is a lesson. Help the player understand what happened, why it happened, and exactly what to practice next. Leave them excited to play their next game."},"promptType":"define"},"typeVersion":3.1},{"id":"f0308c27-5a25-4308-97c6-8aa3c3d2af26","name":"LLM — Google Gemini","type":"@n8n/n8n-nodes-langchain.lmChatGoogleGemini","notes":"🔧 SWAP THIS NODE to use a different AI model.\n\nRecommended alternatives:\n• OpenAI GPT-4o — Best overall chess analysis quality\n• Anthropic Claude 3.5 Sonnet — Excellent explanations\n• Google Gemini 1.5 Pro — Good balance of speed and quality\n\nHigher-rated players (1200+) benefit most from stronger models.","position":[1168,416],"parameters":{"options":{}},"credentials":{"googlePalmApi":{"id":"credential-id","name":"uc-test"}},"typeVersion":1},{"id":"d3440c64-0774-4919-a5ef-6926ed597532","name":"Email the Report","type":"n8n-nodes-base.gmail","notes":"Sends the AI coaching report as a formatted HTML email.\n\nThe subject line includes the player name, result, and color played for easy inbox scanning.\n\nTo forward to other channels (Telegram, WhatsApp, Slack), add the appropriate node after this one.","position":[1584,208],"webhookId":"2fdf6a53-6228-45e4-87dc-d31aad639fe5","parameters":{"sendTo":"={{ $('Config  - Username - Email').first().json.email }}\n","message":"={{ $json.output }}","options":{"appendAttribution":false},"subject":"=♟️ Chess Game Review — {{ $('Process Last Game Only').item.json.reviewingUsername }}"},"credentials":{"gmailOAuth2":{"id":"credential-id","name":"Gmail account"}},"typeVersion":2.2}],"active":true,"pinData":{},"settings":{"binaryMode":"separate","availableInMCP":false,"executionOrder":"v1"},"versionId":"eb2aa11f-2a89-4d74-892f-09e758241501","connections":{"Add Player Context":{"main":[[{"node":"Process Last Game Only","type":"main","index":0}]]},"LLM — Google Gemini":{"ai_languageModel":[[{"node":"AI Chess Coach (Analysis)","type":"ai_languageModel","index":0}]]},"Process Last Game Only":{"main":[[],[{"node":"AI Chess Coach (Analysis)","type":"main","index":0}]]},"▶️ Manual Test Run":{"main":[[{"node":"Config  - Username - Email","type":"main","index":0}]]},"AI Chess Coach (Analysis)":{"main":[[{"node":"Email the Report","type":"main","index":0}]]},"Sort Games (Latest First)":{"main":[[{"node":"Add Player Context","type":"main","index":0}]]},"Config  - Username - Email":{"main":[[{"node":"Build API URL (Current Month)","type":"main","index":0}]]},"Fetch Games from Chess.com":{"main":[[{"node":"Sort Games (Latest First)","type":"main","index":0}]]},"⏰ Daily Schedule Trigger":{"main":[[{"node":"Config  - Username - Email","type":"main","index":0}]]},"Build API URL (Current Month)":{"main":[[{"node":"Fetch Games from Chess.com","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":17,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.gmail":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":1},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.splitInBatches":{"count":1},"@n8n/n8n-nodes-langchain.agent":{"count":1},"n8n-nodes-base.scheduleTrigger":{"count":1},"@n8n/n8n-nodes-langchain.lmChatGoogleGemini":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Ucartz Online","username":"ucartz","bio":"Ucartz specializes in server infrastructure, cloud hosting, and workflow automation. We build scalable n8n automations, API integrations, and AI-powered workflows that help businesses connect systems, automate processes, and reduce manual work.","verified":false,"links":["https://www.ucartz.com"],"avatar":"https://gravatar.com/avatar/36b6ebcee3af6aa6b878a9f454df31a69ac4938094d7d932b148b1f8f6786ce7?r=pg&d=retro&size=200"},"nodes":[{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":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":39,"icon":"fa:sync","name":"n8n-nodes-base.splitInBatches","codex":{"data":{"alias":["Loop","Concatenate","Batch","Split","Split In Batches"],"resources":{"generic":[{"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/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"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.splitinbatches/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Loop Over Items","color":"#007755"},"iconData":{"icon":"sync","type":"icon"},"displayName":"Loop Over Items (Split in Batches)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"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":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":839,"icon":"fa:clock","name":"n8n-nodes-base.scheduleTrigger","codex":{"data":{"alias":["Time","Scheduler","Polling","Cron","Interval"],"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\",\"schedule\"]","defaults":{"name":"Schedule Trigger","color":"#31C49F"},"iconData":{"icon":"clock","type":"icon"},"displayName":"Schedule Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":1119,"icon":"fa:robot","name":"@n8n/n8n-nodes-langchain.agent","codex":{"data":{"alias":["LangChain","Chat","Conversational","Plan and Execute","ReAct","Tools"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/"}]},"categories":["AI","Langchain"],"subcategories":{"AI":["Agents","Root Nodes"]}}},"group":"[\"transform\"]","defaults":{"name":"AI Agent","color":"#404040"},"iconData":{"icon":"robot","type":"icon"},"displayName":"AI Agent","typeVersion":3,"nodeCategories":[{"id":25,"name":"AI"},{"id":26,"name":"Langchain"}]},{"id":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":43,"name":"Personal Productivity"},{"id":49,"name":"AI Summarization"}],"image":[]}}