6.5 KiB
6.5 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | verification_status | tags | raw_sources | last_reinforced | github_commit | tech_stack | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wiki-2026-0508-support-platforms | Support Platforms | 10_Wiki/Topics | verified | self |
|
none | A | 0.9 | applied |
|
2026-05-10 | pending |
|
Support Platforms
매 한 줄
"매 player support 의 retention 의 hidden lever". 2026 game support 의 in-app chatbot (LLM-powered) → human escalation → CRM 의 multi-tier system. Helpshift, Zendesk, Intercom, Salesforce 매 dominant — 매 mobile F2P (Genshin, Royal Match) 매 24/7 multilingual coverage 매 churn 의 reduce.
매 핵심
매 support tier
- Tier 0 (self-serve): FAQ, in-app help center.
- Tier 1 (LLM bot): Claude/GPT-5-powered chatbot — 매 80% 의 query 의 deflect.
- Tier 2 (human agent): refunds, account recovery, complex bugs.
- Tier 3 (specialist): payment disputes, banned accounts, exploit investigations.
매 platform 비교
- Helpshift: 매 mobile-native, in-game SDK, AI-first (2026 Claude integration).
- Zendesk: 매 enterprise, omnichannel, mature ticket workflows.
- Intercom: 매 conversational, product-led, Fin AI.
- Salesforce Service Cloud: 매 CRM-integrated, 매 large publishers.
매 응용
- Genshin Impact — Helpshift in-app + live chat for refunds.
- Royal Match — AI bot deflection 매 90%+ — 매 cost-per-ticket 의 dramatic reduction.
- Riot Games — custom Salesforce + community moderators.
💻 패턴
Helpshift SDK Init
import Helpshift from '@helpshift/react-native-helpshift';
Helpshift.install({
platformId: process.env.HS_PLATFORM_ID,
domain: process.env.HS_DOMAIN,
enableInAppNotifications: true,
enableLogging: __DEV__,
});
Helpshift.setUser({
userId: player.id,
email: player.email,
name: player.displayName,
});
Contextual Metadata Attach
function openSupport(reason: SupportReason) {
Helpshift.showConversation({
cifs: {
level: { type: 'number', value: player.level },
spend_lifetime: { type: 'number', value: player.totalSpendUSD },
last_purchase: { type: 'date', value: player.lastPurchaseTimestamp },
crash_count_24h: { type: 'number', value: getRecentCrashCount() },
client_version: { type: 'string', value: APP_VERSION },
device: { type: 'string', value: Device.modelId },
},
tags: [reason, player.vipTier],
});
}
LLM Bot Deflection (Claude)
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
async function botReply(userMessage: string, playerContext: PlayerContext) {
const response = await client.messages.create({
model: 'claude-opus-4-7',
max_tokens: 500,
system: [
{
type: 'text',
text: SUPPORT_SYSTEM_PROMPT + KB_CONTENTS,
cache_control: { type: 'ephemeral' },
},
],
messages: [
{
role: 'user',
content: `Player context: ${JSON.stringify(playerContext)}\n\nQuery: ${userMessage}`,
},
],
});
const reply = response.content[0].text;
if (reply.includes('[ESCALATE]')) {
return { escalate: true, reply: reply.replace('[ESCALATE]', '') };
}
return { escalate: false, reply };
}
Refund Eligibility Check
async function evaluateRefund(ticket: Ticket): Promise<RefundDecision> {
const player = await getPlayer(ticket.userId);
const purchase = await getPurchase(ticket.purchaseId);
if (Date.now() - purchase.timestamp > 14 * 24 * 3600 * 1000) {
return { approved: false, reason: 'OUTSIDE_WINDOW' };
}
if (player.refundCount30d >= 2) {
return { approved: false, reason: 'REFUND_ABUSE_FLAG' };
}
if (purchase.consumed && purchase.consumedAmount > 0.5 * purchase.value) {
return { approved: false, reason: 'CONSUMED' };
}
return { approved: true };
}
Ticket Routing
function routeTicket(ticket: Ticket): Queue {
if (ticket.tags.includes('payment')) return 'tier3-payments';
if (ticket.player.vipTier >= 5) return 'tier2-vip';
if (ticket.tags.includes('account-recovery')) return 'tier3-trust';
if (ticket.bot_confidence > 0.85) return 'tier1-bot';
return 'tier2-general';
}
Sentiment-Triggered Escalation
async function checkSentiment(message: string, ticket: Ticket) {
const sentiment = await analyzeSentiment(message);
if (sentiment.score < -0.7 || sentiment.flags.includes('threat')) {
await escalate(ticket, 'tier3-trust');
await notifySlack('#support-escalations', ticket.id);
}
}
매 결정 기준
| 상황 | Approach |
|---|---|
| mobile F2P, in-game support | Helpshift |
| omnichannel (web + game + email) | Zendesk |
| product-led, conversational | Intercom |
| enterprise CRM 매 integrated | Salesforce Service Cloud |
| custom 매 needed | Helpshift API + custom UI |
기본값: Helpshift + Claude-powered bot deflection — 매 cost-effective 매 mobile games 의 industry standard.
🔗 Graph
- 부모: Game Design · Live Ops · Customer Experience
- 변형: In-app Support · Email Support · Community Moderation
- 응용: Helpshift · Zendesk · Intercom · Salesforce Service Cloud
- Adjacent: Refund Policy · Player Retention · CRM Integration
🤖 LLM 활용
언제: 매 Tier 1 deflection (FAQ-style queries), translation, sentiment analysis, response drafting for human agents. 언제 X: 매 refund decision 의 final, ban/unban, payment dispute — 매 human judgment 의 필수.
❌ 안티패턴
- Bot 만: 매 escalation path 의 X → user frustration.
- No context attach: 매 agent 의 player level/spend 의 X → resolution time 의 increase.
- 24h 의 SLA 의 X: mobile player expect <2h response.
- Single language: 매 global game 의 매 multilingual support 의 mandatory.
🧪 검증 / 중복
- Verified (Helpshift docs, Zendesk Game Industry report 2026, Pocket Gamer Connects talks).
- 신뢰도 A.
🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — support platform comparison + 6 implementation patterns |