顧客満足度の測定
「AIが良い回答を返しているかは、最終的に顧客が満足しているかで判断する。」
田中VPoEが顧客満足度データを見せる。
「CSAT、解決率、再問い合わせ率。これらの指標でエージェントの真の価値を測ろう。」
満足度指標
| 指標 | 定義 | 目標 |
|---|---|---|
| CSAT | 顧客満足度アンケート(1-5点) | >= 4.0 |
| 一次解決率 | 1回の対応で解決した割合 | >= 70% |
| 再問い合わせ率 | 同一件で再度問い合わせした割合 | <= 15% |
| 対応時間 | 問い合わせから解決までの時間 | < 5分(AI)/ < 30分(人間) |
| エスカレーション率 | 人間に引き継がれた割合 | <= 25% |
CSATの自動収集
class CSATCollector:
"""顧客満足度の収集"""
def __init__(self):
self.scores = []
def request_feedback(self, ticket_id):
"""対応後にCSATアンケートを送信"""
return {
'ticket_id': ticket_id,
'question': 'この対応にどの程度満足していますか?',
'options': [
{'value': 1, 'label': '非常に不満'},
{'value': 2, 'label': '不満'},
{'value': 3, 'label': '普通'},
{'value': 4, 'label': '満足'},
{'value': 5, 'label': '非常に満足'},
],
}
def record_score(self, ticket_id, score, comment=None):
"""CSATスコアを記録"""
self.scores.append({
'ticket_id': ticket_id,
'score': score,
'comment': comment,
'timestamp': datetime.now().isoformat(),
})
def compute_csat(self, period_days=30):
"""期間内のCSATを計算"""
recent = [s for s in self.scores
if (datetime.now() - datetime.fromisoformat(s['timestamp'])).days <= period_days]
if not recent:
return None
scores = [s['score'] for s in recent]
satisfied = sum(1 for s in scores if s >= 4)
return {
'csat_score': round(np.mean(scores), 2),
'satisfaction_rate': round(satisfied / len(scores) * 100, 1),
'n_responses': len(scores),
'distribution': {i: scores.count(i) for i in range(1, 6)},
}
AI対応 vs 人間対応の比較
def compare_ai_human_performance(ai_tickets, human_tickets):
"""AI対応と人間対応のパフォーマンス比較"""
comparison = {
'AI対応': {
'n_tickets': len(ai_tickets),
'avg_csat': round(np.mean([t['csat'] for t in ai_tickets if t.get('csat')]), 2),
'first_resolution_rate': round(
sum(1 for t in ai_tickets if t['resolved_first']) / len(ai_tickets) * 100, 1
),
'avg_response_time_min': round(
np.mean([t['response_time_min'] for t in ai_tickets]), 1
),
'cost_per_ticket': 50, # API費用
},
'人間対応': {
'n_tickets': len(human_tickets),
'avg_csat': round(np.mean([t['csat'] for t in human_tickets if t.get('csat')]), 2),
'first_resolution_rate': round(
sum(1 for t in human_tickets if t['resolved_first']) / len(human_tickets) * 100, 1
),
'avg_response_time_min': round(
np.mean([t['response_time_min'] for t in human_tickets]), 1
),
'cost_per_ticket': 2500, # 人件費
},
}
return comparison
まとめ
| 項目 | ポイント |
|---|---|
| CSAT | 顧客満足度を直接測定(目標4.0以上) |
| 一次解決率 | AI対応の実用性を測る最重要指標 |
| 対応時間 | AI: <5分、人間: <30分を目標 |
| コスト比較 | AI: 50円/件 vs 人間: 2,500円/件 |
チェックリスト
- CSATの収集・計算方法を理解した
- 一次解決率と再問い合わせ率を計算できる
- AI対応と人間対応のパフォーマンスを比較できる
- 満足度改善のアクションを設計できる
次のステップへ
顧客満足度の測定を学んだ。次はエスカレーション最適化を学ぼう。
推定読了時間: 30分