Outlook, OpenAI 및 JIRA 기반 AI 지원 자동화
고급
이것은Ticket Management, Multimodal AI분야의자동화 워크플로우로, 18개의 노드를 포함합니다.주로 If, Jira, Gmail, Webhook, Function 등의 노드를 사용하며. Outlook, OpenAI 및 JIRA 티켓 통합 AI 지원 자동화 시스템
사전 요구사항
- •Google 계정 및 Gmail API 인증 정보
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •OpenAI API Key
사용된 노드 (18)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "54727bff0f5eeffb7bf9295509a4e3003a61b32ef52459f329ae99e7b5243230"
},
"nodes": [
{
"id": "b28b477c-281c-4371-9bc6-e9cdff0623cb",
"name": "Outlook 트리거1",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
-48,
1344
],
"webhookId": "d22fa384-f0e1-411f-bb06-867458d1a22c",
"parameters": {
"options": {},
"filtersUI": {
"values": {
"filters": {
"receivedAfter": "={{ $now.minus({ minutes: 30 }).toISO() }}"
}
}
},
"operation": "getAll"
},
"typeVersion": 2
},
{
"id": "51e582d1-d8ea-43f1-8db8-d8af869b41fe",
"name": "Webhook 트리거1",
"type": "n8n-nodes-base.webhook",
"position": [
-48,
1104
],
"webhookId": "f319cf3f-aad0-487d-b4a1-897ac7545efe",
"parameters": {
"path": "support",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1.1
},
{
"id": "96a9a667-47e9-4103-b3ff-239a2fe0b888",
"name": "데이터 정규화1",
"type": "n8n-nodes-base.function",
"position": [
160,
1232
],
"parameters": {
"functionCode": "const data = $input.all();\nconst result = [];\n\nfor (const item of data) {\n let normalized = {\n source: item.json.from ? 'email' : 'webhook',\n email: item.json.from?.emailAddress?.address || item.json.email,\n name: item.json.from?.emailAddress?.name || item.json.name,\n subject: item.json.subject || 'Web Request',\n message: item.json.body?.content || item.json.message,\n timestamp: new Date().toISOString()\n };\n result.push({ json: normalized });\n}\n\nreturn result;"
},
"typeVersion": 1
},
{
"id": "b6447498-d7ad-4733-bcd7-bbf0bae1cb1e",
"name": "중복 제거1",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
368,
1232
],
"parameters": {
"options": {},
"operation": "removeItemsSeenInPreviousExecutions",
"dedupeValue": "={{ $json.email + $json.subject }}"
},
"typeVersion": 2
},
{
"id": "37505804-f4a2-445f-b751-bd4b5aa98062",
"name": "OpenAI 모델1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
576,
1424
],
"parameters": {
"model": {
"value": "gpt-4o-mini"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "d8a47dc8-7baa-414f-9ffb-c36f1ee87294",
"name": "JSON 파서1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
768,
1424
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"category\": {\"type\": \"string\"},\n \"urgency\": {\"type\": \"string\"},\n \"expertise\": {\"type\": \"string\"},\n \"canAutoResolve\": {\"type\": \"boolean\"},\n \"isVIP\": {\"type\": \"boolean\"}\n }\n}"
},
"typeVersion": 1.2
},
{
"id": "8210bcfa-c0f1-4329-a7ba-8d3b0fa3e3ac",
"name": "경로 결정1",
"type": "n8n-nodes-base.if",
"position": [
928,
1232
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ff7f1bf0-0ce3-4eb3-a9de-1675a785f2c2",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "3ef69825-72c7-4d8c-9009-eba6a7591c19",
"name": "자동 응답1",
"type": "n8n-nodes-base.microsoftOutlook",
"position": [
1184,
1056
],
"webhookId": "3d561e9a-2aaa-425b-8f3b-e0d9b51bed5f",
"parameters": {
"operation": "sendMessage"
},
"typeVersion": 2
},
{
"id": "1bfa088a-9721-4975-a7b0-cea8d6225114",
"name": "상담원 할당1",
"type": "n8n-nodes-base.function",
"position": [
1184,
1328
],
"parameters": {
"functionCode": "const request = $json;\nconst expertise = request.output.expertise;\nconst isVIP = request.output.isVIP;\nconst urgency = request.output.urgency;\n\n// Agent assignment logic\nconst agents = {\n 'frontend': 'john@company.com',\n 'backend': 'sarah@company.com',\n 'business': 'lisa@company.com',\n 'support': 'tom@company.com'\n};\n\nconst assignedAgent = agents[expertise] || agents['support'];\n\n// SLA calculation\nconst slaHours = {\n 'critical': isVIP ? 1 : 2,\n 'high': isVIP ? 4 : 8,\n 'medium': isVIP ? 8 : 24,\n 'low': 24\n};\n\nreturn [{\n json: {\n ...request,\n assignedAgent,\n slaHours: slaHours[urgency],\n priority: urgency === 'critical' ? 1 : urgency === 'high' ? 2 : 3\n }\n}];"
},
"typeVersion": 1
},
{
"id": "53f8485b-5287-433a-b7b7-e2e6356fd7ed",
"name": "JIRA 티켓 생성1",
"type": "n8n-nodes-base.jira",
"position": [
1360,
1328
],
"parameters": {
"project": {
"value": "SUP"
},
"summary": "{{ $json.subject }}",
"issueType": {
"value": "Task"
},
"additionalFields": {
"labels": [
"{{ $json.output.category }}",
"{{ $json.source }}"
],
"assignee": {
"value": "{{ $json.assignedAgent }}"
},
"priority": {
"value": "{{ $json.priority }}"
},
"description": "Customer: {{ $json.name }} ({{ $json.email }})\nSource: {{ $json.source }}\nCategory: {{ $json.output.category }}\nUrgency: {{ $json.output.urgency }}\n{{ $json.output.isVIP ? 'VIP CUSTOMER' : '' }}\n\nMessage:\n{{ $json.message }}"
}
},
"typeVersion": 1
},
{
"id": "6d76ea6d-050c-4e36-a217-f6efd492217b",
"name": "확인 메시지 전송1",
"type": "n8n-nodes-base.gmail",
"position": [
1536,
1328
],
"webhookId": "909c81d1-fb58-4349-b978-0966e5d93e3b",
"parameters": {
"message": "Dear {{ $json.name }},\n\nYour support request has been received and assigned ticket #{{ $json.ticketKey }}.\n\nPriority: {{ $json.output.urgency }}{{ $json.output.isVIP ? ' (VIP)' : '' }}\nAssigned to: {{ $json.assignedAgent }}\nExpected response: {{ $json.slaHours }} hours\n\nWe'll update you as we work on your request.\n\nBest regards,\nSupport Team",
"options": {},
"subject": "Support Ticket Created - {{ $json.subject }}"
},
"typeVersion": 2.1
},
{
"id": "9811b90f-39a8-4c9d-9472-5ae94c29aa97",
"name": "Webhook 응답1",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1728,
1056
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "{\n \"status\": \"success\",\n \"message\": \"Request processed\",\n \"ticketId\": \"{{ $json.ticketKey || 'AUTO_RESOLVED' }}\"\n}"
},
"typeVersion": 1.1
},
{
"id": "2c96f390-163c-4b2a-8a69-ad53ffbfdd17",
"name": "AI 분류기2",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
592,
1232
],
"parameters": {
"text": "Subject: {{ $json.subject }}\nMessage: {{ $json.message }}\nFrom: {{ $json.name }} ({{ $json.email }})",
"messages": {
"messageValues": [
{
"message": "Classify this support request. Return JSON with:\n{\n \"category\": \"technical|billing|account|feature\",\n \"urgency\": \"critical|high|medium|low\",\n \"expertise\": \"frontend|backend|support|business\",\n \"canAutoResolve\": true|false,\n \"isVIP\": true|false\n}\n\nVIP indicators: enterprise email domains, mentions of \"enterprise\", \"premium\", urgent language.\nAuto-resolve: simple how-to questions, password resets, basic billing questions."
}
]
},
"hasOutputParser": true
},
"typeVersion": 1.6
},
{
"id": "ea4bb972-004b-4214-b9a7-4a0fe0ce014d",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
-704,
528
],
"parameters": {
"color": 3,
"width": 464,
"height": 336,
"content": "## SMART SUPPORT AGENT\n\nThis workflow handles support requests from:\n- Outlook emails (shared inbox)\n- Web forms (webhook endpoint)\n\n### KEY FEATURES:\n✅ AI-powered classification\n✅ Auto-resolution for simple issues\n✅ Smart agent routing\n✅ SLA tracking\n"
},
"typeVersion": 1
},
{
"id": "23bd9e14-7a5a-4ac0-82da-8c901f422557",
"name": "스티커 메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-704,
880
],
"parameters": {
"color": 3,
"width": 464,
"height": 400,
"content": "### CUSTOMIZE FOR YOUR TEAM\n\nSTEP 1: Update \"Assign Agent\" node\n→ Edit function code\n→ Replace email addresses with your team\n\nSTEP 2: Modify JIRA settings\n→ \"Create JIRA Ticket\" node\n→ Change project key from \"SUP\"\n→ Update issue types if needed\n\nSTEP 3: Adjust SLA times\n→ In \"Assign Agent\" function\n→ Modify slaHours object values\n\nSTEP 4: Test webhook endpoint\n→ https://your-n8n.com/webhook/support"
},
"typeVersion": 1
},
{
"id": "40549f86-6fc2-427c-b382-944c5f321fb3",
"name": "스티커 메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
528,
528
],
"parameters": {
"width": 352,
"height": 1056,
"content": "### AI CLASSIFICATION TIPS\n\nThe AI determines:\n- Category (technical/billing/account/feature)\n- Urgency (critical/high/medium/low) \n- Who should handle it\n- If it can be auto-resolved\n\nTO IMPROVE ACCURACY:\n→ Add examples to the prompt\n→ Include your product-specific terms\n→ Train with your actual tickets\n\nVIP DETECTION:\nCurrently looks for enterprise domains\n→ Customize in the prompt!"
},
"typeVersion": 1
},
{
"id": "97a5075b-315d-406b-9e43-bf1f448eee67",
"name": "스티커 메모3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
528
],
"parameters": {
"width": 288,
"height": 688,
"content": "### AUTO-RESOLUTION WORKS FOR:\n\n✅ Password reset requests\n✅ \"Where is my invoice?\" \n✅ Basic how-to questions\n✅ Documentation requests\n✅ Simple account questions\n\n### NEVER AUTO-RESOLVES:\n- Billing disputes\n- Security issues \n- Bug reports\n- VIP customer requests\n- Complex technical problems\n\nCUSTOMIZE: Edit the AI prompt to match your support patterns!"
},
"typeVersion": 1
},
{
"id": "6919f336-fc6b-4c46-b1dd-222b426c23cb",
"name": "스티커 메모4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-176,
528
],
"parameters": {
"width": 336,
"height": 752,
"content": "### WEBHOOK INTEGRATION\n\nENDPOINT: /webhook/support\nMETHOD: POST\n\nREQUIRED FIELDS:\n{\n \"email\": \"customer@company.com\",\n \"name\": \"Customer Name\", \n \"message\": \"Support request text\"\n}\n\nOPTIONAL FIELDS:\n{\n \"subject\": \"Custom subject\",\n \"priority\": \"high\",\n \"source\": \"website\"\n}\n\nINTEGRATE WITH:\n- Contact forms\n- Chat widgets\n- Mobile apps\n- Other systems\n\nReturns: {\"status\":\"success\", \"ticketId\":\"...\"}"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"d8a47dc8-7baa-414f-9ffb-c36f1ee87294": {
"ai_outputParser": [
[
{
"node": "2c96f390-163c-4b2a-8a69-ad53ffbfdd17",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"1bfa088a-9721-4975-a7b0-cea8d6225114": {
"main": [
[
{
"node": "53f8485b-5287-433a-b7b7-e2e6356fd7ed",
"type": "main",
"index": 0
}
]
]
},
"37505804-f4a2-445f-b751-bd4b5aa98062": {
"ai_languageModel": [
[
{
"node": "2c96f390-163c-4b2a-8a69-ad53ffbfdd17",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"2c96f390-163c-4b2a-8a69-ad53ffbfdd17": {
"main": [
[
{
"node": "8210bcfa-c0f1-4329-a7ba-8d3b0fa3e3ac",
"type": "main",
"index": 0
}
]
]
},
"3ef69825-72c7-4d8c-9009-eba6a7591c19": {
"main": [
[
{
"node": "9811b90f-39a8-4c9d-9472-5ae94c29aa97",
"type": "main",
"index": 0
}
]
]
},
"96a9a667-47e9-4103-b3ff-239a2fe0b888": {
"main": [
[
{
"node": "b6447498-d7ad-4733-bcd7-bbf0bae1cb1e",
"type": "main",
"index": 0
}
]
]
},
"8210bcfa-c0f1-4329-a7ba-8d3b0fa3e3ac": {
"main": [
[
{
"node": "3ef69825-72c7-4d8c-9009-eba6a7591c19",
"type": "main",
"index": 0
}
],
[
{
"node": "1bfa088a-9721-4975-a7b0-cea8d6225114",
"type": "main",
"index": 0
}
]
]
},
"b28b477c-281c-4371-9bc6-e9cdff0623cb": {
"main": [
[
{
"node": "96a9a667-47e9-4103-b3ff-239a2fe0b888",
"type": "main",
"index": 0
}
]
]
},
"51e582d1-d8ea-43f1-8db8-d8af869b41fe": {
"main": [
[
{
"node": "96a9a667-47e9-4103-b3ff-239a2fe0b888",
"type": "main",
"index": 0
}
]
]
},
"b6447498-d7ad-4733-bcd7-bbf0bae1cb1e": {
"main": [
[
{
"node": "2c96f390-163c-4b2a-8a69-ad53ffbfdd17",
"type": "main",
"index": 0
}
]
]
},
"6d76ea6d-050c-4e36-a217-f6efd492217b": {
"main": [
[
{
"node": "9811b90f-39a8-4c9d-9472-5ae94c29aa97",
"type": "main",
"index": 0
}
]
]
},
"53f8485b-5287-433a-b7b7-e2e6356fd7ed": {
"main": [
[
{
"node": "6d76ea6d-050c-4e36-a217-f6efd492217b",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 티켓 관리, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
잠재 고객 자격 평가 및 라우팅 엔진
AI 기반 잠재 고객 자격 평가 및 라우팅: OpenAI, Slack 및 Airtable 활용
If
Set
Slack
+
If
Set
Slack
17 노드Xavier Tai
콘텐츠 제작
SmartSupport 프로세스: 이메일에서 Jira로 IT 요청 자동 처리, Slack 알림 포함
AI 솔루션 및 Slack 알림을 통한 이메일 자동 Jira 티켓 변환
If
Set
Jira
+
If
Set
Jira
25 노드Trung Tran
티켓 관리
AI个性化多제품이메일마케팅
基于SMTP轮换의AI个性化多제품이메일마케팅(GPT-4o/o3-mini)
If
Code
Wait
+
If
Code
Wait
41 노드Badr
영업
Gmail과 GPT-4를 사용한 이메일 분류 및 응답 생성 자동화
Gmail 및 GPT-4를 사용한 이메일 분류 및 응답 생성 자동화
If
Gmail
Open Ai
+
If
Gmail
Open Ai
15 노드Paul
티켓 관리
[템플릿] AI 반려동물 가게 v8
🐶 AI 펫 샵 어시스턴트 - GPT-4o, Google 캘린더 및 WhatsApp/Instagram/Facebook 통합
If
N8n
Set
+
If
N8n
Set
244 노드Amanda Benks
영업