This workflow corresponds to n8n.io template #9830 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "HHGG8ayfMX7B8r9p",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Monday.com Intake \u2192 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
],
"parameters": {
"path": "76739f12-e0c0-48f8-ac17-6401f012e3a3",
"options": {}
},
"typeVersion": 2.1
},
{
"id": "3be4baa8-90ac-49f1-8afb-f4ed9a906744",
"name": "\ud83d\ude80 Workflow Overview",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2256,
640
],
"parameters": {
"width": 280,
"height": 320,
"content": "\ud83d\ude80 WORKFLOW START\n\nThis workflow synchronizes tasks between Monday.com and Jira:\n\n\u2022 Receives webhook from Monday.com\n\u2022 Normalizes data fields\n\u2022 Checks for duplicates in Jira\n\u2022 Creates new issues or updates existing\n\u2022 Logs actions back to Monday.com\n\u2022 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": "\ud83d\udd04 Normalize",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1792,
400
],
"parameters": {
"width": 280,
"height": 320,
"content": "\ud83d\udd04 DATA NORMALIZATION\n\nExtracts and standardizes Monday.com data:\n\nFrom column_values:\n\u2713 summary: Item name (trimmed)\n\u2713 component: Component column (lowercase)\n\u2713 severity: Severity level (uppercase)\n\u2713 description: Full description text\n\u2713 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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "1deddf13-0946-410c-8382-4060c168c63e",
"name": "\ud83d\udcca Jira Search",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1536,
928
],
"parameters": {
"width": 280,
"height": 248,
"content": "\ud83d\udcca JIRA SEARCH\n\nRetrieves all existing issues from Jira:\n\n\u2022 Uses Jira REST API\n\u2022 Fetches all issues (getAll)\n\u2022 Returns: issue keys, summaries, fields\n\u2022 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": "\ud83d\udd0d Fuzzy Match",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1264,
336
],
"parameters": {
"width": 280,
"height": 372,
"content": "\ud83d\udd0d FUZZY DUPLICATE DETECTION\n\nAlgorithm:\n\u2022 Compares Monday summary against all Jira titles\n\u2022 Character-level similarity matching\n\u2022 Threshold: > 80% match\n\nDetects:\n\u2713 Exact duplicates\n\u2713 Minor typos/variations\n\u2713 Rephrased titles\n\nReturns:\n\u2022 duplicateFound: true/false\n\u2022 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": "\u2696\ufe0f Decision Gate",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1024,
928
],
"parameters": {
"width": 280,
"height": 300,
"content": "\u2696\ufe0f DECISION GATE\n\nBranches based on duplicate status:\n\nIF duplicateFound = true:\n\u2192 Route to \"Update Existing\"\n\u2192 Merge with existing issue\n\u2192 Avoid duplicates\n\nIF duplicateFound = false:\n\u2192 Route to \"Create New\"\n\u2192 Create fresh Jira issue\n\u2192 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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "fc34cee2-b64b-46c7-b3b5-920b9ef7ebbb",
"name": "\ud83d\udd27 Update Existing",
"type": "n8n-nodes-base.stickyNote",
"position": [
-768,
304
],
"parameters": {
"width": 280,
"height": 300,
"content": "\ud83d\udd27 UPDATE EXISTING\n\nWhen duplicate detected:\n\n\u2022 Uses matched Jira issue key\n\u2022 Updates existing record\n\u2022 Adds new information\n\u2022 Increments counter\n\u2022 Preserves history\n\nFields updated:\n\u2713 Priority (from severity)\n\u2713 Component\n\u2713 Description\n\u2713 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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "8bb7efe4-3bea-433b-82b2-2a8b6c97b2fe",
"name": "\u2728 Create New",
"type": "n8n-nodes-base.stickyNote",
"position": [
-704,
1088
],
"parameters": {
"width": 280,
"height": 300,
"content": "\u2728 CREATE NEW\n\nWhen no duplicate found:\n\n\u2022 Creates new Jira issue\n\u2022 Project: Kanban (10001)\n\u2022 Issue Type: Task (10006)\n\u2022 Summary: From Monday title\n\u2022 Fields populated:\n \u2713 Component\n \u2713 Severity \u2192 Priority\n \u2713 Description\n \u2713 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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "39f2d6f0-c84c-45b4-9628-8691376f71ea",
"name": "\ud83d\udcdd Log to Monday",
"type": "n8n-nodes-base.stickyNote",
"position": [
-224,
1056
],
"parameters": {
"width": 280,
"height": 300,
"content": "\ud83d\udcdd LOG BACK TO MONDAY\n\nAfter Jira action completed:\n\n\u2022 Adds update to Monday item\n\u2022 Documents:\n \u2713 Action taken (created/updated)\n \u2713 Jira issue key\n \u2713 Timestamp\n \u2713 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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "6eb9c805-91d0-4e34-9713-792fac117629",
"name": "\ud83d\udccb Create Board",
"type": "n8n-nodes-base.stickyNote",
"position": [
-208,
560
],
"parameters": {
"width": 280,
"height": 300,
"content": "\ud83d\udccb OPTIONAL: CREATE BOARD\n\nCan create new Monday.com board:\n\u2022 Project name from Jira\n\u2022 Private board\n\u2022 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,
"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
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
jiraSoftwareCloudApimondayComApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Bridge the gap between Monday.com and Jira with this intelligent n8n automation template.
Source: https://n8n.io/workflows/9830/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow creates a Jira issue when a new ticket is created in Zendesk. Subsequent comments on the ticket in Zendesk are added as comments to the issue in Jira. Zendesk account and Zendesk credent
Blotato-Api. Uses @blotato/n8n-nodes-blotato. Webhook trigger; 53 nodes.
Social Media Poster - Dual Trigger. Uses @blotato/n8n-nodes-blotato. Webhook trigger; 23 nodes.
Odoo Customers API – Export to JSON or Excel provides a simple way to fetch customer records from your Odoo database and get them back either as a structured JSON response or a downloadable Excel (.xl
Community Node Disclaimer: This workflow uses KlickTipp community nodes.