Workflow: Jira Stickynote Sync

Workflow Details

Download Workflow
{
    "id": "YCQFaJdmJc6Rx4o7",
    "meta": {
        "instanceId": "0c0787ab1a9ebbb0967650f7b4012417acdd61c2fa7c9e119981847e2fc8b09c"
    },
    "name": "Sync Jira issues with subsequent comments to Notion database",
    "tags": [
        {
            "id": "24",
            "name": "n8n team",
            "createdAt": "2023-02-28T11:17:04.513Z",
            "updatedAt": "2023-02-28T11:17:04.513Z"
        }
    ],
    "nodes": [
        {
            "id": "3f36dc12-5011-4786-aa21-f20ba72944df",
            "name": "Create database page",
            "type": "n8n-nodes-base.notion",
            "position": [
                460,
                460
            ],
            "parameters": {
                "title": "={{$node[\"On issues created\/updated\/deleted\"].json[\"issue\"][\"fields\"][\"summary\"]}}",
                "options": [],
                "resource": "databasePage",
                "databaseId": "e3503d88-accb-4ddb-aa45-f962cb03e729",
                "propertiesUi": {
                    "propertyValues": [
                        {
                            "key": "Issue Key|rich_text",
                            "textContent": "={{$node[\"On issues created\/updated\/deleted\"].json[\"issue\"][\"key\"]}}"
                        },
                        {
                            "key": "Issue ID|number",
                            "numberValue": "={{parseInt($node[\"On issues created\/updated\/deleted\"].json[\"issue\"][\"id\"])}}"
                        },
                        {
                            "key": "Link|url",
                            "urlValue": "=https:\/\/n8n-io.atlassian.net\/browse\/{{$node[\"On issues created\/updated\/deleted\"].json[\"issue\"][\"key\"]}}",
                            "ignoreIfEmpty": true
                        },
                        {
                            "key": "Status|select",
                            "selectValue": "={{$node[\"Lookup table\"].json[\"Status ID\"]}}"
                        }
                    ]
                }
            },
            "credentials": {
                "notionApi": {
                    "id": "XNjSmr171NUO17TK",
                    "name": "REPLACE ME"
                }
            },
            "typeVersion": 2
        },
        {
            "id": "2d13b713-dd3d-48aa-a550-fe8db1e7aafd",
            "name": "Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                660,
                460
            ],
            "parameters": {
                "width": 232.65822784810126222510007210075855255126953125,
                "height": 137.97468354430378667530021630227565765380859375,
                "content": "### `IF` & `Switch` nodes\nThese conditional nodes (`IF` and `Switch`) determine which Notion [**CRUD**](https:\/\/www.sumologic.com\/glossary\/crud\/) operations will be performed."
            },
            "typeVersion": 1
        },
        {
            "id": "374761f7-9299-41a3-8bb3-25434f4f9eaf",
            "name": "Find database page",
            "type": "n8n-nodes-base.notion",
            "position": [
                660,
                660
            ],
            "parameters": {
                "options": [],
                "resource": "databasePage",
                "operation": "getAll",
                "returnAll": true,
                "databaseId": "e3503d88-accb-4ddb-aa45-f962cb03e729",
                "filterJson": "={{$node[\"Create custom Notion filters\"].json[\"notionfilter\"]}}",
                "filterType": "json"
            },
            "credentials": {
                "notionApi": {
                    "id": "XNjSmr171NUO17TK",
                    "name": "REPLACE ME"
                }
            },
            "typeVersion": 2
        },
        {
            "id": "159db4ca-c8da-439a-aa44-63527c7b9dcd",
            "name": "Switch",
            "type": "n8n-nodes-base.switch",
            "position": [
                860,
                660
            ],
            "parameters": {
                "rules": {
                    "rules": [
                        {
                            "value2": "jira:issue_updated"
                        },
                        {
                            "output": 1,
                            "value2": "jira:issue_deleted"
                        }
                    ]
                },
                "value1": "={{$node[\"On issues created\/updated\/deleted\"].json[\"webhookEvent\"]}}",
                "dataType": "string"
            },
            "typeVersion": 1
        },
        {
            "id": "080fb157-e160-4bf0-9348-05eabee60f9f",
            "name": "IF",
            "type": "n8n-nodes-base.if",
            "position": [
                240,
                560
            ],
            "parameters": {
                "conditions": {
                    "string": [
                        {
                            "value1": "={{$node[\"On issues created\/updated\/deleted\"].json[\"webhookEvent\"]}}",
                            "value2": "jira:issue_created"
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "id": "3ec2a130-251d-4d28-8dc3-ca31f528f90e",
            "name": "Delete issue",
            "type": "n8n-nodes-base.notion",
            "position": [
                1080,
                760
            ],
            "parameters": {
                "pageId": "={{ $node[\"Find database page\"].json[\"id\"] }}",
                "operation": "archive"
            },
            "credentials": {
                "notionApi": {
                    "id": "XNjSmr171NUO17TK",
                    "name": "REPLACE ME"
                }
            },
            "typeVersion": 2
        },
        {
            "id": "5a23919a-ee95-4935-b619-5eb0b486eef7",
            "name": "On issues created\/updated\/deleted",
            "type": "n8n-nodes-base.jiraTrigger",
            "position": [
                -160,
                560
            ],
            "webhookId": "042e0fd3-9776-4c23-9f0d-dc032ef22744",
            "parameters": {
                "events": [
                    "jira:issue_created",
                    "jira:issue_deleted",
                    "jira:issue_updated"
                ],
                "additionalFields": []
            },
            "credentials": {
                "jiraSoftwareCloudApi": {
                    "id": "xZbqpSTMv8IjtS5Y",
                    "name": "REPLACE ME"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "6d3bbfce-cbfc-4590-827b-4ec1eb5c11b6",
            "name": "Lookup table",
            "type": "n8n-nodes-base.code",
            "position": [
                40,
                560
            ],
            "parameters": {
                "jsCode": "\/* Lookup table for the statuses in Jira. You can find the status IDs by\n   following the instructions provided at this link:\n   https:\/\/community.atlassian.com\/t5\/Jira-Service-Management\/How-do-I-get-a-list-of-statuses-that-show-the-associated-status\/qaq-p\/1803682\n*\/\nvar lookup = {\n    \"To Do\": \"To do\",\n    \"In Progress\": \"In progress\",\n    \"Done\": \"Done\"\n};\n\n\n\nnew_items = [];\n\nfor (item of $items(\"On issues created\/updated\/deleted\")) {\n  console.log(item.json[\"Status\"]);\n  \/\/ instantiate a new variable for status\n  var issue_status = item.json[\"issue\"][\"fields\"][\"status\"][\"name\"];\n  \/\/ check if the status is in the lookup table\n  if (issue_status in lookup) {\n    \/\/ if it is, then add the status ID to the new_items array\n    new_items.push({\n      \"Status ID\": lookup[issue_status]\n    });\n  }\n}\n\nreturn new_items;"
            },
            "typeVersion": 2
        },
        {
            "id": "bdc966ce-16bf-47de-aba3-fcd0f912f95f",
            "name": "Create custom Notion filters",
            "type": "n8n-nodes-base.code",
            "position": [
                460,
                660
            ],
            "parameters": {
                "jsCode": "const new_items = [];\nfor (item of $items(\"On issues created\/updated\/deleted\")) {\n\n  \/\/ do not process this item if action is created\n  if (item.json[\"webhookEvent\"] == \"jira:issue_created\") {\n    continue;\n  }\n\n  \/\/ build the output template\n  var new_item = {\n    \"json\": {\n      \"notionfilter\": \"\"\n    }\n  };\n  new_item = JSON.stringify(new_item);\n  new_item = JSON.parse(new_item);\n  new_items.push(new_item);\n\n  \/\/ create Notion filter to find specific database page by issue ID\n  notionfilter = {\n    or: [],\n  }\n\n  const filter = {\n    property: 'Issue ID',\n    number: {\n      equals: parseInt(item.json[\"issue\"][\"id\"])\n    }\n  }\n  notionfilter[\"or\"].push(filter);\n\n  new_item.json.notionfilter = JSON.stringify(notionfilter); \n}\n\nreturn new_items;"
            },
            "typeVersion": 2
        },
        {
            "id": "f92157a9-1a63-4907-87c8-0b54c3b0ac8e",
            "name": "Update issue",
            "type": "n8n-nodes-base.notion",
            "position": [
                1080,
                560
            ],
            "parameters": {
                "pageId": "={{ $node[\"Find database page\"].json[\"id\"] }}",
                "options": [],
                "resource": "databasePage",
                "operation": "update",
                "propertiesUi": {
                    "propertyValues": [
                        {
                            "key": "Title|title",
                            "title": "={{$node[\"On issues created\/updated\/deleted\"].json[\"issue\"][\"fields\"][\"summary\"]}}"
                        },
                        {
                            "key": "Status|select",
                            "selectValue": "={{$node[\"Lookup table\"].json[\"Status ID\"]}}"
                        }
                    ]
                }
            },
            "credentials": {
                "notionApi": {
                    "id": "XNjSmr171NUO17TK",
                    "name": "REPLACE ME"
                }
            },
            "typeVersion": 2
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "490138aa-d92d-439a-b7bb-d6d00a9fab86",
    "connections": {
        "IF": {
            "main": [
                [
                    {
                        "node": "Create database page",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Create custom Notion filters",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Switch": {
            "main": [
                [
                    {
                        "node": "Update issue",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Delete issue",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Lookup table": {
            "main": [
                [
                    {
                        "node": "IF",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Find database page": {
            "main": [
                [
                    {
                        "node": "Switch",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Create custom Notion filters": {
            "main": [
                [
                    {
                        "node": "Find database page",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "On issues created\/updated\/deleted": {
            "main": [
                [
                    {
                        "node": "Lookup table",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Error N8N Import Triggered
View
Code Editimage Update Webhook
View
Create a project, tag, and time entry, and update the time entry in Clockify
View
Wait Splitout Automation Webhook
View
HTTP Stickynote Create Webhook
View
Hugging Face to Notion
View
Stopanderror Splitout Create Webhook
View
Travel Planning Agent with Couchbase Vector Search, Gemini 2.0 Flash and OpenAI
View
Webhook Respondtowebhook Create Webhook
View
Create, update, and get a subscriber using the e-goi node
View