{
  "workflow": {
    "id": 9684,
    "name": "Automate cross-project dependency tracking between Jira and Monday",
    "views": 69,
    "recentViews": 0,
    "totalViews": 69,
    "createdAt": "2025-10-15T07:04:01.924Z",
    "description": "## Description\nKeep your product and project teams perfectly aligned by automatically syncing task dependencies between Jira and Monday.com. This workflow ensures real-time visibility into cross-platform blockers and dependencies, allowing smoother delivery across multiple teams and tools. 🔄📅💼\n\n## What This Template Does\n- Step 1: Trigger the workflow on a schedule or manual run.\n- Step 2: Fetch project tasks and dependencies from Jira.\n- Step 3: Retrieve matching items from Monday.com based on linked project IDs or issue keys.\n- Step 4: Compare dependencies between both systems.\n- Step 5: Identify mismatched or missing dependencies across platforms.\n- Step 6: Send summarized reports to Slack or Gmail for team visibility.\n- Step 7: Optionally update Monday.com or Jira items with dependency status tags.\n\n## Key Benefits\n✅ Maintain alignment across multiple projects and teams.\n ✅ Detect and resolve dependency conflicts before they cause delays.\n ✅ Automate visibility — no more manual cross-checking.\n ✅ Simplify multi-tool management for product and engineering leads.\n\n## Features\n- Integration between Jira Cloud and Monday.com API\n- Cross-dependency comparison logic\n- Scheduled or manual execution\n- Slack/Gmail notifications for updates or conflicts\n- Custom mapping for project and issue identifiers\n\n## Requirements\n- Jira Cloud account with API credentials\n- Monday.com API key or OAuth2 token\n- Optional: Slack or Gmail credentials for notifications\n- n8n instance (cloud or self-hosted)\n\n## Target Audience\n- Product and Project Managers coordinating across tools 🧩\n- Engineering Leads overseeing multi-platform sprints ⚙️\n- PMOs managing dependencies across cross-functional teams 📊\n- Operations teams aiming for unified delivery visibility 📈\n\n## Step-by-Step Setup Instructions\n- Connect your Jira and Monday.com credentials in n8n.\n- Map project identifiers or keys between Jira and Monday.com.\n- (Optional) Configure Slack or Gmail for daily status alerts.\n- Adjust the cron expression to match your monitoring schedule.\n- Run the workflow once manually to validate mappings.\n- Activate the workflow for ongoing dependency tracking. ✅",
    "workflow": {
      "id": "hXfojMGA8g8QnEdF",
      "meta": {
        "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
        "templateCredsSetupCompleted": true
      },
      "name": "Automate Cross-Project Dependency Tracking between Jira and Monday.com",
      "tags": [],
      "nodes": [
        {
          "id": "b7490099-ba71-42e9-b2cc-0ce23060a602",
          "name": "Workflow Description",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -1360,
            -400
          ],
          "parameters": {
            "color": 4,
            "width": 389,
            "height": 560,
            "content": "## 🎯 Workflow Overview\n\nThis automation monitors Jira project dependencies and proactively alerts teams about blocking issues that could delay project delivery.\n\n**What it does:**\n- Runs nightly to scan all open Jira issues\n- Identifies blocking dependencies and calculates risk scores\n- Creates coordination tasks for high-impact blockers\n- Sends formatted email reports and Slack notifications\n- Syncs critical items to Monday.com boards\n\n**Use Case:** Perfect for project managers tracking cross-team dependencies and preventing delivery delays.\n\n**Required Setup:**\n- Jira Software Cloud credentials\n- Gmail OAuth2 credentials\n- Slack workspace access\n- Monday.com account\n- Update project key in Fetch Jira Issues node"
          },
          "typeVersion": 1
        },
        {
          "id": "185308d0-69ba-44f1-bdbe-a93ce06a5209",
          "name": "Trigger (Nightly Run)",
          "type": "n8n-nodes-base.cron",
          "position": [
            -736,
            -144
          ],
          "parameters": {
            "triggerTimes": {
              "item": [
                {}
              ]
            }
          },
          "typeVersion": 1
        },
        {
          "id": "1bd430b2-9823-4650-af57-a7870851d9d2",
          "name": "Note - Trigger",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -944,
            -448
          ],
          "parameters": {
            "width": 262,
            "height": 306,
            "content": "## ⏰ Scheduled Trigger\n\nRuns daily at midnight (00:00) to generate fresh dependency reports.\n\n**Configuration:**\n- Default: Runs at 00:00:00 daily\n- Customize timing in trigger settings\n- Consider your team's timezone"
          },
          "typeVersion": 1
        },
        {
          "id": "b7cf7c45-aa71-4369-9d8b-3bc7a612a285",
          "name": "Note - Fetch",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -592,
            32
          ],
          "parameters": {
            "width": 262,
            "height": 357,
            "content": "## 📋 Fetch Open Issues\n\n**Setup Required:**\n1. Update JQL query with your project key\n2. Example: `project = MYPROJ AND statusCategory != Done`\n3. Connect your Jira credentials\n\n**What it fetches:**\n- All non-completed issues\n- Issue links and dependencies\n- Assignee and due date info"
          },
          "typeVersion": 1
        },
        {
          "id": "6d07db03-aa56-43ec-bad8-ba089d2b973a",
          "name": "Filter Dependencies",
          "type": "n8n-nodes-base.if",
          "position": [
            -304,
            -144
          ],
          "parameters": {
            "conditions": {
              "string": [
                {
                  "value1": "={{ $json.fields.issuelinks }}",
                  "operation": "isNotEmpty"
                }
              ]
            }
          },
          "typeVersion": 1
        },
        {
          "id": "9686f647-dafd-4597-842b-ff35aab99c23",
          "name": "Note - Filter",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -384,
            -448
          ],
          "parameters": {
            "width": 262,
            "height": 290,
            "content": "## 🔍 Filter Dependencies\n\nOnly processes issues that have linked dependencies.\n\n**Logic:**\n- Checks if `issuelinks` field exists\n- Passes issues with dependencies to next node\n- Skips standalone issues"
          },
          "typeVersion": 1
        },
        {
          "id": "1ad0a222-37d2-4529-baf7-46fdcf31a704",
          "name": "Extract Dependency Details",
          "type": "n8n-nodes-base.function",
          "position": [
            -80,
            -144
          ],
          "parameters": {
            "functionCode": "const items = [];\n\nfor (const item of $input.all()) {\n  const issue = item.json;\n  const issueKey = issue.key;\n  const summary = issue.fields.summary;\n  const dueDate = issue.fields.duedate || 'No due date';\n  const assignee = issue.fields.assignee?.displayName || 'Unassigned';\n  const assigneeEmail = issue.fields.assignee?.emailAddress || '';\n  const issueLinks = issue.fields.issuelinks || [];\n  \n  // Process each issue link\n  for (const link of issueLinks) {\n    const linkTypeName = link.type.name;\n    let dependencyType = '';\n    let linkedIssueKey = '';\n    let linkedIssueSummary = '';\n    let linkedIssueStatus = '';\n    let linkedIssuePriority = '';\n    \n    // Check if this issue is blocked by another issue (inwardIssue)\n    if (link.inwardIssue) {\n      dependencyType = link.type.inward; // \"is blocked by\"\n      linkedIssueKey = link.inwardIssue.key;\n      linkedIssueSummary = link.inwardIssue.fields?.summary || '';\n      linkedIssueStatus = link.inwardIssue.fields?.status?.name || '';\n      linkedIssuePriority = link.inwardIssue.fields?.priority?.name || '';\n    }\n    // Check if this issue blocks another issue (outwardIssue)\n    else if (link.outwardIssue) {\n      dependencyType = link.type.outward; // \"blocks\"\n      linkedIssueKey = link.outwardIssue.key;\n      linkedIssueSummary = link.outwardIssue.fields?.summary || '';\n      linkedIssueStatus = link.outwardIssue.fields?.status?.name || '';\n      linkedIssuePriority = link.outwardIssue.fields?.priority?.name || '';\n    }\n    \n    // Only add items where we found a linked issue\n    if (linkedIssueKey) {\n      items.push({\n        json: {\n          issueKey,\n          summary,\n          dueDate,\n          assignee,\n          assigneeEmail,\n          linkType: linkTypeName,\n          dependencyType,\n          linkedIssueKey,\n          linkedIssueSummary,\n          linkedIssueStatus,\n          linkedIssuePriority\n        }\n      });\n    }\n  }\n}\n\nreturn items;"
          },
          "typeVersion": 1
        },
        {
          "id": "094d3001-f935-493a-b59e-bef2d0ca431e",
          "name": "Note - Extract",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -160,
            32
          ],
          "parameters": {
            "width": 262,
            "height": 274,
            "content": "## 🔗 Extract Dependencies\n\nParses issue links to identify blocking relationships.\n\n**Extracts:**\n- Blocker/blocked relationships\n- Linked issue details\n- Status and priority info\n- Assignee contact details"
          },
          "typeVersion": 1
        },
        {
          "id": "03f0b995-e4d5-45d4-90ec-fd987ae34833",
          "name": "Compute Impact Score",
          "type": "n8n-nodes-base.function",
          "position": [
            144,
            -48
          ],
          "parameters": {
            "functionCode": "const items = [];\n\nfor (const item of $input.all()) {\n  const jiraData = item.json;\n  const issueKey = jiraData.issueKey;\n  const dueDate = jiraData.dueDate;\n  const linkedIssueKey = jiraData.linkedIssueKey;\n  \n  let daysTillDue = 999;\n  let riskFlag = 'Low';\n  \n  if (dueDate && dueDate !== 'No due date') {\n    const today = new Date();\n    const due = new Date(dueDate);\n    daysTillDue = Math.ceil((due - today) / (1000 * 60 * 60 * 24));\n    \n    if (daysTillDue < 7) {\n      riskFlag = 'High';\n    } else if (daysTillDue < 14) {\n      riskFlag = 'Medium';\n    }\n  }\n  \n  const blockerCount = jiraData.dependencyType === 'is blocked by' ? 1 : 0.5;\n  const impactScore = Math.round(blockerCount * Math.max(1, 30 - daysTillDue));\n  \n  items.push({\n    json: {\n      ...jiraData,\n      daysTillDue,\n      riskFlag,\n      impactScore\n    }\n  });\n}\n\nreturn items;"
          },
          "typeVersion": 1
        },
        {
          "id": "5b2ad399-43f0-43dd-a248-312191e77080",
          "name": "Note - Compute",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            144,
            96
          ],
          "parameters": {
            "width": 262,
            "height": 285,
            "content": "## 📊 Risk Calculation\n\nCalculates impact scores based on urgency and dependency type.\n\n**Risk Levels:**\n- **High:** < 7 days to due date\n- **Medium:** 7-14 days\n- **Low:** > 14 days\n\n**Impact Score:** Weighted by blocker type and time remaining"
          },
          "typeVersion": 1
        },
        {
          "id": "11f3c704-bca8-4273-9a2d-bb6cf551f47d",
          "name": "Create Monday.com Item",
          "type": "n8n-nodes-base.mondayCom",
          "position": [
            144,
            -240
          ],
          "parameters": {
            "name": "={{ $json.summary }}",
            "boardId": "YOUR_BOARD_ID",
            "groupId": "topics",
            "resource": "boardItem",
            "additionalFields": {}
          },
          "credentials": {
            "mondayComApi": {
              "id": "credential-id",
              "name": "mondayComApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "3bc54dd5-633e-4669-b8de-48bb5f93a848",
          "name": "Note - Monday",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            -16,
            -512
          ],
          "parameters": {
            "width": 262,
            "height": 258,
            "content": "## 📋 Monday.com Sync\n\n**Setup Required:**\n1. Replace `YOUR_BOARD_ID` with your board ID\n2. Update `groupId` if needed\n3. Connect Monday.com credentials\n\n**Creates:** New items for each dependency issue"
          },
          "typeVersion": 1
        },
        {
          "id": "791ada1e-1556-4972-9cb5-fbd473f8abaa",
          "name": "Note - Email Format",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            320,
            -528
          ],
          "parameters": {
            "width": 262,
            "height": 285,
            "content": "## 📧 Email Formatter\n\nGenerates beautiful HTML email reports with:\n- Summary statistics\n- Blocking issues table\n- Blocked issues table\n- Color-coded risk indicators\n\n**No configuration needed** - automatically formats data"
          },
          "typeVersion": 1
        },
        {
          "id": "e3f85e5e-2552-4ffc-a05b-e204e65955d1",
          "name": "Send Email Report",
          "type": "n8n-nodes-base.gmail",
          "position": [
            592,
            -240
          ],
          "webhookId": "cbf02576-4560-431f-831c-885fdd29da1d",
          "parameters": {
            "sendTo": "user@example.com",
            "message": "={{ $json.html }}",
            "options": {},
            "subject": "={{ $json.subject }}"
          },
          "credentials": {
            "gmailOAuth2": {
              "id": "credential-id",
              "name": "gmailOAuth2 Credential"
            }
          },
          "typeVersion": 2
        },
        {
          "id": "ac63b00c-f50e-4a7d-a7c1-b3f2a42c7733",
          "name": "Note - Gmail",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            656,
            -496
          ],
          "parameters": {
            "width": 262,
            "height": 285,
            "content": "## 📬 Gmail Sender\n\n**Setup Required:**\n1. Replace `YOUR_EMAIL@example.com` with recipient email\n2. Connect Gmail OAuth2 credentials\n3. Grant necessary permissions\n\n**Sends:** Formatted HTML report to stakeholders"
          },
          "typeVersion": 1
        },
        {
          "id": "cd553b4f-2e1b-42c8-9db2-13ccc0c5b2ed",
          "name": "Create Coordination Task",
          "type": "n8n-nodes-base.jira",
          "position": [
            368,
            -48
          ],
          "parameters": {
            "project": {
              "__rl": true,
              "mode": "list",
              "value": "YOUR_PROJECT_ID",
              "cachedResultName": "Coordination Project"
            },
            "summary": "=Dependency Coordination: {{ $json.issueKey }} → {{ $json.linkedIssueKey }}",
            "issueType": {
              "__rl": true,
              "mode": "list",
              "value": "10006",
              "cachedResultName": "Task"
            },
            "additionalFields": {
              "description": "=Impact Score: {{ $json.impactScore }}\\nRisk Level: {{ $json.riskFlag }}\\nDays Till Due: {{ $json.daysTillDue }}\\n\\nSource Issue: {{ $json.issueKey }} - {{ $json.summary }}\\nBlocked By: {{ $json.linkedIssueKey }} - {{ $json.linkedIssueSummary }}\\n\\nAction Required: Coordinate with dependency owner to resolve blocker."
            }
          },
          "credentials": {
            "jiraSoftwareCloudApi": {
              "id": "credential-id",
              "name": "jiraSoftwareCloudApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "75ed5b66-ec43-43d0-954d-cc5a4dfbea02",
          "name": "Note - Coordination",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            512,
            -80
          ],
          "parameters": {
            "width": 262,
            "height": 285,
            "content": "## 📝 Create Jira Task\n\n**Setup Required:**\n1. Replace `YOUR_PROJECT_ID` with coordination project ID\n2. Update issue type if needed\n3. Uses same Jira credentials\n\n**Creates:** Coordination tasks with risk details"
          },
          "typeVersion": 1
        },
        {
          "id": "27003e76-5b0b-4ff5-928a-9d3d9a062c1f",
          "name": "Post to Slack",
          "type": "n8n-nodes-base.slack",
          "position": [
            368,
            160
          ],
          "webhookId": "d9341fdd-659e-41b0-b494-74870fb11494",
          "parameters": {
            "text": "=*Dependency Radar Alert*\n\n{{ $json.riskFlag === 'High' ? '🔴' : ($json.riskFlag === 'Medium' ? '🟠' : '🟢') }} *{{ $json.issueKey }}* is {{ $json.dependencyType }} *{{ $json.linkedIssueKey }}*\n\n*Impact Score:* {{ $json.impactScore }}\n*Days Till Due:* {{ $json.daysTillDue }}\n*Risk Level:* {{ $json.riskFlag }}\n\nCoordination task created in Jira.",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "list",
              "value": "YOUR_CHANNEL_ID",
              "cachedResultName": "project-alerts"
            },
            "otherOptions": {}
          },
          "typeVersion": 2
        },
        {
          "id": "350fe417-1e8b-4451-9228-a64087d75a61",
          "name": "Note - Slack",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            480,
            272
          ],
          "parameters": {
            "width": 262,
            "height": 285,
            "content": "## 💬 Slack Alerts\n\n**Setup Required:**\n1. Replace `YOUR_CHANNEL_ID` with channel ID\n2. Connect Slack API credentials\n3. Ensure bot has channel permissions\n\n**Posts:** Real-time alerts with emoji indicators"
          },
          "typeVersion": 1
        },
        {
          "id": "27dcf4a8-02ad-4ee5-b599-0675c696e34e",
          "name": "Fetch Open Jira Issues",
          "type": "n8n-nodes-base.jira",
          "position": [
            -528,
            -144
          ],
          "parameters": {
            "options": {
              "jql": "project = YOUR_PROJECT_KEY AND statusCategory != Done"
            },
            "operation": "getAll",
            "returnAll": true
          },
          "credentials": {
            "jiraSoftwareCloudApi": {
              "id": "credential-id",
              "name": "jiraSoftwareCloudApi Credential"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "0914ca57-8aeb-474b-bb51-473854353e4f",
          "name": "Email Formatter",
          "type": "n8n-nodes-base.code",
          "position": [
            368,
            -240
          ],
          "parameters": {
            "jsCode": "// HTML Email Formatter for Dependency Risk Report\nlet data;\n\nif ($input.all().length > 0 && Array.isArray($input.all()[0].json)) {\n  data = $input.all()[0].json;\n} else if ($input.all().length > 0 && $input.all()[0].json.data) {\n  data = $input.all()[0].json.data;\n} else if (Array.isArray($input.all())) {\n  data = $input.all().map(item => item.json);\n} else {\n  data = $input.all();\n}\n\nif (!Array.isArray(data)) {\n  data = [data];\n}\n\nfunction generateHTMLEmail(data) {\n  const today = new Date().toLocaleDateString('en-US', { \n    year: 'numeric', \n    month: 'long', \n    day: 'numeric' \n  });\n  \n  const blockingIssues = data.filter(item => item.dependencyType === 'blocks');\n  const blockedIssues = data.filter(item => item.dependencyType === 'is blocked by');\n  \n  const blockingRows = blockingIssues.map(item => `\n    <tr>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb;\">\n        <strong style=\"color: #1f2937;\">${item.issueKey}</strong>\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb;\">${item.summary}</td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb;\">${item.assignee}</td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb; text-align: center;\">\n        ${item.dueDate !== 'No due date' ? item.dueDate : '<span style=\"color: #6b7280;\">-</span>'}\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb; text-align: center;\">\n        ${item.daysTillDue !== 999 ? `<span style=\"color: ${item.daysTillDue <= 2 ? '#dc2626' : '#f59e0b'}; font-weight: 600;\">${item.daysTillDue} days</span>` : '<span style=\"color: #6b7280;\">-</span>'}\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb;\">\n        <strong>${item.linkedIssueKey}</strong><br/>\n        <span style=\"color: #6b7280; font-size: 13px;\">${item.linkedIssueSummary}</span>\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb; text-align: center;\">\n        <span style=\"padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; background-color: ${item.riskFlag === 'High' ? '#fee2e2' : '#fef3c7'}; color: ${item.riskFlag === 'High' ? '#dc2626' : '#f59e0b'};\">\n          ${item.riskFlag}\n        </span>\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb; text-align: center;\">\n        <span style=\"font-weight: 600; color: ${item.impactScore >= 20 ? '#dc2626' : '#f59e0b'};\">${item.impactScore}</span>\n      </td>\n    </tr>\n  `).join('');\n  \n  const blockedRows = blockedIssues.map(item => `\n    <tr>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb;\">\n        <strong style=\"color: #1f2937;\">${item.issueKey}</strong>\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb;\">${item.summary}</td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb;\">${item.assignee}</td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb; text-align: center;\">\n        ${item.dueDate !== 'No due date' ? item.dueDate : '<span style=\"color: #6b7280;\">-</span>'}\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb; text-align: center;\">\n        ${item.daysTillDue !== 999 ? `<span style=\"color: ${item.daysTillDue <= 2 ? '#dc2626' : '#f59e0b'}; font-weight: 600;\">${item.daysTillDue} days</span>` : '<span style=\"color: #6b7280;\">-</span>'}\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb;\">\n        <strong>${item.linkedIssueKey}</strong><br/>\n        <span style=\"color: #6b7280; font-size: 13px;\">${item.linkedIssueSummary}</span>\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb; text-align: center;\">\n        <span style=\"padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; background-color: ${item.riskFlag === 'High' ? '#fee2e2' : '#fef3c7'}; color: ${item.riskFlag === 'High' ? '#dc2626' : '#f59e0b'};\">\n          ${item.riskFlag}\n        </span>\n      </td>\n      <td style=\"padding: 12px; border-bottom: 1px solid #e5e7eb; text-align: center;\">\n        <span style=\"font-weight: 600; color: ${item.impactScore >= 20 ? '#dc2626' : '#f59e0b'};\">${item.impactScore}</span>\n      </td>\n    </tr>\n  `).join('');\n  \n  const htmlEmail = `\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  <title>Issue Dependency Risk Report</title>\n</head>\n<body style=\"margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; background-color: #f3f4f6;\">\n  <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color: #f3f4f6; padding: 20px;\">\n    <tr>\n      <td align=\"center\">\n        <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"max-width: 1200px; background-color: #ffffff; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\">\n          <tr>\n            <td style=\"background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 30px; border-radius: 8px 8px 0 0;\">\n              <h1 style=\"margin: 0; color: #ffffff; font-size: 28px; font-weight: 700;\">🚨 Issue Dependency Risk Report</h1>\n              <p style=\"margin: 8px 0 0 0; color: #e0e7ff; font-size: 14px;\">Generated on ${today}</p>\n            </td>\n          </tr>\n          <tr>\n            <td style=\"padding: 30px;\">\n              <div style=\"background-color: #fef3c7; border-left: 4px solid #f59e0b; padding: 16px; border-radius: 4px; margin-bottom: 24px;\">\n                <p style=\"margin: 0; color: #92400e; font-size: 14px; line-height: 1.6;\"><strong>⚠️ Attention Required:</strong> This report identifies critical dependencies that may impact project timelines.</p>\n              </div>\n              <div style=\"display: flex; gap: 16px; margin-bottom: 30px;\">\n                <div style=\"flex: 1; background-color: #fef2f2; padding: 20px; border-radius: 8px; border: 1px solid #fecaca;\">\n                  <div style=\"font-size: 32px; font-weight: 700; color: #dc2626; margin-bottom: 4px;\">${blockingIssues.length}</div>\n                  <div style=\"color: #991b1b; font-size: 14px; font-weight: 500;\">Blocking Issues</div>\n                </div>\n                <div style=\"flex: 1; background-color: #fef3c7; padding: 20px; border-radius: 8px; border: 1px solid #fde68a;\">\n                  <div style=\"font-size: 32px; font-weight: 700; color: #f59e0b; margin-bottom: 4px;\">${blockedIssues.length}</div>\n                  <div style=\"color: #92400e; font-size: 14px; font-weight: 500;\">Blocked Issues</div>\n                </div>\n                <div style=\"flex: 1; background-color: #fee2e2; padding: 20px; border-radius: 8px; border: 1px solid #fecaca;\">\n                  <div style=\"font-size: 32px; font-weight: 700; color: #dc2626; margin-bottom: 4px;\">${data.filter(i => i.riskFlag === 'High').length}</div>\n                  <div style=\"color: #991b1b; font-size: 14px; font-weight: 500;\">High Risk Items</div>\n                </div>\n              </div>\n              <h2 style=\"color: #1f2937; font-size: 20px; margin: 0 0 16px 0; padding-bottom: 8px; border-bottom: 2px solid #e5e7eb;\">🔴 Issues Blocking Others</h2>\n              <div style=\"overflow-x: auto; margin-bottom: 32px;\">\n                <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border: 1px solid #e5e7eb; border-radius: 6px; overflow: hidden;\">\n                  <thead>\n                    <tr style=\"background-color: #f9fafb;\">\n                      <th style=\"padding: 12px; text-align: left; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Issue Key</th>\n                      <th style=\"padding: 12px; text-align: left; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Summary</th>\n                      <th style=\"padding: 12px; text-align: left; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Assignee</th>\n                      <th style=\"padding: 12px; text-align: center; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Due Date</th>\n                      <th style=\"padding: 12px; text-align: center; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Days Left</th>\n                      <th style=\"padding: 12px; text-align: left; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Blocking</th>\n                      <th style=\"padding: 12px; text-align: center; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Risk</th>\n                      <th style=\"padding: 12px; text-align: center; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Impact</th>\n                    </tr>\n                  </thead>\n                  <tbody style=\"background-color: #ffffff;\">\n                    ${blockingRows || '<tr><td colspan=\"8\" style=\"padding: 20px; text-align: center; color: #6b7280;\">No blocking issues found</td></tr>'}\n                  </tbody>\n                </table>\n              </div>\n              <h2 style=\"color: #1f2937; font-size: 20px; margin: 0 0 16px 0; padding-bottom: 8px; border-bottom: 2px solid #e5e7eb;\">🔒 Issues Being Blocked</h2>\n              <div style=\"overflow-x: auto;\">\n                <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border: 1px solid #e5e7eb; border-radius: 6px; overflow: hidden;\">\n                  <thead>\n                    <tr style=\"background-color: #f9fafb;\">\n                      <th style=\"padding: 12px; text-align: left; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Issue Key</th>\n                      <th style=\"padding: 12px; text-align: left; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Summary</th>\n                      <th style=\"padding: 12px; text-align: left; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Assignee</th>\n                      <th style=\"padding: 12px; text-align: center; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Due Date</th>\n                      <th style=\"padding: 12px; text-align: center; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Days Left</th>\n                      <th style=\"padding: 12px; text-align: left; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Blocked By</th>\n                      <th style=\"padding: 12px; text-align: center; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Risk</th>\n                      <th style=\"padding: 12px; text-align: center; font-size: 13px; font-weight: 600; color: #374151; border-bottom: 2px solid #e5e7eb;\">Impact</th>\n                    </tr>\n                  </thead>\n                  <tbody style=\"background-color: #ffffff;\">\n                    ${blockedRows || '<tr><td colspan=\"8\" style=\"padding: 20px; text-align: center; color: #6b7280;\">No blocked issues found</td></tr>'}\n                  </tbody>\n                </table>\n              </div>\n            </td>\n          </tr>\n          <tr>\n            <td style=\"background-color: #f9fafb; padding: 20px; border-radius: 0 0 8px 8px; border-top: 1px solid #e5e7eb;\">\n              <p style=\"margin: 0; color: #6b7280; font-size: 13px; text-align: center;\">This is an automated report generated by n8n workflow.</p>\n              <p style=\"margin: 8px 0 0 0; color: #6b7280; font-size: 12px; text-align: center;\">© 2025 Project Management System</p>\n            </td>\n          </tr>\n        </table>\n      </td>\n    </tr>\n  </table>\n</body>\n</html>\n  `;\n  \n  return htmlEmail;\n}\n\nconst htmlContent = generateHTMLEmail(data);\n\nreturn [{\n  json: {\n    html: htmlContent,\n    subject: `🚨 Issue Dependency Risk Report - ${new Date().toLocaleDateString()}`,\n    text: `Issue Dependency Risk Report generated on ${new Date().toLocaleDateString()}`\n  }\n}];"
          },
          "typeVersion": 2
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "f9fd04b0-abca-463d-ad7d-9666c73d3c22",
      "connections": {
        "Email Formatter": {
          "main": [
            [
              {
                "node": "Send Email Report",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Filter Dependencies": {
          "main": [
            [
              {
                "node": "Extract Dependency Details",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Compute Impact Score": {
          "main": [
            [
              {
                "node": "Create Coordination Task",
                "type": "main",
                "index": 0
              },
              {
                "node": "Email Formatter",
                "type": "main",
                "index": 0
              },
              {
                "node": "Post to Slack",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Trigger (Nightly Run)": {
          "main": [
            [
              {
                "node": "Fetch Open Jira Issues",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Fetch Open Jira Issues": {
          "main": [
            [
              {
                "node": "Filter Dependencies",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Extract Dependency Details": {
          "main": [
            [
              {
                "node": "Compute Impact Score",
                "type": "main",
                "index": 0
              },
              {
                "node": "Create Monday.com Item",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 62,
    "workflowInfo": {
      "nodeCount": 21,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 1
        },
        "n8n-nodes-base.cron": {
          "count": 1
        },
        "n8n-nodes-base.jira": {
          "count": 2
        },
        "n8n-nodes-base.gmail": {
          "count": 1
        },
        "n8n-nodes-base.slack": {
          "count": 1
        },
        "n8n-nodes-base.function": {
          "count": 2
        },
        "n8n-nodes-base.mondayCom": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 11
        }
      }
    },
    "status": "published",
    "user": {
      "name": "Rahul Joshi",
      "username": "rahul08",
      "bio": "Rahul Joshi is a seasoned technology leader specializing in the n8n automation tool and AI-driven workflow automation. With deep expertise in building open-source workflow automation and self-hosted automation platforms, he helps organizations eliminate manual processes through intelligent n8n ai agent automation solutions.\n\n",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/callrahul/"
      ],
      "avatar": "https://gravatar.com/avatar/b6cf57822463143589b36ada06fbf6cb1509223a740fae3160b28f1ce41ccc12?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 7,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.cron",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "details": "The Cron node uses Cron under the hood - a time-based job scheduler in Unix-like computer operating systems. Use this node when you want to trigger workflows periodically, especially in more complex scenarios like \"every Tuesday at 9 am\" or \"Weekdays\".",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/",
                  "icon": "🎯",
                  "label": "2021 Goals: Level Up Your Vocabulary With Vonage and n8n"
                },
                {
                  "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/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/why-i-chose-n8n-over-zapier-in-2020/",
                  "icon": "😍",
                  "label": "Why I chose n8n over Zapier in 2020"
                },
                {
                  "url": "https://n8n.io/blog/how-to-host-virtual-coffee-breaks-with-n8n/",
                  "icon": "☕️",
                  "label": "How to host virtual coffee breaks 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/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/database-monitoring-and-alerting-with-n8n/",
                  "icon": "📡",
                  "label": "Database Monitoring and Alerting with n8n"
                },
                {
                  "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/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/tracking-time-spent-in-meetings-with-google-calendar-twilio-and-n8n/",
                  "icon": "🗓",
                  "label": "Tracking Time Spent in Meetings With Google Calendar, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-error-workflows-in-n8n/",
                  "icon": "🌪",
                  "label": "Creating Error Workflows in n8n"
                },
                {
                  "url": "https://n8n.io/blog/using-automation-to-boost-productivity-in-the-workplace/",
                  "icon": "💪",
                  "label": "Using Automation to Boost Productivity in the Workplace"
                },
                {
                  "url": "https://n8n.io/blog/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/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/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/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"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Cron",
          "color": "#29a568"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Cron",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 14,
        "icon": "fa:code",
        "name": "n8n-nodes-base.function",
        "codex": {
          "data": {
            "alias": [
              "Code",
              "Javascript",
              "Custom Code",
              "Script",
              "cpde"
            ],
            "details": "The Function node allows you to execute JavaScript in your workflow. Unlike the Function Item node, this node does not operate on incoming node data per-item. Instead, you must iterate over multiple items of incoming data yourself. This can be useful if you're performing data transformation where you want to manipulate the number of items being outputted by the node (i.e. 1 item is inputted in with nested object, 10 items are outputted without any nested objects)",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-goals-level-up-your-vocabulary-with-vonage-and-n8n/",
                  "icon": "🎯",
                  "label": "2021 Goals: Level Up Your Vocabulary With Vonage and n8n"
                },
                {
                  "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/why-i-chose-n8n-over-zapier-in-2020/",
                  "icon": "😍",
                  "label": "Why I chose n8n over Zapier in 2020"
                },
                {
                  "url": "https://n8n.io/blog/how-to-host-virtual-coffee-breaks-with-n8n/",
                  "icon": "☕️",
                  "label": "How to host virtual coffee breaks 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/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/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/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/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/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/tracking-time-spent-in-meetings-with-google-calendar-twilio-and-n8n/",
                  "icon": "🗓",
                  "label": "Tracking Time Spent in Meetings With Google Calendar, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-error-workflows-in-n8n/",
                  "icon": "🌪",
                  "label": "Creating Error Workflows in 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/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.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Function",
          "color": "#FF9922"
        },
        "iconData": {
          "icon": "code",
          "type": "icon"
        },
        "displayName": "Function",
        "typeVersion": 1,
        "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": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "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/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/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/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/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 77,
        "icon": "file:jira.svg",
        "name": "n8n-nodes-base.jira",
        "codex": {
          "data": {
            "resources": {
              "generic": [
                {
                  "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/creating-custom-incident-response-workflows-with-n8n/",
                  "label": "How to automate every step of an incident response workflow"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.jira/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/jira/"
                }
              ]
            },
            "categories": [
              "Development",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Jira Software"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgNjguMjUgNzEuMjUiPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMuMTI1IiB5PSIzLjEyNSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjkxLjklIiB4Mj0iMjguNDklIiB5MT0iNDAuMjIlIiB5Mj0iODEuNjMlIj48c3RvcCBvZmZzZXQ9IjE4JSIgc3RvcC1jb2xvcj0iIzAwNTJjYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzI2ODRmZiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJjIiB4MT0iOC43JSIgeDI9IjcyLjI2JSIgeTE9IjU5LjE3JSIgeTI9IjE3Ljk5JSI+PHN0b3Agb2Zmc2V0PSIxOCUiIHN0b3AtY29sb3I9IiMwMDUyY2MiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMyNjg0ZmYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48c3ltYm9sIGlkPSJhIiBvdmVyZmxvdz0idmlzaWJsZSI+PGcgZmlsbC1ydWxlPSJub256ZXJvIiBzdHJva2U9Im5vbmUiPjxwYXRoIGZpbGw9IiMyNjg0ZmYiIGQ9Ik02MS4xNjEgMzAuMjExIDMwLjk1IDAgLjc0IDMwLjIxMWEyLjU0IDIuNTQgMCAwIDAgMCAzLjU4MWwzMC4yMTEgMzAuMjEgMzAuMjExLTMwLjIxYTIuNTQgMi41NCAwIDAgMCAwLTMuNTgxek0zMC45NSA0MS40NmwtOS40NjItOS40NjIgOS40NjItOS40NjIgOS40NjIgOS40NjJ6Ii8+PHBhdGggZmlsbD0idXJsKCNiKSIgZD0iTTMwLjk1IDIyLjU5OUMyNC43NTUgMTYuNDA1IDI0LjcyNCA2LjM3IDMwLjg4MS4xMzhMMTAuMTE0IDIwLjc3NGwxMS4yNjggMTEuMjY4eiIvPjxwYXRoIGZpbGw9InVybCgjYykiIGQ9Ik00MC40MzcgMzEuOTczIDMwLjk1IDQxLjQ2YTE1LjkzIDE1LjkzIDAgMCAxIDAgMjIuNTM2bDIwLjc0OS0yMC43NDl6Ii8+PC9nPjwvc3ltYm9sPjwvc3ZnPg=="
        },
        "displayName": "Jira Software",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 4,
            "name": "Productivity"
          },
          {
            "id": 5,
            "name": "Development"
          }
        ]
      },
      {
        "id": 309,
        "icon": "file:mondayCom.svg",
        "name": "n8n-nodes-base.mondayCom",
        "codex": {
          "data": {
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.mondaycom/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/mondaycom/"
                }
              ]
            },
            "categories": [
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Monday.com"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiNGRjNENTciIGQ9Ik04LjE4NCA0Ny4zOTNBNy4yIDcuMiAwIDAgMSAxLjkgNDMuNjc0YTcuMjIgNy4yMiAwIDAgMSAuMTk2LTcuMzA3bDEyLjk0NS0yMC43M2E3LjE4IDcuMTggMCAwIDEgNi4zNTYtMy4zNzYgNy4yIDcuMiAwIDAgMSA2LjA5NyAzLjgyNCA3LjIxIDcuMjEgMCAwIDEtLjI1OCA3LjJsLTEyLjk1IDIwLjcyN2E3LjE5IDcuMTkgMCAwIDEtNi4xMDMgMy4zNzl6Ii8+PHBhdGggZmlsbD0iI0ZGQ0IwMCIgZD0iTTMwLjQ5NCA0Ny4zOTNhNy4yIDcuMiAwIDAgMS02LjI5NS0zLjcxMyA3LjIxIDcuMjEgMCAwIDEgLjE5NC03LjMxM2wxMi45NTQtMjAuNzNhNy4xNyA3LjE3IDAgMCAxIDYuNDExLTMuNjM0QTcuMTkgNy4xOSAwIDAgMSA1MCAxNS45MjNhNy4yMSA3LjIxIDAgMCAxLS40NzYgNy4zNmwtMTIuOTMgMjAuNzNhNy4xOSA3LjE5IDAgMCAxLTYuMTAyIDMuMzc4bC4wMDMuMDAyeiIvPjxwYXRoIGZpbGw9IiMwMEQ2NDciIGQ9Ik00NS41OTEgNDAuMzU3YzAtMy44OTUgMy4yMTQtNy4wMzQgNy4yMDUtNy4wMzRTNjAgMzYuNDYgNjAgNDAuMzU3cy0zLjIxNCA3LjAzNC03LjIwNCA3LjAzNGMtMy45OTEgMC03LjIwNS0zLjEzNy03LjIwNS03LjAzNCIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Monday.com",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "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"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 46,
        "name": "Project Management"
      }
    ],
    "image": []
  }
}