{"workflow":{"id":14297,"name":"Send a daily stock movers and news email digest via Google Sheets, EODHD and Gmail","views":54,"recentViews":1,"totalViews":54,"createdAt":"2026-03-24T16:13:12.063Z","description":"# **What this workflow does**\n\nThis workflow automatically generates a daily stock market email digest, combining price movements and recent financial news into a clean, actionable report.\n\nInstead of manually checking charts and news every morning, this workflow does it for you.\n\nIt combines:\n - Market data from EODHD APIs\n - Financial news with sentiment analysis\n - Smart processing using JavaScript (no raw data overload)\n✉️ Automated email delivery via Gmail\n\nOnly relevant insights reach your inbox.\n\n## How it works (overview)\nThe workflow runs on a schedule (daily at 7 AM) or manually\nIt reads your stock watchlist from Google Sheets\nIt fetches:\nHistorical price data (last 14 days)\nLatest news (last 7 days)\nJavaScript processes the data:\nCalculates daily % change\nFilters recent news\nAssigns sentiment (positive / neutral / negative)\nA clean HTML email is generated\nThe digest is sent automatically via Gmail\n\n👉 The result: a complete market snapshot in seconds\n\n## How to configure it\n1. EODHD APIs (Market Data)\nAdd your API key in the ⚙️ Config node\nUsed for:\nPrice data\nFinancial news\nSentiment signals\n2. Google Sheets\nAdd your credentials\nCreate a column named ticker\nAdd one stock per row (e.g. AAPL, TSLA, MSFT)\n3. Gmail\nAdd your Gmail credentials\nSet your recipient email\n4. Schedule\nDefault: runs daily at 7 AM\nYou can adjust it easily in the Schedule node\n\nWhy this workflow is powerful\n\n## Most people:\n\nCheck multiple sites every morning\nWaste time jumping between charts and news\nMiss important market moves\n\nThis workflow:\n\n✔ Automates everything\n✔ Centralizes data\n✔ Adds context with sentiment analysis\n✔ Saves hours every week\n\n📊 Data powered by EODHD APIs\n\nThis workflow uses EODHD APIs to retrieve:\n\nHistorical stock prices\nFinancial news\nSentiment indicators\n\n👉 If you want to build your own financial automations, dashboards, or trading workflows:\n\nGet started here (10% discount):\n[https://eodhd.com/pricing-special-10?via=kmg&ref1=Meneses](https://eodhd.com/pricing-special-10?via=kmg&ref1=Meneses)\n\n## Final result\n\nYou get a daily email like this:\n\n- Top movers (price changes)\n- Curated news per stock\n- Sentiment insights\n- Clean, readable format\n\nAll generated automatically.","workflow":{"id":"GbNvmnke6PJsrUTB","meta":{"instanceId":"b09d3ffb952d531fca04e51e2caf04c946e3fa8920f1e0735054774d6c8e8861","templateCredsSetupCompleted":true},"name":"Daily Financial News & Movers Email Digest","tags":[],"nodes":[{"id":"node-0001","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[48,160],"parameters":{"rule":{"interval":[{"field":"cronExpression","expression":"0 7 * * *"}]}},"typeVersion":1.2},{"id":"node-0002","name":"Google Sheets","type":"n8n-nodes-base.googleSheets","position":[496,256],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1k6mDOKB0B6Wt2OOvaAo7oTxpn7Zt-XeiLA0NZlM6VFY/edit#gid=0","cachedResultName":"input"},"documentId":{"__rl":true,"mode":"list","value":"1k6mDOKB0B6Wt2OOvaAo7oTxpn7Zt-XeiLA0NZlM6VFY","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1k6mDOKB0B6Wt2OOvaAo7oTxpn7Zt-XeiLA0NZlM6VFY/edit?usp=drivesdk","cachedResultName":"stocks"}},"credentials":{"googleSheetsOAuth2Api":{"id":"YNLtk4qKTcg2G9Wi","name":"Google Sheets account"}},"typeVersion":4.4},{"id":"node-0003","name":"HTTP Request - EOD","type":"n8n-nodes-base.httpRequest","position":[720,256],"parameters":{"url":"={{ 'https://eodhd.com/api/eod/' + $json.ticker + '.US' }}","options":{},"sendQuery":true,"queryParameters":{"parameters":[{"name":"api_token","value":"={{ $('⚙️ Config').first().json.api_token }}"},{"name":"fmt","value":"json"},{"name":"order","value":"d"},{"name":"from","value":"={{ new Date(Date.now() - 14 * 24 * 60 * 60 * 1000).toISOString().split('T')[0] }}"},{"name":"to","value":"={{ new Date().toISOString().split('T')[0] }}"}]}},"typeVersion":4.2,"continueOnFail":true},{"id":"node-0004","name":"HTTP Request - News","type":"n8n-nodes-base.httpRequest","position":[944,256],"parameters":{"url":"https://eodhd.com/api/news","options":{},"sendQuery":true,"queryParameters":{"parameters":[{"name":"s","value":"={{ $('Google Sheets').item.json.ticker + '.US' }}"},{"name":"api_token","value":"={{ $('⚙️ Config').first().json.api_token }}"},{"name":"fmt","value":"json"},{"name":"limit","value":"3"},{"name":"from","value":"={{ new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString().split('T')[0] }}"}]}},"typeVersion":4.2,"continueOnFail":true},{"id":"node-0005","name":"Build Email HTML","type":"n8n-nodes-base.code","position":[1168,256],"parameters":{"jsCode":"const gsItems  = $('Google Sheets').all();\nconst eodAll   = $('HTTP Request - EOD').all();\nconst newsAll  = $('HTTP Request - News').all();\n\n// Helper: handles pairedItem as object, array, or number\nfunction getPairedIdx(item) {\n  const pi = item.pairedItem;\n  if (pi === null || pi === undefined) return 0;\n  if (Array.isArray(pi)) return pi[0]?.item ?? 0;\n  if (typeof pi === 'object') return pi.item ?? 0;\n  return Number(pi) || 0;\n}\n\n// Group split items back by ticker using pairedItem index\nconst eodByIdx  = {};\nconst newsByIdx = {};\n\neodAll.forEach(item => {\n  const idx = getPairedIdx(item);\n  if (!eodByIdx[idx]) eodByIdx[idx] = [];\n  eodByIdx[idx].push(item.json);\n});\n\nnewsAll.forEach(item => {\n  const idx = getPairedIdx(item);\n  if (!newsByIdx[idx]) newsByIdx[idx] = [];\n  newsByIdx[idx].push(item.json);\n});\n\nconst oneWeekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);\nconst results = [];\nconst failedTickers = [];\n\ngsItems.forEach((gsItem, idx) => {\n  const ticker = (gsItem.json.ticker || '').toString().trim().toUpperCase();\n  if (!ticker) return;\n\n  const eodData  = eodByIdx[idx]  || [];\n  const newsData = newsByIdx[idx] || [];\n\n  const eodFailed  = eodData.length === 0  || eodData[0]?.error  !== undefined;\n  const newsFailed = newsData.length === 0 || newsData[0]?.error !== undefined;\n\n  if (eodFailed && newsFailed) { failedTickers.push(ticker); return; }\n\n  // Price & change\n  const sorted = [...eodData].sort((a, b) => new Date(b.date) - new Date(a.date));\n  let price = null, changePct = null;\n  if (sorted.length >= 2) {\n    price = sorted[0].close;\n    const prev = sorted[1].close;\n    changePct = prev !== 0 ? ((price - prev) / prev) * 100 : null;\n  } else if (sorted.length === 1) {\n    price = sorted[0].close;\n  }\n\n  // News — filter to last 7 days\n  const news = newsData\n    .filter(a => a.date && new Date(a.date) >= oneWeekAgo)\n    .slice(0, 5)\n    .map(a => {\n      const polarity = a.sentiment?.polarity ?? null;\n      const sentimentEmoji  = polarity === null ? '' : polarity > 0.6 ? '😊' : polarity < 0.4 ? '😟' : '😐';\n      const sentimentLabel  = polarity === null ? '' : polarity > 0.6 ? 'Positivo' : polarity < 0.4 ? 'Negativo' : 'Neutral';\n      const sentimentColor  = polarity === null ? '#718096' : polarity > 0.6 ? '#276749' : polarity < 0.4 ? '#c53030' : '#b7791f';\n      return {\n        title: a.title || 'Untitled',\n        date:  a.date  || '',\n        url:   a.link  || a.url || '#',\n        summary: (a.content || a.description || '').toString().substring(0, 200),\n        tags: (a.tags || []).slice(0, 3),\n        sentimentEmoji, sentimentLabel, sentimentColor\n      };\n    });\n\n  if (eodFailed) failedTickers.push(ticker);\n  results.push({ ticker, price, changePct, news, error: eodFailed });\n});\n\n// Classify movers\nconst withChange = results.filter(r => r.changePct !== null);\nwithChange.sort((a, b) => Math.abs(b.changePct) - Math.abs(a.changePct));\n\n// ── Build HTML ──────────────────────────────────────────────────────────────\nconst today = new Date().toLocaleDateString('en-US', { weekday:'long', year:'numeric', month:'long', day:'numeric' });\nconst fmtPrice = v => v != null ? `$${Number(v).toFixed(2)}` : 'N/A';\nconst fmtPct   = v => v != null ? `${v >= 0 ? '+' : ''}${Number(v).toFixed(2)}%` : 'N/A';\nconst pctColor = v => v == null ? '#718096' : v >= 0 ? '#276749' : '#c53030';\nconst signal   = v => v == null ? '⚪' : v >= 2 ? '🟢' : v <= -2 ? '🔴' : '🟡';\n\n// Movers table rows\nconst moverRows = results.map(r => `\n  <tr style='border-top:1px solid #edf2f7;background:transparent;'>\n    <td style='padding:11px 12px;font-weight:700;color:#1a202c;'>${r.ticker}</td>\n    <td style='padding:11px 12px;text-align:right;color:#2d3748;'>${fmtPrice(r.price)}</td>\n    <td style='padding:11px 12px;text-align:right;color:${pctColor(r.changePct)};font-weight:700;'>${fmtPct(r.changePct)}</td>\n    <td style='padding:11px 12px;text-align:center;font-size:18px;'>${signal(r.changePct)}</td>\n  </tr>`).join('');\n\n// News sections\nconst newsSections = results.map(r => {\n  if (!r.news || r.news.length === 0) return '';\n  const articles = r.news.map(a => {\n    const tagsHtml = a.tags.length\n      ? `<div style='margin-top:5px;'>${a.tags.map(t => `<span style='display:inline-block;background:#edf2f7;color:#4a5568;font-size:10px;padding:2px 7px;border-radius:10px;margin-right:4px;'>${t}</span>`).join('')}</div>`\n      : '';\n    const sentHtml = a.sentimentLabel\n      ? `<span style='font-size:11px;color:${a.sentimentColor};font-weight:600;'>${a.sentimentEmoji} ${a.sentimentLabel}</span>`\n      : '';\n    return `\n    <div style='padding:12px 0;border-bottom:1px solid #f0f2f5;'>\n      <div style='display:flex;justify-content:space-between;align-items:flex-start;gap:8px;'>\n        <a href='${a.url}' style='font-size:13px;font-weight:600;color:#2b6cb0;text-decoration:none;line-height:1.4;'>${a.title}</a>\n        ${sentHtml}\n      </div>\n      ${a.summary ? `<p style='margin:5px 0 0;font-size:12px;color:#718096;line-height:1.5;'>${a.summary}…</p>` : ''}\n      ${tagsHtml}\n      <p style='margin:4px 0 0;font-size:11px;color:#a0aec0;'>${a.date ? new Date(a.date).toLocaleDateString('en-US',{month:'short',day:'numeric',year:'numeric'}) : ''}</p>\n    </div>`;\n  }).join('');\n\n  return `\n  <div style='background:#fff;border-radius:10px;padding:22px 26px;margin-bottom:16px;box-shadow:0 1px 5px rgba(0,0,0,.07);'>\n    <h3 style='margin:0 0 12px;font-size:15px;font-weight:700;color:#2d3748;'>${r.ticker}</h3>\n    ${articles}\n  </div>`;\n}).join('');\n\nconst failedSection = failedTickers.length\n  ? `<p style='color:#a0aec0;font-size:12px;text-align:center;'>⚠️ No data for: ${failedTickers.join(', ')}</p>`\n  : '';\n\nconst html = `<!DOCTYPE html><html lang='en'><head><meta charset='UTF-8'></head>\n<body style='font-family:Arial,sans-serif;max-width:700px;margin:0 auto;padding:20px;background:#f0f2f5;'>\n<div style='background:linear-gradient(135deg,#1a1a2e,#16213e);color:white;padding:24px 28px;border-radius:10px;margin-bottom:24px;'>\n  <h1 style='margin:0;font-size:22px;font-weight:700;'>📊 Daily Market Digest</h1>\n  <p style='margin:8px 0 0;color:#90aec6;font-size:13px;'>${today}</p>\n</div>\n<div style='background:#fff;border-radius:10px;padding:22px 26px;margin-bottom:24px;box-shadow:0 1px 5px rgba(0,0,0,.07);'>\n  <h2 style='margin:0 0 18px;font-size:16px;font-weight:700;color:#2d3748;border-bottom:2px solid #e8ecf0;padding-bottom:12px;'>📈 Top Movers</h2>\n  <table style='width:100%;border-collapse:collapse;font-size:14px;'>\n    <thead><tr style='background:#f7f9fc;'>\n      <th style='padding:9px 12px;text-align:left;color:#718096;font-size:11px;text-transform:uppercase;'>Ticker</th>\n      <th style='padding:9px 12px;text-align:right;color:#718096;font-size:11px;text-transform:uppercase;'>Last Close</th>\n      <th style='padding:9px 12px;text-align:right;color:#718096;font-size:11px;text-transform:uppercase;'>Change %</th>\n      <th style='padding:9px 12px;text-align:center;color:#718096;font-size:11px;text-transform:uppercase;'>Signal</th>\n    </tr></thead>\n    <tbody>${moverRows}</tbody>\n  </table>\n</div>\n<div style='background:#fff;border-radius:10px;padding:22px 26px;margin-bottom:24px;box-shadow:0 1px 5px rgba(0,0,0,.07);'>\n  <h2 style='margin:0 0 18px;font-size:16px;font-weight:700;color:#2d3748;border-bottom:2px solid #e8ecf0;padding-bottom:12px;'>📰 News — Last 7 Days</h2>\n  ${newsSections || '<p style=\"color:#a0aec0;font-size:13px;\">No news found for the selected period.</p>'}\n</div>\n${failedSection}\n<p style='text-align:center;color:#a0aec0;font-size:11px;margin-top:8px;'>Generated by n8n · Data by EODHD</p>\n</body></html>`;\n\nreturn [{\n  json: {\n    html,\n    subject: `📊 Daily Market Digest — ${new Date().toLocaleDateString('en-US',{month:'short',day:'numeric',year:'numeric'})}`\n  }\n}];\n"},"typeVersion":2},{"id":"node-0006","name":"Send Email via Gmail","type":"n8n-nodes-base.gmail","position":[1392,256],"webhookId":"fa392fab-b2b6-44b0-8336-6f474eb840af","parameters":{"sendTo":"={{ $('⚙️ Config').first().json.recipient_email }}","message":"={{ $json.html }}","options":{},"subject":"={{ $json.subject }}"},"credentials":{"gmailOAuth2":{"id":"CRP9yh6MXfkL6nOl","name":"Gmail account"}},"typeVersion":2.1},{"id":"b369108f-37f6-4d5d-9f70-3d06f3f2e620","name":"When clicking ‘Execute workflow’","type":"n8n-nodes-base.manualTrigger","position":[272,352],"parameters":{},"typeVersion":1},{"id":"node-cfg-0010","name":"⚙️ Config","type":"n8n-nodes-base.set","position":[272,160],"parameters":{"options":{},"assignments":{"assignments":[{"id":"cfg-a1","name":"api_token","type":"string","value":"YOUR_EODHD_API_KEY"},{"id":"cfg-a2","name":"recipient_email","type":"string","value":"your@email.com"}]}},"typeVersion":3.4},{"id":"sticky-0001","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-1008,-48],"parameters":{"width":684,"height":514,"content":"## Send daily stock price movers and financial news digest via Gmail\n\nAutomatically monitor your stock watchlist every morning and receive a formatted email with price changes and curated financial news with sentiment analysis.\n\n**How it works:**\n1. Schedule Trigger fires at 7 AM daily\n2. Reads tickers from Google Sheets (one ticker per row, column `ticker`)\n3. Fetches EOD prices + last 7 days of news from EODHD API per ticker\n4. Calculates daily % change and classifies news sentiment (Positive / Neutral / Negative)\n5. Sends an HTML digest via Gmail with a movers table and news per ticker\n\n**Setup — 4 steps:**\n1. Open **⚙️ Config** and fill in your `api_token` (EODHD) and `recipient_email`\n2. Connect **Google Sheets** credential → set your spreadsheet and sheet name (column must be named `ticker`)\n3. Connect **Gmail** credential\n4. Set your timezone in **Settings → Workflow Settings**\n\n**Requirements:** EODHD account (free tier works) · Google OAuth2 configured in n8n"},"typeVersion":1},{"id":"sticky-0002","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-240,64],"parameters":{"color":7,"width":214,"height":330,"content":"## Step 1 — Trigger & config\n\nSet your **EODHD API key** and **recipient email** in ⚙️ Config before running.\n\nRuns daily at **7 AM UTC**. Change timezone in Workflow Settings.\nYou can also run manually with the \"Execute workflow\" button."},"typeVersion":1},{"id":"sticky-0003","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[608,-176],"parameters":{"color":7,"height":362,"content":"## Step 2 — Fetch prices & news (EODHD API)\n\nYour Google Sheet must have a column named **`ticker`** (lowercase). One US ticker per row (MSFT, META, AMZN…).\n\n- **EOD**: fetches last 14 days of closing prices — calculates daily % change\n- **News**: fetches last 7 days of articles with sentiment polarity score per ticker"},"typeVersion":1},{"id":"sticky-0004","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[1040,-160],"parameters":{"color":7,"width":336,"height":298,"content":"## Step 3 — Build & send email\n\nGroups prices and news by ticker, calculates % change vs previous close, and classifies sentiment:\n- 😊 **Positive** (polarity > 0.6)\n- 😐 **Neutral**\n- 😟 **Negative** (polarity < 0.4)\n\nSends the HTML digest to the email set in ⚙️ Config."},"typeVersion":1},{"id":"f7898c1c-4b94-4d85-ad28-2172c03be622","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[1584,48],"parameters":{"height":288,"content":"## Output\n![txt](https://ik.imagekit.io/agbb7sr41/image.png)"},"typeVersion":1}],"active":false,"pinData":{},"settings":{"callerPolicy":"workflowsFromSameOwner","availableInMCP":false,"executionOrder":"v1"},"versionId":"c46ee938-f6c0-491f-97e2-6ebdfcc2d912","connections":{"Google Sheets":{"main":[[{"node":"HTTP Request - EOD","type":"main","index":0}]]},"⚙️ Config":{"main":[[{"node":"Google Sheets","type":"main","index":0}]]},"Build Email HTML":{"main":[[{"node":"Send Email via Gmail","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"⚙️ Config","type":"main","index":0}]]},"HTTP Request - EOD":{"main":[[{"node":"HTTP Request - News","type":"main","index":0}]]},"HTTP Request - News":{"main":[[{"node":"Build Email HTML","type":"main","index":0}]]},"When clicking 'Execute workflow'":{"main":[[{"node":"⚙️ Config","type":"main","index":0}]]},"When clicking ‘Execute workflow’":{"main":[[{"node":"Google Sheets","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":13,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":1},"n8n-nodes-base.gmail":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.httpRequest":{"count":2},"n8n-nodes-base.googleSheets":{"count":1},"n8n-nodes-base.manualTrigger":{"count":1},"n8n-nodes-base.scheduleTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Kevin Meneses ","username":"pythonia-kevin","bio":"CRM consultant and content creator helping businesses streamline customer management, automate workflows, and boost growth through smart integration","verified":true,"links":["https://www.linkedin.com/in/kevin-meneses-gonzalez/"],"avatar":"https://gravatar.com/avatar/19dee2010941996b1cce342ad66f6964baa6eac898570992e3cddc1b00143a79?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"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-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/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"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/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/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-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/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.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"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":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"}]}],"categories":[{"id":44,"name":"Crypto Trading"},{"id":49,"name":"AI Summarization"}],"image":[]}}