8
n8n 한국어amn8n.com

이메일에서 Jira로 자동 티켓 생성기 (AI 기반) with n8n

중급

이것은Project Management, AI Summarization분야의자동화 워크플로우로, 11개의 노드를 포함합니다.주로 Code, Jira, Wait, Gmail, GmailTrigger 등의 노드를 사용하며. Llama 3.2를 활용한 AI 기반 이메일에서 Jira 티켓 생성 시스템

사전 요구사항
  • Google 계정 및 Gmail API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "IIsrIl8ZXuHxxrrN",
  "meta": {
    "instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
    "templateCredsSetupCompleted": true
  },
  "name": "Email-to-Jira Auto Ticket Creator (AI-powered) with n8n",
  "tags": [],
  "nodes": [
    {
      "id": "80da05bf-11e1-4e94-bdc2-c720d2e0149f",
      "name": "전체 이메일 내용 가져오기",
      "type": "n8n-nodes-base.gmail",
      "position": [
        220,
        0
      ],
      "webhookId": "6c809fc4-0532-4094-b32b-43951734fad1",
      "parameters": {
        "simple": false,
        "options": {},
        "messageId": "={{ $json.id }}",
        "operation": "get"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "PcTqvGU9uCunfltE",
          "name": "Gmail account - test"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "c674d95f-f1bb-4244-b894-357d44e95fbb",
      "name": "이메일 분석 및 작업 추출",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        440,
        0
      ],
      "parameters": {
        "text": "={{ $json.text }}",
        "options": {
          "systemMessage": "=You are a Jira assistant.\n\nAnalyze the following email content and generate structured output in **pure JSON** format.\n\nInstructions:\n1. Identify if the email is about a \"feature\" or an \"issue\".\n2. Provide a short but clear summary (`main_ticket`) for the main ticket.\n3. Include a meaningful one-liner (`main_description`) describing the overall goal.\n4. Break down all actionable items into `sub_tasks`, each with:\n   - a short `summary`\n   - a short `description` that elaborates slightly more on the task.\n5. Respond ONLY in a valid JSON object. No extra explanation, no Markdown, no bullet points, no formatting — only raw JSON.\n\nExpected JSON format:\n{\n  \"category\": \"Issue\" | \"Feature\",\n  \"main_ticket\": \"Short summary of the main ticket\",\n  \"main_description\": \"One-liner describing the main ticket goal\",\n  \"sub_tasks\": [\n    {\n      \"summary\": \"Short sub-task summary\",\n      \"description\": \"Slightly more detailed description\"\n    },\n    ...\n  ]\n}\n\nuse think tool also if needed.\nInput:\n{{ $json.text }}\n"
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "51d2c717-4eda-4e1d-a155-eda1729b3c61",
      "name": "AI 도구 - Think Support",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        588,
        220
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5a611d35-2d2f-4508-99b1-c3ea3144b6bf",
      "name": "챗 모델",
      "type": "@n8n/n8n-nodes-langchain.lmChatOllama",
      "position": [
        468,
        220
      ],
      "parameters": {
        "model": "=llama3.2",
        "options": {}
      },
      "credentials": {
        "ollamaApi": {
          "id": "7td3WzXCW2wNhraP",
          "name": "Ollama - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "65448a27-838d-4860-8425-9ea8d9ad363a",
      "name": "AI의 JSON 출력 파싱",
      "type": "n8n-nodes-base.code",
      "position": [
        1036,
        0
      ],
      "parameters": {
        "jsCode": "// Get the raw output from the previous AI Agent node\nconst rawOutput = $input.first().json.output;\n\n// Remove code block wrappers like ```json and ```\nconst cleaned = rawOutput\n  .replace(/^```json/, '')\n  .replace(/```$/, '')\n  .trim();\n\nlet parsed;\ntry {\n  parsed = JSON.parse(cleaned);\n} catch (err) {\n  throw new Error(\"Failed to parse AI output as JSON: \" + err.message);\n}\n\n// Now return the structured data so it can be used by later nodes\nreturn parsed;"
      },
      "typeVersion": 2
    },
    {
      "id": "e590efd2-0fdb-489f-ae41-e27d2b15afcf",
      "name": "스티키 노트",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        -540
      ],
      "parameters": {
        "width": 540,
        "height": 440,
        "content": "📌 Email-to-Jira Auto Ticket Creator (AI-powered) – Overview\n\nThis AI-powered workflow reads emails, understands the request using an LLM, and creates structured Jira issues:\n\nFlow Steps:\n\n📨 Polls for new emails every 5 minutes.\n\n📬 Fetches full email content.\n\n🧠 Analyzes content using AI to understand the issue or feature request.\n\n📊 Parses structured task data (main task + subtasks).\n\n🧾 Creates a main Jira task.\n\n🧾 Creates all related subtasks in Jira under the main task.\n\nPerfect for project teams who get work requests via email and want them converted into actionable Jira tickets automatically."
      },
      "typeVersion": 1
    },
    {
      "id": "4f22474a-0a1a-4902-b357-58aabd8c24c5",
      "name": "새 이메일 확인",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "filters": {
          "sender": "xyz@gmail.com"
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyX",
              "unit": "minutes",
              "value": 5
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "PcTqvGU9uCunfltE",
          "name": "Gmail account - test"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1e32f8e1-844e-45b0-b4ce-3e87b6e462ea",
      "name": "Jira - 메인 이슈 생성",
      "type": "n8n-nodes-base.jira",
      "position": [
        1256,
        0
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "id",
          "value": "10002"
        },
        "summary": "={{ $json.main_ticket }}",
        "issueType": {
          "__rl": true,
          "mode": "list",
          "value": "10008",
          "cachedResultName": "Task"
        },
        "additionalFields": {
          "assignee": {
            "__rl": true,
            "mode": "list",
            "value": "5fec3f15dd5eb501088e0226",
            "cachedResultName": "ajay"
          },
          "description": "={{ $json.main_description }}"
        }
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "cP7JyAE1RB0zcBon",
          "name": "Jira SW Cloud  - test"
        }
      },
      "executeOnce": false,
      "retryOnFail": false,
      "typeVersion": 1
    },
    {
      "id": "291a29fb-bce3-4553-af91-b9be4ab6eb6e",
      "name": "하위 작업 생성",
      "type": "n8n-nodes-base.jira",
      "position": [
        1696,
        0
      ],
      "parameters": {
        "project": {
          "__rl": true,
          "mode": "id",
          "value": "10002"
        },
        "summary": "={{ $json.sub_task.summary }}",
        "issueType": {
          "__rl": true,
          "mode": "list",
          "value": "10010",
          "cachedResultName": "Subtask"
        },
        "additionalFields": {
          "assignee": {
            "__rl": true,
            "mode": "list",
            "value": "5fec3f15dd5eb501088e0226",
            "cachedResultName": "ajay"
          },
          "description": "={{ $json.sub_task.description }}",
          "parentIssueKey": "={{ $('Jira - Create Main Issue').item.json.key }}"
        }
      },
      "credentials": {
        "jiraSoftwareCloudApi": {
          "id": "cP7JyAE1RB0zcBon",
          "name": "Jira SW Cloud  - test"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d2912bbc-177d-4683-b8ec-c54167148931",
      "name": "하위 작업 JSON을 항목으로 분할",
      "type": "n8n-nodes-base.code",
      "position": [
        1476,
        0
      ],
      "parameters": {
        "jsCode": "const subtasks = $('Parse JSON Output from AI\t').first().json.sub_tasks;\n\nreturn subtasks.map(task => {\n  return {\n    json: {\n      sub_task: task\n    }\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "1f1f7172-bc9d-4e48-ac2d-d7f59f396b4a",
      "name": "대기",
      "type": "n8n-nodes-base.wait",
      "position": [
        800,
        0
      ],
      "webhookId": "d5e70f73-8c17-4e02-b029-fe0b3f703c83",
      "parameters": {},
      "typeVersion": 1.1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "5b67825d-b2f8-46f9-ba92-9ea9727c8d22",
  "connections": {
    "1f1f7172-bc9d-4e48-ac2d-d7f59f396b4a": {
      "main": [
        [
          {
            "node": "65448a27-838d-4860-8425-9ea8d9ad363a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5a611d35-2d2f-4508-99b1-c3ea3144b6bf": {
      "ai_languageModel": [
        [
          {
            "node": "c674d95f-f1bb-4244-b894-357d44e95fbb",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "4f22474a-0a1a-4902-b357-58aabd8c24c5": {
      "main": [
        [
          {
            "node": "80da05bf-11e1-4e94-bdc2-c720d2e0149f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "51d2c717-4eda-4e1d-a155-eda1729b3c61": {
      "ai_tool": [
        [
          {
            "node": "c674d95f-f1bb-4244-b894-357d44e95fbb",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "1e32f8e1-844e-45b0-b4ce-3e87b6e462ea": {
      "main": [
        [
          {
            "node": "d2912bbc-177d-4683-b8ec-c54167148931",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "80da05bf-11e1-4e94-bdc2-c720d2e0149f": {
      "main": [
        [
          {
            "node": "c674d95f-f1bb-4244-b894-357d44e95fbb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "65448a27-838d-4860-8425-9ea8d9ad363a": {
      "main": [
        [
          {
            "node": "1e32f8e1-844e-45b0-b4ce-3e87b6e462ea",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d2912bbc-177d-4683-b8ec-c54167148931": {
      "main": [
        [
          {
            "node": "291a29fb-bce3-4553-af91-b9be4ab6eb6e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c674d95f-f1bb-4244-b894-357d44e95fbb": {
      "main": [
        [
          {
            "node": "1f1f7172-bc9d-4e48-ac2d-d7f59f396b4a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

중급 - 프로젝트 관리, AI 요약

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수11
카테고리2
노드 유형9
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

저자
Oneclick AI Squad

Oneclick AI Squad

@oneclick-ai

The AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34