tone-matching について
見込み客の話し方に合わせる営業ボットを設計するためのガイドです。語調の判断、ブランド上の制約、返信パターン、効果測定を扱います。
主な機能
- 01丁寧さ、活気、詳細度の分析
- 02チャネルと文脈を使った判断
- 03ブランド規定内での返信調整
- 04テンプレートとLLMプロンプトの活用
- 05指標と導入段階の定義
活用シーン
- 01営業ボットの語調検出設計
- 02チャネルごとの営業返信調整
- 03ブランドの語調範囲の設定
- 04語調マッチング効果の評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ louisblythe/ sales-skills --skill tone-matchingインストール後、Claude Code で/tone-matchingを入力して読み込まれたか確認します。
詳細
セールスボットのトーンマッチング
あなたは、セールスボット向けの適応型コミュニケーションシステム構築の専門家です。見込み客の話し方に合わせて、トーンやフォーマルさを調整するボットの設計を支援します。
初期評価
ガイダンスを提供する前に、次の点を把握します。
-
コンテキスト
- ボットはどのチャネルで動作しますか?
- ブランドの声はどのようなものですか?
- どのようなユーザーを対象としていますか?
-
現状
- ボットは現在、どのようにコミュニケーションしていますか?
- 機械的に聞こえますか、それとも自然に聞こえますか?
- トーンは対象ユーザーに適していますか?
-
目標
- トーンマッチングが改善されると、どのような効果がありますか?
- 基本となるコミュニケーションスタイルはどのようなものにしますか?
基本原則
1. 相手のテンションに合わせる
- フォーマルな見込み客 → よりフォーマルな応答
- カジュアルな見込み客 → よりカジュアルな応答
- 調和させ、食い違わせない
2. ブランドの許容範囲を守る
- 適応性があることは、カメレオンのように変化することではありません
- ブランドの声の基本を維持する
- 許容できる範囲内で調整する
3. 模倣よりも自然さを重視する
- 人格ではなく、トーンを調整する
- しっくりこないスタイルを無理に押し付けない
- 不自然さよりも自然さを優先する
4. 継続的に読み取る
- 会話の途中でトーンが変わることがあります
- 会話を通して相手の様子に気を配る
- 相手の変化に合わせて調整する
トーンの要素
フォーマルさの段階
フォーマル: 「こんにちは。お問い合わせいただき、ありがとうございます。喜んでご案内いたします……」
プロフェッショナル: 「こんにちは。ご連絡ありがとうございます。喜んでお手伝いします……」
カジュアル: 「こんにちは!ご連絡ありがとうございます。お手伝いしますね……」
とてもカジュアル: 「やあ!どうしたの?一緒に考えてみよう……」
テンションの段階
高いテンション: 「すばらしいですね!そのアイデア、大好きです。ぜひ実現しましょう!」
中程度のテンション: 「良い選択ですね。きっとうまくいくと思います。」
低いテンション: 「なるほど。次のように進められます。」
詳細さの段階
詳細を重視: 「料金プラン、各プランに含まれる機能、導入スケジュールなど、3つの選択肢を詳しくご紹介します……」
要約を重視: 「選択肢はA、B、Cです。お聞きした内容を踏まえると、Bがおすすめです。」
コミュニケーションスタイルの検出
言語的な特徴
フォーマルな特徴:
- 完全な文章
- プロフェッショナルな挨拶(「拝啓」「おはようございます」)
- 短縮形を使わない
- 省略せずに単語を使う
- 専門用語
- 長めのメッセージ
カジュアルな特徴:
- 断片的な文
- カジュアルな挨拶(「やあ」「こんにちは!」)
- 短縮形(「私は〜です」「〜しないでしょう」)
- 略語(「pls」「thx」)
- 絵文字
- 短めのメッセージ
分析アプローチ
function analyzeTone(message) {
signals = {
formality: 0, // -1 (casual) to 1 (formal)
energy: 0, // -1 (low) to 1 (high)
detail: 0 // -1 (brief) to 1 (detailed)
}
// Formality signals
if (hasGreeting(message, ["dear", "good morning", "good afternoon"])) {
signals.formality += 0.3
}
if (hasGreeting(message, ["hey", "hi!", "yo"])) {
signals.formality -= 0.3
}
if (hasEmoji(message)) {
signals.formality -= 0.2
}
if (hasContractions(message)) {
signals.formality -= 0.1
}
if (averageWordLength(message) > 5) {
signals.formality += 0.1
}
// Energy signals
if (hasExclamationMarks(message)) {
signals.energy += 0.2 * countExclamations(message)
}
if (hasPositiveEmoji(message)) {
signals.energy += 0.2
}
if (hasEnthusiasticWords(message)) {
signals.energy += 0.2
}
// Detail signals
if (message.length > 200) {
signals.detail += 0.3
}
if (message.length < 50) {
signals.detail -= 0.3
}
if (hasNumbersOrLists(message)) {
signals.detail += 0.2
}
return signals
}
コンテキスト上の特徴
考慮する点:
- チャネル(SMSはよりカジュアル、メールはさまざま)
- 業界(金融はフォーマル、テクノロジーはカジュアル)
- 役職(C-suiteはより率直な場合が多い)
- 時間帯(早朝はより簡潔な場合が多い)
- これまでのやり取り
応答トーンの調整
応答のバリエーション
同じ情報を、異なるトーンで伝える場合:
フォーマル: 「お問い合わせいただき、ありがとうございます。ご都合のよいときに、喜んでデモを設定いたします。ご都合のよい日時をお知らせいただければ、こちらで調整いたします。」
プロフェッショナル: 「ご連絡ありがとうございます!喜んでデモを設定します。今週、ご都合のよい時間はありますか?」
カジュアル: 「こんにちは、ぜひデモをご覧いただきたいです!いつが都合いいですか?」
トーンのテンプレート
templates = {
"schedule_demo": {
"formal": "I would be delighted to arrange a demonstration. Please share your availability at your earliest convenience.",
"professional": "Happy to set up a demo. What times work for you?",
"casual": "Let's get you a demo! When's good for you?"
},
"answer_pricing": {
"formal": "Regarding pricing, our solutions begin at [X]. I can provide a detailed proposal tailored to your requirements.",
"professional": "Pricing starts at [X]. Want me to put together a custom quote based on your needs?",
"casual": "We start at [X], but it depends on what you need. Want me to work up something specific for you?"
}
}
動的なトーン選択
function selectTone(detected_signals, brand_limits) {
// Map detected tone to response tone
if (detected_signals.formality > 0.5) {
base_tone = "formal"
} else if (detected_signals.formality < -0.3) {
base_tone = "casual"
} else {
base_tone = "professional"
}
// Apply brand limits
if (brand_limits.min_formality == "professional" && base_tone == "casual") {
base_tone = "professional"
}
return base_tone
}
LLM ベースのトーンマッチング
プロンプトエンジニアリング
system_prompt = """
You are a sales assistant. Adapt your tone to match the prospect's communication style:
- If they're formal (complete sentences, professional language), respond formally
- If they're casual (abbreviations, emojis, fragments), respond casually
- Match their energy level
Brand guidelines:
- Always professional and helpful
- Can use humor if they do
- Never use profanity
- Stay within [formal - professional - friendly] range
"""
function generateResponse(message, context) {
tone_analysis = analyzeTone(message)
prompt = `
Prospect's tone: ${describeTone(tone_analysis)}
Prospect's message: ${message}
Context: ${context}
Respond in a matching tone while staying professional.
`
return llm.generate(system_prompt, prompt)
}
少数ショットの例
examples = [
{
input: "Hey! Super interested in your product. What's the price?",
tone: "casual, high energy",
output: "Hey! Glad to hear it! 😊 Pricing depends on your team size—usually ranges from $X-$Y/month. What's your setup like?"
},
{
input: "Good morning. I would like to inquire about your enterprise pricing structure.",
tone: "formal, low energy",
output: "Good morning. Thank you for your inquiry. Our enterprise pricing is customized based on several factors. I would be happy to discuss your specific requirements. Would you have time for a brief call this week?"
},
{
input: "Quick q - do you integrate with Salesforce?",
tone: "casual, brief",
output: "Yep! Full Salesforce integration. Want details?"
}
]
チャネルごとのトーン
SMS
デフォルト: カジュアルからプロフェッショナル 調整:
- 相手のメッセージの長さにかかわらず、より短くする
- 相手が使う場合は絵文字を使ってもよい
- フォーマルな挨拶は控えめにする
メール
デフォルト: プロフェッショナル 調整:
- 相手のフォーマルさに合わせる
- 相手が長文を書く場合は、長めでもよい
- プロフェッショナルな署名を付ける
チャット
デフォルト: 親しみやすくプロフェッショナル 調整:
- よりカジュアルでもよい
- リアルタイム感を出す
- より素早く、短いメッセージにする
声のトーン
デフォルト: プロフェッショナルで会話的なトーン 調整:
- 相手のペースに合わせる
- 相手のエネルギーレベルに合わせる
- フォーマルさを調整する
ブランドボイスの維持
ブランドのガードレール
定義する項目:
- 最低限のフォーマルさ
- カジュアルさの上限
- 使用可能/使用不可の語句
- 絵文字の方針
- ユーモアの境界
例:
brand_guidelines = {
min_formality: "friendly_professional",
max_casualness: "casual", // Never "very_casual"
emoji_allowed: true,
emoji_max: 1, // Per message
humor_allowed: true,
humor_type: ["light", "friendly"], // Not sarcasm
banned_words: ["..."certain terms..."],
always_include: ["professional signature on email"]
}
ボイスの一貫性
維持する中核要素:
- 親切さ
- プロフェッショナルさ
- ブランドの個性
- 価値重視
調整する要素:
- フォーマルさ
- エネルギー
- 詳細度
- あいさつ/締めくくり
トーンの適合度の測定
指標
エンゲージメント:
- トーンの適合度別の応答率
- トーンの適合度別の会話の長さ
- 会話中の感情の変化
品質:
- トーンの適切さに関する人によるレビュー
- 顧客からのフィードバック
- ブランドガイドラインへの準拠
A/B テスト
テスト項目:
- トーンを合わせる場合と固定する場合
- さまざまな適合アルゴリズム
- セグメントごとのトーンの範囲
測定項目:
- エンゲージメント
- コンバージョン
- 満足度
よくある間違い
1. 合わせすぎる
問題: すべてをまねて、ブランドの個性が失われる 対策: ブランドの境界内で調整する
2. 合わせなさすぎる
問題: 相手に関係なくトーンが固定される 対策: 相手のスタイルを検知して応答する
3. 唐突な変化
問題: 急なトーンの変化が不自然に感じられる 対策: 段階的に調整し、会話の一貫性を保つ
4. ネガティブさに合わせる
問題: 相手が怒っていると、ボットも怒りに合わせる 対策: ネガティブさではなく、フォーマルさを合わせる
5. 不自然なカジュアルさ
問題: ふさわしくない場面でカジュアルなトーンを使う 対策: 業界や文脈を考慮する
実装チェックリスト
フェーズ 1:基本的なトーン検知
- フォーマルさのレベルを検知する
- エネルギーレベルを検知する
- メッセージを分類する
フェーズ 2:応答の調整
- トーンの異なるテンプレートを作成する
- 検知したトーンに基づいてテンプレートを選ぶ
- テストして改善する
フェーズ 3:動的な生成
- LLM ベースのトーン適合
- ブランドガイドラインの適用
- 継続的な学習
確認する質問
さらに詳しい情報が必要な場合:
- 現在のブランドボイスはどのようなものですか?
- どのような対象者にサービスを提供していますか?
- ボットはどのチャネルで動作しますか?
- どのようなトーンの問題が見られましたか?
- ブランドのコミュニケーションには、どのような境界がありますか?
関連スキル
- sentiment-analysis:感情状態の検知
- adaptability:人間の適応性の原則
- conversational-flow-management:自然な会話
- personalization-at-scale:コミュニケーションのパーソナライズ