Workflow: Notion Workflow
Integrations: function, githubTrigger, if, notion, stickyNote, stopAndError, switch

{"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."}