{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cs-autoresponder",
    "name": "cs-autoresponder",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/mupengi-bot/cs-autoresponder",
    "canonicalUrl": "https://clawhub.ai/mupengi-bot/cs-autoresponder",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/cs-autoresponder",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cs-autoresponder",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "config/faq-template.json",
      "config/template.json",
      "lib/channels.js",
      "lib/logger.js"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/cs-autoresponder"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/cs-autoresponder",
    "agentPageUrl": "https://openagent3.xyz/skills/cs-autoresponder/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cs-autoresponder/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cs-autoresponder/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "🎧 CS Auto-Responder",
        "body": "고객사용 CS 자동응답 스킬. 멀티채널 고객 문의를 수신하고, FAQ 기반 자동 응답, 에스컬레이션, 일일 요약을 제공합니다."
      },
      {
        "title": "핵심 기능",
        "body": "멀티채널 수신 — 카카오톡 알림톡, 인스타 DM, 이메일 등에서 고객 문의 감지\nFAQ 매칭 — 고객사별 FAQ DB (JSON)에서 의미 기반 매칭 → 자동 답변\n에스컬레이션 — 복잡한 문의 / 불만 감지 시 사장님한테 Discord/카톡 알림\n응답 톤 커스텀 — 고객사 브랜드 톤에 맞춘 답변 생성\n로그 기록 — 모든 CS 대화 로그 저장 (일별)\n대시보드 요약 — 일일 CS 요약 (총 문의수, 자동처리율, 에스컬레이션 건수)"
      },
      {
        "title": "1. 고객사 설정 파일 생성",
        "body": "cd {baseDir}\ncp config/template.json config/고객사명.json\n\nconfig/고객사명.json 편집:\n\nclientId: 고유 ID\nname: 고객사 이름\nchannels: 연동할 채널 (kakao, instagram, email)\ntone: 응답 톤 (formal, friendly, casual)\nescalationTarget: Discord 채널 ID 또는 카톡 번호\nfaqPath: FAQ DB 파일 경로"
      },
      {
        "title": "2. FAQ DB 생성",
        "body": "cp config/faq-template.json config/고객사명-faq.json\n\nFAQ 항목 추가 (JSON 배열):\n\n[\n  {\n    \"id\": \"faq001\",\n    \"question\": \"영업시간이 어떻게 되나요?\",\n    \"keywords\": [\"영업시간\", \"몇시\", \"언제\", \"운영\"],\n    \"answer\": \"저희는 평일 10:00-22:00, 주말 12:00-20:00 영업합니다.\",\n    \"category\": \"운영정보\"\n  }\n]"
      },
      {
        "title": "채널 모니터링 시작",
        "body": "node {baseDir}/scripts/monitor.js --config config/고객사명.json\n\n백그라운드 실행 (pm2 권장):\n\npm2 start {baseDir}/scripts/monitor.js --name cs-mufi -- --config config/고객사명.json\npm2 logs cs-mufi"
      },
      {
        "title": "수동 응답 테스트",
        "body": "node {baseDir}/scripts/respond.js \\\n  --config config/고객사명.json \\\n  --channel instagram \\\n  --user \"iam.dawn.kim\" \\\n  --message \"영업시간 알려주세요\""
      },
      {
        "title": "일일 대시보드 요약",
        "body": "node {baseDir}/scripts/dashboard.js --config config/고객사명.json --date 2026-02-18\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━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
      },
      {
        "title": "에스컬레이션 수동 발송",
        "body": "node {baseDir}/scripts/escalate.js \\\n  --config config/고객사명.json \\\n  --channel instagram \\\n  --user \"angry_customer\" \\\n  --message \"환불 요청합니다\" \\\n  --reason \"환불 요청\""
      },
      {
        "title": "디렉토리 구조",
        "body": "cs-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별)"
      },
      {
        "title": "채널 어댑터 (Mock)",
        "body": "현재는 mock API로 동작. Production 연동 시 lib/channels.js 수정:\n\n카카오톡: Kakao Alimtalk API\nInstagram: tools/insta-cli/v2.js 활용\n이메일: himalaya 또는 Gmail API"
      },
      {
        "title": "의미 기반 매칭 로직",
        "body": "lib/matcher.js는 간단한 키워드 매칭을 사용:\n\n고객 문의를 소문자로 변환\nFAQ 키워드와 비교 (부분 일치)\n매칭 점수 계산 (여러 키워드 매칭 시 가중치 증가)\n임계값(0.6) 이상이면 자동 응답, 미만이면 에스컬레이션\n\nProduction 시 OpenAI Embeddings 또는 Claude 활용 권장."
      },
      {
        "title": "에스컬레이션 조건",
        "body": "다음 조건 중 하나라도 해당하면 에스컬레이션:\n\nFAQ 매칭 점수 < 0.6\n부정 키워드 감지 (환불, 불만, 화남, 실망, 최악)\n고객이 \"담당자\", \"사람\", \"사장님\" 요청\n연속 3회 이상 동일 고객 문의"
      },
      {
        "title": "로그 형식",
        "body": "logs/YYYY-MM-DD/{clientId}.jsonl:\n\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\":\"환불 키워드\"}"
      },
      {
        "title": "주의사항",
        "body": "톤 일관성: 고객사별 톤 설정을 준수하세요\n개인정보: 로그에 민감한 정보(주민번호, 카드번호) 저장 금지\n응답 속도: FAQ 매칭은 3초 이내 응답 목표\n에스컬레이션 피로: 너무 많은 에스컬레이션은 피로감 유발 → FAQ 지속 보강"
      },
      {
        "title": "확장 가능성",
        "body": "OpenAI Embeddings 기반 의미 매칭\n 대화 컨텍스트 유지 (세션 관리)\n A/B 테스트 (응답 톤 실험)\n 멀티턴 대화 지원\n 자동 FAQ 학습 (고빈도 질문 감지)\n 고객 만족도 설문 (응답 후 별점)\n\nNote: 이 스킬은 mock API로 제작되었습니다. Production 환경에서는 실제 채널 API 연동이 필요합니다."
      }
    ],
    "body": "🎧 CS Auto-Responder\n\n고객사용 CS 자동응답 스킬. 멀티채널 고객 문의를 수신하고, FAQ 기반 자동 응답, 에스컬레이션, 일일 요약을 제공합니다.\n\n핵심 기능\n멀티채널 수신 — 카카오톡 알림톡, 인스타 DM, 이메일 등에서 고객 문의 감지\nFAQ 매칭 — 고객사별 FAQ DB (JSON)에서 의미 기반 매칭 → 자동 답변\n에스컬레이션 — 복잡한 문의 / 불만 감지 시 사장님한테 Discord/카톡 알림\n응답 톤 커스텀 — 고객사 브랜드 톤에 맞춘 답변 생성\n로그 기록 — 모든 CS 대화 로그 저장 (일별)\n대시보드 요약 — 일일 CS 요약 (총 문의수, 자동처리율, 에스컬레이션 건수)\n초기 설정\n1. 고객사 설정 파일 생성\ncd {baseDir}\ncp config/template.json config/고객사명.json\n\n\nconfig/고객사명.json 편집:\n\nclientId: 고유 ID\nname: 고객사 이름\nchannels: 연동할 채널 (kakao, instagram, email)\ntone: 응답 톤 (formal, friendly, casual)\nescalationTarget: Discord 채널 ID 또는 카톡 번호\nfaqPath: FAQ DB 파일 경로\n2. FAQ DB 생성\ncp config/faq-template.json config/고객사명-faq.json\n\n\nFAQ 항목 추가 (JSON 배열):\n\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채널 모니터링 시작\nnode {baseDir}/scripts/monitor.js --config config/고객사명.json\n\n\n백그라운드 실행 (pm2 권장):\n\npm2 start {baseDir}/scripts/monitor.js --name cs-mufi -- --config config/고객사명.json\npm2 logs cs-mufi\n\n수동 응답 테스트\nnode {baseDir}/scripts/respond.js \\\n  --config config/고객사명.json \\\n  --channel instagram \\\n  --user \"iam.dawn.kim\" \\\n  --message \"영업시간 알려주세요\"\n\n일일 대시보드 요약\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에스컬레이션 수동 발송\nnode {baseDir}/scripts/escalate.js \\\n  --config config/고객사명.json \\\n  --channel instagram \\\n  --user \"angry_customer\" \\\n  --message \"환불 요청합니다\" \\\n  --reason \"환불 요청\"\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채널 어댑터 (Mock)\n\n현재는 mock API로 동작. Production 연동 시 lib/channels.js 수정:\n\n카카오톡: Kakao Alimtalk API\nInstagram: tools/insta-cli/v2.js 활용\n이메일: himalaya 또는 Gmail API\n의미 기반 매칭 로직\n\nlib/matcher.js는 간단한 키워드 매칭을 사용:\n\n고객 문의를 소문자로 변환\nFAQ 키워드와 비교 (부분 일치)\n매칭 점수 계산 (여러 키워드 매칭 시 가중치 증가)\n임계값(0.6) 이상이면 자동 응답, 미만이면 에스컬레이션\n\nProduction 시 OpenAI Embeddings 또는 Claude 활용 권장.\n\n에스컬레이션 조건\n\n다음 조건 중 하나라도 해당하면 에스컬레이션:\n\nFAQ 매칭 점수 < 0.6\n부정 키워드 감지 (환불, 불만, 화남, 실망, 최악)\n고객이 \"담당자\", \"사람\", \"사장님\" 요청\n연속 3회 이상 동일 고객 문의\n로그 형식\n\nlogs/YYYY-MM-DD/{clientId}.jsonl:\n\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응답 속도: FAQ 매칭은 3초 이내 응답 목표\n에스컬레이션 피로: 너무 많은 에스컬레이션은 피로감 유발 → FAQ 지속 보강\n확장 가능성\n OpenAI Embeddings 기반 의미 매칭\n 대화 컨텍스트 유지 (세션 관리)\n A/B 테스트 (응답 톤 실험)\n 멀티턴 대화 지원\n 자동 FAQ 학습 (고빈도 질문 감지)\n 고객 만족도 설문 (응답 후 별점)\n\nNote: 이 스킬은 mock API로 제작되었습니다. Production 환경에서는 실제 채널 API 연동이 필요합니다."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/mupengi-bot/cs-autoresponder",
    "publisherUrl": "https://clawhub.ai/mupengi-bot/cs-autoresponder",
    "owner": "mupengi-bot",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cs-autoresponder",
    "downloadUrl": "https://openagent3.xyz/downloads/cs-autoresponder",
    "agentUrl": "https://openagent3.xyz/skills/cs-autoresponder/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cs-autoresponder/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cs-autoresponder/agent.md"
  }
}