Workflow: develop a modular n8n workflow that supports Schedule Http Create Webhook
Integrations: httpRequest, if, n8n, notion, scheduleTrigger, set, stickyNote

{"nodes": [{"id": "2c3549c1-99c1-4255-a02d-2f454e6ced5e", "name": "Every 15 minutes", "type": "n8n-nodes-base.scheduleTrigger", "position": [560, 340], "parameters": {"rule": {"interval": [{"field": "minutes", "minutesInterval": 15}]}}, "typeVersion": 1.1}, {"id": "3380272e-5631-44aa-b7da-5e23e0966978", "name": "Get all workflows with tag", "type": "n8n-nodes-base.n8n", "position": [780, 340], "parameters": {"filters": {"tags": "sync-to-notion"}}, "credentials": {"n8nApi": {"id": "230", "name": "n8n admin account"}}, "typeVersion": 1}, {"id": "d702f13e-8e93-4142-87c7-49fbb6031e19", "name": "Set fields", "type": "n8n-nodes-base.set", "position": [1000, 340], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "1744510d-7ed7-46d8-acd3-f975ab73f298", "name": "active", "type": "boolean", "value": "={{ $json.active }}"}, {"id": "7e76f5dc-0c32-4b26-a289-975155b80112", "name": "url", "type": "string", "value": "={{ $vars.instance_url }}workflow/{{ $json.id }}"}, {"id": "a7b069bf-8090-4dca-a432-f4fd7aa84e6f", "name": "errorWorkflow", "type": "boolean", "value": "={{ !!$json.settings?.errorWorkflow }}"}, {"id": "0bff7a9b-0860-4552-b0f6-5fc279fc75d6", "name": "name", "type": "string", "value": "={{ $json.name }}"}, {"id": "3065ee2f-d1bb-42b7-b341-7bb38b0f6720", "name": "updatedAt", "type": "string", "value": "={{ $json.updatedAt }}"}, {"id": "ea9d39e4-50ca-4c79-b6ab-8b22cafd0257", "name": "createdAt", "type": "string", "value": "={{ $json.createdAt }}"}, {"id": "265d66cd-1796-40eb-ae5b-dca8d1a91871", "name": "envId", "type": "string", "value": "=internal-{{ $json.id }}"}]}}, "typeVersion": 3.3}, {"id": "4527dc91-bad5-4214-b210-ea8f89504fbf", "name": "Get notion page with workflow id", "type": "n8n-nodes-base.httpRequest", "position": [1220, 340], "parameters": {"url": "https://api.notion.com/v1/databases/fa25c53eac9a416eab3961b2f5c0c647/query", "method": "POST", "options": {}, "jsonBody": "={\n    \"filter\": { \"and\": [\n    {\n        \"property\": \"env id\",\n        \"rich_text\": { \"contains\": \"{{ $json.envId }}\" }\n    }]\n}\n}", "sendBody": true, "sendHeaders": true, "specifyBody": "json", "authentication": "predefinedCredentialType", "headerParameters": {"parameters": [{"name": "Notion-Version", "value": "2022-06-28"}]}, "nodeCredentialType": "notionApi"}, "credentials": {"notionApi": {"id": "1exvaAn7wzyBgkXZ", "name": "Nik's Notion Cred"}}, "typeVersion": 4.1}, {"id": "ced49644-b18f-4984-8dfd-199d88e3ded7", "name": "Map fields", "type": "n8n-nodes-base.set", "position": [1440, 340], "parameters": {"options": {}, "assignments": {"assignments": [{"id": "49092f3a-7f42-4067-b8ea-1073ef1d1bb8", "name": "input", "type": "object", "value": "={{ $('Set fields').item.json }}"}]}, "includeOtherFields": true}, "typeVersion": 3.3}, {"id": "b890dacf-2ac2-4802-b96a-5097119d35ee", "name": "if newly added workflow", "type": "n8n-nodes-base.if", "position": [1660, 340], "parameters": {"options": {}, "conditions": {"options": {"leftValue": "", "caseSensitive": true, "typeValidation": "strict"}, "combinator": "and", "conditions": [{"id": "88337d36-8cf6-4cd5-bec1-5123cf612934", "operator": {"type": "array", "operation": "empty", "singleValue": true}, "leftValue": "={{ $json.results }}", "rightValue": ""}]}}, "typeVersion": 2}, {"id": "86edfe55-9a88-49ed-82de-df0c44a65d53", "name": "Add to Notion", "type": "n8n-nodes-base.notion", "position": [1920, 240], "parameters": {"title": "={{ $json.input.name }}", "options": {}, "resource": "databasePage", "databaseId": {"__rl": true, "mode": "list", "value": "fa25c53e-ac9a-416e-ab39-61b2f5c0c647", "cachedResultUrl": "https://www.notion.so/fa25c53eac9a416eab3961b2f5c0c647", "cachedResultName": "Workflows maintained"}, "propertiesUi": {"propertyValues": [{"key": "env id|rich_text", "textContent": "={{ $json.input.envId }}"}, {"key": "URL (dev)|url", "urlValue": "={{ $json.input.url }}"}, {"key": "isActive (dev)|checkbox", "checkboxValue": "={{ $json.input.active }}"}, {"key": "Workflow created at|date", "date": "={{ $json.input.createdAt }}"}, {"key": "Workflow updatded at|date", "date": "={{ $json.input.updatedAt }}"}, {"key": "Error workflow setup|checkbox", "checkboxValue": "={{ $json.input.errorWorkflow }}"}]}}, "credentials": {"notionApi": {"id": "1exvaAn7wzyBgkXZ", "name": "Nik's Notion Cred"}}, "typeVersion": 2.1}, {"id": "9d547270-37dd-41ee-98b7-13001c954ffa", "name": "Update in Notion", "type": "n8n-nodes-base.notion", "position": [1920, 440], "parameters": {"pageId": {"__rl": true, "mode": "url", "value": "={{ $json.results[0].url }}"}, "options": {}, "resource": "databasePage", "operation": "update", "propertiesUi": {"propertyValues": [{"key": "isActive (dev)|checkbox", "checkboxValue": "={{ $json.input.active }}"}, {"key": "Name|title", "title": "={{ $json.input.name }}"}, {"key": "URL (dev)|url", "urlValue": "={{ $json.input.url }}"}, {"key": "isActive (dev)|checkbox", "checkboxValue": "={{ $json.input.active }}"}, {"key": "Workflow updatded at|date", "date": "={{ $json.input.updatedAt }}"}, {"key": "Error workflow setup|checkbox", "checkboxValue": "={{ false }}"}]}}, "credentials": {"notionApi": {"id": "1exvaAn7wzyBgkXZ", "name": "Nik's Notion Cred"}}, "typeVersion": 2.1}, {"id": "9e4d88f6-aff8-48f1-9470-8b18aae7b83a", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [540, 100], "parameters": {"color": 5, "width": 445.6145160912248, "height": 193.68880276091272, "content": "### \ud83d\udc68\u200d\ud83c\udfa4 Setup\n1. Add your n8n api creds\n2. Add your notion creds\n3. create notion database with fields `env id` as `text`, `isActive (dev)` as `boolean`, `URL (dev)` as `url`, `Workflow created at` as `date`, `Workflow updated at` as `date`, `Error workflow setup` as `boolean`\n4. Add tag `sync-to-notion` to some workflows"}, "typeVersion": 1}, {"id": "c212f6ec-22e3-41cf-b1a5-03f261715444", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [1000, 540], "parameters": {"color": 7, "width": 368.0997057335963, "height": 80, "content": "### \ud83d\udc46 Set instance url instead of `{{ $vars.instance_url }}` (or set the env variable if you have that feature)"}, "typeVersion": 1}], "pinData": {}, "connections": {"Map fields": {"main": [[{"node": "if newly added workflow", "type": "main", "index": 0}]]}, "Set fields": {"main": [[{"node": "Get notion page with workflow id", "type": "main", "index": 0}]]}, "Every 15 minutes": {"main": [[{"node": "Get all workflows with tag", "type": "main", "index": 0}]]}, "if newly added workflow": {"main": [[{"node": "Add to Notion", "type": "main", "index": 0}], [{"node": "Update in Notion", "type": "main", "index": 0}]]}, "Get all workflows with tag": {"main": [[{"node": "Set fields", "type": "main", "index": 0}]]}, "Get notion page with workflow id": {"main": [[{"node": "Map fields", "type": "main", "index": 0}]]}}}