{"workflow":{"id":13665,"name":"Monitor [PROD] workflows in real time with the n8n Public API dashboard","views":21,"recentViews":0,"totalViews":21,"createdAt":"2026-02-24T17:37:45.006Z","description":"A real-time monitoring dashboard for your n8n production workflows, accessible directly from the browser via webhook.\n\nTag any workflow with [PROD] and it will automatically appear on the dashboard showing:\n\n→ Healthy vs error workflows\n→ Success rate per workflow\n→ Total errors and successes\n→ Last error timestamp\n→ 7-day error history chart\n\nThe dashboard auto-refreshes every 30 seconds. No external tools required — it uses only the n8n Public API.\n\n\n![Captura de imagem_20260224_143620.png](fileId:4552)![Captura de imagem_20260224_143639.png](fileId:4553)\n\n## How it works\n\nWhen the webhook is triggered, the workflow:\n1. Fetches all workflows tagged [PROD] via the n8n API\n2. Retrieves the last 50 executions (success + error) for each workflow\n3. Calculates metrics and renders a dark-themed HTML dashboard\n4. Returns the dashboard directly in the browser\n\n## Requirements\n\n- n8n self-hosted (any version with Public API enabled)\n- n8n API credential configured\n- At least one workflow tagged [PROD]\n\n## Setup\n\n1. Enable the n8n Public API under Settings → API\n2. Create an n8n API credential with your API key\n3. Open the Config node and set your n8n base URL\n4. Connect the credential to all HTTP Request nodes\n5. Activate the workflow and open the webhook URL in your browser\n\n\n","workflow":{"meta":{"instanceId":"58e8d6f88fe0fa710ea6cd8b8dc92c4f15ade950ad61feb0b84deb700c9e81cf"},"nodes":[{"id":"b049d0bd-c963-4af8-93b4-b264249d06ff","name":"Sticky Note - Overview","type":"n8n-nodes-base.stickyNote","position":[-304,-48],"parameters":{"color":4,"width":500,"height":560,"content":"## 📊 n8n Resiliency Dashboard\n\nThis workflow generates a **real-time HTML dashboard** that monitors all your `[PROD]`-tagged workflows.\n\n### What it does\n- Lists all workflows tagged `[PROD]`\n- Fetches the last 50 success and 50 error executions per workflow\n- Calculates success rate, error count and last error timestamp\n- Renders an auto-refreshing HTML dashboard (every 30 seconds)\n- Serves it via Webhook — just open the URL in your browser\n\n### Setup\n1. Enable the n8n API: **Settings → n8n API**\n2. Create an **n8n API credential** and connect it to the two HTTP Request nodes\n3. Set your instance URL in the **Config** node\n4. Tag the workflows you want to monitor with `[PROD]`\n5. Activate this workflow and open the Webhook URL\n\n### Webhook URL\n`https://YOUR-N8N-URL/webhook/resiliency-dashboard`"},"typeVersion":1},{"id":"4e5b8ef5-396b-464f-85ae-67f1461bfa82","name":"Sticky Note - Config","type":"n8n-nodes-base.stickyNote","position":[288,-80],"parameters":{"color":3,"width":260,"height":196,"content":"### ⚙️ Step 1 — Config\nSet your n8n base URL here.\n\n**Example:**\n`https://your-instance.n8n.cloud`\n\nThis URL is reused by all HTTP Request nodes."},"typeVersion":1},{"id":"acfacd6c-7846-48cc-a9a3-1e7201e0f7ef","name":"Sticky Note - Fetch & Filter","type":"n8n-nodes-base.stickyNote","position":[544,-80],"parameters":{"color":3,"width":370,"height":196,"content":"### 🔍 Step 2 — Fetch & Filter\nFetches all workflows via the n8n API, then filters only those tagged `[PROD]`.\n\nTo monitor a workflow, add the tag `[PROD]` to it in n8n Settings."},"typeVersion":1},{"id":"eaf0fc85-3cc8-4fbb-b5e5-766bac347fca","name":"Sticky Note - Executions","type":"n8n-nodes-base.stickyNote","position":[912,-80],"parameters":{"color":3,"width":316,"height":196,"content":"### 📥 Step 3 — Fetch Executions\nFor each `[PROD]` workflow, fetches the last **50 successes** and **50 errors** in parallel.\n\nBoth run simultaneously via branched connections."},"typeVersion":1},{"id":"bda8db2d-3b5a-4a03-9eb6-347d78d69118","name":"Sticky Note - Compare & Render","type":"n8n-nodes-base.stickyNote","position":[1232,-80],"parameters":{"color":3,"width":628,"height":196,"content":"### 📊 Step 4 — Compare & Render\nMerges success + error executions, computes per-workflow stats (success rate, error count, last error timestamp), builds a 7-day error chart and renders the full HTML dashboard, served via the Webhook response node."},"typeVersion":1},{"id":"dd3be40c-a892-4397-9fcd-ec9f1e42cb40","name":"Merge","type":"n8n-nodes-base.merge","position":[1376,320],"parameters":{"mode":"combine","options":{},"combineBy":"combineByPosition"},"typeVersion":3.2},{"id":"674276f1-5a50-44ca-8806-038ef9ffefc6","name":"Respond to Webhook","type":"n8n-nodes-base.respondToWebhook","position":[2048,320],"parameters":{"options":{"responseHeaders":{"entries":[{"name":"Content-Type","value":"text/html; charset=utf-8"}]}},"respondWith":"text","responseBody":"={{ $json.html }}"},"typeVersion":1.4},{"id":"ee08f9c3-ce24-4f4c-a4ce-d50a616674a8","name":"Webhook","type":"n8n-nodes-base.webhook","position":[256,320],"webhookId":"6aaba4eb-74ab-452a-9d78-2526d30dccbe","parameters":{"path":"resiliency-dashboard","options":{},"responseMode":"responseNode"},"typeVersion":2.1},{"id":"10ac5efd-4434-4f81-8448-9393ac45a36e","name":"GET success","type":"n8n-nodes-base.httpRequest","position":[1152,224],"parameters":{"url":"={{ $('Config').item.json.base_url }}/api/v1/executions?status=success&limit=50&workflowId={{ $json.id }}","options":{},"authentication":"predefinedCredentialType","nodeCredentialType":"n8nApi"},"credentials":{"n8nApi":{"id":"PD0eMJ9DnlPnLsVJ","name":"n8n account"}},"typeVersion":4.3},{"id":"4e6d2c87-39d5-4105-aa92-7b5d57529b65","name":"GET error","type":"n8n-nodes-base.httpRequest","position":[1152,416],"parameters":{"url":"={{ $('Config').item.json.base_url }}/api/v1/executions?status=error&limit=50&workflowId={{ $json.id }}","options":{},"authentication":"predefinedCredentialType","nodeCredentialType":"n8nApi"},"credentials":{"n8nApi":{"id":"PD0eMJ9DnlPnLsVJ","name":"n8n account"}},"typeVersion":4.3},{"id":"5bb16dd7-04ba-41df-bfc2-32073319d000","name":"Compare","type":"n8n-nodes-base.code","disabled":true,"position":[1600,320],"parameters":{"jsCode":"const mergeItems = $input.all();\n\nconst erros = [];\nconst sucessos = [];\n\nmergeItems.forEach(item => {\n  const data = item.json.data;\n  if (!data) return;\n  data.forEach(ex => {\n    if (ex.status === 'error') erros.push(ex);\n    else if (ex.status === 'success') sucessos.push(ex);\n  });\n});\n\nconst workflows = $('Filter: [PROD] Tag').all().map(i => i.json);\n\nconst workflowStats = workflows.map(wf => {\n  const wfErros = erros.filter(e => e.workflowId === wf.id);\n  const wfSucessos = sucessos.filter(e => e.workflowId === wf.id);\n  const total = wfErros.length + wfSucessos.length;\n  const taxaSucesso = total > 0 ? Math.round((wfSucessos.length / total) * 100) : 100;\n  const ultimoErro = wfErros.sort((a, b) => \n    new Date(b.startedAt) - new Date(a.startedAt)\n  )[0];\n\n  return {\n    id: wf.id,\n    name: wf.name,\n    totalErros: wfErros.length,\n    totalSucessos: wfSucessos.length,\n    taxaSucesso,\n    saudavel: wfErros.length === 0,\n    ultimoErro: ultimoErro ? ultimoErro.startedAt : null,\n  };\n});\n\nconst totalMonitorados = workflows.length;\nconst totalSaudaveis = workflowStats.filter(w => w.saudavel).length;\nconst totalComErro = workflowStats.filter(w => !w.saudavel).length;\n\nconst hoje = new Date();\nconst diasLabels = [];\nconst diasErros = [];\n\nfor (let i = 6; i >= 0; i--) {\n  const dia = new Date(hoje);\n  dia.setDate(dia.getDate() - i);\n  const label = dia.toLocaleDateString('en-US', { month: 'short', day: '2-digit' });\n  const count = erros.filter(e => {\n    const d = new Date(e.startedAt);\n    return d.toDateString() === dia.toDateString();\n  }).length;\n  diasLabels.push(label);\n  diasErros.push(count);\n}\n\nreturn [{\n  json: {\n    workflowStats,\n    totalMonitorados,\n    totalSaudaveis,\n    totalComErro,\n    diasLabels,\n    diasErros\n  }\n}];"},"typeVersion":2},{"id":"68365082-a8dd-40b4-8f18-1af48964ac11","name":"HTML","type":"n8n-nodes-base.code","position":[1824,320],"parameters":{"jsCode":"const data = $input.first().json;\n\nconst {\n  workflowStats,\n  totalMonitorados,\n  totalSaudaveis,\n  totalComErro,\n  diasLabels,\n  diasErros\n} = data;\n\nconst generatedAt = new Date().toLocaleString('en-US', { timeZone: 'UTC' });\n\nconst workflowRows = workflowStats.map(wf => {\n  const statusPill = wf.saudavel\n    ? '<span class=\"pill success\">Healthy</span>'\n    : '<span class=\"pill error\">Error</span>';\n  const lastError = wf.ultimoErro\n    ? new Date(wf.ultimoErro).toLocaleString('en-US', { timeZone: 'UTC' })\n    : '—';\n\n  return `\n    <tr>\n      <td>${wf.name}</td>\n      <td>${statusPill}</td>\n      <td class=\"mono\">${wf.taxaSucesso}%</td>\n      <td class=\"mono\">${wf.totalErros}</td>\n      <td class=\"mono\">${wf.totalSucessos}</td>\n      <td class=\"mono\">${lastError}</td>\n    </tr>`;\n}).join('');\n\nconst html = `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta http-equiv=\"refresh\" content=\"30\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Resiliency Dashboard</title>\n<link href=\"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Syne:wght@700;800&family=DM+Sans:wght@300;400;500&display=swap\" rel=\"stylesheet\">\n<script src=\"https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js\"></script>\n<style>\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n  :root {\n    --bg: #0a0d14; --surface: #111520; --surface-2: #181d2e;\n    --border: #1e2640; --accent: #4fffb0;\n    --red: #ff6b6b; --amber: #ffb347; --blue: #6b8cff;\n    --text: #e8eaf0; --text-muted: #5a6380; --text-dim: #8b94b2;\n    --font-display: 'Syne', sans-serif; --font-body: 'DM Sans', sans-serif;\n    --font-mono: 'DM Mono', monospace; --radius: 12px; --radius-sm: 7px;\n  }\n  body { background: var(--bg); color: var(--text); font-family: var(--font-body); min-height: 100vh; }\n  body::before {\n    content: ''; position: fixed; inset: 0;\n    background-image: linear-gradient(rgba(79,255,176,0.025) 1px, transparent 1px), linear-gradient(90deg, rgba(79,255,176,0.025) 1px, transparent 1px);\n    background-size: 40px 40px; pointer-events: none; z-index: 0;\n  }\n  .shell { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto; padding: 40px 24px 80px; }\n  .header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 48px; padding-bottom: 24px; border-bottom: 1px solid var(--border); }\n  .badge { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: 0.72rem; color: var(--accent); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 4px; }\n  .badge::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px var(--accent); animation: pulse 2s ease-in-out infinite; }\n  @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }\n  h1 { font-family: var(--font-display); font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; }\n  .header-right { font-family: var(--font-mono); font-size: 0.7rem; color: var(--text-muted); text-align: right; line-height: 1.9; }\n  .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin-bottom: 32px; }\n  .stat-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 22px; }\n  .stat-label { font-family: var(--font-mono); font-size: 0.65rem; color: var(--text-muted); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 10px; }\n  .stat-value { font-family: var(--font-display); font-size: 2.2rem; font-weight: 800; line-height: 1; letter-spacing: -0.04em; }\n  .stat-value.green { color: #4fffb0; }\n  .stat-value.red { color: #ff6b6b; }\n  .stat-value.blue { color: #6b8cff; }\n  .stat-sub { font-size: 0.72rem; color: var(--text-muted); margin-top: 6px; font-weight: 300; }\n  .section { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 28px; margin-bottom: 32px; }\n  .section-title { font-family: var(--font-display); font-size: 0.9rem; font-weight: 700; letter-spacing: 0.04em; color: var(--text-dim); text-transform: uppercase; margin-bottom: 20px; display: flex; align-items: center; gap: 10px; }\n  .section-title::before { content: ''; display: block; width: 18px; height: 2px; background: var(--accent); border-radius: 2px; }\n  .chart-wrap { height: 220px; position: relative; }\n  .logs-scroll { overflow-x: auto; }\n  table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }\n  thead th { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); text-align: left; padding: 10px 16px; border-bottom: 1px solid var(--border); white-space: nowrap; background: var(--surface-2); }\n  tbody tr { border-bottom: 1px solid rgba(30,38,64,0.6); transition: background 0.12s; }\n  tbody tr:hover { background: rgba(79,255,176,0.03); }\n  td { padding: 11px 16px; vertical-align: middle; }\n  td.mono { font-family: var(--font-mono); color: var(--text-dim); }\n  .pill { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 99px; font-family: var(--font-mono); font-size: 0.65rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }\n  .pill.success { background: rgba(79,255,176,0.12); color: #4fffb0; }\n  .pill.error { background: rgba(255,107,107,0.12); color: #ff6b6b; }\n  .pill::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }\n  .refresh-btn { font-family: var(--font-mono); font-size: 0.7rem; background: transparent; border: 1px solid var(--border); color: var(--text-muted); padding: 7px 14px; border-radius: var(--radius-sm); cursor: pointer; transition: all 0.15s; }\n  .refresh-btn:hover { border-color: var(--accent); color: var(--accent); }\n</style>\n</head>\n<body>\n<div class=\"shell\">\n  <header class=\"header\">\n    <div>\n      <span class=\"badge\">Live</span>\n      <h1>Resiliency Dashboard</h1>\n      <p style=\"color:var(--text-muted);font-size:0.8rem;font-weight:300;margin-top:6px\">Real-time monitoring of [PROD] workflows</p>\n    </div>\n    <div class=\"header-right\">\n      <div>Generated at</div>\n      <div style=\"color:var(--text-dim)\">${generatedAt}</div>\n      <div style=\"margin-top:8px\"><button class=\"refresh-btn\" onclick=\"location.reload()\">↻ Refresh</button></div>\n    </div>\n  </header>\n\n  <div class=\"stats-grid\">\n    <div class=\"stat-card\">\n      <div class=\"stat-label\">Monitored</div>\n      <div class=\"stat-value blue\">${totalMonitorados}</div>\n      <div class=\"stat-sub\">[PROD] Workflows</div>\n    </div>\n    <div class=\"stat-card\">\n      <div class=\"stat-label\">Healthy</div>\n      <div class=\"stat-value green\">${totalSaudaveis}</div>\n      <div class=\"stat-sub\">No recent errors</div>\n    </div>\n    <div class=\"stat-card\">\n      <div class=\"stat-label\">With errors</div>\n      <div class=\"stat-value red\">${totalComErro}</div>\n      <div class=\"stat-sub\">Need attention</div>\n    </div>\n  </div>\n\n  <div class=\"section\">\n    <div class=\"section-title\">Errors per day — last 7 days</div>\n    <div class=\"chart-wrap\"><canvas id=\"chart\"></canvas></div>\n  </div>\n\n  <div class=\"section\">\n    <div class=\"section-title\">Workflow status</div>\n    <div class=\"logs-scroll\">\n      <table>\n        <thead>\n          <tr>\n            <th>Workflow</th>\n            <th>Status</th>\n            <th>Success rate</th>\n            <th>Errors</th>\n            <th>Successes</th>\n            <th>Last error</th>\n          </tr>\n        </thead>\n        <tbody>${workflowRows}</tbody>\n      </table>\n    </div>\n  </div>\n</div>\n\n<script>\nnew Chart(document.getElementById('chart').getContext('2d'), {\n  type: 'bar',\n  data: {\n    labels: ${JSON.stringify(diasLabels)},\n    datasets: [{\n      label: 'Errors',\n      data: ${JSON.stringify(diasErros)},\n      backgroundColor: 'rgba(255,107,107,0.25)',\n      borderColor: 'rgba(255,107,107,0.8)',\n      borderWidth: 1,\n      borderRadius: 4\n    }]\n  },\n  options: {\n    responsive: true,\n    maintainAspectRatio: false,\n    plugins: { legend: { labels: { color: '#5a6380', font: { family: 'DM Mono', size: 11 } } } },\n    scales: {\n      x: { grid: { color: 'rgba(30,38,64,0.6)' }, ticks: { color: '#5a6380', font: { family: 'DM Mono', size: 10 } } },\n      y: { grid: { color: 'rgba(30,38,64,0.6)' }, ticks: { color: '#5a6380', font: { family: 'DM Mono', size: 10 } } }\n    }\n  }\n});\n</script>\n</body>\n</html>`;\n\nreturn [{ json: { html } }];"},"typeVersion":2},{"id":"84da998d-421b-4f28-842d-1a93eb6767c3","name":"Config","type":"n8n-nodes-base.set","position":[480,320],"parameters":{"options":{},"assignments":{"assignments":[{"id":"f505883e-8474-4d45-b9d0-474cb4f8ceac","name":"base_url","type":"string","value":"https://YOUR-N8N-URL-HERE"}]}},"typeVersion":3.4},{"id":"d60eac82-4de8-4621-8af9-ae8c665a184b","name":"API: List Workflows","type":"n8n-nodes-base.httpRequest","position":[704,320],"parameters":{"url":"={{ $('Config').item.json.base_url }}/api/v1/workflows ","options":{},"authentication":"predefinedCredentialType","nodeCredentialType":"n8nApi"},"credentials":{"n8nApi":{"id":"PD0eMJ9DnlPnLsVJ","name":"n8n account"}},"typeVersion":4.3},{"id":"0f66b66b-a520-4378-b75d-5737632f35a8","name":"Filter: [PROD] Tag","type":"n8n-nodes-base.code","position":[928,320],"parameters":{"jsCode":"const response = $input.first().json;\nconst workflows = response.data;\n\nconst prodWorkflows = workflows.filter(wf => \n  wf.tags && wf.tags.some(tag => tag.name === \"[PROD]\")\n);\n\nreturn prodWorkflows.map(wf => ({\n  json: {\n    id: wf.id,\n    name: wf.name,\n    updatedAt: wf.updatedAt,\n    versionId: wf.versionId,\n    workflow: wf\n  }\n}));"},"typeVersion":2}],"pinData":{},"connections":{"HTML":{"main":[[{"node":"Respond to Webhook","type":"main","index":0}]]},"Merge":{"main":[[{"node":"Compare","type":"main","index":0}]]},"Config":{"main":[[{"node":"API: List Workflows","type":"main","index":0}]]},"Compare":{"main":[[{"node":"HTML","type":"main","index":0}]]},"Webhook":{"main":[[{"node":"Config","type":"main","index":0}]]},"GET error":{"main":[[{"node":"Merge","type":"main","index":1}]]},"GET success":{"main":[[{"node":"Merge","type":"main","index":0}]]},"Filter: [PROD] Tag":{"main":[[{"node":"GET error","type":"main","index":0},{"node":"GET success","type":"main","index":0}]]},"API: List Workflows":{"main":[[{"node":"Filter: [PROD] Tag","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":15,"nodeTypes":{"n8n-nodes-base.set":{"count":1},"n8n-nodes-base.code":{"count":3},"n8n-nodes-base.merge":{"count":1},"n8n-nodes-base.webhook":{"count":1},"n8n-nodes-base.stickyNote":{"count":5},"n8n-nodes-base.httpRequest":{"count":3},"n8n-nodes-base.respondToWebhook":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"Lucas Hideki","username":"lucashideki","bio":"","verified":true,"links":["https://www.linkedin.com/in/lucas-hideki-tb/"],"avatar":"https://gravatar.com/avatar/08ecf9c0ea6f9f301ccd2c337d43f823ab9d552f01b422b0d6fda9e665b05608?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":24,"icon":"file:merge.svg","name":"n8n-nodes-base.merge","codex":{"data":{"alias":["Join","Concatenate","Wait"],"resources":{"generic":[{"url":"https://n8n.io/blog/how-to-sync-data-between-two-systems/","icon":"🏬","label":"How to synchronize data between two systems (one-way vs. two-way sync"},{"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/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/","icon":"👦","label":"Build your own virtual assistant with n8n: A step by step guide"},{"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/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.merge/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Merge"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTc3XzUxOCkiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgNDhDMCAyMS40OTAzIDIxLjQ5MDMgMCA0OCAwSDExMkMxMzguNTEgMCAxNjAgMjEuNDkwMyAxNjAgNDhWNTZIMTk2LjI1MkMyNDAuNDM1IDU2IDI3Ni4yNTIgOTEuODE3MiAyNzYuMjUyIDEzNlYxOTJDMjc2LjI1MiAyMTQuMDkxIDI5NC4xNjEgMjMyIDMxNi4yNTIgMjMySDM1MlYyMjRDMzUyIDE5Ny40OSAzNzMuNDkgMTc2IDQwMCAxNzZINDY0QzQ5MC41MSAxNzYgNTEyIDE5Ny40OSA1MTIgMjI0VjI4OEM1MTIgMzE0LjUxIDQ5MC41MSAzMzYgNDY0IDMzNkg0MDBDMzczLjQ5IDMzNiAzNTIgMzE0LjUxIDM1MiAyODhWMjgwSDMxNi4yNTJDMjk0LjE2MSAyODAgMjc2LjI1MiAyOTcuOTA5IDI3Ni4yNTIgMzIwVjM3NkMyNzYuMjUyIDQyMC4xODMgMjQwLjQzNSA0NTYgMTk2LjI1MiA0NTZIMTYwVjQ2NEMxNjAgNDkwLjUxIDEzOC41MSA1MTIgMTEyIDUxMkg0OEMyMS40OTAzIDUxMiAwIDQ5MC41MSAwIDQ2NFY0MDBDMCAzNzMuNDkgMjEuNDkwMyAzNTIgNDggMzUySDExMkMxMzguNTEgMzUyIDE2MCAzNzMuNDkgMTYwIDQwMFY0MDhIMTk2LjI1MkMyMTMuOTI1IDQwOCAyMjguMjUyIDM5My42NzMgMjI4LjI1MiAzNzZWMzIwQzIyOC4yNTIgMjk0Ljc4NCAyMzguODU5IDI3Mi4wNDQgMjU1Ljg1MyAyNTZDMjM4Ljg1OSAyMzkuOTU2IDIyOC4yNTIgMjE3LjIxNiAyMjguMjUyIDE5MlYxMzZDMjI4LjI1MiAxMTguMzI3IDIxMy45MjUgMTA0IDE5Ni4yNTIgMTA0SDE2MFYxMTJDMTYwIDEzOC41MSAxMzguNTEgMTYwIDExMiAxNjBINDhDMjEuNDkwMyAxNjAgMCAxMzguNTEgMCAxMTJWNDhaTTEwNCA0OEMxMDguNDE4IDQ4IDExMiA1MS41ODE3IDExMiA1NlYxMDRDMTEyIDEwOC40MTggMTA4LjQxOCAxMTIgMTA0IDExMkg1NkM1MS41ODE3IDExMiA0OCAxMDguNDE4IDQ4IDEwNFY1NkM0OCA1MS41ODE3IDUxLjU4MTcgNDggNTYgNDhIMTA0Wk00NTYgMjI0QzQ2MC40MTggMjI0IDQ2NCAyMjcuNTgyIDQ2NCAyMzJWMjgwQzQ2NCAyODQuNDE4IDQ2MC40MTggMjg4IDQ1NiAyODhINDA4QzQwMy41ODIgMjg4IDQwMCAyODQuNDE4IDQwMCAyODBWMjMyQzQwMCAyMjcuNTgyIDQwMy41ODIgMjI0IDQwOCAyMjRINDU2Wk0xMTIgNDA4QzExMiA0MDMuNTgyIDEwOC40MTggNDAwIDEwNCA0MDBINTZDNTEuNTgxNyA0MDAgNDggNDAzLjU4MiA0OCA0MDhWNDU2QzQ4IDQ2MC40MTggNTEuNTgxNyA0NjQgNTYgNDY0SDEwNEMxMDguNDE4IDQ2NCAxMTIgNDYwLjQxOCAxMTIgNDU2VjQwOFoiIGZpbGw9IiM1NEI4QzkiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTc3XzUxOCI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Merge","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":47,"icon":"file:webhook.svg","name":"n8n-nodes-base.webhook","codex":{"data":{"alias":["HTTP","API","Build","WH"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/","icon":"👏","label":"How to automatically give kudos to contributors with GitHub, Slack, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/","label":"How to automate every step of an incident response workflow"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"trigger\"]","defaults":{"name":"Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Webhook","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":535,"icon":"file:webhook.svg","name":"n8n-nodes-base.respondToWebhook","codex":{"data":{"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"transform\"]","defaults":{"name":"Respond to Webhook"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"},"displayName":"Respond to Webhook","typeVersion":2,"nodeCategories":[{"id":7,"name":"Utility"},{"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"}]}],"categories":[{"id":16,"name":"DevOps"}],"image":[{"id":4552,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Captura_de_imagem_20260224_143620_6116503b33.png"},{"id":4553,"url":"https://n8niostorageaccount.blob.core.windows.net/n8nio-strapi-blobs-prod/assets/Captura_de_imagem_20260224_143639_b1c4b17f40.png"}]}}