RECIPE 076
고객 문의 자동 분류 → 담당자 라우팅
- ▸이메일/폼으로 들어오는 고객 문의를 AI로 자동 분류
- ▸문의 유형에 따라 적합한 담당자/부서로 자동 라우팅
- ▸긴급 문의 즉시 감지 및 에스컬레이션 처리
✅사전 준비
- □고객 문의 수신 이메일 계정 또는 웹폼 웹훅 설정
- □문의 유형 분류 체계 정의 (예: 기술지원, 결제, 계정, 환불, 기타)
- □담당자별 이메일/Slack ID 매핑 테이블
- □OpenAI API 키
문의 분류 프롬프트
System: 고객 문의를 분류하는 CS 시스템입니다.
다음 카테고리 중 하나와 긴급도를 JSON으로 반환하세요:
카테고리: ["기술지원", "결제", "계정", "환불", "기타"]
긴급도: ["긴급", "일반", "낮음"]
반환 형식: {"category": "", "urgency": "", "summary": "한줄요약"}
User: {{ $json.subject }}\n{{ $json.body.slice(0, 500) }}담당자 라우팅 (Switch 노드)
Node: Switch
Value: {{ JSON.parse($json.classification).category }}
Case '기술지원': engineering@company.com, #tech-support
Case '결제': billing@company.com, #billing
Case '계정': support@company.com, #account-help
Case '환불': billing@company.com, #refunds
Default: support@company.com, #general긴급 문의 에스컬레이션
// IF 노드
Condition: {{ JSON.parse($json.classification).urgency }} == '긴급'
→ True: Slack 즉시 알림 (@팀장 멘션) + SMS 발송
→ False: 일반 이메일 라우팅 처리💡 TIP분류 정확도를 높이기 위해 처음 100건은 수동으로 검토하고, 오분류 패턴을 프롬프트에 추가 예시로 넣어주면 빠르게 개선됩니다.
⚡
워크플로우 JSON
아래 JSON을 복사해 n8n에 바로 임포트하세요
📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
"recipeId": "recipe076",
"title": "경쟁사 블로그 RSS 수집 & 요약",
"chapter": 7,
"category": "콘텐츠 & 미디어 자동화",
"difficulty": "⭐⭐",
"estimatedTime": "30분",
"usedApps": [
"RSS Feed",
"OpenAI",
"Slack"
],
"description": "매일 오전 8시 경쟁사 블로그 RSS를 자동 수집하고, OpenAI가 각 글의 핵심 내용을 2~3줄로 요약해 팀 Slack 채널에 '경쟁사 동향 브리핑'으로 발송합니다.",
"nodes": [
{
"id": "node1",
"type": "n8n-nodes-base.scheduleTrigger",
"name": "매일 오전 8시 실행",
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 8 * * *"
}
]
}
}
},
{
"id": "node2",
"type": "n8n-nodes-base.rssFeedRead",
"name": "경쟁사 A 블로그 RSS 수집",
"parameters": {
"url": "={{$env.COMPETITOR_A_RSS_URL}}",
"limit": 3
}
},
{
"id": "node3",
"type": "n8n-nodes-base.rssFeedRead",
"name": "경쟁사 B 블로그 RSS 수집",
"parameters": {
"url": "={{$env.COMPETITOR_B_RSS_URL}}",
"limit": 3
}
},
{
"id": "node4",
"type": "n8n-nodes-base.merge",
"name": "RSS 데이터 통합",
"parameters": {
"mode": "append"
}
},
{
"id": "node5",
"type": "n8n-nodes-base.openAi",
"name": "핵심 내용 요약",
"parameters": {
"resource": "chat",
"model": "gpt-4o-mini",
"messages": {
"values": [
{
"role": "user",
"content": "다음 블로그 글의 핵심 내용을 2~3줄로 요약해주세요. 한국어로 작성해주세요.\n\n제목: {{$json['title']}}\n내용: {{$json['contentSnippet']}}"
}
]
}
}
},
{
"id": "node6",
"type": "n8n-nodes-base.slack",
"name": "경쟁사 동향 브리핑 발송",
"parameters": {
"channel": "={{$env.CONTENT_SLACK_CHANNEL}}",
"text": "🔍 오늘의 경쟁사 동향 브리핑\n\n*{{$json['title']}}*\n{{$node['핵심 내용 요약'].json['message']['content']}}\n🔗 {{$json['link']}}"
}
}
],
"envVariables": {
"COMPETITOR_A_RSS_URL": "경쟁사 A 블로그 RSS URL",
"COMPETITOR_B_RSS_URL": "경쟁사 B 블로그 RSS URL",
"CONTENT_SLACK_CHANNEL": "콘텐츠 팀 Slack 채널 ID"
},
"tips": [
"경쟁사가 3개 이상이라면 RSS Feed Read 노드를 추가하고 Merge 노드에서 모두 합쳐 처리하면 됩니다.",
"이미 처리한 글을 중복 발송하지 않으려면 Google Sheets에 처리된 URL 목록을 관리하고 IF 노드로 비교하세요.",
"레시피 005(RSS 뉴스 수집)와 구조가 동일해요. 두 레시피를 결합하면 경쟁사 + 업계 뉴스를 통합한 아침 브리핑 봇을 만들 수 있어요."
],
"qrUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe076"
}