{"skill":{"slug":"cs-autoresponder","displayName":"cs-autoresponder","summary":"Multi-channel customer service auto-responder with FAQ matching, escalation, and daily summaries.","description":"---\nname: cs-autoresponder\ndescription: Multi-channel customer service auto-responder with FAQ matching, escalation, and daily summaries.\nhomepage: https://github.com/openclaw/skills\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🎧\",\n        \"requires\": { \"bins\": [\"node\"] },\n        \"install\":\n          [\n            {\n              \"id\": \"node-brew\",\n              \"kind\": \"brew\",\n              \"formula\": \"node\",\n              \"bins\": [\"node\"],\n              \"label\": \"Install Node.js (brew)\",\n            },\n          ],\n      },\n  }\ndisable-model-invocation: true\n---\n\n# 🎧 CS Auto-Responder\n\n고객사용 CS 자동응답 스킬. 멀티채널 고객 문의를 수신하고, FAQ 기반 자동 응답, 에스컬레이션, 일일 요약을 제공합니다.\n\n## 핵심 기능\n\n1. **멀티채널 수신** — 카카오톡 알림톡, 인스타 DM, 이메일 등에서 고객 문의 감지\n2. **FAQ 매칭** — 고객사별 FAQ DB (JSON)에서 의미 기반 매칭 → 자동 답변\n3. **에스컬레이션** — 복잡한 문의 / 불만 감지 시 사장님한테 Discord/카톡 알림\n4. **응답 톤 커스텀** — 고객사 브랜드 톤에 맞춘 답변 생성\n5. **로그 기록** — 모든 CS 대화 로그 저장 (일별)\n6. **대시보드 요약** — 일일 CS 요약 (총 문의수, 자동처리율, 에스컬레이션 건수)\n\n## 초기 설정\n\n### 1. 고객사 설정 파일 생성\n\n```bash\ncd {baseDir}\ncp config/template.json config/고객사명.json\n```\n\n`config/고객사명.json` 편집:\n- `clientId`: 고유 ID\n- `name`: 고객사 이름\n- `channels`: 연동할 채널 (kakao, instagram, email)\n- `tone`: 응답 톤 (formal, friendly, casual)\n- `escalationTarget`: Discord 채널 ID 또는 카톡 번호\n- `faqPath`: FAQ DB 파일 경로\n\n### 2. FAQ DB 생성\n\n```bash\ncp config/faq-template.json config/고객사명-faq.json\n```\n\nFAQ 항목 추가 (JSON 배열):\n```json\n[\n  {\n    \"id\": \"faq001\",\n    \"question\": \"영업시간이 어떻게 되나요?\",\n    \"keywords\": [\"영업시간\", \"몇시\", \"언제\", \"운영\"],\n    \"answer\": \"저희는 평일 10:00-22:00, 주말 12:00-20:00 영업합니다.\",\n    \"category\": \"운영정보\"\n  }\n]\n```\n\n## 사용법\n\n### 채널 모니터링 시작\n\n```bash\nnode {baseDir}/scripts/monitor.js --config config/고객사명.json\n```\n\n백그라운드 실행 (pm2 권장):\n```bash\npm2 start {baseDir}/scripts/monitor.js --name cs-mufi -- --config config/고객사명.json\npm2 logs cs-mufi\n```\n\n### 수동 응답 테스트\n\n```bash\nnode {baseDir}/scripts/respond.js \\\n  --config config/고객사명.json \\\n  --channel instagram \\\n  --user \"iam.dawn.kim\" \\\n  --message \"영업시간 알려주세요\"\n```\n\n### 일일 대시보드 요약\n\n```bash\nnode {baseDir}/scripts/dashboard.js --config config/고객사명.json --date 2026-02-18\n```\n\n출력 예시:\n```\n📊 CS 대시보드 - MUFI 포토부스 (2026-02-18)\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n총 문의수: 47건\n자동 처리: 38건 (80.9%)\n에스컬레이션: 9건 (19.1%)\n\n카테고리별:\n  • 운영정보: 18건\n  • 가격/예약: 15건\n  • 기술문제: 9건\n  • 불만/환불: 5건\n\n채널별:\n  • Instagram DM: 28건\n  • 카카오톡: 13건\n  • 이메일: 6건\n\n평균 응답시간: 3.2초\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n```\n\n### 에스컬레이션 수동 발송\n\n```bash\nnode {baseDir}/scripts/escalate.js \\\n  --config config/고객사명.json \\\n  --channel instagram \\\n  --user \"angry_customer\" \\\n  --message \"환불 요청합니다\" \\\n  --reason \"환불 요청\"\n```\n\n## 디렉토리 구조\n\n```\ncs-autoresponder/\n├── SKILL.md\n├── scripts/\n│   ├── monitor.js       # 채널 모니터링 메인 루프\n│   ├── respond.js       # FAQ 매칭 & 자동 응답\n│   ├── escalate.js      # 에스컬레이션 알림\n│   └── dashboard.js     # 일일 요약 대시보드\n├── lib/\n│   ├── channels.js      # 채널 어댑터 (mock API)\n│   ├── matcher.js       # 의미 기반 FAQ 매칭\n│   └── logger.js        # 대화 로그 기록\n├── config/\n│   ├── template.json    # 고객사 설정 템플릿\n│   └── faq-template.json # FAQ DB 템플릿\n└── logs/\n    └── YYYY-MM-DD/      # 일별 대화 로그 (clientId별)\n```\n\n## 채널 어댑터 (Mock)\n\n현재는 mock API로 동작. Production 연동 시 `lib/channels.js` 수정:\n\n- **카카오톡**: Kakao Alimtalk API\n- **Instagram**: `tools/insta-cli/v2.js` 활용\n- **이메일**: himalaya 또는 Gmail API\n\n## 의미 기반 매칭 로직\n\n`lib/matcher.js`는 간단한 키워드 매칭을 사용:\n1. 고객 문의를 소문자로 변환\n2. FAQ 키워드와 비교 (부분 일치)\n3. 매칭 점수 계산 (여러 키워드 매칭 시 가중치 증가)\n4. 임계값(0.6) 이상이면 자동 응답, 미만이면 에스컬레이션\n\nProduction 시 OpenAI Embeddings 또는 Claude 활용 권장.\n\n## 에스컬레이션 조건\n\n다음 조건 중 하나라도 해당하면 에스컬레이션:\n- FAQ 매칭 점수 < 0.6\n- 부정 키워드 감지 (환불, 불만, 화남, 실망, 최악)\n- 고객이 \"담당자\", \"사람\", \"사장님\" 요청\n- 연속 3회 이상 동일 고객 문의\n\n## 로그 형식\n\n`logs/YYYY-MM-DD/{clientId}.jsonl`:\n```jsonl\n{\"timestamp\":\"2026-02-18T12:34:56.789Z\",\"channel\":\"instagram\",\"user\":\"iam.dawn.kim\",\"message\":\"영업시간?\",\"response\":\"평일 10-22시 영업합니다\",\"faqId\":\"faq001\",\"score\":0.85,\"escalated\":false}\n{\"timestamp\":\"2026-02-18T12:40:11.123Z\",\"channel\":\"kakao\",\"user\":\"010-1234-5678\",\"message\":\"환불하고 싶어요\",\"response\":null,\"faqId\":null,\"score\":0.0,\"escalated\":true,\"reason\":\"환불 키워드\"}\n```\n\n## 주의사항\n\n- **톤 일관성**: 고객사별 톤 설정을 준수하세요\n- **개인정보**: 로그에 민감한 정보(주민번호, 카드번호) 저장 금지\n- **응답 속도**: FAQ 매칭은 3초 이내 응답 목표\n- **에스컬레이션 피로**: 너무 많은 에스컬레이션은 피로감 유발 → FAQ 지속 보강\n\n## 확장 가능성\n\n- [ ] OpenAI Embeddings 기반 의미 매칭\n- [ ] 대화 컨텍스트 유지 (세션 관리)\n- [ ] A/B 테스트 (응답 톤 실험)\n- [ ] 멀티턴 대화 지원\n- [ ] 자동 FAQ 학습 (고빈도 질문 감지)\n- [ ] 고객 만족도 설문 (응답 후 별점)\n\n---\n\n**Note**: 이 스킬은 mock API로 제작되었습니다. Production 환경에서는 실제 채널 API 연동이 필요합니다.\n","tags":{"latest":"1.0.1"},"stats":{"comments":0,"downloads":1094,"installsAllTime":1,"installsCurrent":1,"stars":0,"versions":2},"createdAt":1771387513858,"updatedAt":1778991366888},"latestVersion":{"version":"1.0.1","createdAt":1774422815177,"changelog":"보안: 실제 채널ID 제거, 플레이스홀더로 교체","license":"MIT-0"},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"mupengi-bot","userId":"s17cb0n67gxg14m41wrqex0hr183j5d2","displayName":"mupengi-bot","image":"https://avatars.githubusercontent.com/u/259087580?v=4"},"moderation":null}