顧客の声をAIで分析するとき、いきなり自由記述を貼り付けると、それらしい要約は返ってきます。
ただ、その結果を業務に戻そうとすると困ります。
どのフォームから来た声なのか
低評価なのか要返信なのか
誰が確認するのか
改善要望なのか不具合疑いなのか
週次で増えているテーマなのか
ここが分からないと、AI分析は「いい感じのまとめ」で止まります。
顧客の声をAI分析に使うなら、プロンプトより先にCSV列を決めたほうが安定します。
顧客の声は1種類ではない
顧客の声というと、アンケートの自由記述を想像しがちです。
でも、実際にはもっと広いです。
問い合わせフォーム
資料請求フォーム
イベント申込フォーム
解約理由
満足度アンケート
サポートへの質問
採用応募後のコメント
商談前の相談内容
これらを全部別々に分析すると、AI出力もレポートもばらばらになります。
だから、最初に共通の列を作ります。
AIに渡す前のCSV列
最小構成なら、次の列を用意します。
response_id,submitted_at,source_form,customer_segment,category_hint,score,message,status,owner,followup_permission,sales_or_legitimate
r_001,2026-06-23T10:15:00+09:00,inquiry,trial_user,料金,,"料金プランと導入時期を相談したいです",new,,true,legitimate
r_002,2026-06-23T11:40:00+09:00,survey,paid_user,満足度,2,"初期設定が分かりにくく、途中で止まりました",new,cs,true,legitimate
message だけでは足りません。
source_form があれば、問い合わせなのかアンケートなのか分かります。
customer_segment があれば、無料ユーザーと有料ユーザーの差を見られます。
score があれば、低評価の自由記述を優先して見られます。
status と owner があれば、分析結果を対応管理に戻せます。
followup_permission がなければ、個別連絡してよいか判断できません。
AI出力は5軸に分ける
AIに返してほしいものは、要約だけではありません。
少なくとも次の5軸に分けます。
theme: 何について言っているか
sentiment: ポジティブ、ニュートラル、ネガティブ
urgency: どれくらい急ぐか
needs_reply: 個別返信が必要か
improvement_candidate: どこを改善する候補か
出力例です。
{
"response_id": "r_002",
"theme": "onboarding",
"sentiment": "negative",
"urgency": "high",
"needs_reply": true,
"owner_candidate": "cs",
"summary": "初期設定で迷い、途中離脱した可能性がある",
"evidence_quote": "初期設定が分かりにくく、途中で止まりました",
"improvement_candidate": "初期設定画面の案内とヘルプ導線を見直す",
"human_check_required": true,
"reason": "低評価かつ初期設定で止まった具体的な記述があるため"
}
theme と sentiment だけでは、レポートにはなっても対応に戻りません。
needs_reply、owner_candidate、improvement_candidate を分けると、次のアクションに接続できます。
プロンプトは列と出力型に合わせる
プロンプトは、分析の目的を絞ります。
あなたは顧客の声の一次分析担当です。
次のCSV行を読み、指定されたJSON形式で返してください。
目的:
- 顧客の声のテーマを分類する
- 感情を候補として判定する
- 低評価や要返信を抽出する
- 担当者候補を出す
- 改善候補を短く提案する
注意:
- 実返信はしない
- 改善の採否を確定しない
- 個人情報や契約判断を確定しない
- evidence_quote は原文から短く抜き出す
- JSON以外の文章を返さない
顧客の声分析では、AIに「改善を決めてもらう」のではなく、見落としやすい声を拾う補助にします。
低評価と要返信を分ける
低評価だから必ず返信が必要とは限りません。
逆に、高評価でも個別返信が必要なことがあります。
score = 2
sentiment = negative
needs_reply = false
score = 5
sentiment = positive
needs_reply = true
たとえば、低評価の自由記述が一般的な感想なら、週次改善テーマとして扱えます。
一方で、高評価でも「導入事例として話を聞いてほしい」と書かれていれば、返信対象です。
sentiment と needs_reply を分けることで、分析と対応を混ぜずに済みます。
レポート用と対応用を同じ出力にしない
顧客の声AI分析では、2つの用途が混ざりがちです。
全体傾向を見たい
個別対応すべきものを拾いたい
この2つは列を分けます。
全体傾向には、theme、sentiment、source_form、customer_segment を使います。
個別対応には、needs_reply、owner_candidate、human_check_required、status を使います。
同じAI出力でも、レポートに使う列と対応に使う列を分けると運用しやすくなります。
最小チェックリスト
[ ] response_id を持つ
[ ] source_form を持つ
[ ] customer_segment を持つ
[ ] score と message を分けた
[ ] status と owner を持つ
[ ] followup_permission を持つ
[ ] theme / sentiment / needs_reply を分けた
[ ] evidence_quote を短く残す
[ ] improvement_candidate を候補として扱う
[ ] 実返信と改善採否は人間確認にした
顧客の声AI分析は、きれいなレポートを作るだけでは弱いです。
どの声を見て、誰が確認し、どの改善候補に戻すのか。
そこまで列と出力型で持てると、顧客の声が運用に戻ります。
フォームや問い合わせから集まる顧客の声をAI分析に接続する考え方は、こちらに整理しています。
