{
  "name": "Sync Monday.com items to Jira with smart duplicate detection & feedback loop",
  "nodes": [
    {
      "id": "45f009e0-33db-4c6f-a295-d6cf5c755664",
      "name": "Listen for Monday.com Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1904,
        752
      ]
    },
    {
      "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 upd"
      }
    },
    {
      "id": "111d4694-a01a-4189-ac6a-af3da8fecbd7",
      "name": "Normalize Monday Fields",
      "type": "n8n-nodes-base.function",
      "position": [
        -1664,
        752
      ]
    },
    {
      "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✓ "
      }
    },
    {
      "id": "6d65b39b-53c6-452a-8f20-c9c9441b8620",
      "name": "Query Jira Backlog",
      "type": "n8n-nodes-base.jira",
      "position": [
        -1408,
        752
      ]
    },
    {
      "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 duplic"
      }
    },
    {
      "id": "1be0064c-80c1-4ac4-940f-92a3c2bfb1fa",
      "name": "Detect Duplicates (Fuzzy Match)",
      "type": "n8n-nodes-base.function",
      "position": [
        -1152,
        752
      ]
    },
    {
      "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/vari"
      }
    },
    {
      "id": "f7defb99-5372-47b8-8dcd-71fdffbd50e8",
      "name": "Is Duplicate Found?",
      "type": "n8n-nodes-base.if",
      "position": [
        -912,
        752
      ]
    },
    {
      "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 \"Cre"
      }
    },
    {
      "id": "14c16881-d977-4cd3-a471-9c4c83d009c7",
      "name": "Update Jira Issue (Duplicate)",
      "type": "n8n-nodes-base.jira",
      "position": [
        -624,
        640
      ]
    },
    {
      "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 s"
      }
    },
    {
      "id": "e4f538fb-c6e7-48b8-ac96-3d0443a79770",
      "name": "Create New Jira Issue",
      "type": "n8n-nodes-base.jira",
      "position": [
        -624,
        912
      ]
    },
    {
      "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 → Prio"
      }
    },
    {
      "id": "982e09b8-dd7a-4403-9350-3f36bdc45f0c",
      "name": "Update Monday Item (Log Action)",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        -400,
        912
      ]
    },
    {
      "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\nSyncro"
      }
    },
    {
      "id": "3707e0dd-90bf-47ff-931e-ea55bbc5004c",
      "name": "Create Monday Board",
      "type": "n8n-nodes-base.mondayCom",
      "position": [
        -400,
        640
      ]
    },
    {
      "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 advance"
      }
    }
  ],
  "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
          }
        ]
      ]
    }
  }
}