{ "meta": { "instanceId": "workflow-e342aacb", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:45.115570", "updatedAt": "2025-09-29T07:07:45.115679", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "nodes": [ { "id": "0bd18974-8414-4b83-b3fb-85d2f6a74164", "name": "Create database page", "type": "n8n-nodes-base.notion", "position": [ 1220, 400 ], "parameters": { "title": "={{$json[\"body\"][\"issue\"][\"title\"]}}", "resource": "databasePage", "databaseId": "5026700b-6693-473a-8100-8cc6ddef62a6", "propertiesUi": { "propertyValues": [ { "key": "YOUR_CREDENTIAL_HERE", "numberValue": "={{$node[\"Trigger on issues\"].json[\"body\"][\"issue\"][\"id\"]}}" }, { "key": "YOUR_CREDENTIAL_HERE", "urlValue": "{{ $env.BASE_URL }}" } ] } }, "credentials": { "notionApi": { "id": "{{ $credentials.notionApi.id }}", "name": "[UPDATE ME]" } }, "typeVersion": 2, "notes": "This notion node performs automated tasks as part of the workflow." }, { "id": "dfce23fd-7ff8-42d1-9544-694345156080", "name": "Note", "type": "n8n-nodes-base.stickyNote", "position": [ 1220, 800 ], "parameters": { "content": "## IF & Switch\nDepends on what action was taken on an issue in GitHub." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "577e0d7a-0539-414f-8ec8-00ce12807d5b", "name": "Find database page", "type": "n8n-nodes-base.notion", "position": [ 1400, 600 ], "parameters": { "options": {}, "resource": "databasePage", "operation": "getAll", "returnAll": true, "databaseId": "5026700b-6693-473a-8100-8cc6ddef62a6", "filterJson": "={{$node[\"Create custom Notion filters\"].json[\"notionfilter\"]}}", "filterType": "json" }, "credentials": { "notionApi": { "id": "{{ $credentials.notionApi.id }}", "name": "[UPDATE ME]" } }, "typeVersion": 2, "notes": "This notion node performs automated tasks as part of the workflow." }, { "id": "91b0586c-eb08-41d0-bbb0-8a03c4a0ac3a", "name": "Switch", "type": "n8n-nodes-base.switch", "position": [ 1580, 600 ], "parameters": { "rules": { "rules": [ { "value2": "edited" }, { "output": 1, "value2": "deleted" }, { "output": 2, "value2": "closed" }, { "output": 3, "value2": "reopened" } ] }, "value1": "={{$node[\"Trigger on issues\"].json[\"body\"][\"action\"]}}", "dataType": "string" }, "typeVersion": 1, "notes": "This switch node performs automated tasks as part of the workflow." }, { "id": "5262e14e-adc2-45d1-9e3f-c0eba013077a", "name": "If Node", "type": "n8n-nodes-base.if", "position": [ 1040, 500 ], "parameters": { "conditions": { "string": [ { "value1": "={{$node[\"Trigger on issues\"].json[\"body\"][\"action\"]}}", "value2": "opened" } ] } }, "typeVersion": 1, "notes": "This if node performs automated tasks as part of the workflow." }, { "id": "735ef0b3-70c3-4a88-ad02-35edf8f749c4", "name": "Edit issue", "type": "n8n-nodes-base.notion", "position": [ 1760, 360 ], "parameters": { "pageId": "={{ $node[\"Find database page\"].json[\"id\"] }}", "resource": "databasePage", "operation": "update", "propertiesUi": { "propertyValues": [ { "key": "YOUR_CREDENTIAL_HERE", "title": "={{$node[\"Trigger on issues\"].json[\"body\"][\"issue\"][\"title\"]}}" } ] } }, "credentials": { "notionApi": { "id": "{{ $credentials.notionApi.id }}", "name": "[UPDATE ME]" } }, "typeVersion": 2, "notes": "This notion node performs automated tasks as part of the workflow." }, { "id": "39b75e78-bd62-40e4-9e88-12c6a1901c34", "name": "Delete issue", "type": "n8n-nodes-base.notion", "position": [ 1760, 520 ], "parameters": { "pageId": "={{$node[\"Find database page\"].json[\"id\"]}}", "operation": "archive" }, "credentials": { "notionApi": { "id": "{{ $credentials.notionApi.id }}", "name": "[UPDATE ME]" } }, "typeVersion": 2, "notes": "This notion node performs automated tasks as part of the workflow." }, { "id": "d8fee72d-c19d-4b99-85c2-dcc5d4fa6756", "name": "Create custom Notion filters", "type": "n8n-nodes-base.function", "position": [ 1220, 600 ], "parameters": { "functionCode": "const new_items = [];\nfor (item of $items(\"Trigger on issues\")) {\n\n // do not process this item if action is created\n if (item.json[\"body\"][\"action\"] == \"opened\") {\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[\"body\"][\"issue\"][\"id\"])\n }\n }\n notionfilter[\"or\"].push(filter);\n\n new_item.json.notionfilter = JSON.stringify(notionfilter); \n}\n\nreturn new_items;" }, "typeVersion": 1, "notes": "This function node performs automated tasks as part of the workflow." }, { "id": "99c69200-d932-4379-9a36-96cd8420f21c", "name": "Close issue", "type": "n8n-nodes-base.notion", "position": [ 1760, 680 ], "parameters": { "pageId": "={{$node[\"Find database page\"].json[\"id\"]}}", "resource": "databasePage", "operation": "update", "propertiesUi": { "propertyValues": [ { "key": "YOUR_CREDENTIAL_HERE", "checkboxValue": true } ] } }, "credentials": { "notionApi": { "id": "{{ $credentials.notionApi.id }}", "name": "[UPDATE ME]" } }, "typeVersion": 2, "notes": "This notion node performs automated tasks as part of the workflow." }, { "id": "3f4b27d3-33ae-44f8-ab18-1c23ae7cf890", "name": "Reopen issue", "type": "n8n-nodes-base.notion", "position": [ 1760, 840 ], "parameters": { "pageId": "={{$node[\"Find database page\"].json[\"id\"]}}", "resource": "databasePage", "operation": "update", "propertiesUi": { "propertyValues": [ { "key": "YOUR_CREDENTIAL_HERE" } ] } }, "credentials": { "notionApi": { "id": "{{ $credentials.notionApi.id }}", "name": "[UPDATE ME]" } }, "typeVersion": 2, "notes": "This notion node performs automated tasks as part of the workflow." }, { "id": "62e1a9d3-3fc6-46de-a048-cf8176f30f94", "name": "Trigger on issues", "type": "n8n-nodes-base.githubTrigger", "position": [ 860, 500 ], "webhookId": "bc0a0a44-00db-473b-8746-b60b3b36039c", "parameters": { "owner": "John-n8n", "events": [ "issues" ], "repository": "DemoRepo" }, "credentials": { "githubApi": { "id": "{{ $credentials.githubApi.id }}", "name": "[UPDATE ME]" } }, "typeVersion": 1, "notes": "This githubTrigger node performs automated tasks as part of the workflow." }, { "id": "error-3fda287f", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [ 1000, 400 ], "parameters": { "message": "Workflow execution error", "options": {} } } ], "connections": {}, "name": "Notion Workflow", "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "description": "Automated workflow: Notion Workflow. This workflow integrates 6 different services: stickyNote, function, githubTrigger, switch, if. It contains 11 nodes and follows best practices for error handling and security.", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "notes": "Excellent quality workflow: Notion Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }