8
n8n 中文网amn8n.com

使用GPT-5 Mini、Jira和表单界面自动化敏捷项目设置

高级

这是一个Multimodal AI领域的自动化工作流,包含 42 个节点。主要使用 Set, Jira, Gmail, Limit, Merge 等节点。 使用GPT-5 Mini、Jira和表单界面自动化敏捷项目设置

前置要求
  • Google 账号和 Gmail API 凭证
  • 可能需要目标 API 的认证凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "d1786ab0d745a7498abf13a9c2cdabb1374c006e889b79eef64ce0386b8f8a41"
  },
  "nodes": [
    {
      "id": "437ca695-4819-42a9-bd4d-acfaf65b0d32",
      "name": "点击“测试工作流”时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -3580,
        200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7e3b7bf0-dc63-4e6e-b867-4ebf173a016d",
      "name": "表单提交时",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -3580,
        -80
      ],
      "webhookId": "acdbaaf3-4030-4459-a5a9-4d552bc23a4a",
      "parameters": {
        "options": {},
        "formTitle": "Jira Full Project Generator",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Project Name",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Project Full Features",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f616ce48-7636-4abc-b5de-67d01de03501",
      "name": "OpenAI 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -700,
        260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini",
          "cachedResultName": "gpt-5-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "MGwGMKEkdcjzlYCw",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "fc44a4e8-a301-48dc-b9f7-a09f639844f0",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -500,
        260
      ],
      "parameters": {
        "jsonSchemaExample": "[\n  {\n    \"story_title\": \"As a [user], I want to [goal], so that [benefit]\",\n    \"story_description\": \"Describe what the user needs and why this feature matters to the business or experience.\",\n    \"epic\": \"Optional Epic Name\",\n    \"sub_tasks\": [\n      {\n        \"title\": \"Design UI for the feature\",\n        \"description\": \"Create wireframes and visual designs for the new feature, ensuring usability and responsiveness.\"\n      },\n      {\n        \"title\": \"Implement frontend logic using React\",\n        \"description\": \"Develop the UI components and integrate them with the application state using React.\"\n      },\n      {\n        \"title\": \"Build backend API endpoint\",\n        \"description\": \"Create the necessary API endpoints using appropriate frameworks to handle feature data.\"\n      },\n      {\n        \"title\": \"Write unit tests\",\n        \"description\": \"Develop unit tests for both frontend and backend components to ensure correctness and reliability.\"\n      },\n      {\n        \"title\": \"Perform integration testing\",\n        \"description\": \"Test how different components interact and ensure the overall feature functions as expected.\"\n      },\n      {\n        \"title\": \"Update project documentation\",\n        \"description\": \"Document the feature’s design, usage instructions, and API endpoints in the project’s knowledge base.\"\n      }\n    ]\n  },\n  {\n    \"story_title\": \"As a [user], I want to [another goal], so that [another benefit]\",\n    \"story_description\": \"Explain why this goal is needed and how it improves user experience or system functionality.\",\n    \"epic\": \"Same or another epic name\",\n    \"sub_tasks\": [\n      {\n        \"title\": \"Task A title\",\n        \"description\": \"Brief but complete description of Task A.\"\n      },\n      {\n        \"title\": \"Task B title\",\n        \"description\": \"Brief but complete description of Task B.\"\n      },\n      {\n        \"title\": \"Task C title\",\n        \"description\": \"Brief but complete description of Task C.\"\n      }\n    ]\n  }\n]"
      },
      "typeVersion": 1.2
    },
    {
      "id": "6b1c7dcb-8ef0-4e87-a116-6d757dfdb089",
      "name": "遍历项目",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        0,
        100
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "70df1f92-7042-400c-a022-6056ac631c4e",
      "name": "拆分输出",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -280,
        80
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "output"
      },
      "typeVersion": 1
    },
    {
      "id": "f44c306d-7ad8-44b7-9682-cd9a3a0d04de",
      "name": "创建项目",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2360,
        100
      ],
      "parameters": {
        "url": "https://nodemationhub.atlassian.net/rest/api/3/project",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"key\": \"{{ $('Project Naming').item.json.output.project_key }}\",\n  \"name\": \"{{ $('Project Naming').item.json.output.project_name }}\",\n  \"projectTypeKey\": \"software\",\n  \"projectTemplateKey\": \"com.pyxis.greenhopper.jira:gh-simplified-agility-scrum\",\n  \"description\": \"Project created via n8n\",\n  \"leadAccountId\": \"5e9e80770d58350c2be60166\", \n  \"assigneeType\": \"PROJECT_LEAD\"\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "jiraSoftwareCloudApi"
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "eLBjV5VAQ7XxyjyY",
          "name": "Jira SW Cloud account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "12ac8921-14ab-4d14-b89a-570b546370a8",
      "name": "结构化输出解析器1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1900,
        400
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"project_name\": \"Clean and professional project name here\",\n  \"project_description\": \"Clear and concise one-paragraph description of the project with technical clarity and business relevance.\",\n  \"project_key\": \"ABCDE\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "3c07cc6e-9f1b-44a6-8622-2f995679d9d6",
      "name": "项目命名",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -3260,
        100
      ],
      "parameters": {
        "text": "=You are a naming expert and technical writer.  \nYour task is to clean up and enhance the following rough input into a professional-sounding **project name** and **concise, clear project description**, and generate a suitable **Jira project key**.\n\nThe project key must be 5 uppercase letters, randomly generated and not necessarily related to the project name. For example, it could be \"XQJTR\" or \"MBZKD\"\n\nReturn only the result in JSON format with three fields: `project_name`, `project_description`, and `project_key`.\n\n---\n\n### Input:\nRaw Project Name: `{{ $json['Project Name'] }}`  \nRaw Project Description: `{{ $json['Project Full Features'] }}`\n\n---\n\n### Output format:\n```json\n{\n  \"project_name\": \"Clean and professional project name here\",\n  \"project_description\": \"Clear and concise one-paragraph description of the project with technical clarity and business relevance.\",\n  \"project_key\": \"ABCDE\"\n}\n```\n\nOnly return the JSON. Do not include any commentary or explanation.\n",
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.6
    },
    {
      "id": "974e678e-7267-42d3-ae7c-fe65eec46bbd",
      "name": "检查项目密钥并获取状态 ID",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -2600,
        100
      ],
      "parameters": {
        "url": "=https://nodemationhub.atlassian.net/rest/api/3/project/{{ $('Set Jira URL').item.json['Jira url'] }}",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "jiraSoftwareCloudApi"
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "eLBjV5VAQ7XxyjyY",
          "name": "Jira SW Cloud account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c5e3b150-6db2-4cdb-9543-00ef8110ed13",
      "name": "获取状态 ID",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -2140,
        100
      ],
      "parameters": {
        "url": "=https://nodemationhub.atlassian.net/rest/api/3/project/{{ $json.key }}",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "jiraSoftwareCloudApi"
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "eLBjV5VAQ7XxyjyY",
          "name": "Jira SW Cloud account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5660be4c-19f2-4b44-8b5c-c20a14aced12",
      "name": "拆分输出1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        720,
        100
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "sub_tasks"
      },
      "typeVersion": 1
    },
    {
      "id": "14129b11-aaba-4fcd-bea6-c796f3fe71d9",
      "name": "创建故事",
      "type": "n8n-nodes-base.jira",
      "position": [
        240,
        180
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Get Status ID').item.json.id }}"
        },
        "summary": "={{ $json.story_title }}",
        "issueType": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $('Jira Issue ID').item.json[\"story id\"] }}"
        },
        "additionalFields": {
          "description": "={{ $json.story_description }}"
        }
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "eLBjV5VAQ7XxyjyY",
          "name": "Jira SW Cloud account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "16ddae67-4e53-48b0-a928-6053798b53e1",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        460,
        560
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.1
    },
    {
      "id": "3d64bb50-6887-46cd-b6cf-f6c84160c82c",
      "name": "限制",
      "type": "n8n-nodes-base.limit",
      "position": [
        -200,
        400
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1507418d-2328-4126-b188-ba3ee8a54c66",
      "name": "聚合",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        200,
        -100
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {}
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "57987e01-7da1-4615-b70f-43a19d785e4d",
      "name": "过滤器",
      "type": "n8n-nodes-base.filter",
      "position": [
        -1640,
        80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2fb0dfa5-853a-4970-8d6a-26d26852c4a8",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.name }}",
              "rightValue": "Story"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "a26ab23f-11c0-4957-ac16-04b23994416f",
      "name": "过滤器1",
      "type": "n8n-nodes-base.filter",
      "position": [
        -1640,
        260
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2fb0dfa5-853a-4970-8d6a-26d26852c4a8",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.name }}",
              "rightValue": "Subtask"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d6a7c1ab-958b-4f8f-add0-d1d326278535",
      "name": "拆分输出4",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -1800,
        80
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "issueTypes"
      },
      "typeVersion": 1
    },
    {
      "id": "8de2bd70-f220-4022-b2cf-876c7532ffa6",
      "name": "限制2",
      "type": "n8n-nodes-base.limit",
      "position": [
        -1440,
        80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "74f719d4-3db2-4c5e-8566-9f9842678428",
      "name": "限制3",
      "type": "n8n-nodes-base.limit",
      "position": [
        -1440,
        260
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d8a51ff0-807a-4d25-b048-43c19738ca42",
      "name": "Jira 故事状态 ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -1220,
        80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1b64c7dd-dcfb-4550-b6ff-851c0d319070",
              "name": "story id",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "5d2997aa-9b19-4c08-bc40-34ab6a9834cc",
      "name": "Jira 子任务状态 ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -1220,
        260
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1b64c7dd-dcfb-4550-b6ff-851c0d319070",
              "name": "task id",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "eb86e993-152b-4525-8591-f889b3954b5b",
      "name": "Jira 问题 ID",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1020,
        180
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.1
    },
    {
      "id": "55eb4c0f-0657-45ce-a355-a48455c36626",
      "name": "当由其他工作流执行时",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        1160,
        580
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "story_id"
            },
            {
              "name": "key"
            },
            {
              "name": "subtask_title"
            },
            {
              "name": "subtask_description"
            },
            {
              "name": "project_id"
            },
            {
              "name": "subtask_type"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "0e8622d4-2d53-4413-aa92-f17b54a06057",
      "name": "创建子任务",
      "type": "n8n-nodes-base.jira",
      "position": [
        1720,
        580
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.project_id }}"
        },
        "summary": "={{ $json.subtask_title }}",
        "issueType": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.subtask_type }}"
        },
        "additionalFields": {
          "description": "={{ $json.subtask_description }}",
          "parentIssueKey": "={{ $json.key }}"
        }
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "eLBjV5VAQ7XxyjyY",
          "name": "Jira SW Cloud account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f59e37d0-f2cd-4b5e-8231-213420143407",
      "name": "遍历项目1循环",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1420,
        580
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "5c44b6b4-25c2-4fa8-92c8-374b2b823de0",
      "name": "便签 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -940,
        -860
      ],
      "parameters": {
        "color": 4,
        "width": 380,
        "height": 760,
        "content": "# 👋 你好,我是 Billy"
      },
      "typeVersion": 1
    },
    {
      "id": "9ee76aee-e9ba-4ce1-8493-4ed125defa97",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2840,
        -440
      ],
      "parameters": {
        "color": 4,
        "width": 780,
        "height": 340,
        "content": "## 需要设置"
      },
      "typeVersion": 1
    },
    {
      "id": "7eacbd69-8bf5-4739-a4e4-b7506b91a482",
      "name": "便签 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2840,
        -860
      ],
      "parameters": {
        "color": 4,
        "width": 780,
        "height": 400,
        "content": "## 使用 GPT-5 的表单界面 JIRA 项目生成器和 JIRA 故事创建器"
      },
      "typeVersion": 1
    },
    {
      "id": "c2db7332-eb11-4c4e-8e03-4ed9634ff817",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2000,
        -440
      ],
      "parameters": {
        "color": 4,
        "width": 980,
        "height": 340,
        "content": "## 工作流流程概述"
      },
      "typeVersion": 1
    },
    {
      "id": "13a9d4b6-f175-4de1-8deb-d2d7ab99c3c5",
      "name": "便签 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2640,
        -20
      ],
      "parameters": {
        "color": 4,
        "width": 620,
        "height": 300,
        "content": "## 创建项目流程"
      },
      "typeVersion": 1
    },
    {
      "id": "3cdb986d-69d7-41b8-ae77-d3bda9dee5c2",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -740,
        -40
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 280,
        "content": "## Jira 票据生成器"
      },
      "typeVersion": 1
    },
    {
      "id": "5c7d7e57-c431-4642-9662-88b3e21ee8a7",
      "name": "Jira 故事生成器",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -660,
        80
      ],
      "parameters": {
        "text": "=You are a professional Agile project manager and software architect.  \nBased on the following input, generate a detailed list of user stories and their corresponding sub-tasks in **clean JSON format**, ready to be used in Jira.\n\nEach story should follow Agile best practices, structured as:  \n**\"As a [user], I want to [goal], so that [reason]\"**.\n\nEach story and sub-task must include:\n- A **clear and concise title**\n- A **short but detailed description** (1–3 sentences)\n\n---\n\n### Input:\n**Project Name**: `{{ $('When clicking ‘Test workflow’').item.json['Project Name'] }}`  \n**Full Project Feature Description**:  \n`{{ $('When clicking ‘Test workflow’').item.json['Project Full Features'] }}`\n\n---\n\n### Output format:\n```json\n[\n  {\n    \"story_title\": \"As a [user], I want to [goal], so that [benefit]\",\n    \"story_description\": \"Describe what the user needs and why this feature matters to the business or experience.\",\n    \"epic\": \"Optional Epic Name\",\n    \"sub_tasks\": [\n      {\n        \"title\": \"Design UI for the feature\",\n        \"description\": \"Create wireframes and visual designs for the new feature, ensuring usability and responsiveness.\"\n      },\n      {\n        \"title\": \"Implement frontend logic using React\",\n        \"description\": \"Develop the UI components and integrate them with the application state using React.\"\n      },\n      {\n        \"title\": \"Build backend API endpoint\",\n        \"description\": \"Create the necessary API endpoints using appropriate frameworks to handle feature data.\"\n      },\n      {\n        \"title\": \"Write unit tests\",\n        \"description\": \"Develop unit tests for both frontend and backend components to ensure correctness and reliability.\"\n      },\n      {\n        \"title\": \"Perform integration testing\",\n        \"description\": \"Test how different components interact and ensure the overall feature functions as expected.\"\n      },\n      {\n        \"title\": \"Update project documentation\",\n        \"description\": \"Document the feature’s design, usage instructions, and API endpoints in the project’s knowledge base.\"\n      }\n    ]\n  },\n  {\n    \"story_title\": \"As a [user], I want to [another goal], so that [another benefit]\",\n    \"story_description\": \"Explain why this goal is needed and how it improves user experience or system functionality.\",\n    \"epic\": \"Same or another epic name\",\n    \"sub_tasks\": [\n      {\n        \"title\": \"Task A title\",\n        \"description\": \"Brief but complete description of Task A.\"\n      },\n      {\n        \"title\": \"Task B title\",\n        \"description\": \"Brief but complete description of Task B.\"\n      },\n      {\n        \"title\": \"Task C title\",\n        \"description\": \"Brief but complete description of Task C.\"\n      }\n    ]\n  }\n]\n",
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.6
    },
    {
      "id": "e5283ece-c93f-4e26-bd18-edb44a738566",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        -220
      ],
      "parameters": {
        "color": 4,
        "width": 440,
        "height": 280,
        "content": "## Gmail - 发送通知"
      },
      "typeVersion": 1
    },
    {
      "id": "a1bc89b7-03c8-44df-8117-4e53cc1ac374",
      "name": "Gmail - 发送通知",
      "type": "n8n-nodes-base.gmail",
      "position": [
        380,
        -100
      ],
      "webhookId": "50d0ac6a-772b-4ec3-88a1-2d234afa56d4",
      "parameters": {
        "sendTo": "n8n_test_result_replace_me@yopmail.com",
        "message": "={{ $('Project Naming').first().json.output.project_name }} is successfully generated on Jira\nProject ID: {{ $('Create Project').first().json.id }}\nProject Key: {{ $('Create Project').first().json.key }}\nProject Link: https://nodemationhub.atlassian.net/jira/servicedesk/projects/{{ $('Create Project').first().json.key }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "Project successfully generated",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "CeBpTZBQSAMKVKJY",
          "name": "Gmail account (Billy Email 2)"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "0269710e-0785-4681-9da5-ad4d9b8a193c",
      "name": "设置 Jira URL",
      "type": "n8n-nodes-base.set",
      "position": [
        -2860,
        100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "31fe9b8d-1cea-40e8-9381-453bea1d2ad1",
              "name": "Jira url",
              "type": "string",
              "value": "https://nodemationhub.atlassian.net"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "a521d267-7c7f-4f8f-a3f5-710169392a9d",
      "name": "设置数组子任务",
      "type": "n8n-nodes-base.set",
      "position": [
        500,
        100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b65992ed-e101-4975-9c54-fb6e13d1fd40",
              "name": "sub_tasks",
              "type": "array",
              "value": "={{ $('Loop Over Items').item.json.sub_tasks }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "8210520b-f9ab-4b1a-8b31-3bcc2cc1130f",
      "name": "便签7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2940,
        0
      ],
      "parameters": {
        "color": 4,
        "width": 260,
        "height": 260,
        "content": "使用您的 Jira 实例 URL 更新 Jira URL(示例:https://testproject.atlassian.net)"
      },
      "typeVersion": 1
    },
    {
      "id": "d38423f7-1a04-42de-8d5b-65c912d1f32c",
      "name": "便签8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1840,
        -20
      ],
      "parameters": {
        "color": 4,
        "width": 980,
        "height": 480,
        "content": "## 获取故事和子任务的问题 ID"
      },
      "typeVersion": 1
    },
    {
      "id": "24d11677-ed13-412d-8f74-0b56efdec1f5",
      "name": "执行子任务创建器工作流",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        920,
        580
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "YeXZlTxxL8OaYXWN",
          "cachedResultName": "Jira Project Generator Template"
        },
        "workflowInputs": {
          "value": {
            "key": "={{ $json.key }}",
            "story_id": "={{ $json.id }}",
            "project_id": "={{ $('Get Status ID').item.json.id }}",
            "subtask_type": "={{ $('Jira Issue ID').item.json[\"task id\"] }}",
            "subtask_title": "={{ $json.title }}",
            "subtask_description": "={{ $json.description }}"
          },
          "schema": [
            {
              "id": "story_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "story_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "key",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "key",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "subtask_title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "subtask_title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "subtask_description",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "subtask_description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "project_id",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "project_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "subtask_type",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "subtask_type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "fc0bca3f-2050-46ee-b275-8c8f215dbcba",
      "name": "便签9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        440
      ],
      "parameters": {
        "color": 4,
        "width": 800,
        "height": 400,
        "content": "## 子任务创建器工作流"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {
    "When Executed by Another Workflow": [
      {
        "key": "JGTLW-1",
        "story_id": "10495",
        "project_id": "10165",
        "subtask_type": "10170",
        "subtask_title": "Design UI for adaptive goal creation flow",
        "subtask_description": "Create wireframes and mockups for the adaptive goal setup and progress-tracking screens."
      },
      {
        "key": "JGTLW-1",
        "story_id": "10495",
        "project_id": "10165",
        "subtask_type": "10170",
        "subtask_title": "Implement adaptive goal logic on the frontend",
        "subtask_description": "Develop the React components that let users create, view, and adjust their personalized fitness goals."
      },
      {
        "key": "JGTLW-1",
        "story_id": "10495",
        "project_id": "10165",
        "subtask_type": "10170",
        "subtask_title": "Build backend logic for adaptive goal adjustments",
        "subtask_description": "Develop backend algorithms and endpoints to evaluate user data and update goals dynamically over time."
      },
      {
        "key": "JGTLW-1",
        "story_id": "10495",
        "project_id": "10165",
        "subtask_type": "10170",
        "subtask_title": "Write unit tests for adaptive goal components",
        "subtask_description": "Ensure all critical logic is covered with unit tests for both client-side and server-side functionality."
      },
      {
        "key": "JGTLW-1",
        "story_id": "10495",
        "project_id": "10165",
        "subtask_type": "10170",
        "subtask_title": "Perform integration and behavior-based testing",
        "subtask_description": "Test how users interact with adaptive goals over time and validate correctness of data and suggestions."
      },
      {
        "key": "JGTLW-1",
        "story_id": "10495",
        "project_id": "10165",
        "subtask_type": "10170",
        "subtask_title": "Document adaptive goals feature implementation",
        "subtask_description": "Update internal and user-facing documentation detailing how adaptive goal logic works and how to use it."
      }
    ],
    "When clicking ‘Test workflow’": [
      {
        "formMode": "test",
        "submittedAt": "2025-07-31T13:06:47.458+08:00",
        "Project Name": "Daily planner schedule - Daily planner project",
        "Project Full Features": "Daily planner schedule - Daily planner project"
      }
    ]
  },
  "connections": {
    "Limit": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Execute Sub-task creator Workflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Limit2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit2": {
      "main": [
        [
          {
            "node": "Jira Story Status ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit3": {
      "main": [
        [
          {
            "node": "Jira Sub-task Status ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter1": {
      "main": [
        [
          {
            "node": "Limit3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Gmail - Send Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Split Out4": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          },
          {
            "node": "Filter1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Story": {
      "main": [
        [
          {
            "node": "Set Array Sub Tasks",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Jira URL": {
      "main": [
        [
          {
            "node": "Check Project Key & Get Status ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Status ID": {
      "main": [
        [
          {
            "node": "Split Out4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Jira Issue ID": {
      "main": [
        [
          {
            "node": "Jira Story Generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Project": {
      "main": [
        [
          {
            "node": "Get Status ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Project Naming": {
      "main": [
        [
          {
            "node": "Set Jira URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Sub Task": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Story",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [],
        [
          {
            "node": "Create Sub Task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Project Naming",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Jira Story Generator",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Project Naming",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Array Sub Tasks": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Jira Story Generator": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Jira Story Status ID": {
      "main": [
        [
          {
            "node": "Jira Issue ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Jira Sub-task Status ID": {
      "main": [
        [
          {
            "node": "Jira Issue ID",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Jira Story Generator",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Project Naming",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Check Project Key & Get Status ID": {
      "main": [
        [
          {
            "node": "Create Project",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute Sub-task creator Workflow": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Project Naming",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量42
分类1
节点类型18
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Billy Christi

Billy Christi

@billy

I build scalable automation systems with n8n to help businesses save time and cut costs. 💼 n8n expert available for new projects 📩 billychartanto@gmail.com

外部链接
在 n8n.io 查看

分享此工作流