{"workflow":{"id":12699,"name":"Enrich Google Sheets data with the Tavily Research API","views":4,"recentViews":0,"totalViews":4,"createdAt":"2026-01-13T20:58:08.200Z","description":"\nEnrich your CSV data with web-sourced information using Tavily's AI-powered research API. This workflow fills in missing data for existing columns without creating new ones.\n\nVideo Link: https://youtu.be/8g8v3vNyhe4\n\n## How it works\n- Reads rows from a Google Sheet\n- For missing values, finds information from the web using Tavily Research\n- Maps results to existing columns\n- Writes the enriched data to a new sheet\n- Retries automatically until results are ready (up to ~5 minutes)\n\n## Setup steps\n1) Prepare your sheet\n2) Create the columns you want filled (e.g. CEO, revenue, HQ - if the data is related to company information)\n3) Create an empty output sheet\n4) Add credentials\n5) Google Sheets OAuth for both sheet nodes\n6) Tavily API key for the research nodes\n7) Configure and run\n8) Enter the Google Sheet ID and sheet names (For both the CSV nodes)\n9) Click Start\n\nRequirements: Google account (For sheets) and Tavily API key\n","workflow":{"id":"A0iNIsK4Vl5Tl1dA","meta":{"instanceId":"2ca4984385c3b4ae87442f36287f909e6c3da21289fc19cfc9b0d35c9fbde67e","templateCredsSetupCompleted":true},"name":"Data Enrichment","tags":[],"nodes":[{"id":"f93ffe2d-93c2-4bba-ab46-7d2827c0e42f","name":"Click to Start","type":"n8n-nodes-base.manualTrigger","position":[1232,1392],"parameters":{},"typeVersion":1},{"id":"3f4af357-425a-4a01-9f3e-db181183d83c","name":"Combine with Request IDs","type":"n8n-nodes-base.code","position":[2832,1392],"parameters":{"jsCode":"// Combine original data with request_id and add poll counter\nconst originals = $('Store Original Columns').all();\nconst researchResults = $input.all();\n\nreturn originals.map((orig, i) => ({\n  json: {\n    ...orig.json,\n    request_id: researchResults[i]?.json?.request_id || null,\n    poll_count: 0\n  }\n}));"},"typeVersion":2},{"id":"807a8384-7a3a-4ec6-9462-b034da47b6fb","name":"Wait 30s","type":"n8n-nodes-base.wait","position":[3568,1392],"webhookId":"poll-wait","parameters":{"amount":30},"typeVersion":1.1},{"id":"3e0caa72-f8bd-4a21-ade5-a0ed321f734d","name":"Check Research Status","type":"n8n-nodes-base.httpRequest","position":[3888,1392],"parameters":{"url":"=https://api.tavily.com/research/{{ $json.request_id }}","options":{},"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth"},"credentials":{"httpHeaderAuth":{"id":"vVtAoT517SRhgrNx","name":"Header Auth account 6"}},"typeVersion":4.2},{"id":"b17d1581-b486-42a3-bf0e-0b52eb8d3e0f","name":"Combine Status","type":"n8n-nodes-base.code","position":[4288,1392],"parameters":{"jsCode":"// Combine original data with research status\nconst waitData = $('Wait 30s').all();\nconst statusResults = $input.all();\n\nreturn waitData.map((orig, i) => {\n  const status = statusResults[i]?.json || {};\n  return {\n    json: {\n      ...orig.json,\n      poll_count: (orig.json.poll_count || 0) + 1,\n      research_status: status.status || 'unknown',\n      research_result: status\n    }\n  };\n});"},"typeVersion":2},{"id":"83fd49e4-3e3b-42f8-a6ba-59b8c8c9e55e","name":"Research Done?","type":"n8n-nodes-base.if","position":[4512,1280],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"or","conditions":[{"id":"condition-completed","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.research_status }}","rightValue":"completed"}]}},"typeVersion":2},{"id":"6ed17468-ed5d-4f1c-8276-66b63930c78d","name":"Under 5 min?","type":"n8n-nodes-base.if","position":[4736,1456],"parameters":{"options":{},"conditions":{"options":{"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"condition-timeout","operator":{"type":"number","operation":"lt"},"leftValue":"={{ $json.poll_count }}","rightValue":10}]}},"typeVersion":2},{"id":"9c411b50-1969-4902-a563-30555ad6de8e","name":"Merge All Data (Existing Columns Only)","type":"n8n-nodes-base.code","position":[5728,1392],"parameters":{"jsCode":"// Merge original data with research results - ONLY for existing columns\nconst items = $input.all();\n\nconst isEmpty = (val) => val === undefined || val === null || val === '';\n\n// Helper function to normalize strings for matching\nconst normalize = (str) => {\n  if (!str) return '';\n  return str.toLowerCase().replace(/[^a-z0-9]/g, '');\n};\n\n// Helper function to find matching field in extracted data\nconst findMatchingField = (colName, extracted) => {\n  const normalizedCol = normalize(colName);\n  \n  // 1. Exact match (case-insensitive)\n  for (const key in extracted) {\n    if (normalize(key) === normalizedCol) {\n      return extracted[key];\n    }\n  }\n  \n  // 2. Partial match (column name contains research field or vice versa)\n  for (const key in extracted) {\n    const normalizedKey = normalize(key);\n    if (normalizedCol.includes(normalizedKey) || normalizedKey.includes(normalizedCol)) {\n      return extracted[key];\n    }\n  }\n  \n  // 3. Common field name variations\n  const variations = {\n    'cto': ['cto', 'chieftechnologyofficer', 'chieftech', 'technologyofficer'],\n    'ceo': ['ceo', 'chiefexecutiveofficer', 'chiefexec', 'executiveofficer'],\n    'cfo': ['cfo', 'chieffinancialofficer', 'financialofficer'],\n    'revenue': ['revenue', 'annualrevenue', 'revenues', 'totalrevenue'],\n    'headquarters': ['headquarters', 'hq', 'hqbased', 'location', 'headquarter'],\n    'employees': ['employees', 'noofemployees', 'employeecount', 'staff', 'workforce'],\n    'founded': ['founded', 'foundedyear', 'yearfounded', 'established', 'foundingyear'],\n    'funding': ['funding', 'latestfunding', 'recentfunding', 'investment', 'capital'],\n    'industry': ['industry', 'sector', 'businesssector'],\n    'website': ['website', 'url', 'web', 'site'],\n    'domain': ['domain', 'domainname', 'webdomain']\n  };\n  \n  for (const [variationKey, variationList] of Object.entries(variations)) {\n    if (variationList.some(v => normalize(v) === normalizedCol)) {\n      // Try to find matching research field\n      for (const key in extracted) {\n        const normalizedKey = normalize(key);\n        if (variationList.some(v => normalize(v) === normalizedKey)) {\n          return extracted[key];\n        }\n      }\n    }\n  }\n  \n  return null;\n};\n\nreturn items.map((item) => {\n  const original = item.json;\n  const research = original.research_result || {};\n  const originalColumns = original._original_columns || [];\n  \n  // Try multiple possible locations for structured output\n  let extracted = {};\n  \n  // 1. Check structured_output (primary expected location)\n  if (research.structured_output && typeof research.structured_output === 'object') {\n    extracted = research.structured_output;\n  }\n  // 2. Check if content is a JSON object (structured output)\n  else if (research.content && typeof research.content === 'object') {\n    extracted = research.content;\n  }\n  // 3. Try parsing content if it's a JSON string\n  else if (research.content && typeof research.content === 'string') {\n    try {\n      const parsed = JSON.parse(research.content);\n      if (typeof parsed === 'object') extracted = parsed;\n    } catch (e) { /* Not JSON, skip */ }\n  }\n  // 4. Check output field\n  else if (research.output && typeof research.output === 'object') {\n    extracted = research.output;\n  }\n  // 5. Check data field\n  else if (research.data && typeof research.data === 'object') {\n    extracted = research.data;\n  }\n  // 6. Check result field\n  else if (research.result && typeof research.result === 'object') {\n    extracted = research.result;\n  }\n  \n  // Build merged object - ONLY include columns that exist in original\n  const merged = {};\n  \n  // For each original column, try to fill it from research\n  originalColumns.forEach((colName) => {\n    // Skip internal fields\n    if (colName.startsWith('_')) {\n      return;\n    }\n    \n    // If original has a value, keep it\n    if (!isEmpty(original[colName])) {\n      merged[colName] = original[colName];\n      return;\n    }\n    \n    // Try to find matching research field using intelligent matching\n    const foundValue = findMatchingField(colName, extracted);\n    \n    // Set value (empty string if not found)\n    merged[colName] = foundValue !== null && foundValue !== undefined ? foundValue : '';\n  });\n  \n  return { json: merged };\n});"},"typeVersion":2},{"id":"5a00c4d6-7021-475e-91bb-67c264731f97","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[144,976],"parameters":{"width":992,"height":560,"content":"## Data Enrichment with Tavily Research API\nFill in missing company data in your Google Sheet using Tavily’s web research. This is mainly for existing columns (You must manually add column names that you want to enrich, if they do not exist).\n\n## How it works\n- Reads rows from a Google Sheet\n- For missing values, finds information from the web using Tavily Research\n- Maps results to existing columns\n- Writes the enriched data to a new sheet\n- Retries automatically until results are ready (up to ~5 minutes)\n\n## Setup steps\n1) Prepare your sheet\n2) Create the columns you want filled (e.g. CEO, revenue, HQ - if the data is related to company information)\n3) Create an empty output sheet\n4) Add credentials\n5) Google Sheets OAuth for both sheet nodes\n6) Tavily API key for the research nodes\n7) Configure and run\n8) Enter the Google Sheet ID and sheet names (For both the CSV nodes)\n9) Click Start\n\nRequirements: Google account (For sheets) and Tavily API key\n\n"},"typeVersion":1},{"id":"d94f518f-f0f5-445d-933a-445e54891739","name":"Start Tavily Research","type":"n8n-nodes-base.httpRequest","position":[2608,1392],"parameters":{"url":"https://api.tavily.com/research","method":"POST","options":{},"jsonBody":"={{ JSON.stringify($json.research_body) }}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","headerParameters":{"parameters":[{"name":"Content-Type","value":"application/json"}]}},"credentials":{"httpHeaderAuth":{"id":"vVtAoT517SRhgrNx","name":"Header Auth account 6"}},"typeVersion":4.2},{"id":"b57b78d3-8fb0-4cbe-ad88-3d4c8942aaf8","name":"Enrich CSV file","type":"n8n-nodes-base.googleSheets","position":[5984,1392],"parameters":{"columns":{"value":{"CTO":"={{ $json.CTO }}","domain":"={{ $json.domain }}","Revenue":"={{ $json.Revenue }}","website":"={{ $json.website }}","hq_based":"={{ $json.hq_based }}","industry":"={{ $json.industry }}","company_name":"={{ $json.company_name }}","no_of_employees":"={{ $json.no_of_employees }}"},"schema":[{"id":"company_name","type":"string","display":true,"removed":false,"required":false,"displayName":"company_name","defaultMatch":false,"canBeUsedToMatch":true},{"id":"no_of_employees","type":"string","display":true,"removed":false,"required":false,"displayName":"no_of_employees","defaultMatch":false,"canBeUsedToMatch":true},{"id":"hq_based","type":"string","display":true,"removed":false,"required":false,"displayName":"hq_based","defaultMatch":false,"canBeUsedToMatch":true},{"id":"industry","type":"string","display":true,"removed":false,"required":false,"displayName":"industry","defaultMatch":false,"canBeUsedToMatch":true},{"id":"website","type":"string","display":true,"removed":false,"required":false,"displayName":"website","defaultMatch":false,"canBeUsedToMatch":true},{"id":"domain","type":"string","display":true,"removed":false,"required":false,"displayName":"domain","defaultMatch":false,"canBeUsedToMatch":true},{"id":"CTO","type":"string","display":true,"removed":false,"required":false,"displayName":"CTO","defaultMatch":false,"canBeUsedToMatch":true},{"id":"Revenue","type":"string","display":true,"removed":false,"required":false,"displayName":"Revenue","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"autoMapInputData","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"name","value":"<__PLACEHOLDER_VALUE__Destination Sheet Name (e.g., enriched_companies)__>"},"documentId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__Your Google Sheets Document ID__>"}},"credentials":{"googleSheetsOAuth2Api":{"id":"L5kMOw0yvnnRJCdW","name":"Google Sheets account 9"}},"typeVersion":4.5},{"id":"f7cb0bb3-d055-4edd-90a1-7ecfdeaa1b4a","name":"Read CSV file","type":"n8n-nodes-base.googleSheets","position":[1696,1392],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"name","value":"<__PLACEHOLDER_VALUE__Source Sheet Name (e.g., sample_companies)__>"},"documentId":{"__rl":true,"mode":"id","value":"<__PLACEHOLDER_VALUE__Your Google Sheets Document ID__>"}},"credentials":{"googleSheetsOAuth2Api":{"id":"L5kMOw0yvnnRJCdW","name":"Google Sheets account 9"}},"typeVersion":4.5},{"id":"a6d2296d-3b78-41be-9f06-4b1b98db3935","name":"Store Original Columns","type":"n8n-nodes-base.code","position":[2384,1392],"parameters":{"jsCode":"// Store original column names and build dynamic output schema\nconst items = $input.all();\n\n// Get column names from first item (all items should have same structure)\nconst firstItem = items[0]?.json || {};\nconst originalColumns = Object.keys(firstItem).filter(col => !col.startsWith('_'));\n\n// Build dynamic output schema based on original columns\n// Map column names to research-friendly descriptions\nconst columnDescriptions = {\n  'company_name': 'Official company name',\n  'website': 'Company website URL',\n  'domain': 'Company domain name',\n  'hq_based': 'Headquarters location',\n  'headquarters': 'Headquarters location',\n  'no_of_employees': 'Number of employees',\n  'employee_count': 'Number of employees',\n  'employees': 'Number of employees',\n  'industry': 'Industry sector',\n  'founded_year': 'Year company was founded',\n  'founded': 'Year company was founded',\n  'ceo': 'Current CEO name',\n  'cto': 'Current CTO (Chief Technology Officer) name',\n  'cfo': 'Current CFO (Chief Financial Officer) name',\n  'revenue': 'Annual revenue or latest revenue figure',\n  'latest_funding': 'Latest funding round details',\n  'funding': 'Latest funding information',\n  'description': 'Brief company description',\n  'about': 'Company description or about information'\n};\n\nconst outputSchemaProperties = {};\noriginalColumns.forEach(col => {\n  // Use custom description if available, otherwise generate one\n  const description = columnDescriptions[col.toLowerCase()] || \n    `Information about ${col.replace(/_/g, ' ')}`;\n  outputSchemaProperties[col] = {\n    type: 'string',\n    description: description\n  };\n});\n\nconst outputSchema = { properties: outputSchemaProperties };\n\nreturn items.map((item, index) => {\n  const company = item.json.company_name || item.json.domain || item.json.website || 'unknown';\n  const researchInput = 'Research company ' + company + '. Find information about: ' + originalColumns.join(', ') + '.';\n  \n  return {\n    json: {\n      ...item.json,\n      _row_number: index + 2,\n      _original_columns: originalColumns,\n      research_body: {\n        input: researchInput,\n        output_schema: outputSchema\n      }\n    }\n  };\n});"},"typeVersion":2},{"id":"ff8f57f7-dd9b-47c7-a5f1-a46c710962d9","name":"Section: Data Input","type":"n8n-nodes-base.stickyNote","position":[1168,976],"parameters":{"color":7,"width":868,"height":572,"content":"## Data Input\n\nReads company data from Google Sheets"},"typeVersion":1},{"id":"964fe434-f1c8-4ce9-8fdf-779285c991ce","name":"Section: Research Initiation","type":"n8n-nodes-base.stickyNote","position":[2336,1232],"parameters":{"color":7,"width":644,"height":316,"content":"## Research Initiation\n\nPrepares data and starts Tavily research requests"},"typeVersion":1},{"id":"7adeb5f6-3798-4340-ac2f-706b48897089","name":"Section: Polling Loop","type":"n8n-nodes-base.stickyNote","position":[3424,1088],"parameters":{"color":7,"width":1604,"height":588,"content":"## Polling Loop\n\nWaits and checks research status until complete (max 5 min)"},"typeVersion":1},{"id":"78f1e4d9-260c-4fb4-910b-79b521b23a09","name":"Section: Data Output","type":"n8n-nodes-base.stickyNote","position":[5488,1232],"parameters":{"color":7,"width":836,"height":364,"content":"## Data Output\n\nMerges enriched data and writes to Google Sheets"},"typeVersion":1},{"id":"4dc5d6ba-10b8-4018-802e-7ad51232eca3","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[1520,1088],"parameters":{"color":3,"width":480,"height":448,"content":"## ⚠️ Important Setup Step\n\n**Before running:**\n\n1. Create an empty output sheet in the same Google Sheets document as your input data\n\n2. The output sheet will receive the enriched data\n\nExample:\n- Input: \"companies\"\n- Output: \"enriched_companies\""},"typeVersion":1}],"active":false,"pinData":{},"settings":{"callerPolicy":"workflowsFromSameOwner","errorWorkflow":"A0iNIsK4Vl5Tl1dA","timeSavedMode":"fixed","availableInMCP":false,"executionOrder":"v1"},"versionId":"90486e97-38dd-4227-973b-741cd377c155","connections":{"Wait 30s":{"main":[[{"node":"Check Research Status","type":"main","index":0}]]},"Under 5 min?":{"main":[[{"node":"Wait 30s","type":"main","index":0}],[{"node":"Merge All Data (Existing Columns Only)","type":"main","index":0}]]},"Read CSV file":{"main":[[{"node":"Store Original Columns","type":"main","index":0}]]},"Click to Start":{"main":[[{"node":"Read CSV file","type":"main","index":0}]]},"Combine Status":{"main":[[{"node":"Research Done?","type":"main","index":0}]]},"Research Done?":{"main":[[{"node":"Merge All Data (Existing Columns Only)","type":"main","index":0}],[{"node":"Under 5 min?","type":"main","index":0}]]},"Check Research Status":{"main":[[{"node":"Combine Status","type":"main","index":0}]]},"Start Tavily Research":{"main":[[{"node":"Combine with Request IDs","type":"main","index":0}]]},"Store Original Columns":{"main":[[{"node":"Start Tavily Research","type":"main","index":0}]]},"Combine with Request IDs":{"main":[[{"node":"Wait 30s","type":"main","index":0}]]},"Merge All Data (Existing Columns Only)":{"main":[[{"node":"Enrich CSV file","type":"main","index":0}]]}}},"lastUpdatedBy":29,"workflowInfo":{"nodeCount":18,"nodeTypes":{"n8n-nodes-base.if":{"count":2},"n8n-nodes-base.code":{"count":4},"n8n-nodes-base.wait":{"count":1},"n8n-nodes-base.stickyNote":{"count":6},"n8n-nodes-base.httpRequest":{"count":2},"n8n-nodes-base.googleSheets":{"count":2},"n8n-nodes-base.manualTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Mani Srinivasan","username":"mani2001","bio":"","verified":false,"links":[],"avatar":"https://gravatar.com/avatar/14c6abfaf44152ca4132a2ea73de65575eb991454eb871345c24572ce7ab2f15?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":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":514,"icon":"fa:pause-circle","name":"n8n-nodes-base.wait","codex":{"data":{"alias":["pause","sleep","delay","timeout"],"resources":{"generic":[{"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/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.wait/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Flow"]}}},"group":"[\"organization\"]","defaults":{"name":"Wait","color":"#804050"},"iconData":{"icon":"pause-circle","type":"icon"},"displayName":"Wait","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":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"}]}],"categories":[{"id":37,"name":"Lead Generation"},{"id":49,"name":"AI Summarization"}],"image":[]}}