
【非エンジニアのためのClaude/ClaudeCodeシリーズ】ClaudeのSkillを作成し、案件分析させてみた
はじめに
営業として活動する中で、各商談の失注分析を行う場面があると思います。
これまで自身で振り返りをする際は、CRMの情報やメールなど様々なソースをさかのぼって確認し分析していたのですが、時間がかかってしまい効率が悪かったので、CRMを連携させClaude CoworkのSkillで案件分析する仕組みをつくってみたという内容になります。
プログラミングの知識は不要で、指示文を書くだけで作れたので、非エンジニア(特に営業職の方)におすすめしたいです。
そもそもSkillとは
もうご存じの方も多いと思いますが、Claude Code/Coworkの機能です。
わかりやすく言うと「Claudeへの指示書をセットにして、何度も使いまわせるようにしたもの」です。
今回はCoworkで「失注分析」というキーワードを入力するだけで、Claudeが自動的にCRMやメール等から情報を収集→分析→レポート出力するという一連の動作をSkillとして登録した形です。
今回作ったSkillでできること
私が作成したSkillは、2つの分析タイプに対応しています。
①失注分析:CRMのデータをもとに失注要因を整理・仮説化し、次回アプローチを提案するレポートをWord文書で出力します。
②受注確度分析:提案中案件について、現在の状況から失注のリスクの洗い出しを行い、4段階で受注確度を評価、確度を上げるためのアクションプランをWord文書で出力します。
実際の動作フロー
「失注分析」とCoworkに入力すると以下のように進みます。

【1】まず3つの質問が表示される(フォーム形式)
・会社名:分析したい会社名を入力
・案件名:案件名またはキーワードを入力
・案件ステージ:「失注(Closed Lost)」または「提案中」を選択
ここでステージを選ぶことで、以降の流れが失注コースと提案中コースに分かれます。
【2】CRMからデータを自動収集
入力内容をもとに、Claudeが自動でCRMにアクセスします。
収集するのは:【案件情報 / 関連する連絡先・会社 / ノート / 通話記録 / ミーティング記録 / タスク / メール】
【3】担当者ヒアリング(フォーム形式)
データ収集が終わったら、分析を始める前に担当者へのヒアリングがあります。
CRMには入力出来ていない現場での肌感も分析に組み込むことが目的です。
記録できていなくても感じたことって結構ありますよね?
①失注コースの場合:
1回目(2問)
失注の核心:価格・競合・タイミングなど、ご自身の感触を選択
競合状況:競合他社の名前や状況を入力
↓
2回目(2問)
顧客の温度感:関係は良好か、冷え込んだか
その他コメント:CRMに書けなかった背景など自由記述
②提案中コースの場合:
1回目(2問)
現状の懸念:意思決定者へのアクセス・競合・顧客の優先度など
競合状況
↓
2回目(2問)
顧客の温度感:非常に前向きか、停滞気味か
その他コメント
【4】レポートを自動生成
収集したデータと担当者の補足情報をもとにClaudeが分析を行い、Word文書を出力します。
レポートでは「CRMの記録(事実)」と「担当者の見立て(主観)」を明確に区別して記載しています。どの情報をもとにした記述なのかが一目でわかるため、レポートの信頼性を保ちながら、現場の感覚も活かせます。
出力されるレポートの内容
では実際にSkillにより出力されたレポートの内容について、今回は失注レポートのサンプルで見ていきます。
※記載されている会社名などは全て架空です。


レポートに書かれている項目と内容は以下のようになっています。
| セクション | 内容 |
|---|---|
| 1. 案件概要 | 案件名・会社名・金額・失注日・失注理由など |
| 2. 担当者コメント | ヒアリングで得た担当者の見立て・温度感 |
| 3. 商談経緯タイムライン | 初回コンタクトから失注までの流れ |
| 4. キーパーソン・接触サマリー | 誰と何回接触したか |
| 5. 事実としての失注要因 | HubSpotのデータから確認できる客観的な要因 |
| 6. 失注要因の仮説 | データと担当者コメントをもとにした推論 |
| 7. 次回アプローチ提案 | タイミング・切り口・優先コンタクト先 |
| 8. What-If Analysis | 「あの時こうしていたら?」という振り返り |
| 9. 補足・参考情報 | メモ・メール抜粋など |
Skillの指示文を書くときのポイント
基本的に自然な日本語でステップを書いていくだけです。
ポイント①:「何をどの順番でやるか」を丁寧に書く
まずユーザーに会社名・案件名・ステージを聞く。
↓
CRMで案件を検索する。
↓
担当者からヒアリングする。
↓
分析してレポートを出力する。
このような流れを、できるだけ具体的に書くことがSkillの質を左右します。
ポイント②:分岐条件も日本語で書ける
「失注」を選んだ場合と「提案中」を選んだ場合で動作が変わるという分岐も、こんな形で書けます。
ステージで「失注」が選ばれた場合 → 失注フローで進める
ステージで「提案中」が選ばれた場合 → 提案中フローで進める
プログラムのような文法は不要で、Claudeが意図を読み取って動いてくれます。
ポイント③:ヒアリング設計は「選択肢」と「自由記述」を組み合わせる
Coworkのフォーム機能(AskUserQuestion)で質問を表示するとき、いくつか仕様上の注意点があります。
1回に表示できるのは最大4問まで
1問につき選択肢は2つ以上必要
自由にテキストを入力してもらいたい場合は、「その他(自由記述)」という選択肢を設ける
「Otherを選んだら自由入力フィールドが出る」という仕組みを使って、
選択肢と自由記述をうまく組み合わせると、使いやすいヒアリングフォームが作れます。
作成したSkill例
---
name: lost-deal-analysis
description: |
失注分析レポートを自動生成するスキル。CRMから失注案件の情報を収集し、事実としての失注要因の整理・推論による仮説出し・次回アプローチ提案をWord文書(.docx)として出力する。
以下のようなユーザー発言で必ずこのスキルを使うこと:
- 「失注分析」と入力された場合(会社名・案件名が未指定でも必ず起動する)
- 「失注分析して」「失注案件を分析」「負け分析」「クローズドロスト」「失注した案件をまとめて」「lost dealを分析」
- 特定の会社名や案件名と「失注」「負け」「closed lost」を組み合わせた発言
- 「なぜ負けたか」「なぜ失注したか」「競合に負けた原因」を分析したい発言
- 営業担当者からの「次のアプローチを考えたい」「再提案のタイミングを知りたい」という文脈
- 「受注確度」「提案中案件のリスク分析」「商談確度を確認したい」という文脈
---
# 失注・受注確度分析スキル
このスキルはCRMの案件データを収集・分析し、営業担当者・マネージャー向けの構造化された分析レポート(Word形式)を生成する。
**対応する分析タイプ**:
- **失注分析**:失注した案件の要因分析と次回アプローチ提案
- **受注確度分析**:提案中案件のリスク分析とS/A/B/C確度評価・アクションプラン
## ステップ1:対象案件の特定
まず `[CRM連携ツール]__get_user_details` を呼んでユーザー情報を取得する(CRM検索で使用)。
次に、**ユーザーがすでに会社名・案件名・ステージを指定しているかどうかに関わらず**、必ず `AskUserQuestion` ツールで以下の3点を確認する。これはフォームとして機能させるため、省略しない。
質問1(header: "会社名"):
「分析したい会社名を入力してください」
選択肢:
- (会社名をOtherに入力) ← 必ずOtherで自由入力させる
- 不明(案件名で検索する)
質問2(header: "案件名"):
「案件名を入力してください(分からない場合はキーワードでも可)」
選択肢:
- (案件名・キーワードをOtherに入力) ← 必ずOtherで自由入力させる
- 不明(会社名だけで検索する)
質問3(header: "案件ステージ"):
「この案件は現在どのステージですか?」
選択肢:
- 失注(Closed Lost)
- 提案中(進行中の商談)
入力された情報をもとに `DEAL_STAGE` を確定する。
- 質問3で「失注」→ `DEAL_STAGE = "closed_lost"` → **失注フロー**で進める
- 質問3で「提案中」→ `DEAL_STAGE = "active"` → **提案中フロー**で進める
## ステップ2:CRMからデータ収集
以下の順で情報を収集する。**各ステップは並列で実行できるものはまとめて呼ぶ。**
### 2-1. 案件の検索
`search_crm_objects` で deals を検索。
**失注フローの場合**(`DEAL_STAGE = "closed_lost"`):
objectType: "deals"
filterGroups: [
{ filters: [
{ propertyName: "deal_stage", operator: "EQ", value: "closed_lost" },
{ propertyName: "deal_name", operator: "CONTAINS_TOKEN", value: "<ユーザー入力>" }
]}
]
properties: ["deal_name","amount","deal_stage","close_date","closed_won_date","deal_stage_probability",
"pipeline","owner_id","last_modified_date","description",
"lost_reason","analytics_source","associated_contacts_count"]
**提案中フローの場合**(`DEAL_STAGE = "active"`):
objectType: "deals"
filterGroups: [
{ filters: [
{ propertyName: "deal_name", operator: "CONTAINS_TOKEN", value: "<ユーザー入力>" }
]}
]
properties: ["deal_name","amount","deal_stage","close_date","deal_stage_probability",
"pipeline","owner_id","last_modified_date","description",
"analytics_source","associated_contacts_count"]
`closed_lost` で見つからない場合は `deal_stage` フィルターを外し、案件名・会社名だけで検索してステージを確認する。
### 2-2. 関連情報の並列収集
案件IDが分かったら、まず**連絡先・会社**を取得してオーナーIDを確定してから、アクティビティを絞り込む(2段階)。
#### ステップA:連絡先・会社を取得(並列)
**連絡先(contacts)**:
objectType: "contacts"
associatedWith: [{ objectType: "deals", operator: "EQUAL", objectIdValues: [<deal_id>] }]
properties: ["firstname","lastname","email","jobtitle","phone","email_last_open_date"]
**会社(companies)**:
objectType: "companies"
associatedWith: [{ objectType: "deals", operator: "EQUAL", objectIdValues: [<deal_id>] }]
properties: ["name","industry","annualrevenue","numberofemployees","city","country","description","owner_id"]
#### ステップB:オーナーIDの確定
以下2つを収集し、重複を除いて `OWNER_IDS`(文字列配列)として保持する:
- **取引担当者ID**:2-1で取得した案件の `owner_id`
- **会社担当者ID**:会社の `owner_id`
例:`OWNER_IDS = ["44124561", "526758200"]`(同一の場合は1件のみ)
> ※ どちらかが取得できない場合は、取得できたIDのみで進める。
#### ステップC:アクティビティをオーナーで絞り込んで取得(並列)
notes / calls / meetings / tasks / emails はすべて、案件への紐付け(associatedWith)に加えて **`owner_id IN OWNER_IDS` フィルターを必ず追加**する。これにより、取引担当者・会社担当者によるアクティビティのみに絞り込み、無関係な担当者のアクティビティを除外する。
**ノート(notes)**:
objectType: "notes"
filterGroups: [
{
filters: [{ propertyName: "owner_id", operator: "IN", values: OWNER_IDS }],
associatedWith: [{ objectType: "deals", operator: "EQUAL", objectIdValues: [<deal_id>] }]
}
]
properties: ["note_body","timestamp","owner_id","attachment_ids"]
sorts: [{ propertyName: "timestamp", direction: "DESCENDING" }]
limit: 50
**コール(calls)**:
objectType: "calls"
filterGroups: [
{
filters: [{ propertyName: "owner_id", operator: "IN", values: OWNER_IDS }],
associatedWith: [{ objectType: "deals", operator: "EQUAL", objectIdValues: [<deal_id>] }]
}
]
properties: ["call_body","call_title","call_duration","call_status","call_direction","timestamp","owner_id"]
sorts: [{ propertyName: "timestamp", direction: "DESCENDING" }]
limit: 30
**ミーティング(meetings)**:
objectType: "meetings"
filterGroups: [
{
filters: [{ propertyName: "owner_id", operator: "IN", values: OWNER_IDS }],
associatedWith: [{ objectType: "deals", operator: "EQUAL", objectIdValues: [<deal_id>] }]
}
]
properties: ["meeting_title","meeting_body","meeting_outcome","timestamp","owner_id","internal_meeting_notes"]
sorts: [{ propertyName: "timestamp", direction: "DESCENDING" }]
limit: 20
**タスク(tasks)**:
objectType: "tasks"
filterGroups: [
{
filters: [{ propertyName: "owner_id", operator: "IN", values: OWNER_IDS }],
associatedWith: [{ objectType: "deals", operator: "EQUAL", objectIdValues: [<deal_id>] }]
}
]
properties: ["task_subject","task_body","task_status","timestamp","owner_id"]
sorts: [{ propertyName: "timestamp", direction: "DESCENDING" }]
limit: 20
**メール(emails)**:
objectType: "emails"
filterGroups: [
{
filters: [{ propertyName: "owner_id", operator: "IN", values: OWNER_IDS }],
associatedWith: [{ objectType: "deals", operator: "EQUAL", objectIdValues: [<deal_id>] }]
}
]
properties: ["email_subject","email_body","email_direction","timestamp","owner_id","email_status"]
sorts: [{ propertyName: "timestamp", direction: "DESCENDING" }]
limit: 30
### 2-3. 外部メールツールによる補完(任意)
外部メールツールとの連携が利用可能な場合、連絡先のメールアドレスを使って追加のメールスレッドを検索する。
CRMのメールデータが乏しい場合に特に有効。
[メール連携ツール]__search_messages: "from:<contact_email> OR to:<contact_email>"
## ステップ2.5:営業担当者からの補足情報収集(必須)
CRMのデータ収集が完了したら、分析を始める**前に**必ず以下の補足情報を収集する。`DEAL_STAGE` によって質問内容を切り替える。
### 【失注フロー】収集する質問
`AskUserQuestion` ツールで以下の質問を行う(2回に分けて収集)。
**1回目の質問(案件の核心部分)**:
質問1(header: "失注の核心"):
「ご自身の感触として、最も大きな失注要因は何だったと思いますか?」
選択肢:
- 価格・予算の問題
- 競合他社に負けた
- 顧客の社内事情(優先度低下・予算凍結など)
- 製品・サービスのフィット感が弱かった
- タイミングが合わなかった
※ Other(自由記述)
質問2(header: "競合状況"):
「競合他社の状況を教えてください」
選択肢:
- 具体的な競合名が分かった(→ Otherで入力)
- 競合はいたが詳細不明
- 現状維持・内製が選ばれた
- 競合は特にいなかった(予算・優先度の問題)
※ Other(競合名・状況を自由記述)
**2回目の質問(関係性と今後の見通し)**:
質問3(header: "顧客の温度感"):
「失注時点での顧客との関係性・温度感はどうでしたか?」
選択肢:
- 良好。今後も関係継続できると思う
- 普通。距離を置かれた感じ
- 冷え込んだ。しばらく接触しにくい
- キーパーソンが変わった・去った
質問4(header: "担当者コメント"):
「その他、CRMに記録しきれなかった背景・状況・感じたことがあれば教えてください。
▶ コメントがある場合は「Other(その他)」を選択して入力欄に記入してください。」
選択肢:
- 特になし(追加コメントなし)
- 競合・価格についての補足がある → Otherに入力
※ コメントがある場合は必ず「Other」を選んでテキストを入力してから送信してもらう
### 【提案中フロー】収集する質問
`AskUserQuestion` ツールで以下の質問を行う(2回に分けて収集)。
**1回目の質問(現状のリスク・課題)**:
質問1(header: "現状の懸念点"):
「現在、この案件で最も気になっている課題・リスクは何ですか?」
選択肢:
- 意思決定者へのアクセスができていない
- 予算・価格面での不安がある
- 競合の存在が気になる
- 顧客の優先度が下がっている気がする
- 提案内容のフィット感が弱い
※ Other(自由記述)
質問2(header: "競合状況"):
「競合他社の状況を教えてください」
選択肢:
- 具体的な競合名が分かった(→ Otherで入力)
- 競合はいるが詳細不明
- 現状維持・内製の選択肢が有力
- 競合は特にいない
※ Other(競合名・状況を自由記述)
**2回目の質問(温度感と見通し)**:
質問3(header: "顧客の温度感"):
「現在の顧客との関係性・温度感はどうですか?」
選択肢:
- 非常に前向き。受注の可能性が高い
- まずまず。次のステップに進めそう
- やや停滞。顧客側で迷いがある感じ
- 厳しい。担当者・優先度の変化がある
質問4(header: "担当者コメント"):
「その他、CRMに記録しきれなかった商談の状況・感触があれば教えてください。
▶ コメントがある場合は「Other(その他)」を選択して入力欄に記入してください。」
選択肢:
- 特になし(追加コメントなし)
- 商談の状況・見通しについての補足がある → Otherに入力
### 補足情報の扱い方
- 選択肢の回答・自由記述の内容を `SALES_INPUT` として保持する
- **「事実(CRM記録)」と「担当者の主観(補足)」は明確に区別して**レポートに反映する
- 担当者コメントは分析の「文脈補完」として使い、仮説の根拠に引用可能
- 担当者が「特になし」と答えた項目は無理に引用しない
## ステップ3:分析・レポート構成
`DEAL_STAGE` によって分析フレームを切り替える。
### 3-0. 情報ソースの区分(共通)
| ソース | 信頼性 | レポート内の表記 |
|--------|--------|----------------|
| CRMの記録データ | 客観・事実 | `[CRM記録]` |
| 外部メールツールなど外部ツールのデータ | 客観・事実 | `[メール記録]` |
| 営業担当者の補足コメント | 主観・現場感 | `[担当者コメント]` |
---
### 【失注フロー】分析
#### 3-1. 事実の整理(ファクト)
CRMに記録されている客観的情報をそのまま整理する:
- **失注理由(公式)**: `lost_reason` の値
- **タイムライン**: 最初のコンタクトから失注までの期間・フェーズ推移
- **接触頻度**: コール回数・ミーティング回数・メール往復数
- **キーパーソン**: 誰と何回接触したか(役職・関与度)
- **金額・規模**: 案件金額・会社規模
- **競合**: ノートやメールで言及されている競合他社
- **明示的な懸念事項**: 顧客が直接伝えた懸念・要望
#### 3-2. 失注要因の仮説(推論)
事実に基づいて論理的に推論する:
**価値・ニーズの観点**
- ソリューションが顧客課題にフィットしていたか
- 顧客の優先課題とアプローチの順序は合っていたか
**タイミング・プロセスの観点**
- 接触頻度・間隔に問題はあったか
- 意思決定者へのアプローチができていたか
**競合・代替案の観点**
- 競合が有利だった点は何か(価格・機能・実績・リレーション)
- 「現状維持」「内製」という選択肢が取られた可能性はあるか
**コミュニケーションの観点**
- 提案内容や訴求ポイントは適切だったか
- 顧客の懸念に十分応えられていたか
> **注意**:仮説はあくまで「推論」であることを明記し、断定しない。
#### 3-3. 次回アプローチ提案
失注要因の仮説と顧客状況に基づき、以下を具体的に提案する:
**アプローチ時期**
- 顧客の予算サイクル・契約更新時期・プロジェクト開始時期を考慮
- 競合の初期契約期間(一般的に1〜2年)を踏まえた再提案タイミング
**アプローチ内容**
- 次回の接点づくりに使えるネタ(新機能・事例・業界動向)
- 前回の課題・懸念を解消できる新しい角度での提案内容
**アプローチ先の優先順位**
- 最も効果的な連絡先(キーパーソン)の特定
---
### 【提案中フロー】分析
#### 3-1P. 事実の整理(ファクト)
現在進行中の商談に関するCRMデータを整理する:
- **現在のステージ**: CRMのステージ値と推移
- **タイムライン**: 商談開始から現在までの期間・主要アクティビティ
- **接触状況**: コール・ミーティング・メールの頻度と最終接触日
- **キーパーソン**: 接触している役職・関与度・意思決定への近さ
- **金額・クローズ予定日**: 案件金額・close_date
- **競合・懸念事項**: ノートで言及されている競合・顧客の懸念
#### 3-2P. リスク分析
以下の観点からリスクを評価する:
**意思決定リスク**
- 最終意思決定者にアプローチできているか
- 複数のステークホルダーのコンセンサスが取れているか
**競合リスク**
- 競合が有利な点・差別化できていない領域はあるか
- 「現状維持」「内製」が選ばれるリスクはあるか
**タイムラインリスク**
- close_date が現実的か
- 顧客の内部プロセス(稟議・予算)に間に合うか
**エンゲージメントリスク**
- 接触頻度が落ちていないか
- 顧客の温度感が低下している兆候はあるか
#### 3-3P. 受注確度の評価
以下の基準でS/A/B/Cのランクを付与する:
| ランク | 受注確度 | 主な基準 |
|--------|---------|---------|
| **S** | 90%以上 | 意思決定者のコミット済み、競合排除、クロージング段階 |
| **A** | 70〜89% | 提案評価中、前向きなシグナルあり、競合に優位 |
| **B** | 40〜69% | 検討中だが不確実要素あり、競合が拮抗、決裁者への接触不十分 |
| **C** | 40%未満 | 停滞気味、競合に劣勢、顧客の優先度低下、温度感が弱い |
**評価根拠**:CRMデータ・担当者コメントからの具体的な根拠を3〜5点挙げる。
#### 3-4P. アクションプラン
ランクと課題に応じた具体的なアクションを提案する:
**直近1〜2週間のアクション**(優先度高)
- 最も重要な1〜2つのアクション
**1ヶ月以内のアクション**
- フォローアップ・資料提供・関係者へのアプローチなど
**リスク対策**
- 各リスクに対応する具体的な手段
---
## ステップ4:Word文書の生成
`docx` スキルの SKILL.md の指示に従い、Word文書(.docx)を生成する。
SKILL.md のパス:`/sessions/relaxed-epic-hawking/mnt/.claude/skills/docx/SKILL.md`
`DEAL_STAGE` によってテンプレートを使い分ける。
### 【失注フロー】レポートテンプレート
# 失注分析レポート:[案件名 / 会社名]
作成日:[YYYY年MM月DD日] 担当:[オーナー名]
---
## 1. 案件概要
| 項目 | 内容 |
|------|------|
| 案件名 | ... |
| 会社名 | ... |
| 業種 | ... |
| 案件金額 | ¥X,XXX,XXX |
| 担当者 | ... |
| 失注日 | YYYY年MM月DD日 |
| 商談期間 | X ヶ月(初回コンタクト:YYYY/MM/DD) |
| CRM記録の失注理由 | ... |
| 担当者が感じた主要因 | [SALES_INPUT より] |
| 競合状況 | [SALES_INPUT より] |
| 失注時の顧客温度感 | [SALES_INPUT より] |
---
## 2. 営業担当者コメント(補足情報)
> ※ この情報は営業担当者へのヒアリングをもとにしており、主観的な見立てを含みます。
### 担当者の見立て(失注要因)
[SALES_INPUT の回答をそのまま記載]
### 競合状況
[SALES_INPUT の回答をそのまま記載]
### 顧客との関係性・温度感
[SALES_INPUT の回答をそのまま記載]
### その他コメント
[SALES_INPUT の自由記述をそのまま記載。「特になし」の場合は省略]
---
## 3. 商談経緯タイムライン
[時系列で主要アクティビティを箇条書き。情報ソースを [CRM記録] / [メール記録] / [担当者コメント] で明示]
---
## 4. キーパーソン・接触サマリー
| 氏名 | 役職 | 接触回数 | 主な懸念・発言 | 情報ソース |
|------|------|----------|--------------|----------|
---
## 5. 事実としての失注要因
### 5-1. 明示された理由 [CRM記録]
### 5-2. 活動データから読み取れる事実 [CRM記録 / メール記録]
---
## 6. 失注要因の仮説
### 仮説1:[タイトル]
**根拠**:... **推論**:...
### 仮説2:[タイトル]
---
## 7. 次回アプローチ提案
### 推奨アプローチ時期
### アプローチ内容
### 優先コンタクト先
### 関係維持のための施策
---
## 8. What-If Analysis
---
## 9. 補足・参考情報
**ファイル名**:`失注分析_[会社名]_[YYYYMMDD].docx`
---
### 【提案中フロー】レポートテンプレート
# 受注確度レポート:[案件名 / 会社名]
作成日:[YYYY年MM月DD日] 担当:[オーナー名]
---
## 1. 案件概要
| 項目 | 内容 |
|------|------|
| 案件名 | ... |
| 現在のステージ | ... |
| クローズ予定日 | ... |
| 担当者が感じる主な懸念 | [SALES_INPUT より] |
---
## 2. 受注確度評価
### 確度ランク:[S / A / B / C](受注確度 XX%)
### 評価根拠(3〜5点)
---
## 3. 商談経緯タイムライン
---
## 4. キーパーソン・接触サマリー
| 氏名 | 役職 | 接触回数 | 最終接触日 | 意思決定への関与 |
---
## 5. リスク分析
### 5-1. 意思決定リスク
### 5-2. 競合リスク
### 5-3. タイムラインリスク
### 5-4. エンゲージメントリスク
---
## 6. 担当者コメント(補足情報)
---
## 7. アクションプラン
### 直近1〜2週間(最優先)
### 1ヶ月以内
### リスク対策
---
## 8. 補足・参考情報
**ファイル名**:`受注確度レポート_[会社名]_[YYYYMMDD].docx`
---
### docxファイル生成時の共通注意事項
- 保存先:`/sessions/relaxed-epic-hawking/mnt/outputs/`
- ページサイズ:A4(11906 x 16838 DXA)
- フォント:Meiryo または游ゴシック(なければArial)
- テーブルは `WidthType.DXA` で幅固定
- 完成後に `python scripts/office/validate.py` でバリデーション
## ステップ5:レポート完成後の案内
レポートを出力したら、ユーザーに以下を伝える:
1. ファイルへのリンク(`computer://` 形式)
2. 分析のポイント3点(要約)
3. 最も優先すべき次回アクション1つ
---
## データ不足時の対応
CRMに十分なデータがない場合は、レポートの該当箇所に「データなし(CRMへの記録なし)」と明記し、推論には使用しない。データが乏しい場合ほど「データ不足自体がリスク要因の一つである可能性」を仮説・リスクとして提示する。
---
## 参考:CRMのアクティビティオブジェクト一覧
| object type | 内容 |
|-------------|------|
| `notes` | ノート |
| `calls` | 電話記録 |
| `meetings` | ミーティング記録 |
| `emails` | メール記録(CRM経由) |
| `tasks` | タスク |
やってみた気づき
☆良かった点:定量的効果
自身で同じくらいのレポートを作成しようとすると、情報収集から資料にまとめるまでに1時間はかかるんじゃないかと思いますが、このSkillによって15分程度に短縮されました。
Skillを実行している間は他の業務をすることが出来るので、業務の効率化に役立っています。
★苦労した点:ヒアリング設計のさじ加減
質問の内容が多すぎたり、文章量を求められると担当者の負担が増す反面、少ないと情報が不足してしまうため、何度かテストをしながら負担にならず、それでいて情報もしっかり取り込める設計になりました。使う側の快適さと情報の正確さを意識するのが重要と感じました。
まとめ
非エンジニアの私でも、ClaudeのSkill機能を使い、CRMと連携した営業分析ツールを作ることができました。
Skillを作るうえで大切だと感じたポイントは次の3つです。
①「何をどの順番でやるか」を整理してから書き始める
ステップが明確であればあるほど、Claudeが意図通りに動いてくれます。
②「事実」と「担当者の感覚」を分けて設計する
CRMのデータだけでなく、現場の感触も取り込む設計にすることで、分析の深みが増します。
③ヒアリング設計はシンプルにする
質問は少なく、選択肢は明確に。担当者が答えやすい設計が、最終的なレポートの質につながります。
営業やマーケティングの担当者の方でも、日常業務の繰り返しパターンをSkillとして「型化」することで、Claudeが一定品質の分析・レポートを毎回自動生成してくれるようになります。
ぜひ、皆さんの業務でも試してみてください!









