N
n8n Store
Workflow Market
Monday.com Intake → Jira Backlog Harmonizer

Monday.com Intake → Jira Backlog Harmonizer

by rahul080 views

説明

Categories

⚙️ Automation

Nodes Used

n8n-nodes-base.ifn8n-nodes-base.jiran8n-nodes-base.jiran8n-nodes-base.jiran8n-nodes-base.webhookn8n-nodes-base.functionn8n-nodes-base.functionn8n-nodes-base.mondayComn8n-nodes-base.mondayComn8n-nodes-base.stickyNote
Price無料
Views0
最終更新11/28/2025
workflow.json
{
  "id": "HHGG8ayfMX7B8r9p",
  "meta": {
    "instanceId": "8443f10082278c46aa5cf3acf8ff0f70061a2c58bce76efac814b16290845177",
    "templateCredsSetupCompleted": true
  },
  "name": "Monday.com Intake → Jira Backlog Harmonizer",
  "tags": [],
  "nodes": [
    {
      "id": "45f009e0-33db-4c6f-a295-d6cf5c755664",
      "name": "Listen for Monday.com Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1904,
        752
      ],
      "webhookId": "76739f12-e0c0-48f8-ac17-6401f012e3a3",
      "parameters": {
        "path": "76739f12-e0c0-48f8-ac17-6401f012e3a3",
        "options": {}
      },
      "typeVersion": 2.1
    },
    {
      "id": "3be4baa8-90ac-49f1-8afb-f4ed9a906744",
      "name": "🚀 Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2256,
        640
      ],
      "parameters": {
        "width": 280,
        "height": 320,
        "content": "🚀 WORKFLOW START\n\nThis workflow synchronizes tasks between Monday.com and Jira:\n\n• Receives webhook from Monday.com\n• Normalizes data fields\n• Checks for duplicates in Jira\n• Creates new issues or updates existing\n• Logs actions back to Monday.com\n• Keeps backlog in sync"
      },
      "typeVersion": 1
    },
    {
      "id": "111d4694-a01a-4189-ac6a-af3da8fecbd7",
      "name": "Normalize Monday Fields",
      "type": "n8n-nodes-base.function",
      "position": [
        -1664,
        752
      ],
      "parameters": {
        "functionCode": "return items.map(item => ({\n  json: {\n    summary: item.json.name.trim(),\n    component: item.json.column_values.find(c => c.id === 'component')?.text?.toLowerCase() || '',\n    severity: item.json.column_values.find(c => c.id === 'severity')?.text?.toUpperCase() || '',\n    description: item.json.column_values.find(c => c.id === 'description')?.text || 'No description',\n    mondayItemId: item.json.id\n  }\n}));"
      },
      "typeVersion": 1
    },
    {
      "id": "30e2fa62-db9e-4b2c-99d8-61a6779fca67",
      "name": "🔄 Normalize",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1792,
        400
      ],
      "parameters": {
        "width": 280,
        "height": 320,
        "content": "🔄 DATA NORMALIZATION\n\nExtracts and standardizes Monday.com data:\n\nFrom column_values:\n✓ summary: Item name (trimmed)\n✓ component: Component column (lowercase)\n✓ severity: Severity level (uppercase)\n✓ description: Full description text\n✓ mondayItemId: Original Monday ID\n\nTransforms unstructured data into clean fields for Jira integration"
      },
      "typeVersion": 1
    },
    {
      "id": "6d65b39b-53c6-452a-8f20-c9c9441b8620",
      "name": "Query Jira Backlog",
      "type": "n8n-nodes-base.jira",
      "position": [
        -1408,
        752
      ],
      "parameters": {
        "options": {},
        "operation": "getAll"
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "199LdjjU3PhhL8xb",
          "name": "saurabh jira"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1deddf13-0946-410c-8382-4060c168c63e",
      "name": "📊 Jira Search",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1536,
        928
      ],
      "parameters": {
        "width": 280,
        "height": 248,
        "content": "📊 JIRA SEARCH\n\nRetrieves all existing issues from Jira:\n\n• Uses Jira REST API\n• Fetches all issues (getAll)\n• Returns: issue keys, summaries, fields\n• Scans entire backlog\n\nUsed as baseline for duplicate detection"
      },
      "typeVersion": 1
    },
    {
      "id": "1be0064c-80c1-4ac4-940f-92a3c2bfb1fa",
      "name": "Detect Duplicates (Fuzzy Match)",
      "type": "n8n-nodes-base.function",
      "position": [
        -1152,
        752
      ],
      "parameters": {
        "functionCode": "function similarity(a, b) {\n  if (!a || !b) return 0;\n  const longer = a.length > b.length ? a : b;\n  const shorter = a.length > b.length ? b : a;\n  const longerLength = longer.length;\n  const same = longer.split('').filter((ch, i) => ch === shorter[i]).length;\n  return same / longerLength;\n}\n\nconst mondayTitle = $json.summary;\nconst matches = $items(\"Query Jira Backlog\").map(i => i.json.fields.summary);\n\nlet found = matches.find(jiraTitle => similarity(mondayTitle, jiraTitle) > 0.8);\nreturn [{ json: { duplicateFound: !!found, jiraMatch: found || null, summary: mondayTitle, component: $json.component, severity: $json.severity, description: $json.description, mondayItemId: $json.mondayItemId } }];"
      },
      "typeVersion": 1
    },
    {
      "id": "2f89cce7-8f05-45a6-8b7e-2a1609c24d22",
      "name": "🔍 Fuzzy Match",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1264,
        336
      ],
      "parameters": {
        "width": 280,
        "height": 372,
        "content": "🔍 FUZZY DUPLICATE DETECTION\n\nAlgorithm:\n• Compares Monday summary against all Jira titles\n• Character-level similarity matching\n• Threshold: > 80% match\n\nDetects:\n✓ Exact duplicates\n✓ Minor typos/variations\n✓ Rephrased titles\n\nReturns:\n• duplicateFound: true/false\n• jiraMatch: Matching title or null\n\nPrevents duplicate work items"
      },
      "typeVersion": 1
    },
    {
      "id": "f7defb99-5372-47b8-8dcd-71fdffbd50e8",
      "name": "Is Duplicate Found?",
      "type": "n8n-nodes-base.if",
      "position": [
        -912,
        752
      ],
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{$json.duplicateFound}}",
              "value2": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c4be938b-ea49-42a3-a350-b39a9df1a6d3",
      "name": "⚖️ Decision Gate",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1024,
        928
      ],
      "parameters": {
        "width": 280,
        "height": 300,
        "content": "⚖️ DECISION GATE\n\nBranches based on duplicate status:\n\nIF duplicateFound = true:\n→ Route to \"Update Existing\"\n→ Merge with existing issue\n→ Avoid duplicates\n\nIF duplicateFound = false:\n→ Route to \"Create New\"\n→ Create fresh Jira issue\n→ Add to backlog"
      },
      "typeVersion": 1
    },
    {
      "id": "14c16881-d977-4cd3-a471-9c4c83d009c7",
      "name": "Update Jira Issue (Duplicate)",
      "type": "n8n-nodes-base.jira",
      "position": [
        -624,
        640
      ],
      "parameters": {
        "issueKey": "={{ $json.key }}",
        "operation": "update",
        "updateFields": {}
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "199LdjjU3PhhL8xb",
          "name": "saurabh jira"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fc34cee2-b64b-46c7-b3b5-920b9ef7ebbb",
      "name": "🔧 Update Existing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        304
      ],
      "parameters": {
        "width": 280,
        "height": 300,
        "content": "🔧 UPDATE EXISTING\n\nWhen duplicate detected:\n\n• Uses matched Jira issue key\n• Updates existing record\n• Adds new information\n• Increments counter\n• Preserves history\n\nFields updated:\n✓ Priority (from severity)\n✓ Component\n✓ Description\n✓ Comments (link to Monday)\n\nNo duplicate created"
      },
      "typeVersion": 1
    },
    {
      "id": "e4f538fb-c6e7-48b8-ac96-3d0443a79770",
      "name": "Create New Jira Issue",
      "type": "n8n-nodes-base.jira",
      "position": [
        -624,
        912
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "list",
          "value": "10001",
          "cachedResultName": "Kanban"
        },
        "summary": "={{ $json.summary }}",
        "issueType": {
          "__rl": true,
          "mode": "list",
          "value": "10006",
          "cachedResultName": "Task"
        },
        "additionalFields": {}
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "Q6d7sLBVOfGWmaLw",
          "name": "Jira SW Cloud account vivek"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8bb7efe4-3bea-433b-82b2-2a8b6c97b2fe",
      "name": "✨ Create New",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        1088
      ],
      "parameters": {
        "width": 280,
        "height": 300,
        "content": "✨ CREATE NEW\n\nWhen no duplicate found:\n\n• Creates new Jira issue\n• Project: Kanban (10001)\n• Issue Type: Task (10006)\n• Summary: From Monday title\n• Fields populated:\n  ✓ Component\n  ✓ Severity → Priority\n  ✓ Description\n  ✓ Monday link reference\n\nIssue added to backlog"
      },
      "typeVersion": 1
    },
    {
      "id": "982e09b8-dd7a-4403-9350-3f36bdc45f0c",
      "name": "Update Monday Item (Log Action)",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        -400,
        912
      ],
      "parameters": {
        "value": "={{ $json.text }}",
        "itemId": "={{ $json.id }}",
        "resource": "boardItem",
        "operation": "addUpdate"
      },
      "credentials": {
        "mondayComApi": {
          "id": "v9QkK1x0MHK2ULvk",
          "name": "Monday.com account ch"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "39f2d6f0-c84c-45b4-9628-8691376f71ea",
      "name": "📝 Log to Monday",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -224,
        1056
      ],
      "parameters": {
        "width": 280,
        "height": 300,
        "content": "📝 LOG BACK TO MONDAY\n\nAfter Jira action completed:\n\n• Adds update to Monday item\n• Documents:\n  ✓ Action taken (created/updated)\n  ✓ Jira issue key\n  ✓ Timestamp\n  ✓ Status\n\nCreates audit trail\nSyncronizes status bidirectionally\nTeam sees Jira confirmation in Monday"
      },
      "typeVersion": 1
    },
    {
      "id": "3707e0dd-90bf-47ff-931e-ea55bbc5004c",
      "name": "Create Monday Board",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        -400,
        640
      ],
      "parameters": {
        "kind": "private",
        "name": "={{ $json.name }}",
        "additionalFields": {}
      },
      "credentials": {
        "mondayComApi": {
          "id": "v9QkK1x0MHK2ULvk",
          "name": "Monday.com account ch"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6eb9c805-91d0-4e34-9713-792fac117629",
      "name": "📋 Create Board",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -208,
        560
      ],
      "parameters": {
        "width": 280,
        "height": 300,
        "content": "📋 OPTIONAL: CREATE BOARD\n\nCan create new Monday.com board:\n• Project name from Jira\n• Private board\n• For team collaboration\n\nNote: This node appears unused in current flow\nCan be utilized for advanced scenarios\nExample: Auto-create board per Jira project"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3788c8fe-da28-419d-82f7-ccaec22e4d5e",
  "connections": {
    "Query Jira Backlog": {
      "main": [
        [
          {
            "node": "Detect Duplicates (Fuzzy Match)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Duplicate Found?": {
      "main": [
        [
          {
            "node": "Update Jira Issue (Duplicate)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create New Jira Issue",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create New Jira Issue": {
      "main": [
        [
          {
            "node": "Update Monday Item (Log Action)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize Monday Fields": {
      "main": [
        [
          {
            "node": "Query Jira Backlog",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Listen for Monday.com Webhook": {
      "main": [
        [
          {
            "node": "Normalize Monday Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Jira Issue (Duplicate)": {
      "main": [
        [
          {
            "node": "Create Monday Board",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Detect Duplicates (Fuzzy Match)": {
      "main": [
        [
          {
            "node": "Is Duplicate Found?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流