{ "id": "mOcaSIUAvpt3QjQ1", "meta": { "instanceId": "workflow-18604b9c", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:57.836082", "updatedAt": "2025-09-29T07:07:57.836094", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "๐ŸŒ Confluence Page AI Powered Chatbot", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "trigger-f73553a3", "name": "Manual Trigger", "type": "n8n-nodes-base.manualTrigger", "typeVersion": 1, "position": [ 100, 100 ], "parameters": {} }, { "id": "f4761e1a-6430-4b3d-97f9-b91743e02ea6", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 80, -340 ], "parameters": { "color": 7, "width": 633, "height": 974, "content": "## Confluence\n{{ $env.API_BASE_URL }}\n{{ $env.API_BASE_URL }}\n{{ $env.WEBHOOK_URL }}\n\nSupplying basic auth headers\nYou can construct and send basic auth headers yourself, including a base64-encoded string that contains your Atlassian account email and API token.\n\nTo use basic auth headers, perform the following steps:\n\nGenerate an API Token for your Atlassian Account: {{ $env.API_BASE_URL }}\nBuild a string of the form your_email@domain.com:your_user_api_token.\nYou'll need to encode your authorization credentials to Base64 encoded. You can do this locally:\nLinux/Unix/MacOS:\n\nCopy\n```\necho -n your_email@domain.com:your_user_api_token | base64\n```\nWindows 7 and later, using Microsoft Powershell:\n\nCopy\n```\n$Text = โ€˜your_email@domain.com:your_user_api_tokenโ€™\n$Bytes = [System.Text.Encoding]::UTF8.GetBytes($Text)\n$EncodedText = [Convert]::ToBase64String($Bytes)\n$EncodedText\n```\nSupply an Authorization header with content Basic followed by the encoded string. Example: Authorization: Basic eW91cl9lbWFpbEBkb21haW4uY29tOnlvdXJfdXNlcl9hcGlfdG9rZW4=\n\nCopy\n```\ncurl -D- \\\n -X GET \\\n -H \"Authorization: Basic \" \\\n -H \"Content-Type: application/json\" \\\n \"https:///wiki/rest/api/space\"\n```\n\nThe above cURL command will not work as shown. You need to replace and with your authorization credentials encoded string and instance information before running it in the terminal." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "b2865684-687e-45a9-bb0c-e78df4dda72e", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [ 760, -340 ], "parameters": { "color": 5, "width": 768.3946456283678, "height": 381.59428876752247, "content": "## Using Rest API to GET Confluence Page Body\n{{ $env.API_BASE_URL }}\n\nRequest\nhttps://.atlassian.net/wiki/api/v2/pages/{id}\nPath parameters\nid\ninteger\n\nRequired\nQuery parameters\n\nThe content format types to be returned in the body field of the response. \nIf available, the representation will be available under a response field of the same name under the body field.\n\nValid values: storage, atlas_doc_format, view, export_view, anonymous_export_view, styled_view, editor\n\n" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "2fae2b02-b15f-4226-86c2-f4444f10965e", "name": "Confluence Page Storage View", "type": "n8n-nodes-base.httpRequest", "position": [ 900, 580 ], "parameters": { "url": "{{ $env.BASE_URL }}", "options": {}, "sendQuery": true, "sendHeaders": true, "authentication": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth", "queryParameters": { "parameters": [ { "name": "body-format", "value": "storage" } ] }, "headerParameters": { "parameters": [ {} ] } }, "credentials": { "httpHeaderAuth": { "id": "KafuDlwiWOVNQcyC", "name": "Confluence API" } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "49c5c6f7-f879-4518-aeef-922154f47ea6", "name": "HTML to Markdown", "type": "n8n-nodes-base.markdown", "position": [ 1100, 580 ], "parameters": { "html": "={{ $json.body.storage.value }}", "options": {} }, "typeVersion": 1, "notes": "This markdown node performs automated tasks as part of the workflow." }, { "id": "6ef64460-1406-43c9-9c5b-9d8ae3f51d31", "name": "gpt-4o-mini", "type": "n8n-nodes-base.noOp", "position": [ 1260, 760 ], "parameters": { "options": {} }, "credentials": { "openAiApi": { "id": "jEMSvKmtYfzAkhe6", "name": "OpenAi account" } }, "typeVersion": 1, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow." }, { "id": "b8f998da-34b2-40d4-9816-b7a3ca33a3d9", "name": "When chat message received", "type": "n8n-nodes-base.noOp", "position": [ 820, 180 ], "parameters": {}, "typeVersion": 1.1, "notes": "This manualChatTrigger node performs automated tasks as part of the workflow." }, { "id": "8fcfb987-3ea1-43cd-804f-dc2d629e558e", "name": "Window Buffer Memory", "type": "n8n-nodes-base.noOp", "position": [ 1400, 760 ], "parameters": { "sessionKey": "YOUR_CREDENTIAL_HERE", "sessionIdType": "customKey" }, "typeVersion": 1.2, "notes": "This memoryBufferWindow node performs automated tasks as part of the workflow." }, { "id": "53fe680c-af07-4712-b3cd-ae853f19cf8a", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [ 760, 420 ], "parameters": { "color": 6, "width": 1163, "height": 515, "content": "## Chatbot for Confluence Pages\n\n\n" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "f37546a9-1b33-4276-9ea3-e461b53fe70a", "name": "Chat Response", "type": "n8n-nodes-base.set", "position": [ 1700, 680 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "636ec5bb-141c-491b-b827-bf6c3753a531", "name": "output", "type": "string", "value": "={{ $json.output }}" } ] } }, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "c53f59bd-f0d9-4629-bf56-ca439ef9c7f5", "name": "Globals", "type": "n8n-nodes-base.set", "position": [ 1100, 180 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "74683edb-6368-4673-95f3-2885e30595cf", "name": "page_id_tekla", "type": "string", "value": "688157" }, { "id": "3a8796d7-3426-4f4a-bddf-973720b59e9d", "name": "page_id_n8n", "type": "string", "value": "491546" }, { "id": "42b27698-8d11-4fb0-a308-e256e0752f4d", "name": "page_id_more_n8n", "type": "string", "value": "983041" }, { "id": "62572887-e17a-4957-9ab1-3546277f79ab", "name": "page_id_tekla_clash_checking", "type": "string", "value": "753691" } ] } }, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "ee500c5b-9289-4636-8178-6235c0fe4080", "name": "Search By ID", "type": "n8n-nodes-base.httpRequest", "position": [ 1300, 180 ], "parameters": { "url": "{{ $env.BASE_URL }}", "options": {}, "authentication": "{{ $credentials.genericCredentialType }}", "genericAuthType": "httpHeaderAuth" }, "credentials": { "httpHeaderAuth": { "id": "KafuDlwiWOVNQcyC", "name": "Confluence API" } }, "typeVersion": 4.2, "notes": "This httpRequest node performs automated tasks as part of the workflow." }, { "id": "934f0c57-6184-4c85-a0dc-097b3c470be4", "name": "Sticky Note4", "type": "n8n-nodes-base.stickyNote", "position": [ 1020, 80 ], "parameters": { "width": 872, "height": 297, "content": "## Confluence Search By ID" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "c51b8421-962d-46a1-aaf5-1b170252b7da", "name": "Page Schema", "type": "n8n-nodes-base.set", "position": [ 1700, 180 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "3e8b49af-f3c6-4441-842f-9ce9a42c34b6", "name": "content._links.webui", "type": "string", "value": "={{ $json.content._links.webui }}" }, { "id": "6fd53eb3-52b2-4f7b-92ca-89a26e05d52a", "name": "content._links.self", "type": "string", "value": "={{ $json.content._links.self }}" }, { "id": "dfc89cbb-2f63-41ca-acfb-27b4d36d0418", "name": "title", "type": "string", "value": "={{ $json.title }}" }, { "id": "0e15af12-8ae2-4337-a174-f3c3592bd0c6", "name": "url", "type": "string", "value": "={{ $json.url }}" }, { "id": "6bbfa6eb-d6db-42c4-9ef6-81611fda0365", "name": "excerpt", "type": "string", "value": "={{ $json.excerpt }}" }, { "id": "a5a26e42-af66-41a6-9406-7ccb86fb3386", "name": "id", "type": "string", "value": "={{ $json.content.id }}" } ] } }, "typeVersion": 3.4, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "2c765cad-e488-44ad-98b6-6e0a2c575fd2", "name": "AI Agent", "type": "n8n-nodes-base.noOp", "position": [ 1300, 580 ], "parameters": { "text": "=Answer questions from user with the context provided. Only respond using the context. If you do not know the answer simply respond with \"I don't know.\"\n\nUser question: {{ $('When chat message received').item.json.chatInput }}\n\nContext: {{ $json.data }}", "agent": "conversationalAgent", "options": {}, "promptType": "define" }, "typeVersion": 1.6, "notes": "This agent node performs automated tasks as part of the workflow." }, { "id": "a89508f9-fd88-4a9f-84da-a0ddef590e1b", "name": "Send Telegram Message", "type": "n8n-nodes-base.telegram", "position": [ 1700, 480 ], "webhookId": "3ba1ee6d-1648-4421-823b-e68ae14d769b", "parameters": { "text": "={{ $json.output}}", "chatId": "={{ $env.TELEGRAM_CHAT_ID }}", "additionalFields": { "parse_mode": "HTML", "appendAttribution": false } }, "credentials": { "telegramApi": { "id": "pAIFhguJlkO3c7aQ", "name": "Telegram account" } }, "typeVersion": 1.2, "notes": "This telegram node performs automated tasks as part of the workflow." }, { "id": "dae8ae00-1552-4945-948e-2556dfdd8802", "name": "Split Out", "type": "n8n-nodes-base.splitOut", "position": [ 1500, 180 ], "parameters": { "options": {}, "fieldToSplitOut": "results" }, "typeVersion": 1, "notes": "This splitOut node performs automated tasks as part of the workflow." } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "d57c434b-ed09-484a-bcc4-d81681001a36", "connections": { "2fae2b02-b15f-4226-86c2-f4444f10965e": { "main": [ [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e", "type": "main", "index": 0 } ], [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e-18da7fbe", "type": "main", "index": 0 } ], [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e-9df057cb", "type": "main", "index": 0 } ], [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e-1180a034", "type": "main", "index": 0 } ], [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e-ab34250b", "type": "main", "index": 0 } ], [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e-f3fb1906", "type": "main", "index": 0 } ], [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e-f413ab5d", "type": "main", "index": 0 } ], [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e-c74f2adb", "type": "main", "index": 0 } ], [ { "node": "error-handler-2fae2b02-b15f-4226-86c2-f4444f10965e-a7ae14af", "type": "main", "index": 0 } ] ] }, "ee500c5b-9289-4636-8178-6235c0fe4080": { "main": [ [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080", "type": "main", "index": 0 } ], [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080-0e15a975", "type": "main", "index": 0 } ], [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080-a9c826a7", "type": "main", "index": 0 } ], [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080-4467d25b", "type": "main", "index": 0 } ], [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080-5b1fcd73", "type": "main", "index": 0 } ], [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080-07544965", "type": "main", "index": 0 } ], [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080-23d8e568", "type": "main", "index": 0 } ], [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080-e8f59619", "type": "main", "index": 0 } ], [ { "node": "error-handler-ee500c5b-9289-4636-8178-6235c0fe4080-8518c44f", "type": "main", "index": 0 } ] ] }, "6ef64460-1406-43c9-9c5b-9d8ae3f51d31": { "main": [ [ { "node": "error-handler-6ef64460-1406-43c9-9c5b-9d8ae3f51d31-1168331a", "type": "main", "index": 0 } ] ] }, "a89508f9-fd88-4a9f-84da-a0ddef590e1b": { "main": [ [ { "node": "error-handler-a89508f9-fd88-4a9f-84da-a0ddef590e1b-04b669a1", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: ๐ŸŒ Confluence Page AI Powered Chatbot. This workflow integrates 11 different services: stickyNote, httpRequest, markdown, telegram, agent. It contains 22 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: ๐ŸŒ Confluence Page AI Powered Chatbot. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }