Workflow: 🌐 Confluence Page AI Powered Chatbot
Integrations: httpRequest, manualTrigger, markdown, noOp, set, splitOut, stickyNote, telegram

{"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": "\ud83c\udf10 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 = \u2018your_email@domain.com:your_user_api_token\u2019\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 <your_encoded_string>\" \\\n   -H \"Content-Type: application/json\" \\\n   \"https://<your-domain.atlassian.net>/wiki/rest/api/space\"\n```\n\nThe above cURL command will not work as shown. You need to replace <your_encoded_string> and <your-domain.atlassian.net> 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://<your-wiki>.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: \ud83c\udf10 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: \ud83c\udf10 Confluence Page AI Powered Chatbot. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}