feat: add folder support for workflows (fixes #70)
This commit is contained in:
@@ -0,0 +1,373 @@
|
||||
{
|
||||
"id": "aVTi7K9mFjK5OjAV",
|
||||
"meta": {
|
||||
"instanceId": "b3a8efae31a34c2224655b66499bee098263a56d266da574e8820468780b7ddd"
|
||||
},
|
||||
"name": "OpenAI Assistant with custom n8n tools",
|
||||
"tags": [],
|
||||
"nodes": [
|
||||
{
|
||||
"id": "d15e7634-408b-43c5-a8d6-afcbc83479a9",
|
||||
"name": "On new manual Chat Message",
|
||||
"type": "@n8n/n8n-nodes-langchain.manualChatTrigger",
|
||||
"position": [
|
||||
600,
|
||||
300
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1.1
|
||||
},
|
||||
{
|
||||
"id": "5d9ad043-adbe-4970-aa4e-b81dfcb9e255",
|
||||
"name": "OpenAI Assistant",
|
||||
"type": "@n8n/n8n-nodes-langchain.openAiAssistant",
|
||||
"position": [
|
||||
820,
|
||||
300
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"assistantId": "asst_BWy0154vMGMdrX7MjCYaYv6a"
|
||||
},
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "au6fQZN7it62DWlS",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "0c3aded2-886d-4c9f-8d6e-2729f12b6711",
|
||||
"name": "Execute Workflow Trigger",
|
||||
"type": "n8n-nodes-base.executeWorkflowTrigger",
|
||||
"position": [
|
||||
600,
|
||||
960
|
||||
],
|
||||
"parameters": {},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "c77010ac-82e6-40f2-92c4-c360d276b896",
|
||||
"name": "Mapping data",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
1080,
|
||||
820
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "return [\n {\n \"country\": \"Wakanda\",\n \"capital\": \"Birnin Zana\"\n },\n {\n \"country\": \"Narnia\",\n \"capital\": \"Cair Paravel\"\n },\n {\n \"country\": \"Gondor\",\n \"capital\": \"Minas Tirith\"\n },\n {\n \"country\": \"Oz\",\n \"capital\": \"The Emerald City\"\n },\n {\n \"country\": \"Westeros\",\n \"capital\": \"King's Landing\"\n },\n {\n \"country\": \"Panem\",\n \"capital\": \"The Capitol\"\n },\n {\n \"country\": \"Ruritania\",\n \"capital\": \"Strelsau\"\n },\n {\n \"country\": \"Mordor\",\n \"capital\": \"Barad-d\u00fbr\"\n },\n {\n \"country\": \"Latveria\",\n \"capital\": \"Doomstadt\"\n },\n {\n \"country\": \"Atlantis\",\n \"capital\": \"Poseidonis\"\n }\n]\n"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "3949d5d8-a8d6-4a21-8e34-fca558ee6a97",
|
||||
"name": "List countries?",
|
||||
"type": "n8n-nodes-base.if",
|
||||
"position": [
|
||||
840,
|
||||
960
|
||||
],
|
||||
"parameters": {
|
||||
"conditions": {
|
||||
"string": [
|
||||
{
|
||||
"value1": "={{ $json.query }}",
|
||||
"value2": "list"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"executeOnce": false,
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "23bd1672-f736-4ac0-abf6-65f5f6aeabac",
|
||||
"name": "Mapping data1",
|
||||
"type": "n8n-nodes-base.code",
|
||||
"position": [
|
||||
840,
|
||||
1160
|
||||
],
|
||||
"parameters": {
|
||||
"jsCode": "return [\n {\n \"country\": \"Wakanda\",\n \"capital\": \"Birnin Zana\"\n },\n {\n \"country\": \"Narnia\",\n \"capital\": \"Cair Paravel\"\n },\n {\n \"country\": \"Gondor\",\n \"capital\": \"Minas Tirith\"\n },\n {\n \"country\": \"Oz\",\n \"capital\": \"The Emerald City\"\n },\n {\n \"country\": \"Westeros\",\n \"capital\": \"King's Landing\"\n },\n {\n \"country\": \"Panem\",\n \"capital\": \"The Capitol\"\n },\n {\n \"country\": \"Ruritania\",\n \"capital\": \"Strelsau\"\n },\n {\n \"country\": \"Mordor\",\n \"capital\": \"Barad-d\u00fbr\"\n },\n {\n \"country\": \"Latveria\",\n \"capital\": \"Doomstadt\"\n },\n {\n \"country\": \"Atlantis\",\n \"capital\": \"Poseidonis\"\n }\n]\n"
|
||||
},
|
||||
"typeVersion": 2
|
||||
},
|
||||
{
|
||||
"id": "ec16de2b-7945-4133-a73d-11d4e42355c2",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
540,
|
||||
741.6494845360827
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1174.6162657502882,
|
||||
"height": 578.9520146851776,
|
||||
"content": "## Sub-workflow: Return the capitals of fictional countries\nIt can either list the countries it knows about or return the capital of a specific country"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "65e659a0-6e1b-4642-b263-59ed2e284ee8",
|
||||
"name": "Return country list",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1520,
|
||||
820
|
||||
],
|
||||
"parameters": {
|
||||
"fields": {
|
||||
"values": [
|
||||
{
|
||||
"name": "response",
|
||||
"stringValue": "={{ $json.concatenated_country }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"include": "none",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3.2
|
||||
},
|
||||
{
|
||||
"id": "65fc898d-0361-461a-9055-9e29bf310336",
|
||||
"name": "Return specific capital",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"position": [
|
||||
1520,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"fields": {
|
||||
"values": [
|
||||
{
|
||||
"name": "response",
|
||||
"stringValue": "={{ $ifEmpty($json.capital, 'Capital not found') }}"
|
||||
}
|
||||
]
|
||||
},
|
||||
"include": "none",
|
||||
"options": {}
|
||||
},
|
||||
"typeVersion": 3.2
|
||||
},
|
||||
{
|
||||
"id": "bdf7c927-deb4-4a73-a015-43797c6cf816",
|
||||
"name": "Tool to call the workflow below",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolWorkflow",
|
||||
"position": [
|
||||
880,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"name": "country_capitals_tool",
|
||||
"workflowId": "={{ $workflow.id }}",
|
||||
"description": "This tool has two modes:\n1. Pass 'list' to the tool to get a list of countries that the tool has the capitals for (one per line). This is useful if you can't find a match, to see if the country being asked about might have been misspelled.\n2. Pass one of the country names in the list to the tool to get the capital of that country. Note that the country must be spelled exactly as it is in the list of countries returned in mode 1"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "4e93323f-d4be-4a49-be24-3f49db39907b",
|
||||
"name": "Concatenate country names",
|
||||
"type": "n8n-nodes-base.summarize",
|
||||
"position": [
|
||||
1300,
|
||||
820
|
||||
],
|
||||
"parameters": {
|
||||
"options": {},
|
||||
"fieldsToSummarize": {
|
||||
"values": [
|
||||
{
|
||||
"field": "country",
|
||||
"separateBy": "\n",
|
||||
"aggregation": "concatenate"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "e2ec1eee-4bb2-4240-82cf-e109b87229eb",
|
||||
"name": "Get the matching country's details",
|
||||
"type": "n8n-nodes-base.merge",
|
||||
"position": [
|
||||
1080,
|
||||
1060
|
||||
],
|
||||
"parameters": {
|
||||
"mode": "combine",
|
||||
"options": {},
|
||||
"joinMode": "enrichInput1",
|
||||
"mergeByFields": {
|
||||
"values": [
|
||||
{
|
||||
"field1": "query",
|
||||
"field2": "country"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"typeVersion": 2.1
|
||||
},
|
||||
{
|
||||
"id": "ed2997be-c709-4eca-bcad-c987bbc160fc",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"position": [
|
||||
540,
|
||||
200
|
||||
],
|
||||
"parameters": {
|
||||
"width": 1168.2339341502545,
|
||||
"height": 487.70693675217734,
|
||||
"content": "## Main workflow: Chat with OpenAI Assistant\nClick the 'Chat' button at the bottom of the screen to try"
|
||||
},
|
||||
"typeVersion": 1
|
||||
},
|
||||
{
|
||||
"id": "01ab30c3-3951-4652-b706-72af1cad4f22",
|
||||
"name": "Tool: Get current date and time",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolCode",
|
||||
"position": [
|
||||
1080,
|
||||
540
|
||||
],
|
||||
"parameters": {
|
||||
"name": "date_tool",
|
||||
"jsCode": "let now = DateTime.now()\nreturn now.toISO()",
|
||||
"description": "Call this tool to get the current timestamp (in ISO format). No parameters necessary"
|
||||
},
|
||||
"typeVersion": 1
|
||||
}
|
||||
],
|
||||
"active": false,
|
||||
"pinData": {
|
||||
"Execute Workflow Trigger": [
|
||||
{
|
||||
"json": {
|
||||
"query": "list"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"settings": {
|
||||
"callerPolicy": "workflowsFromSameOwner",
|
||||
"executionOrder": "v0",
|
||||
"executionTimeout": -1,
|
||||
"saveManualExecutions": true
|
||||
},
|
||||
"versionId": "c867ebb5-ceeb-45a7-ad29-7ee3f1102bed",
|
||||
"connections": {
|
||||
"Mapping data": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Concatenate country names",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Mapping data1": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Get the matching country's details",
|
||||
"type": "main",
|
||||
"index": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"List countries?": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Mapping data",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"node": "Get the matching country's details",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Execute Workflow Trigger": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "List countries?",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Concatenate country names": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Return country list",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"On new manual Chat Message": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "OpenAI Assistant",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Tool to call the workflow below": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "OpenAI Assistant",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Tool: Get current date and time": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "OpenAI Assistant",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Get the matching country's details": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Return specific capital",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,420 @@
|
||||
{
|
||||
"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
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user