Automatización de la configuración de proyectos ágiles usando GPT-5 Mini, Jira y una interfaz de formularios
Este es unMultimodal AIflujo de automatización del dominio deautomatización que contiene 42 nodos.Utiliza principalmente nodos como Set, Jira, Gmail, Limit, Merge. Usar GPT-5 Mini, Jira e interfaz de formularios para automatizar la configuración de proyectos ágiles
- •Cuenta de Google y credenciales de API de Gmail
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Clave de API de OpenAI
Nodos utilizados (42)
Categoría
{
"meta": {
"instanceId": "d1786ab0d745a7498abf13a9c2cdabb1374c006e889b79eef64ce0386b8f8a41"
},
"nodes": [
{
"id": "437ca695-4819-42a9-bd4d-acfaf65b0d32",
"name": "Al hacer clic en 'Probar flujo de trabajo'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-3580,
200
],
"parameters": {},
"typeVersion": 1
},
{
"id": "7e3b7bf0-dc63-4e6e-b867-4ebf173a016d",
"name": "Al enviar el formulario",
"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": "Modelo de chat 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": "Structured Output Parser",
"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": "Recorrer elementos",
"type": "n8n-nodes-base.splitInBatches",
"position": [
0,
100
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "70df1f92-7042-400c-a022-6056ac631c4e",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
-280,
80
],
"parameters": {
"options": {},
"fieldToSplitOut": "output"
},
"typeVersion": 1
},
{
"id": "f44c306d-7ad8-44b7-9682-cd9a3a0d04de",
"name": "Create Project",
"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": "Structured Output Parser1",
"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": "Project Naming",
"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": "Check Project Key & Get Status 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": "Get Status 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": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
720,
100
],
"parameters": {
"options": {},
"fieldToSplitOut": "sub_tasks"
},
"typeVersion": 1
},
{
"id": "14129b11-aaba-4fcd-bea6-c796f3fe71d9",
"name": "Create Story",
"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": "Fusionar",
"type": "n8n-nodes-base.merge",
"position": [
460,
560
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3.1
},
{
"id": "3d64bb50-6887-46cd-b6cf-f6c84160c82c",
"name": "Limitar",
"type": "n8n-nodes-base.limit",
"position": [
-200,
400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1507418d-2328-4126-b188-ba3ee8a54c66",
"name": "Agregar",
"type": "n8n-nodes-base.aggregate",
"position": [
200,
-100
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{}
]
}
},
"typeVersion": 1
},
{
"id": "57987e01-7da1-4615-b70f-43a19d785e4d",
"name": "Filtrar",
"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": "Filtrar1",
"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": "Split Out4",
"type": "n8n-nodes-base.splitOut",
"position": [
-1800,
80
],
"parameters": {
"options": {},
"fieldToSplitOut": "issueTypes"
},
"typeVersion": 1
},
{
"id": "8de2bd70-f220-4022-b2cf-876c7532ffa6",
"name": "Limitar2",
"type": "n8n-nodes-base.limit",
"position": [
-1440,
80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "74f719d4-3db2-4c5e-8566-9f9842678428",
"name": "Limitar3",
"type": "n8n-nodes-base.limit",
"position": [
-1440,
260
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d8a51ff0-807a-4d25-b048-43c19738ca42",
"name": "Jira Story Status 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 Sub-task Status 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 Issue 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": "When Executed by Another Workflow",
"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": "Create Sub Task",
"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": "Recorrer elementos1",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1420,
580
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "5c44b6b4-25c2-4fa8-92c8-374b2b823de0",
"name": "Nota adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-940,
-860
],
"parameters": {
"color": 4,
"width": 380,
"height": 760,
"content": "# 👋 Hi, I’m Billy\n\nI help businesses build **n8n workflows** & **AI automation projects**. \nNeed help with n8n or AI Automation projects? \nContact me and let’s build your automation together.\n\n📩 **Email:** billychartanto@gmail.com \n🤝 **n8n Creator:** [n8n.io/creators/billy](https://n8n.io/creators/billy/)\n🌐 **My n8n Projects:** [billychristi.com/n8n](https://www.billychristi.com/n8n) \n\n\n\n---\n💡 Feel free to get in touch if you’d like help on your next automation project or if you have any feedback or thoughts to share.\n"
},
"typeVersion": 1
},
{
"id": "9ee76aee-e9ba-4ce1-8493-4ed125defa97",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2840,
-440
],
"parameters": {
"color": 4,
"width": 780,
"height": 340,
"content": "## SETUP REQUIRED\n\nWorkflow Configurations:\n- Configure your Jira instance URL in the HTTP Request nodes\n- Update the email address in the Gmail notification node to match your preferred recipient\n- Adjust the user account ID in the Create Project node for the project lead assignment\n- Modify the JSON schema examples in the Structured Output Parser if you need different story formats\n\nRequired Credentials:\n- Jira Software Cloud API Credential\n- OpenAI API Key\n- Gmail OAuth2 Credential"
},
"typeVersion": 1
},
{
"id": "7eacbd69-8bf5-4739-a4e4-b7506b91a482",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2840,
-860
],
"parameters": {
"color": 4,
"width": 780,
"height": 400,
"content": "## JIRA Project Generator & JIRA Story Creator with Form Interface using GPT-5\n\nWhat This Template Does:\n\n- Accepts project input through either a web form or manual trigger with project name and feature descriptions\n- Uses OpenAI's GPT-5 model to intelligently clean and structure project information into professional naming and descriptions\n- Automatically creates a new Jira project with proper configuration and templates\n- Generates comprehensive user stories following Agile best practices with \"As a [user], I want to [goal], so that [benefit]\" format\n- Creates detailed sub-tasks for each user story covering design, development, testing, and documentation phases\n- Automatically creates all stories and sub-tasks in the newly generated Jira project\n- Sends email notifications with project details and links upon successful completion\n- Supports both manual testing workflow execution and form-based project submissions "
},
"typeVersion": 1
},
{
"id": "c2db7332-eb11-4c4e-8e03-4ed9634ff817",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2000,
-440
],
"parameters": {
"color": 4,
"width": 980,
"height": 340,
"content": "## WORKFLOW PROCESS OVERVIEW\n\nStep 1: Form Trigger or Manual Trigger collects project name and full feature descriptions from user input\nStep 2: Project Naming uses AI to clean and enhance the raw project name into professional format and generates random 5-letter project key\nStep 3: Check Project Key validates that the generated project key doesn't already exist in Jira\nStep 4: Create Project establishes new Jira project with software template and proper configuration settings\nStep 5: Get Status ID retrieves project details and available issue types for story and sub-task creation\nStep 6: Jira Ticket Generator uses AI to analyze project features and generate structured user stories with sub-tasks in JSON format\nStep 7: Split Out processes the generated stories array for individual story creation\nStep 8: Loop Over Items iterates through each user story for systematic processing\nStep 9: Create Story generates individual Jira stories with proper titles, descriptions, and issue type assignments\nStep 10: Execute Workflow triggers sub-workflow to create all associated sub-tasks for each story\nStep 11: Gmail sends completion notification email with project details and direct Jira links for easy access"
},
"typeVersion": 1
},
{
"id": "13a9d4b6-f175-4de1-8deb-d2d7ab99c3c5",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2640,
-20
],
"parameters": {
"color": 4,
"width": 620,
"height": 300,
"content": "## Create Project Process\nConfiguration:\nUpdate the Jira credentials with yours."
},
"typeVersion": 1
},
{
"id": "3cdb986d-69d7-41b8-ae77-d3bda9dee5c2",
"name": "Nota adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-740,
-40
],
"parameters": {
"color": 4,
"width": 400,
"height": 280,
"content": "## Jira Ticket Generator\nThis is where the story is generated.\nYou can adjust the model & prompt based on your use case."
},
"typeVersion": 1
},
{
"id": "5c7d7e57-c431-4642-9662-88b3e21ee8a7",
"name": "Jira Story Generator",
"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": "Nota adhesiva6",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
-220
],
"parameters": {
"color": 4,
"width": 440,
"height": 280,
"content": "## Gmail - Send Notification\nYou can adjust the subject & body of the notification here.\nAlso, update the recipient email."
},
"typeVersion": 1
},
{
"id": "a1bc89b7-03c8-44df-8117-4e53cc1ac374",
"name": "Gmail - Send Notification",
"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": "Establecer 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": "Establecer Array Sub Tasks",
"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": "Nota adhesiva7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2940,
0
],
"parameters": {
"color": 4,
"width": 260,
"height": 260,
"content": "Update the Jira URL with your Jira instance URL (example: https://testproject.atlassian.net)\n"
},
"typeVersion": 1
},
{
"id": "d38423f7-1a04-42de-8d5b-65c912d1f32c",
"name": "Nota adhesiva8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1840,
-20
],
"parameters": {
"color": 4,
"width": 980,
"height": 480,
"content": "## Get Issue ID for Story & Subtask\n"
},
"typeVersion": 1
},
{
"id": "24d11677-ed13-412d-8f74-0b56efdec1f5",
"name": "Execute Sub-task creator Workflow",
"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": "Nota adhesiva9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1120,
440
],
"parameters": {
"color": 4,
"width": 800,
"height": 400,
"content": "## Sub-task creator workflow"
},
"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": "24d11677-ed13-412d-8f74-0b56efdec1f5",
"type": "main",
"index": 0
}
]
]
},
"Filter": {
"main": [
[
{
"node": "Limit2",
"type": "main",
"index": 0
}
]
]
},
"Limit2": {
"main": [
[
{
"node": "d8a51ff0-807a-4d25-b048-43c19738ca42",
"type": "main",
"index": 0
}
]
]
},
"Limit3": {
"main": [
[
{
"node": "5d2997aa-9b19-4c08-bc40-34ab6a9834cc",
"type": "main",
"index": 0
}
]
]
},
"Filter1": {
"main": [
[
{
"node": "Limit3",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "a1bc89b7-03c8-44df-8117-4e53cc1ac374",
"type": "main",
"index": 0
}
]
]
},
"70df1f92-7042-400c-a022-6056ac631c4e": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"5660be4c-19f2-4b44-8b5c-c20a14aced12": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"d6a7c1ab-958b-4f8f-add0-d1d326278535": {
"main": [
[
{
"node": "Filter",
"type": "main",
"index": 0
},
{
"node": "Filter1",
"type": "main",
"index": 0
}
]
]
},
"14129b11-aaba-4fcd-bea6-c796f3fe71d9": {
"main": [
[
{
"node": "Set Array Sub Tasks",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Set Jira URL": {
"main": [
[
{
"node": "974e678e-7267-42d3-ae7c-fe65eec46bbd",
"type": "main",
"index": 0
}
]
]
},
"c5e3b150-6db2-4cdb-9543-00ef8110ed13": {
"main": [
[
{
"node": "d6a7c1ab-958b-4f8f-add0-d1d326278535",
"type": "main",
"index": 0
}
]
]
},
"eb86e993-152b-4525-8591-f889b3954b5b": {
"main": [
[
{
"node": "5c7d7e57-c431-4642-9662-88b3e21ee8a7",
"type": "main",
"index": 0
}
]
]
},
"f44c306d-7ad8-44b7-9682-cd9a3a0d04de": {
"main": [
[
{
"node": "c5e3b150-6db2-4cdb-9543-00ef8110ed13",
"type": "main",
"index": 0
}
]
]
},
"3c07cc6e-9f1b-44a6-8622-2f995679d9d6": {
"main": [
[
{
"node": "Set Jira URL",
"type": "main",
"index": 0
}
]
]
},
"0e8622d4-2d53-4413-aa92-f17b54a06057": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
],
[
{
"node": "14129b11-aaba-4fcd-bea6-c796f3fe71d9",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items1": {
"main": [
[],
[
{
"node": "0e8622d4-2d53-4413-aa92-f17b54a06057",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "3c07cc6e-9f1b-44a6-8622-2f995679d9d6",
"type": "ai_languageModel",
"index": 0
},
{
"node": "5c7d7e57-c431-4642-9662-88b3e21ee8a7",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"7e3b7bf0-dc63-4e6e-b867-4ebf173a016d": {
"main": [
[
{
"node": "3c07cc6e-9f1b-44a6-8622-2f995679d9d6",
"type": "main",
"index": 0
}
]
]
},
"Set Array Sub Tasks": {
"main": [
[
{
"node": "5660be4c-19f2-4b44-8b5c-c20a14aced12",
"type": "main",
"index": 0
}
]
]
},
"5c7d7e57-c431-4642-9662-88b3e21ee8a7": {
"main": [
[
{
"node": "70df1f92-7042-400c-a022-6056ac631c4e",
"type": "main",
"index": 0
}
]
]
},
"d8a51ff0-807a-4d25-b048-43c19738ca42": {
"main": [
[
{
"node": "eb86e993-152b-4525-8591-f889b3954b5b",
"type": "main",
"index": 0
}
]
]
},
"5d2997aa-9b19-4c08-bc40-34ab6a9834cc": {
"main": [
[
{
"node": "eb86e993-152b-4525-8591-f889b3954b5b",
"type": "main",
"index": 1
}
]
]
},
"fc44a4e8-a301-48dc-b9f7-a09f639844f0": {
"ai_outputParser": [
[
{
"node": "5c7d7e57-c431-4642-9662-88b3e21ee8a7",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"12ac8921-14ab-4d14-b89a-570b546370a8": {
"ai_outputParser": [
[
{
"node": "3c07cc6e-9f1b-44a6-8622-2f995679d9d6",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"974e678e-7267-42d3-ae7c-fe65eec46bbd": {
"main": [
[
{
"node": "f44c306d-7ad8-44b7-9682-cd9a3a0d04de",
"type": "main",
"index": 0
}
]
]
},
"24d11677-ed13-412d-8f74-0b56efdec1f5": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"55eb4c0f-0657-45ce-a355-a48455c36626": {
"main": [
[
{
"node": "Loop Over Items1",
"type": "main",
"index": 0
}
]
]
},
"437ca695-4819-42a9-bd4d-acfaf65b0d32": {
"main": [
[
{
"node": "3c07cc6e-9f1b-44a6-8622-2f995679d9d6",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Billy Christi
@billyI build scalable automation systems with n8n to help businesses save time and cut costs. 💼 n8n expert available for new projects 📩 billychartanto@gmail.com
Compartir este flujo de trabajo