420 lines
13 KiB
JSON
420 lines
13 KiB
JSON
{
|
||
"id": "U1xUqDLvBYYSU6EU",
|
||
"meta": {
|
||
"instanceId": "8d54a4232b4618928ac9df0152e207cb858f5f9ffa6f3ba2d31d941bdcaec9d7",
|
||
"templateCredsSetupCompleted": true
|
||
},
|
||
"name": "Jira Retrospective",
|
||
"tags": [],
|
||
"nodes": [
|
||
{
|
||
"id": "b91c4727-8c63-4bf3-8101-6282aa6f592c",
|
||
"name": "Jira Get All Issues",
|
||
"type": "n8n-nodes-base.jira",
|
||
"position": [
|
||
60,
|
||
60
|
||
],
|
||
"parameters": {
|
||
"options": {},
|
||
"operation": "getAll"
|
||
},
|
||
"credentials": {
|
||
"jiraSoftwareCloudApi": {
|
||
"id": "AqnrDWxoCa8luriP",
|
||
"name": "Jira SW Cloud account"
|
||
}
|
||
},
|
||
"typeVersion": 1
|
||
},
|
||
{
|
||
"id": "4cf0689c-2a1f-4a90-81f4-d3483c63fc96",
|
||
"name": "Jira Get All Comments",
|
||
"type": "n8n-nodes-base.jira",
|
||
"position": [
|
||
280,
|
||
60
|
||
],
|
||
"parameters": {
|
||
"options": {},
|
||
"issueKey": "={{ $json.key }}",
|
||
"resource": "issueComment",
|
||
"operation": "getAll"
|
||
},
|
||
"credentials": {
|
||
"jiraSoftwareCloudApi": {
|
||
"id": "AqnrDWxoCa8luriP",
|
||
"name": "Jira SW Cloud account"
|
||
}
|
||
},
|
||
"typeVersion": 1
|
||
},
|
||
{
|
||
"id": "26803742-1a94-4969-878b-2f757aced4f8",
|
||
"name": "AI Agent",
|
||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||
"position": [
|
||
940,
|
||
60
|
||
],
|
||
"parameters": {
|
||
"text": "=comments = {{ $json.concatenated_Comment }}\ndescription = {{ $json.Description }}\ntitle = {{ $json.Title }}\nstatus = {{ $json.EpicStatus }}\nepic_name = {{ $json.EpicName }}\n",
|
||
"options": {
|
||
"systemMessage": "=You are an AI assistant specialized in creating comprehensive Agile retrospective documents. Your task is to analyze the provided information about a completed task and generate an insightful **Lessons Learned** report formatted in **clean Markdown**, optimized for seamless conversion to Google Docs.\n\n---\n\n### 📥 Input Format\nYou will receive structured input containing:\n* `epic_name`: The broader initiative or project category\n* `title`: The specific task or user story name\n* `description`: A concise explanation of what the task involved\n\n---\n\n### 📤 Output Instructions\nGenerate a detailed **Lessons Learned** report using the following **Markdown** structure:\n\n# LESSONS LEARNED REPORT\n\n**Epic:** {epic_name} \n**Date:** {{$today.format('yyyy-MM-dd')}}} \n**Task:** {title} \n**Description:** {description}\n\n## Key Findings\n\n* Clear, specific insight about a technical challenge encountered\n* Process-related discovery that impacted delivery\n* Team dynamics observation or workflow improvement identified\n* {Add more if needed}\n\n## Comments & Observations\n\n{Write 2–3 paragraphs with:}\n\n* Specific examples from task execution\n* Feedback or quotes from team members (if available)\n* Comparisons to prior approaches\n* Unexpected challenges or positive surprises\n\n## Actionable Recommendations\n\n1. Specific, implementable action to address a finding\n2. Concrete suggestion for process improvement\n3. Recommendation for knowledge sharing or team development\n4. {Add more as needed}\n\n## Metrics & Impact\n\n{When possible, include:}\n\n* Time saved or efficiency gained\n* Quality improvements\n* User/customer feedback\n* Cost implications\n\n## Tags\n\n`#lessons-learned` `#{normalized_epic_name}` `#{relevant_technology}` `#{improvement_area}`\n\n---\n\n### 📝 Guidelines\n\n1. **Be specific** – use real details, not vague statements\n2. **Stay relevant** – stick to the task and its broader context\n3. **Focus on learning** – prioritize transferable insights\n4. **Balance** – include both wins and challenges\n5. **Actionability** – make every suggestion doable\n6. **Concise yet clear** – avoid fluff; write for impact\n7. **Formatting Guidelines for Google Docs compatibility:**\n * Use only asterisks (*) for bullet points, never hyphens (-)\n * Add two spaces after each line in lists for proper line breaks\n * Always leave a blank line before and after headings\n * Avoid using underscores (_) in text; use hyphens (-) instead\n * For emphasis, use consistently **bold** for important points and *italics* for supplementary information\n * When mentioning code or technical terms, use `single backticks`, never triple backticks\n * Use a pipe-separated format for tables as shown in the template\n * Keep paragraphs short (3-5 sentences) for better readability\n8. **Metadata Handling:** Include the epic name and task title exactly as provided in the input, without modification\n9. **Date Format:** Use YYYY-MM-DD format for the date for consistent sorting and display\n10. **Tags:** Keep tags lowercase, with hyphens instead of spaces, and relevant to the content\n\n---"
|
||
},
|
||
"promptType": "define"
|
||
},
|
||
"typeVersion": 1.9
|
||
},
|
||
{
|
||
"id": "29e37c80-68a4-490a-8952-2dcf974ff8d3",
|
||
"name": "OpenAI Chat Model",
|
||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||
"position": [
|
||
920,
|
||
280
|
||
],
|
||
"parameters": {
|
||
"model": {
|
||
"__rl": true,
|
||
"mode": "list",
|
||
"value": "gpt-4o-mini"
|
||
},
|
||
"options": {}
|
||
},
|
||
"credentials": {
|
||
"openAiApi": {
|
||
"id": "f3KRKVUp9GyRxd6U",
|
||
"name": "OpenAi account"
|
||
}
|
||
},
|
||
"typeVersion": 1.2
|
||
},
|
||
{
|
||
"id": "da5e365b-cc69-4bdd-bd58-e5b2ecb17387",
|
||
"name": "Edit Fields",
|
||
"type": "n8n-nodes-base.set",
|
||
"position": [
|
||
500,
|
||
60
|
||
],
|
||
"parameters": {
|
||
"options": {},
|
||
"assignments": {
|
||
"assignments": [
|
||
{
|
||
"id": "84fcaf69-4234-46be-9fa7-15026c60fed4",
|
||
"name": "EpicName",
|
||
"type": "string",
|
||
"value": "={{ $('Jira Get All Issues').item.json.fields.parent.fields.summary }}"
|
||
},
|
||
{
|
||
"id": "a7890a6b-1d0d-4486-908e-d3db571b89af",
|
||
"name": "EpicStatus",
|
||
"type": "string",
|
||
"value": "={{ $('Jira Get All Issues').item.json.fields.parent.fields.status.statusCategory.name }}"
|
||
},
|
||
{
|
||
"id": "c2c58d73-17a8-47b5-beb6-8295905cd8c2",
|
||
"name": "Title",
|
||
"type": "string",
|
||
"value": "={{ $('Jira Get All Issues').item.json.fields.summary }}"
|
||
},
|
||
{
|
||
"id": "baa10a35-ab3e-490f-b9ed-e661a6e9f4aa",
|
||
"name": "Description",
|
||
"type": "string",
|
||
"value": "={{ $('Jira Get All Issues').item.json.fields.description }}"
|
||
},
|
||
{
|
||
"id": "5da4ae54-07e6-41b8-bd51-054fe56beb5f",
|
||
"name": "Comment",
|
||
"type": "string",
|
||
"value": "={{ $json.body.content[0].content[0].text }}"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"typeVersion": 3.4
|
||
},
|
||
{
|
||
"id": "9718b066-e28f-41ea-97c2-559cbd894764",
|
||
"name": "Summarize",
|
||
"type": "n8n-nodes-base.summarize",
|
||
"position": [
|
||
720,
|
||
60
|
||
],
|
||
"parameters": {
|
||
"options": {},
|
||
"fieldsToSplitBy": "EpicName, EpicStatus, Title, Description",
|
||
"fieldsToSummarize": {
|
||
"values": [
|
||
{
|
||
"field": "Comment",
|
||
"separateBy": "\n",
|
||
"aggregation": "concatenate"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"typeVersion": 1.1
|
||
},
|
||
{
|
||
"id": "1d37efb7-09f1-43a7-a6c0-77d07b1f7a6b",
|
||
"name": "Google Docs",
|
||
"type": "n8n-nodes-base.googleDocs",
|
||
"position": [
|
||
1280,
|
||
60
|
||
],
|
||
"parameters": {
|
||
"simple": false,
|
||
"actionsUi": {
|
||
"actionFields": [
|
||
{
|
||
"text": "={{ $json.output }}",
|
||
"action": "insert"
|
||
}
|
||
]
|
||
},
|
||
"operation": "update",
|
||
"documentURL": "14X5gcowEprmL6ORyoo9tIrWWEB1HlhkixXUelesCLXs"
|
||
},
|
||
"credentials": {
|
||
"googleDocsOAuth2Api": {
|
||
"id": "Qe3TZG3K1euzTr3n",
|
||
"name": "Google Docs account"
|
||
}
|
||
},
|
||
"typeVersion": 2
|
||
},
|
||
{
|
||
"id": "bfab4af8-1f26-45b0-952b-1bd5f411d5f4",
|
||
"name": "Jira Trigger",
|
||
"type": "n8n-nodes-base.jiraTrigger",
|
||
"position": [
|
||
-380,
|
||
180
|
||
],
|
||
"webhookId": "3eb46690-d7b1-4a69-9a99-8adf8f843ed9",
|
||
"parameters": {
|
||
"events": [
|
||
"jira:issue_updated"
|
||
],
|
||
"additionalFields": {
|
||
"filter": ""
|
||
}
|
||
},
|
||
"credentials": {
|
||
"jiraSoftwareCloudApi": {
|
||
"id": "AqnrDWxoCa8luriP",
|
||
"name": "Jira SW Cloud account"
|
||
}
|
||
},
|
||
"typeVersion": 1.1
|
||
},
|
||
{
|
||
"id": "cc654cf3-c360-4704-a4b7-57447dbec8c6",
|
||
"name": "If",
|
||
"type": "n8n-nodes-base.if",
|
||
"position": [
|
||
-200,
|
||
180
|
||
],
|
||
"parameters": {
|
||
"options": {},
|
||
"conditions": {
|
||
"options": {
|
||
"version": 2,
|
||
"leftValue": "",
|
||
"caseSensitive": true,
|
||
"typeValidation": "strict"
|
||
},
|
||
"combinator": "and",
|
||
"conditions": [
|
||
{
|
||
"id": "a7028dd9-e262-4528-a20f-c80a26a28202",
|
||
"operator": {
|
||
"name": "filter.operator.equals",
|
||
"type": "string",
|
||
"operation": "equals"
|
||
},
|
||
"leftValue": "={{ $json.changelog.items[0].toString }}",
|
||
"rightValue": "Done"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"typeVersion": 2.2
|
||
},
|
||
{
|
||
"id": "b3ccd93e-a412-46f5-858d-ef8a2cd0efa9",
|
||
"name": "Simple Memory",
|
||
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
|
||
"position": [
|
||
1080,
|
||
280
|
||
],
|
||
"parameters": {
|
||
"sessionKey": "47",
|
||
"sessionIdType": "customKey"
|
||
},
|
||
"typeVersion": 1.3
|
||
},
|
||
{
|
||
"id": "e8379684-93ca-4118-bab5-f52a444c50e1",
|
||
"name": "Sticky Note",
|
||
"type": "n8n-nodes-base.stickyNote",
|
||
"position": [
|
||
-420,
|
||
-120
|
||
],
|
||
"parameters": {
|
||
"width": 380,
|
||
"height": 580,
|
||
"content": "## Epic Done?\nThis Node is Triggered on any issue change in Jira. However it only triggers the automation when the Epic status is changed to **Done**"
|
||
},
|
||
"typeVersion": 1
|
||
},
|
||
{
|
||
"id": "cdddcd3f-f896-4dbf-89e2-09060111cbc6",
|
||
"name": "Sticky Note1",
|
||
"type": "n8n-nodes-base.stickyNote",
|
||
"position": [
|
||
20,
|
||
-120
|
||
],
|
||
"parameters": {
|
||
"color": 5,
|
||
"width": 820,
|
||
"height": 580,
|
||
"content": "## Fetch issue Description and Comments\nOnce the Epic is Done, these nodes fetch issues and comments that fall under the Epic. For further processing the output is bundled."
|
||
},
|
||
"typeVersion": 1
|
||
},
|
||
{
|
||
"id": "c718a2e8-be7b-47b9-b7cc-9f4549a1060f",
|
||
"name": "Sticky Note2",
|
||
"type": "n8n-nodes-base.stickyNote",
|
||
"position": [
|
||
880,
|
||
-120
|
||
],
|
||
"parameters": {
|
||
"color": 3,
|
||
"width": 540,
|
||
"height": 580,
|
||
"content": "## Summarize and send to Google Docs\nThe LLM is summarizing the description / comments and generates a report with a layout defined in the System Message. Finally the output is send to Google Docs."
|
||
},
|
||
"typeVersion": 1
|
||
}
|
||
],
|
||
"active": false,
|
||
"pinData": {},
|
||
"settings": {
|
||
"executionOrder": "v1"
|
||
},
|
||
"versionId": "793ad505-261f-44ae-a197-a7c0e496dd69",
|
||
"connections": {
|
||
"If": {
|
||
"main": [
|
||
[
|
||
{
|
||
"node": "Jira Get All Issues",
|
||
"type": "main",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
},
|
||
"AI Agent": {
|
||
"main": [
|
||
[
|
||
{
|
||
"node": "Google Docs",
|
||
"type": "main",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
},
|
||
"Summarize": {
|
||
"main": [
|
||
[
|
||
{
|
||
"node": "AI Agent",
|
||
"type": "main",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
},
|
||
"Edit Fields": {
|
||
"main": [
|
||
[
|
||
{
|
||
"node": "Summarize",
|
||
"type": "main",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
},
|
||
"Jira Trigger": {
|
||
"main": [
|
||
[
|
||
{
|
||
"node": "If",
|
||
"type": "main",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
},
|
||
"Simple Memory": {
|
||
"ai_memory": [
|
||
[
|
||
{
|
||
"node": "AI Agent",
|
||
"type": "ai_memory",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
},
|
||
"OpenAI Chat Model": {
|
||
"ai_languageModel": [
|
||
[
|
||
{
|
||
"node": "AI Agent",
|
||
"type": "ai_languageModel",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
},
|
||
"Jira Get All Issues": {
|
||
"main": [
|
||
[
|
||
{
|
||
"node": "Jira Get All Comments",
|
||
"type": "main",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
},
|
||
"Jira Get All Comments": {
|
||
"main": [
|
||
[
|
||
{
|
||
"node": "Edit Fields",
|
||
"type": "main",
|
||
"index": 0
|
||
}
|
||
]
|
||
]
|
||
}
|
||
}
|
||
} |