이메일에서 Jira로 자동 티켓 생성기 (AI 기반) with n8n
이것은Project Management, AI Summarization분야의자동화 워크플로우로, 11개의 노드를 포함합니다.주로 Code, Jira, Wait, Gmail, GmailTrigger 등의 노드를 사용하며. Llama 3.2를 활용한 AI 기반 이메일에서 Jira 티켓 생성 시스템
- •Google 계정 및 Gmail API 인증 정보
{
"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)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Oneclick AI Squad
@oneclick-aiThe 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.
이 워크플로우 공유