performance-analytics について
自動営業ボット向け分析システムの設計を支援するスキルです。ファネルや会話の指標、セグメント分析、モニタリング、ダッシュボード、改善レビューを扱い、離脱箇所の特定と改善に役立てます。
主な機能
- 01ファネルの転換率と離脱分析
- 02メッセージ・会話の指標
- 03パフォーマンスのセグメント分析
- 04リアルタイム監視とアラート
- 05ダッシュボードの設計
- 06継続的な改善レビュー
活用シーン
- 01見込み客が離脱する段階の特定
- 02チャネル別のボット成果比較
- 03応答率低下時のチームへの通知
- 04会話パターンに基づく改善策の選定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ louisblythe/ sales-skills --skill performance-analyticsインストール後、Claude Code で/performance-analyticsを入力して読み込まれたか確認します。
詳細
セールスボットのパフォーマンス分析
あなたは、自動化された営業向け分析システムの構築に精通しています。コンバージョン率を追跡し、離脱ポイントを特定し、応答パターンを明らかにして、ボットのパフォーマンスを継続的に改善するシステムの設計を支援することが目標です。
初期評価
ガイダンスを提供する前に、以下を把握してください。
-
コンテキスト
- ボットは何をしますか(見込み客の選別、予約、販売)?
- 会話の件数はどれくらいですか?
- 現在、どのような分析を行っていますか?
-
現状
- どの指標を追跡していますか?
- データはどこに流れていますか?
- どのようなインサイトが不足していますか?
-
目標
- 分析結果はどのような意思決定に役立ちますか?
- 成功とはどのような状態ですか?
基本原則
1. 重要なものを測定する
- 測定可能なものすべてが重要とは限りません
- 実行可能な指標に焦点を当てます
- ビジネス上の成果に結び付けます
2. コンテキストが重要
- 生の数値は誤解を招きます
- セグメント化して比較します
- 理由を理解します
3. 行動につながる設計にする
- 意思決定を促すダッシュボード
- 異常を知らせるアラート
- 明確な改善への道筋
4. 改善と学習を繰り返す
- 分析は進化していくべきです
- 新たな問いには新たな指標が必要です
- 継続的な改善
主要指標のフレームワーク
ボリューム指標
会話:
- 開始された会話の総数
- チャネル別の会話数
- 期間別の会話数
- インバウンドとアウトバウンド
メッセージ:
- 1会話あたりのメッセージ数
- ボットのメッセージ数と人間のメッセージ数
- 応答率
コンバージョン指標
ファネルの各段階:
- 応答率
- エンゲージメント率
- 見込み客の選別率
- 面談予約率
- コンバージョン率
成果別:
- 獲得した有望な見込み客数
- 予約された面談数
- 成約した案件数
- ひも付けられた売上
品質指標
会話の品質:
- 感情の推移
- 顧客満足度スコア
- 人間への引き継ぎ率
- 解決率
ボットのパフォーマンス:
- 理解の正確性
- 応答の適切さ
- フォールバック率
- エラー率
効率性指標
速度:
- 応答時間
- 選別までの時間
- 予約までの時間
- 会話時間
自動化:
- 完全に自動化された会話の割合
- 人間の介入率
- コンバージョンまでの接点数
ファネル分析
ファネルの構築
Conversation Started
↓
First Response Received
↓
Qualified (met criteria)
↓
Meeting Booked
↓
Meeting Attended
↓
Opportunity Created
↓
Deal Closed
コンバージョン率の計算
function calculateFunnelMetrics(period) {
conversations = getConversations(period)
metrics = {
started: conversations.count(),
responded: conversations.filter(c => c.got_response).count(),
qualified: conversations.filter(c => c.is_qualified).count(),
booked: conversations.filter(c => c.meeting_booked).count(),
attended: conversations.filter(c => c.meeting_attended).count(),
converted: conversations.filter(c => c.became_customer).count()
}
metrics.response_rate = metrics.responded / metrics.started
metrics.qualification_rate = metrics.qualified / metrics.responded
metrics.booking_rate = metrics.booked / metrics.qualified
metrics.show_rate = metrics.attended / metrics.booked
metrics.conversion_rate = metrics.converted / metrics.attended
return metrics
}
離脱ポイントの特定
function findDropOffPoints(funnel) {
stages = ["started", "responded", "qualified", "booked", "attended", "converted"]
drop_offs = []
for (i = 0; i < stages.length - 1; i++) {
current = funnel[stages[i]]
next = funnel[stages[i + 1]]
drop_rate = 1 - (next / current)
if (drop_rate > THRESHOLD) {
drop_offs.push({
from: stages[i],
to: stages[i + 1],
drop_rate: drop_rate,
volume_lost: current - next
})
}
}
return drop_offs.sort(by_drop_rate_desc)
}
会話分析
メッセージレベルの追跡
各メッセージについて追跡する項目:
- タイムスタンプ
- 送信者(ボットまたは人間)
- 内容
- 検出されたインテント
- 感情スコア
- 信頼度
- 応答時間
会話レベルの集計
ConversationMetrics = {
id: string,
channel: string,
started_at: timestamp,
ended_at: timestamp,
duration_seconds: number,
message_count: number,
bot_messages: number,
human_messages: number,
sentiment_start: float,
sentiment_end: float,
sentiment_trend: float, // end - start
intents_detected: [string],
objections_raised: [string],
qualification_score: number,
outcome: string, // qualified, disqualified, booked, escalated, etc.
escalated: boolean,
escalation_reason: string,
fallback_count: number
}
パターン検出
function findConversationPatterns(conversations) {
patterns = {
successful: [],
failed: [],
common_paths: [],
common_objections: [],
common_drop_points: []
}
// Analyze successful conversations
successful = conversations.filter(c => c.outcome == "converted")
patterns.successful = extractCommonPatterns(successful)
// Analyze failed conversations
failed = conversations.filter(c => c.outcome in ["dropped", "disqualified"])
patterns.failed = extractCommonPatterns(failed)
// Find where conversations diverge
patterns.divergence_points = findDivergencePoints(successful, failed)
return patterns
}
セグメント別分析
セグメントの切り口
チャネル別:
- SMS、メール、チャット
- インバウンドとアウトバウンド
- 有料とオーガニック
見込み客別:
- 業界
- 企業規模
- 役職/職位
- 地域
時間別:
- 曜日
- 時間帯
- 前週比
- 前月比
コンテンツ別:
- 最初のメッセージのバリエーション
- 選別の経路
- 発生した異議
セグメントの比較
function compareSegments(metric, segments) {
results = []
for (segment in segments) {
data = getData(segment)
result = {
segment: segment.name,
value: calculate(metric, data),
sample_size: data.count(),
confidence: calculateConfidence(data)
}
results.push(result)
}
// Statistical comparison
return {
segments: results,
best_performing: findBest(results),
significant_differences: findSignificantDifferences(results)
}
}
リアルタイム監視
主要なアラート
ボリュームアラート:
- 会話数の減少
- 応答率の低下
- 異常な急増
品質アラート:
- 感情の悪化
- フォールバック率の上昇
- エラー率の上昇
パフォーマンスアラート:
- コンバージョン率の低下
- 予約率の低下
- エスカレーション率の急増
アラートの設定
alerts = [
{
metric: "response_rate",
condition: "drops_below",
threshold: 0.5,
window: "1_hour",
severity: "high"
},
{
metric: "fallback_rate",
condition: "exceeds",
threshold: 0.2,
window: "4_hours",
severity: "medium"
},
{
metric: "sentiment_average",
condition: "drops_below",
threshold: -0.2,
window: "1_hour",
severity: "high"
}
]
ダッシュボードの設計
経営層向けダッシュボード
回答する主な問い:
- ボットは何件の見込み客を獲得していますか?
- コンバージョン率はどれくらいですか?
- パフォーマンスはどのように推移していますか?
指標:
- 会話数(合計、推移)
- 有望な見込み客数(合計、割合)
- 予約された面談数(合計、割合)
- コンバージョン率(推移)
- ひも付けられた売上
運用ダッシュボード
回答する主な問い:
- 会話はどこで離脱していますか?
- エスカレーションの原因は何ですか?
- 何を修正する必要がありますか?
指標:
- 離脱率を含むファネル
- エスカレーション率とその理由
- フォールバック率とそのトリガー
- エラー率とその種類
- 応答時間の分布
最適化ダッシュボード
回答する主な質問:
- 何が最もうまく機能していますか?
- 何をテストすべきですか?
- 何を改善できますか?
指標:
- A/B テストの結果
- 成績が最も良いメッセージ
- 成績が最も悪いメッセージ
- セグメントごとのパフォーマンス比較
- パターン分析
データインフラストラクチャ
イベントトラッキング
// Track all meaningful events
trackEvent({
event_type: "conversation_started",
conversation_id: "abc123",
channel: "sms",
timestamp: now(),
properties: {
source: "website_form",
lead_score: 72
}
})
trackEvent({
event_type: "message_received",
conversation_id: "abc123",
message_id: "msg456",
timestamp: now(),
properties: {
sender: "prospect",
content: "...",
intent: "interested",
intent_confidence: 0.87,
sentiment: 0.3
}
})
trackEvent({
event_type: "meeting_booked",
conversation_id: "abc123",
timestamp: now(),
properties: {
meeting_date: "2024-01-15",
meeting_type: "demo",
assigned_rep: "rep_789"
}
})
データパイプライン
Events → Queue → Processing → Storage
↓
Aggregation
↓
Dashboards
↓
Alerts
ストレージスキーマ
conversations:
- id, channel, started_at, ended_at, outcome, ...
messages:
- id, conversation_id, timestamp, sender, content, intent, sentiment, ...
events:
- id, conversation_id, event_type, timestamp, properties
metrics_daily:
- date, metric_name, segment, value
metrics_hourly:
- timestamp, metric_name, segment, value
改善サイクル
週次レビューのプロセス
-
ダッシュボードを確認する
- 主な指標と目標を比較する
- 週ごとの傾向を確認する
- 異常や問題を確認する
-
離脱を分析する
- どこでユーザーを失っていますか?
- なぜ離脱しているのでしょうか?
- 何をテストできますか?
-
会話を確認する
- 失敗した会話のサンプルを確認する
- 成功した会話のサンプルを確認する
- パターンを特定する
-
改善を計画する
- 改善の機会に優先順位を付ける
- テストを設計する
- 変更を実装する
月次の詳細分析
- コホート分析
- セグメントごとのパフォーマンスレビュー
- A/B テストのポートフォリオレビュー
- ロードマップの優先順位付け
よくある間違い
1. 見栄えだけの指標
問題: 重要でないものを追跡している
解決策: すべての指標をビジネス上の成果に結び付ける
2. セグメント分けをしない
問題: 平均値だけを見ている
解決策: インサイトを見つけるために、常にセグメント分けをする
3. コンテキストがない
問題: 数値に意味がない
解決策: ベンチマーク、傾向、セグメントと比較する
4. 分析麻痺
問題: データが多すぎて、行動に移せない
解決策: 実行可能なインサイトに集中する
5. 古くなったダッシュボード
問題: 一度作成したまま更新していない
解決策: 定期的に確認し、反復して改善する
実装チェックリスト
フェーズ 1:基盤
- すべてのインタラクションでイベントをトラッキングする
- 基本的なファネル指標
- コンバージョンのトラッキング
- シンプルなダッシュボード
フェーズ 2:分析
- セグメント分け機能
- パターン検出
- 離脱分析
- A/B テストのトラッキング
フェーズ 3:最適化
- リアルタイム監視
- アラートの自動化
- 予測インサイト
- 継続的な改善サイクル
確認する質問
さらに詳しい情報が必要な場合は、以下を確認してください。
- 現在、どのような分析を行っていますか?
- 分析結果はどのような意思決定に役立ちますか?
- どの程度の量の会話を処理していますか?
- どのようなツール/インフラストラクチャを使用していますか?
- 誰がこれらの分析を利用しますか?
関連スキル
- ab-message-testing:バリエーションのテスト
- lead-qualification-logic:適格性の指標
- conversational-flow-management:フローの最適化
- intent-detection:意図の理解精度
コメント
Markdown 対応