{
  "name": "[6.1.2] IT 장애 신고 자동 접수 시스템",
  "description": null,
  "nodes": [
    {
      "parameters": {
        "formTitle": "IT 장애 신고",
        "formDescription": "IT 관련 장애나 문제를 신고해 주세요. 접수 후 우선순위에 따라 신속하게 처리됩니다.",
        "formFields": {
          "values": [
            {
              "fieldLabel": "이름",
              "requiredField": true
            },
            {
              "fieldLabel": "이메일",
              "fieldType": "email",
              "requiredField": true
            },
            {
              "fieldLabel": "부서",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "경영지원"
                  },
                  {
                    "option": "영업"
                  },
                  {
                    "option": "마케팅"
                  },
                  {
                    "option": "개발"
                  },
                  {
                    "option": "인사"
                  },
                  {
                    "option": "재무"
                  },
                  {
                    "option": "기타"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldLabel": "장애 유형",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "PC/노트북 오류"
                  },
                  {
                    "option": "네트워크/인터넷"
                  },
                  {
                    "option": "프린터/복합기"
                  },
                  {
                    "option": "소프트웨어 설치/오류"
                  },
                  {
                    "option": "계정/비밀번호"
                  },
                  {
                    "option": "보안 사고"
                  },
                  {
                    "option": "기타"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldLabel": "영향 범위",
              "fieldType": "dropdown",
              "fieldOptions": {
                "values": [
                  {
                    "option": "전사 (업무 마비)"
                  },
                  {
                    "option": "부서 전체"
                  },
                  {
                    "option": "본인만"
                  }
                ]
              },
              "requiredField": true
            },
            {
              "fieldLabel": "상세 설명",
              "fieldType": "textarea",
              "requiredField": true
            }
          ]
        },
        "options": {}
      },
      "id": "node-form-trigger",
      "name": "IT 장애 신고 폼",
      "type": "n8n-nodes-base.formTrigger",
      "typeVersion": 2.2,
      "position": [
        256,
        352
      ],
      "webhookId": "3bbe3462-6bf4-41a6-a716-ded9e4d0971e"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "assign-name",
              "name": "name",
              "type": "string",
              "value": "={{ $json[\"이름\"] }}"
            },
            {
              "id": "assign-email",
              "name": "email",
              "type": "string",
              "value": "={{ $json[\"이메일\"] }}"
            },
            {
              "id": "assign-department",
              "name": "department",
              "type": "string",
              "value": "={{ $json[\"부서\"] }}"
            },
            {
              "id": "assign-issue-type",
              "name": "issue_type",
              "type": "string",
              "value": "={{ $json[\"장애 유형\"] }}"
            },
            {
              "id": "assign-impact-scope",
              "name": "impact_scope",
              "type": "string",
              "value": "={{ $json[\"영향 범위\"] }}"
            },
            {
              "id": "assign-description",
              "name": "description",
              "type": "string",
              "value": "={{ $json[\"상세 설명\"] }}"
            },
            {
              "id": "assign-submitted-at",
              "name": "submitted_at",
              "type": "string",
              "value": "={{ $now.format('yyyy-MM-dd HH:mm:ss') }}"
            }
          ]
        },
        "options": {}
      },
      "id": "node-set",
      "name": "데이터 정제",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        480,
        352
      ]
    },
    {
      "parameters": {
        "jsCode": "const results = [];\n\nfor (const item of $input.all()) {\n  const data = item.json;\n  let score = 0;\n\n  // 1. 장애 유형 스코어링 (최대 30점)\n  const categoryScores = {\n    \"보안 사고\": 30, \"네트워크/인터넷\": 25, \"PC/노트북 오류\": 20,\n    \"소프트웨어 설치/오류\": 15, \"프린터/복합기\": 10, \"계정/비밀번호\": 5, \"기타\": 5\n  };\n  score += categoryScores[data.issue_type] || 5;\n\n  // 2. 영향 범위 스코어링 (최대 30점)\n  const impactScores = {\n    \"전사 (업무 마비)\": 30, \"부서 전체\": 20, \"본인만\": 10\n  };\n  score += impactScores[data.impact_scope] || 5;\n\n  results.push({\n    json: {\n      name: data.name,\n      email: data.email,\n      department: data.department,\n      issue_type: data.issue_type,\n      impact_scope: data.impact_scope,\n      description: data.description,\n      submitted_at: data.submitted_at,\n      base_score: score\n    }\n  });\n}\n\nreturn results;"
      },
      "id": "node-code",
      "name": "기본 스코어링",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        704,
        352
      ]
    },
    {
      "parameters": {
        "inputText": "={{ $json.description }}",
        "options": {}
      },
      "id": "node-sentiment",
      "name": "긴급도 AI 분석",
      "type": "@n8n/n8n-nodes-langchain.sentimentAnalysis",
      "typeVersion": 1.1,
      "position": [
        928,
        336
      ]
    },
    {
      "parameters": {
        "options": {
          "temperature": 0.3
        }
      },
      "id": "node-gemini",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1,
      "position": [
        928,
        592
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "bonus-positive",
              "name": "sentiment_bonus",
              "type": "number",
              "value": 0
            }
          ]
        },
        "options": {}
      },
      "id": "node-tag-positive",
      "name": "긍정 태깅",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1328,
        160
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "bonus-neutral",
              "name": "sentiment_bonus",
              "type": "number",
              "value": 5
            }
          ]
        },
        "options": {}
      },
      "id": "node-tag-neutral",
      "name": "중립 태깅",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1328,
        352
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "bonus-negative",
              "name": "sentiment_bonus",
              "type": "number",
              "value": 15
            }
          ]
        },
        "options": {}
      },
      "id": "node-tag-negative",
      "name": "부정 태깅",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1328,
        544
      ]
    },
    {
      "parameters": {
        "jsCode": "const results = [];\n\nfor (const item of $input.all()) {\n  const bonus = item.json.sentiment_bonus || 0;\n  const baseScore = $('기본 스코어링').first().json.base_score || 0;\n  const orig = $('데이터 정제').first().json;\n\n  const finalScore = Math.min(baseScore + bonus, 100);\n\n  let grade;\n  if (finalScore >= 60) grade = '긴급';\n  else if (finalScore >= 30) grade = '일반';\n  else grade = '예약';\n\n  results.push({\n    json: {\n      name: orig.name,\n      email: orig.email,\n      department: orig.department,\n      issue_type: orig.issue_type,\n      impact_scope: orig.impact_scope,\n      description: orig.description,\n      submitted_at: orig.submitted_at,\n      score: finalScore,\n      grade: grade\n    }\n  });\n}\n\nreturn results;"
      },
      "id": "node-final-grade",
      "name": "최종 등급 판정",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1552,
        352
      ]
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.grade }}",
                    "rightValue": "긴급",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "id": "29f4d0d4-684c-49ed-a8be-77b56d5574e3"
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.grade }}",
                    "rightValue": "일반",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "id": "c0e2d155-ed28-4399-b1e5-1707d7a0dbd1"
                  }
                ],
                "combinator": "and"
              }
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.grade }}",
                    "rightValue": "예약",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "id": "2694d879-bbfe-4d8a-9187-f55fd39ab5a9"
                  }
                ],
                "combinator": "and"
              }
            }
          ]
        },
        "options": {}
      },
      "id": "node-switch",
      "name": "등급 분류",
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [
        1744,
        336
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1GfPSwucGE_DOGevBVuaqCWReAICoD4mkgb01ldQzkG0",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "긴급 장애",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {},
          "matchingColumns": [],
          "schema": [
            {
              "id": "name",
              "displayName": "name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "email",
              "displayName": "email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "department",
              "displayName": "department",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "issue_type",
              "displayName": "issue_type",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "impact_scope",
              "displayName": "impact_scope",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "description",
              "displayName": "description",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "submitted_at",
              "displayName": "submitted_at",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "score",
              "displayName": "score",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "grade",
              "displayName": "grade",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "node-sheets-urgent",
      "name": "긴급 장애 저장",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        2000,
        160
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "1GfPSwucGE_DOGevBVuaqCWReAICoD4mkgb01ldQzkG0",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "일반 요청",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {},
          "matchingColumns": [],
          "schema": [
            {
              "id": "name",
              "displayName": "name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "email",
              "displayName": "email",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "department",
              "displayName": "department",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "issue_type",
              "displayName": "issue_type",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "impact_scope",
              "displayName": "impact_scope",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "description",
              "displayName": "description",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "submitted_at",
              "displayName": "submitted_at",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "score",
              "displayName": "score",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "grade",
              "displayName": "grade",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "id": "node-sheets-normal",
      "name": "일반 요청 저장",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        2000,
        352
      ]
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C0AK8QA0DUM",
          "mode": "list",
          "cachedResultName": "n8n"
        },
        "text": "=🚨 *긴급 IT 장애 신고*\n\n• 신고자: {{ $json.name }} ({{ $json.department }})\n• 장애 유형: {{ $json.issue_type }}\n• 영향 범위: {{ $json.impact_scope }}\n• 긴급도 점수: {{ $json.score }}점 ({{ $json.grade }})\n• 접수 시간: {{ $json.submitted_at }}\n\n📋 *상세 내용:*\n{{ $json.description }}",
        "otherOptions": {}
      },
      "id": "node-slack-urgent",
      "name": "긴급 장애 알림",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        2224,
        160
      ],
      "webhookId": "da0c80b3-0212-4577-bed9-e2437a3cea12"
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "C0AK8QA0DUM",
          "mode": "list",
          "cachedResultName": "n8n"
        },
        "text": "=📋 *일반 IT 지원 요청*\n\n• 신고자: {{ $json.name }} ({{ $json.department }})\n• 장애 유형: {{ $json.issue_type }}\n• 위치: {{ $json.impact_scope }}\n• 점수: {{ $json.score }}점 ({{ $json.grade }})\n\n📋 *상세 내용:*\n{{ $json.description }}",
        "otherOptions": {}
      },
      "id": "node-slack-normal",
      "name": "일반 요청 알림",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        2224,
        352
      ],
      "webhookId": "980dd6ed-109b-433f-9aac-9f131764b9d2"
    },
    {
      "parameters": {
        "sendTo": "={{ $('데이터 정제').item.json.email }}",
        "subject": "={{ '[IT 헬프데스크] ' + $('데이터 정제').item.json.name  + '님, 장애 신고가 접수되었습니다' }}",
        "message": "={{ $json.html }}",
        "options": {
          "appendAttribution": false
        }
      },
      "id": "node-gmail",
      "name": "접수 확인 이메일",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2.1,
      "position": [
        2224,
        560
      ],
      "webhookId": "e9a66ea4-86f3-4f47-88be-83c6394d868b"
    },
    {
      "parameters": {
        "html": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\" />\n  <title>IT 헬프데스크 접수 확인</title>\n</head>\n<body style=\"margin:0; padding:0; background-color:#f5f5f5;\">\n  <div style=\"font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;\">\n    <div style=\"background-color: #1e40af; padding: 30px; text-align: center;\">\n      <h1 style=\"color: white; margin: 0; font-size: 24px;\">IT 헬프데스크</h1>\n      <p style=\"color: #bfdbfe; margin: 5px 0 0;\">IT Support Center</p>\n    </div>\n    <div style=\"padding: 30px; background-color: #ffffff;\">\n      <h2 style=\"color: #1e3a5f;\">안녕하세요, {{ $('데이터 정제').item.json.name }}님!</h2>\n      <p style=\"color: #374151; line-height: 1.8;\">신고해 주신 IT 장애가 정상적으로 접수되었습니다.<br>\n      <strong>{{ $('데이터 정제').item.json.department }}</strong> 부서에서 보내주신 요청을 IT팀이 확인 중입니다.</p>\n\n      <div style=\"background-color: #f3f4f6; border-radius: 8px; padding: 20px; margin: 20px 0;\">\n        <h3 style=\"color: #1e3a5f; margin-top: 0;\">접수 내역</h3>\n        <table style=\"width: 100%; border-collapse: collapse;\">\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">접수 일시</td><td style=\"padding: 8px 0; color: #111827;\">{{ $('데이터 정제').item.json.submitted_at }}</td></tr>\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">장애 유형</td><td style=\"padding: 8px 0; color: #111827;\">{{ $('데이터 정제').item.json.issue_type }}</td></tr>\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">영향 범위</td><td style=\"padding: 8px 0; color: #111827;\">{{ $('데이터 정제').item.json.impact_scope }}</td></tr>\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">처리 등급</td><td style=\"padding: 8px 0; color: #111827; font-weight: bold;\">{{ $('최종 등급 판정').item.json.grade }}</td></tr>\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">긴급도 점수</td><td style=\"padding: 8px 0; color: #111827;\">{{ $('최종 등급 판정').item.json.score }}점</td></tr>\n        </table>\n      </div>\n\n      <p style=\"color: #374151; line-height: 1.8;\">처리 등급에 따라 다음과 같이 대응됩니다:</p>\n      <ul style=\"color: #374151; line-height: 2;\">\n        <li><strong>긴급</strong> — 즉시 담당자 배정 (1시간 이내 연락)</li>\n        <li><strong>일반</strong> — 순차 처리 (당일~익일 이내)</li>\n        <li><strong>예약</strong> — 일정 조율 후 처리 (3영업일 이내)</li>\n      </ul>\n\n      <p style=\"color: #374151; line-height: 1.8;\">감사합니다.<br><strong>IT 지원팀</strong></p>\n    </div>\n    <div style=\"background-color: #f9fafb; padding: 20px; text-align: center; font-size: 12px; color: #9ca3af;\">\n      <p style=\"margin: 5px 0;\">본 메일은 자동 발송된 메일입니다.</p>\n      <p style=\"margin: 5px 0;\">IT 헬프데스크 | it-support@company.com | 내선 1234</p>\n    </div>\n  </div>\n</body>\n</html>"
      },
      "id": "node-html-template",
      "name": "접수 확인 메일 템플릿",
      "type": "n8n-nodes-base.html",
      "typeVersion": 1.2,
      "position": [
        2000,
        560
      ]
    }
  ],
  "connections": {
    "IT 장애 신고 폼": {
      "main": [
        [
          {
            "node": "데이터 정제",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "데이터 정제": {
      "main": [
        [
          {
            "node": "기본 스코어링",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "기본 스코어링": {
      "main": [
        [
          {
            "node": "긴급도 AI 분석",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "긴급도 AI 분석",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "긴급도 AI 분석": {
      "main": [
        [
          {
            "node": "긍정 태깅",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "중립 태깅",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "부정 태깅",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "긍정 태깅": {
      "main": [
        [
          {
            "node": "최종 등급 판정",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "중립 태깅": {
      "main": [
        [
          {
            "node": "최종 등급 판정",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "부정 태깅": {
      "main": [
        [
          {
            "node": "최종 등급 판정",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "최종 등급 판정": {
      "main": [
        [
          {
            "node": "등급 분류",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "등급 분류": {
      "main": [
        [
          {
            "node": "긴급 장애 저장",
            "type": "main",
            "index": 0
          },
          {
            "node": "접수 확인 메일 템플릿",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "일반 요청 저장",
            "type": "main",
            "index": 0
          },
          {
            "node": "접수 확인 메일 템플릿",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "일반 요청 저장",
            "type": "main",
            "index": 0
          },
          {
            "node": "접수 확인 메일 템플릿",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "긴급 장애 저장": {
      "main": [
        [
          {
            "node": "긴급 장애 알림",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "일반 요청 저장": {
      "main": [
        [
          {
            "node": "일반 요청 알림",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "접수 확인 메일 템플릿": {
      "main": [
        [
          {
            "node": "접수 확인 이메일",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "callerPolicy": "workflowsFromSameOwner",
    "availableInMCP": false
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "pinData": {},
  "activeVersionId": "560a4492-eda3-4a02-87cb-c599198cdcfb",
  "versionCounter": 81,
  "triggerCount": 1,
  "shared": [
    {
      "updatedAt": "2026-02-23T09:49:04.757Z",
      "createdAt": "2026-02-23T09:49:04.757Z",
      "role": "workflow:owner",
      "workflowId": "EBV7LqkakbtMbypL",
      "projectId": "HOjkcE7iYuEpXRNR",
      "project": {
        "updatedAt": "2025-11-24T05:13:19.424Z",
        "createdAt": "2025-09-19T06:56:46.826Z",
        "id": "HOjkcE7iYuEpXRNR",
        "name": "Dante Kwak <dantelabs.pro@gmail.com>",
        "type": "personal",
        "icon": null,
        "description": null,
        "creatorId": "102ca187-1fa0-4d33-a606-5a0bb96a0fe3"
      }
    }
  ],
  "tags": [],
  "activeVersion": {
    "updatedAt": "2026-03-12T02:39:09.000Z",
    "createdAt": "2026-03-12T02:38:45.078Z",
    "versionId": "560a4492-eda3-4a02-87cb-c599198cdcfb",
    "workflowId": "EBV7LqkakbtMbypL",
    "nodes": [
      {
        "parameters": {
          "formTitle": "IT 장애 신고",
          "formDescription": "IT 관련 장애나 문제를 신고해 주세요. 접수 후 우선순위에 따라 신속하게 처리됩니다.",
          "formFields": {
            "values": [
              {
                "fieldLabel": "이름",
                "requiredField": true
              },
              {
                "fieldLabel": "이메일",
                "fieldType": "email",
                "requiredField": true
              },
              {
                "fieldLabel": "부서",
                "fieldType": "dropdown",
                "fieldOptions": {
                  "values": [
                    {
                      "option": "경영지원"
                    },
                    {
                      "option": "영업"
                    },
                    {
                      "option": "마케팅"
                    },
                    {
                      "option": "개발"
                    },
                    {
                      "option": "인사"
                    },
                    {
                      "option": "재무"
                    },
                    {
                      "option": "기타"
                    }
                  ]
                },
                "requiredField": true
              },
              {
                "fieldLabel": "장애 유형",
                "fieldType": "dropdown",
                "fieldOptions": {
                  "values": [
                    {
                      "option": "PC/노트북 오류"
                    },
                    {
                      "option": "네트워크/인터넷"
                    },
                    {
                      "option": "프린터/복합기"
                    },
                    {
                      "option": "소프트웨어 설치/오류"
                    },
                    {
                      "option": "계정/비밀번호"
                    },
                    {
                      "option": "보안 사고"
                    },
                    {
                      "option": "기타"
                    }
                  ]
                },
                "requiredField": true
              },
              {
                "fieldLabel": "영향 범위",
                "fieldType": "dropdown",
                "fieldOptions": {
                  "values": [
                    {
                      "option": "전사 (업무 마비)"
                    },
                    {
                      "option": "부서 전체"
                    },
                    {
                      "option": "본인만"
                    }
                  ]
                },
                "requiredField": true
              },
              {
                "fieldLabel": "상세 설명",
                "fieldType": "textarea",
                "requiredField": true
              }
            ]
          },
          "options": {}
        },
        "id": "node-form-trigger",
        "name": "IT 장애 신고 폼",
        "type": "n8n-nodes-base.formTrigger",
        "typeVersion": 2.2,
        "position": [
          256,
          352
        ],
        "webhookId": "3bbe3462-6bf4-41a6-a716-ded9e4d0971e"
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "assign-name",
                "name": "name",
                "type": "string",
                "value": "={{ $json[\"이름\"] }}"
              },
              {
                "id": "assign-email",
                "name": "email",
                "type": "string",
                "value": "={{ $json[\"이메일\"] }}"
              },
              {
                "id": "assign-department",
                "name": "department",
                "type": "string",
                "value": "={{ $json[\"부서\"] }}"
              },
              {
                "id": "assign-issue-type",
                "name": "issue_type",
                "type": "string",
                "value": "={{ $json[\"장애 유형\"] }}"
              },
              {
                "id": "assign-impact-scope",
                "name": "impact_scope",
                "type": "string",
                "value": "={{ $json[\"영향 범위\"] }}"
              },
              {
                "id": "assign-description",
                "name": "description",
                "type": "string",
                "value": "={{ $json[\"상세 설명\"] }}"
              },
              {
                "id": "assign-submitted-at",
                "name": "submitted_at",
                "type": "string",
                "value": "={{ $now.format('yyyy-MM-dd HH:mm:ss') }}"
              }
            ]
          },
          "options": {}
        },
        "id": "node-set",
        "name": "데이터 정제",
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          480,
          352
        ]
      },
      {
        "parameters": {
          "jsCode": "const results = [];\n\nfor (const item of $input.all()) {\n  const data = item.json;\n  let score = 0;\n\n  // 1. 장애 유형 스코어링 (최대 30점)\n  const categoryScores = {\n    \"보안 사고\": 30, \"네트워크/인터넷\": 25, \"PC/노트북 오류\": 20,\n    \"소프트웨어 설치/오류\": 15, \"프린터/복합기\": 10, \"계정/비밀번호\": 5, \"기타\": 5\n  };\n  score += categoryScores[data.issue_type] || 5;\n\n  // 2. 영향 범위 스코어링 (최대 30점)\n  const impactScores = {\n    \"전사 (업무 마비)\": 30, \"부서 전체\": 20, \"본인만\": 10\n  };\n  score += impactScores[data.impact_scope] || 5;\n\n  results.push({\n    json: {\n      name: data.name,\n      email: data.email,\n      department: data.department,\n      issue_type: data.issue_type,\n      impact_scope: data.impact_scope,\n      description: data.description,\n      submitted_at: data.submitted_at,\n      base_score: score\n    }\n  });\n}\n\nreturn results;"
        },
        "id": "node-code",
        "name": "기본 스코어링",
        "type": "n8n-nodes-base.code",
        "typeVersion": 2,
        "position": [
          704,
          352
        ]
      },
      {
        "parameters": {
          "inputText": "={{ $json.description }}",
          "options": {}
        },
        "id": "node-sentiment",
        "name": "긴급도 AI 분석",
        "type": "@n8n/n8n-nodes-langchain.sentimentAnalysis",
        "typeVersion": 1.1,
        "position": [
          928,
          336
        ]
      },
      {
        "parameters": {
          "options": {
            "temperature": 0.3
          }
        },
        "id": "node-gemini",
        "name": "Google Gemini Chat Model",
        "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
        "typeVersion": 1,
        "position": [
          928,
          592
        ],
        "credentials": {
          "googlePalmApi": {
            "id": "fpFjyK0ss4bbfCEI",
            "name": "Google Gemini(PaLM) Api account"
          }
        }
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "bonus-positive",
                "name": "sentiment_bonus",
                "type": "number",
                "value": 0
              }
            ]
          },
          "options": {}
        },
        "id": "node-tag-positive",
        "name": "긍정 태깅",
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          1328,
          160
        ]
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "bonus-neutral",
                "name": "sentiment_bonus",
                "type": "number",
                "value": 5
              }
            ]
          },
          "options": {}
        },
        "id": "node-tag-neutral",
        "name": "중립 태깅",
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          1328,
          352
        ]
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "bonus-negative",
                "name": "sentiment_bonus",
                "type": "number",
                "value": 15
              }
            ]
          },
          "options": {}
        },
        "id": "node-tag-negative",
        "name": "부정 태깅",
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          1328,
          544
        ]
      },
      {
        "parameters": {
          "jsCode": "const results = [];\n\nfor (const item of $input.all()) {\n  const bonus = item.json.sentiment_bonus || 0;\n  const baseScore = $('기본 스코어링').first().json.base_score || 0;\n  const orig = $('데이터 정제').first().json;\n\n  const finalScore = Math.min(baseScore + bonus, 100);\n\n  let grade;\n  if (finalScore >= 60) grade = '긴급';\n  else if (finalScore >= 30) grade = '일반';\n  else grade = '예약';\n\n  results.push({\n    json: {\n      name: orig.name,\n      email: orig.email,\n      department: orig.department,\n      issue_type: orig.issue_type,\n      impact_scope: orig.impact_scope,\n      description: orig.description,\n      submitted_at: orig.submitted_at,\n      score: finalScore,\n      grade: grade\n    }\n  });\n}\n\nreturn results;"
        },
        "id": "node-final-grade",
        "name": "최종 등급 판정",
        "type": "n8n-nodes-base.code",
        "typeVersion": 2,
        "position": [
          1552,
          352
        ]
      },
      {
        "parameters": {
          "rules": {
            "values": [
              {
                "conditions": {
                  "options": {
                    "caseSensitive": true,
                    "leftValue": "",
                    "typeValidation": "strict",
                    "version": 2
                  },
                  "conditions": [
                    {
                      "leftValue": "={{ $json.grade }}",
                      "rightValue": "긴급",
                      "operator": {
                        "type": "string",
                        "operation": "equals"
                      },
                      "id": "29f4d0d4-684c-49ed-a8be-77b56d5574e3"
                    }
                  ],
                  "combinator": "and"
                }
              },
              {
                "conditions": {
                  "options": {
                    "caseSensitive": true,
                    "leftValue": "",
                    "typeValidation": "strict",
                    "version": 2
                  },
                  "conditions": [
                    {
                      "leftValue": "={{ $json.grade }}",
                      "rightValue": "일반",
                      "operator": {
                        "type": "string",
                        "operation": "equals"
                      },
                      "id": "c0e2d155-ed28-4399-b1e5-1707d7a0dbd1"
                    }
                  ],
                  "combinator": "and"
                }
              },
              {
                "conditions": {
                  "options": {
                    "caseSensitive": true,
                    "leftValue": "",
                    "typeValidation": "strict",
                    "version": 2
                  },
                  "conditions": [
                    {
                      "leftValue": "={{ $json.grade }}",
                      "rightValue": "예약",
                      "operator": {
                        "type": "string",
                        "operation": "equals"
                      },
                      "id": "2694d879-bbfe-4d8a-9187-f55fd39ab5a9"
                    }
                  ],
                  "combinator": "and"
                }
              }
            ]
          },
          "options": {}
        },
        "id": "node-switch",
        "name": "등급 분류",
        "type": "n8n-nodes-base.switch",
        "typeVersion": 3.2,
        "position": [
          1744,
          336
        ]
      },
      {
        "parameters": {
          "operation": "append",
          "documentId": {
            "__rl": true,
            "value": "1GfPSwucGE_DOGevBVuaqCWReAICoD4mkgb01ldQzkG0",
            "mode": "id"
          },
          "sheetName": {
            "__rl": true,
            "value": "긴급 장애",
            "mode": "name"
          },
          "columns": {
            "mappingMode": "autoMapInputData",
            "value": {},
            "matchingColumns": [],
            "schema": [
              {
                "id": "name",
                "displayName": "name",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              },
              {
                "id": "email",
                "displayName": "email",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              },
              {
                "id": "department",
                "displayName": "department",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              },
              {
                "id": "issue_type",
                "displayName": "issue_type",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              },
              {
                "id": "impact_scope",
                "displayName": "impact_scope",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              },
              {
                "id": "description",
                "displayName": "description",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              },
              {
                "id": "submitted_at",
                "displayName": "submitted_at",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              },
              {
                "id": "score",
                "displayName": "score",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              },
              {
                "id": "grade",
                "displayName": "grade",
                "required": false,
                "defaultMatch": false,
                "display": true,
                "type": "string",
                "canBeUsedToMatch": true,
                "removed": false
              }
            ],
            "attemptToConvertTypes": false,
            "convertFieldsToString": false
          },
          "options": {}
        },
        "id": "node-sheets-urgent",
        "name": "긴급 장애 저장",
        "type": "n8n-nodes-base.googleSheets",
        "typeVersion": 4.5,
        "position": [
          2000,
          160
        ],
        "credentials": {
          "googleSheetsOAuth2Api": {
            "id": "SbBKAdkg8tcNbU2g",
            "name": "Google Sheets account (2026)"
          }
        }
      },
      {
        "parameters": {
          "operation": "append",
          "documentId": {
            "__rl": true,
            "value": "1GfPSwucGE_DOGevBVuaqCWReAICoD4mkgb01ldQzkG0",
            "mode": "id"
          },
          "sheetName": {
            "__rl": true,
            "value": "일반 요청",
            "mode": "name"
          },
          "columns": {
            "mappingMode": "autoMapInputData",
            "value": {}
          },
          "options": {}
        },
        "id": "node-sheets-normal",
        "name": "일반 요청 저장",
        "type": "n8n-nodes-base.googleSheets",
        "typeVersion": 4.5,
        "position": [
          2000,
          352
        ],
        "credentials": {
          "googleSheetsOAuth2Api": {
            "id": "SbBKAdkg8tcNbU2g",
            "name": "Google Sheets account (2026)"
          }
        }
      },
      {
        "parameters": {
          "select": "channel",
          "channelId": {
            "__rl": true,
            "value": "C0AK8QA0DUM",
            "mode": "list",
            "cachedResultName": "n8n"
          },
          "text": "=🚨 *긴급 IT 장애 신고*\n\n• 신고자: {{ $json.name }} ({{ $json.department }})\n• 장애 유형: {{ $json.issue_type }}\n• 영향 범위: {{ $json.impact_scope }}\n• 긴급도 점수: {{ $json.score }}점 ({{ $json.grade }})\n• 접수 시간: {{ $json.submitted_at }}\n\n📋 *상세 내용:*\n{{ $json.description }}",
          "otherOptions": {}
        },
        "id": "node-slack-urgent",
        "name": "긴급 장애 알림",
        "type": "n8n-nodes-base.slack",
        "typeVersion": 2.2,
        "position": [
          2224,
          160
        ],
        "webhookId": "da0c80b3-0212-4577-bed9-e2437a3cea12",
        "credentials": {
          "slackApi": {
            "id": "0IRpzQv7wX41Qors",
            "name": "Dantelabs Slack account"
          }
        }
      },
      {
        "parameters": {
          "select": "channel",
          "channelId": {
            "__rl": true,
            "value": "C0AK8QA0DUM",
            "mode": "list",
            "cachedResultName": "n8n"
          },
          "text": "=📋 *일반 IT 지원 요청*\n\n• 신고자: {{ $json.name }} ({{ $json.department }})\n• 장애 유형: {{ $json.issue_type }}\n• 위치: {{ $json.impact_scope }}\n• 점수: {{ $json.score }}점 ({{ $json.grade }})\n\n📋 *상세 내용:*\n{{ $json.description }}",
          "otherOptions": {}
        },
        "id": "node-slack-normal",
        "name": "일반 요청 알림",
        "type": "n8n-nodes-base.slack",
        "typeVersion": 2.2,
        "position": [
          2224,
          352
        ],
        "webhookId": "980dd6ed-109b-433f-9aac-9f131764b9d2",
        "credentials": {
          "slackApi": {
            "id": "0IRpzQv7wX41Qors",
            "name": "Dantelabs Slack account"
          }
        }
      },
      {
        "parameters": {
          "sendTo": "={{ $('데이터 정제').item.json.email }}",
          "subject": "={{ '[IT 헬프데스크] ' + $('데이터 정제').item.json.name  + '님, 장애 신고가 접수되었습니다' }}",
          "message": "={{ $json.html }}",
          "options": {
            "appendAttribution": false
          }
        },
        "id": "node-gmail",
        "name": "접수 확인 이메일",
        "type": "n8n-nodes-base.gmail",
        "typeVersion": 2.1,
        "position": [
          2224,
          560
        ],
        "webhookId": "e9a66ea4-86f3-4f47-88be-83c6394d868b",
        "credentials": {
          "gmailOAuth2": {
            "id": "J9JNi2fOr48r79JQ",
            "name": "Gmail account (2026)"
          }
        }
      },
      {
        "parameters": {
          "html": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\" />\n  <title>IT 헬프데스크 접수 확인</title>\n</head>\n<body style=\"margin:0; padding:0; background-color:#f5f5f5;\">\n  <div style=\"font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;\">\n    <div style=\"background-color: #1e40af; padding: 30px; text-align: center;\">\n      <h1 style=\"color: white; margin: 0; font-size: 24px;\">IT 헬프데스크</h1>\n      <p style=\"color: #bfdbfe; margin: 5px 0 0;\">IT Support Center</p>\n    </div>\n    <div style=\"padding: 30px; background-color: #ffffff;\">\n      <h2 style=\"color: #1e3a5f;\">안녕하세요, {{ $('데이터 정제').item.json.name }}님!</h2>\n      <p style=\"color: #374151; line-height: 1.8;\">신고해 주신 IT 장애가 정상적으로 접수되었습니다.<br>\n      <strong>{{ $('데이터 정제').item.json.department }}</strong> 부서에서 보내주신 요청을 IT팀이 확인 중입니다.</p>\n\n      <div style=\"background-color: #f3f4f6; border-radius: 8px; padding: 20px; margin: 20px 0;\">\n        <h3 style=\"color: #1e3a5f; margin-top: 0;\">접수 내역</h3>\n        <table style=\"width: 100%; border-collapse: collapse;\">\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">접수 일시</td><td style=\"padding: 8px 0; color: #111827;\">{{ $('데이터 정제').item.json.submitted_at }}</td></tr>\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">장애 유형</td><td style=\"padding: 8px 0; color: #111827;\">{{ $('데이터 정제').item.json.issue_type }}</td></tr>\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">영향 범위</td><td style=\"padding: 8px 0; color: #111827;\">{{ $('데이터 정제').item.json.impact_scope }}</td></tr>\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">처리 등급</td><td style=\"padding: 8px 0; color: #111827; font-weight: bold;\">{{ $('최종 등급 판정').item.json.grade }}</td></tr>\n          <tr><td style=\"padding: 8px 0; color: #6b7280; width: 120px;\">긴급도 점수</td><td style=\"padding: 8px 0; color: #111827;\">{{ $('최종 등급 판정').item.json.score }}점</td></tr>\n        </table>\n      </div>\n\n      <p style=\"color: #374151; line-height: 1.8;\">처리 등급에 따라 다음과 같이 대응됩니다:</p>\n      <ul style=\"color: #374151; line-height: 2;\">\n        <li><strong>긴급</strong> — 즉시 담당자 배정 (1시간 이내 연락)</li>\n        <li><strong>일반</strong> — 순차 처리 (당일~익일 이내)</li>\n        <li><strong>예약</strong> — 일정 조율 후 처리 (3영업일 이내)</li>\n      </ul>\n\n      <p style=\"color: #374151; line-height: 1.8;\">감사합니다.<br><strong>IT 지원팀</strong></p>\n    </div>\n    <div style=\"background-color: #f9fafb; padding: 20px; text-align: center; font-size: 12px; color: #9ca3af;\">\n      <p style=\"margin: 5px 0;\">본 메일은 자동 발송된 메일입니다.</p>\n      <p style=\"margin: 5px 0;\">IT 헬프데스크 | it-support@company.com | 내선 1234</p>\n    </div>\n  </div>\n</body>\n</html>"
        },
        "id": "node-html-template",
        "name": "접수 확인 메일 템플릿",
        "type": "n8n-nodes-base.html",
        "typeVersion": 1.2,
        "position": [
          2000,
          560
        ]
      }
    ],
    "connections": {
      "IT 장애 신고 폼": {
        "main": [
          [
            {
              "node": "데이터 정제",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "데이터 정제": {
        "main": [
          [
            {
              "node": "기본 스코어링",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "기본 스코어링": {
        "main": [
          [
            {
              "node": "긴급도 AI 분석",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Google Gemini Chat Model": {
        "ai_languageModel": [
          [
            {
              "node": "긴급도 AI 분석",
              "type": "ai_languageModel",
              "index": 0
            }
          ]
        ]
      },
      "긴급도 AI 분석": {
        "main": [
          [
            {
              "node": "긍정 태깅",
              "type": "main",
              "index": 0
            }
          ],
          [
            {
              "node": "중립 태깅",
              "type": "main",
              "index": 0
            }
          ],
          [
            {
              "node": "부정 태깅",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "긍정 태깅": {
        "main": [
          [
            {
              "node": "최종 등급 판정",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "중립 태깅": {
        "main": [
          [
            {
              "node": "최종 등급 판정",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "부정 태깅": {
        "main": [
          [
            {
              "node": "최종 등급 판정",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "최종 등급 판정": {
        "main": [
          [
            {
              "node": "등급 분류",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "등급 분류": {
        "main": [
          [
            {
              "node": "긴급 장애 저장",
              "type": "main",
              "index": 0
            },
            {
              "node": "접수 확인 메일 템플릿",
              "type": "main",
              "index": 0
            }
          ],
          [
            {
              "node": "일반 요청 저장",
              "type": "main",
              "index": 0
            },
            {
              "node": "접수 확인 메일 템플릿",
              "type": "main",
              "index": 0
            }
          ],
          [
            {
              "node": "일반 요청 저장",
              "type": "main",
              "index": 0
            },
            {
              "node": "접수 확인 메일 템플릿",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "긴급 장애 저장": {
        "main": [
          [
            {
              "node": "긴급 장애 알림",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "일반 요청 저장": {
        "main": [
          [
            {
              "node": "일반 요청 알림",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "접수 확인 메일 템플릿": {
        "main": [
          [
            {
              "node": "접수 확인 이메일",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "authors": "Dante Kwak",
    "name": "Version 560a4492",
    "description": "",
    "autosaved": true,
    "workflowPublishHistory": [
      {
        "createdAt": "2026-03-12T02:39:09.308Z",
        "id": 162,
        "workflowId": "EBV7LqkakbtMbypL",
        "versionId": "560a4492-eda3-4a02-87cb-c599198cdcfb",
        "event": "activated",
        "userId": "102ca187-1fa0-4d33-a606-5a0bb96a0fe3"
      }
    ]
  }
}