cs-autoresponder
by @mupengi-bot
Multi-channel customer service auto-responder with FAQ matching, escalation, and daily summaries.
clawhub install cs-autoresponderπ About This Skill
name: cs-autoresponder description: Multi-channel customer service auto-responder with FAQ matching, escalation, and daily summaries. homepage: https://github.com/openclaw/skills metadata: { "openclaw": { "emoji": "π§", "requires": { "bins": ["node"] }, "install": [ { "id": "node-brew", "kind": "brew", "formula": "node", "bins": ["node"], "label": "Install Node.js (brew)", }, ], }, } disable-model-invocation: true
π§ CS Auto-Responder
κ³ κ°μ¬μ© CS μλμλ΅ μ€ν¬. λ©ν°μ±λ κ³ κ° λ¬Έμλ₯Ό μμ νκ³ , FAQ κΈ°λ° μλ μλ΅, μμ€μ»¬λ μ΄μ , μΌμΌ μμ½μ μ 곡ν©λλ€.
ν΅μ¬ κΈ°λ₯
1. λ©ν°μ±λ μμ β μΉ΄μΉ΄μ€ν‘ μλ¦Όν‘, μΈμ€ν DM, μ΄λ©μΌ λ±μμ κ³ κ° λ¬Έμ κ°μ§ 2. FAQ λ§€μΉ β κ³ κ°μ¬λ³ FAQ DB (JSON)μμ μλ―Έ κΈ°λ° λ§€μΉ β μλ λ΅λ³ 3. μμ€μ»¬λ μ΄μ β 볡μ‘ν λ¬Έμ / λΆλ§ κ°μ§ μ μ¬μ₯λνν Discord/μΉ΄ν‘ μλ¦Ό 4. μλ΅ ν€ μ»€μ€ν β κ³ κ°μ¬ λΈλλ ν€μ λ§μΆ λ΅λ³ μμ± 5. λ‘κ·Έ κΈ°λ‘ β λͺ¨λ CS λν λ‘κ·Έ μ μ₯ (μΌλ³) 6. λμ보λ μμ½ β μΌμΌ CS μμ½ (μ΄ λ¬Έμμ, μλμ²λ¦¬μ¨, μμ€μ»¬λ μ΄μ 건μ)
μ΄κΈ° μ€μ
1. κ³ κ°μ¬ μ€μ νμΌ μμ±
cd {baseDir}
cp config/template.json config/κ³ κ°μ¬λͺ
.json
config/κ³ κ°μ¬λͺ
.json νΈμ§:
clientId: κ³ μ IDname: κ³ κ°μ¬ μ΄λ¦channels: μ°λν μ±λ (kakao, instagram, email)tone: μλ΅ ν€ (formal, friendly, casual)escalationTarget: Discord μ±λ ID λλ μΉ΄ν‘ λ²νΈfaqPath: FAQ DB νμΌ κ²½λ‘2. FAQ DB μμ±
cp config/faq-template.json config/κ³ κ°μ¬λͺ
-faq.json
FAQ νλͺ© μΆκ° (JSON λ°°μ΄):
[
{
"id": "faq001",
"question": "μμ
μκ°μ΄ μ΄λ»κ² λλμ?",
"keywords": ["μμ
μκ°", "λͺμ", "μΈμ ", "μ΄μ"],
"answer": "μ ν¬λ νμΌ 10:00-22:00, μ£Όλ§ 12:00-20:00 μμ
ν©λλ€.",
"category": "μ΄μμ 보"
}
]
μ¬μ©λ²
μ±λ λͺ¨λν°λ§ μμ
node {baseDir}/scripts/monitor.js --config config/κ³ κ°μ¬λͺ
.json
λ°±κ·ΈλΌμ΄λ μ€ν (pm2 κΆμ₯):
pm2 start {baseDir}/scripts/monitor.js --name cs-mufi -- --config config/κ³ κ°μ¬λͺ
.json
pm2 logs cs-mufi
μλ μλ΅ ν μ€νΈ
node {baseDir}/scripts/respond.js \
--config config/κ³ κ°μ¬λͺ
.json \
--channel instagram \
--user "iam.dawn.kim" \
--message "μμ
μκ° μλ €μ£ΌμΈμ"
μΌμΌ λμ보λ μμ½
node {baseDir}/scripts/dashboard.js --config config/κ³ κ°μ¬λͺ
.json --date 2026-02-18
μΆλ ₯ μμ:
π CS λμ보λ - MUFI ν¬ν λΆμ€ (2026-02-18)
βββββββββββββββββββββββββββββββββ
μ΄ λ¬Έμμ: 47건
μλ μ²λ¦¬: 38건 (80.9%)
μμ€μ»¬λ μ΄μ
: 9건 (19.1%)μΉ΄ν
κ³ λ¦¬λ³:
β’ μ΄μμ 보: 18건
β’ κ°κ²©/μμ½: 15건
β’ κΈ°μ λ¬Έμ : 9건
β’ λΆλ§/νλΆ: 5건
μ±λλ³:
⒠Instagram DM: 28건
β’ μΉ΄μΉ΄μ€ν‘: 13건
β’ μ΄λ©μΌ: 6건
νκ· μλ΅μκ°: 3.2μ΄
βββββββββββββββββββββββββββββββββ
μμ€μ»¬λ μ΄μ μλ λ°μ‘
node {baseDir}/scripts/escalate.js \
--config config/κ³ κ°μ¬λͺ
.json \
--channel instagram \
--user "angry_customer" \
--message "νλΆ μμ²ν©λλ€" \
--reason "νλΆ μμ²"
λλ ν 리 ꡬ쑰
cs-autoresponder/
βββ SKILL.md
βββ scripts/
β βββ monitor.js # μ±λ λͺ¨λν°λ§ λ©μΈ 루ν
β βββ respond.js # FAQ λ§€μΉ & μλ μλ΅
β βββ escalate.js # μμ€μ»¬λ μ΄μ
μλ¦Ό
β βββ dashboard.js # μΌμΌ μμ½ λμ보λ
βββ lib/
β βββ channels.js # μ±λ μ΄λν° (mock API)
β βββ matcher.js # μλ―Έ κΈ°λ° FAQ λ§€μΉ
β βββ logger.js # λν λ‘κ·Έ κΈ°λ‘
βββ config/
β βββ template.json # κ³ κ°μ¬ μ€μ ν
νλ¦Ώ
β βββ faq-template.json # FAQ DB ν
νλ¦Ώ
βββ logs/
βββ YYYY-MM-DD/ # μΌλ³ λν λ‘κ·Έ (clientIdλ³)
μ±λ μ΄λν° (Mock)
νμ¬λ mock APIλ‘ λμ. Production μ°λ μ lib/channels.js μμ :
tools/insta-cli/v2.js νμ©μλ―Έ κΈ°λ° λ§€μΉ λ‘μ§
lib/matcher.jsλ κ°λ¨ν ν€μλ λ§€μΉμ μ¬μ©:
1. κ³ κ° λ¬Έμλ₯Ό μλ¬Έμλ‘ λ³ν
2. FAQ ν€μλμ λΉκ΅ (λΆλΆ μΌμΉ)
3. λ§€μΉ μ μ κ³μ° (μ¬λ¬ ν€μλ λ§€μΉ μ κ°μ€μΉ μ¦κ°)
4. μκ³κ°(0.6) μ΄μμ΄λ©΄ μλ μλ΅, λ―Έλ§μ΄λ©΄ μμ€μ»¬λ μ΄μ
Production μ OpenAI Embeddings λλ Claude νμ© κΆμ₯.
μμ€μ»¬λ μ΄μ 쑰건
λ€μ 쑰건 μ€ νλλΌλ ν΄λΉνλ©΄ μμ€μ»¬λ μ΄μ :
λ‘κ·Έ νμ
logs/YYYY-MM-DD/{clientId}.jsonl:
{"timestamp":"2026-02-18T12:34:56.789Z","channel":"instagram","user":"iam.dawn.kim","message":"μμ
μκ°?","response":"νμΌ 10-22μ μμ
ν©λλ€","faqId":"faq001","score":0.85,"escalated":false}
{"timestamp":"2026-02-18T12:40:11.123Z","channel":"kakao","user":"010-1234-5678","message":"νλΆνκ³ μΆμ΄μ","response":null,"faqId":null,"score":0.0,"escalated":true,"reason":"νλΆ ν€μλ"}
μ£Όμμ¬ν
νμ₯ κ°λ₯μ±
Note: μ΄ μ€ν¬μ mock APIλ‘ μ μλμμ΅λλ€. Production νκ²½μμλ μ€μ μ±λ API μ°λμ΄ νμν©λλ€.