失注・保留のまま止まった案件から、今月声をかけ直す先を選んで再提案の切り口まで作る
過去に失注・保留になった案件の記録を入力に、いま声をかけ直す価値のある先を順位づけし、再提案の切り口と連絡文の下書きまで作ります。営業の作業は、記録を掘り返すことから、示された案件の当たり方を決めることに変わります。
- 利用ツール
- ChatGPT/Claude/Gemini/Google Apps Script/Make/n8n/Power Automate/Python/Zapier
- 対象業界
- IT・SaaS/商社/建設/製造
- 対象部門
- マーケティング/営業
- 対象業務
- 情報検索/集計・分析
- 主な課題
- 人手が足りない/営業フォローが追いつかない/情報が見つからない
- AIで行う処理
- 予測
- 主な効果
- 属人化解消/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- CRMで「失注」「保留」の案件を一覧に出す
- 期間や金額でざっと絞る
- 1件開き、商談メモを最初から読む
- 失注理由と、そのときの障害を読み取る
- その後の接点(展示会の来場、資料請求、メールの開封)を別の画面で確認する
- 声をかける価値があるかを判断する
- 再提案の切り口を考える
- 連絡文を書いて送る
- 自動月1回、失注・保留案件を書き出す
- 自動前回連絡日からの経過月数、案件の規模、業種で機械的に絞る
- 自動商談メモから、失注理由・そのときの障害・決裁の構図を抜き出す
- 自動その後の接点(来場、資料請求、サイトの閲覧)を突き合わせる
- 自動「障害が解消していそうか」の観点で順位づけの材料を返す
- 自動上位の案件について、再提案の切り口と連絡文の下書きを作る
- 人営業が順位と切り口を見て、当たり方を決めて連絡する
- 自動連絡結果を記録し、次回の対象から外す
各工程の詳しい説明を読む
- CRMで「失注」「保留」の案件を一覧に出す
- 期間や金額でざっと絞る
- 1件開き、商談メモを最初から読む
- 失注理由と、そのときの障害を読み取る
- その後の接点(展示会の来場、資料請求、メールの開封)を別の画面で確認する
- 声をかける価値があるかを判断する
- 再提案の切り口を考える
- 連絡文を書いて送る
問題は4つあります。
(a)記録が長くて読めない。 商談メモは1件あたり数千字あります。必要なのはその中の数行ですが、どこにあるかは読まないと分かりません。
(b)失注理由が一語しか残っていない。 「他社決定」とだけ書かれた案件は、開いても何も分かりません。理由の粒度がばらばらです。
(c)担当者が代わっている。 3年前の案件は、担当者が退職または異動していることがあります。記録しか手がかりがありません。
(d)順番が決められない。 900件のうちどれから当たるべきかを決める基準がなく、結局「金額の大きい順」になります。金額が大きい案件ほど、他社が入り込んで戻らないことが多くあります。
- 【自動】 月1回、失注・保留案件を書き出す
- 【自動】 前回連絡日からの経過月数、案件の規模、業種で機械的に絞る
- 【自動】 商談メモから、失注理由・そのときの障害・決裁の構図を抜き出す
- 【自動】 その後の接点(来場、資料請求、サイトの閲覧)を突き合わせる
- 【自動】 「障害が解消していそうか」の観点で順位づけの材料を返す
- 【自動】 上位の案件について、再提案の切り口と連絡文の下書きを作る
- 【人】 営業が順位と切り口を見て、当たり方を決めて連絡する
- 【自動】 連絡結果を記録し、次回の対象から外す
自動化されるのは「探す」「読む」「材料をそろえる」の3つです。残るのは「どう当たるかを決める」だけになります。
5で順位そのものをAIに出させません。 AIに返させるのは観点ごとの判定で、順位はプログラムが計算します。理由は第7章に書きます。
02今回想定するシステム構成
CRM(失注・保留案件) │ ▼【トリガー】月初の定期実行 Google Apps Script │ ├──▶ 機械的な絞り込み(経過月数 / 規模 / 除外条件) │ ├──▶ LLM API(バッチ) ── 商談メモから理由・障害・決裁の構図を抽出 │ ├──▶ 接点データの突合(来場 / 資料請求 / 閲覧 / メール開封) │ ├──▶ 順位の計算(プログラム側で加点) │ └──▶ LLM API ── 上位案件の切り口と連絡文の下書き │ ▼ 今月の掘り起こしリスト(順位・根拠・切り口・文面)──【営業が決めて連絡】 │ ▼ CRMへ活動記録 + 結果の書き戻し
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Google Apps Script | Python |
| 生成AI | Claude API | ChatGPT、Gemini |
| 集計 | Google スプレッドシート | 各社のBIツール |
| 連携 | Make | Power Automate、n8n、Zapier |
CRMに付属する機能を先に確認してください。 多くのCRMに、条件での抽出と一括メールの機能があります。この構成の値打ちは、商談メモの本文を読んで材料を作るところにあります。抽出と送信だけならCRMで足ります。
03どうやって実装するのか
処理の起点を決める
月初の定期実行を起点にします。営業が「今月やろう」と思ったときに動かす形にすると、忙しい月は動かなくなります。
Apps Scriptで組む場合、1回の実行が6分で打ち切られます。 900件を1回で処理すると必ず超えるため、件数で区切って複数回に分けます。トリガーの合計実行時間にも上限があり、Google Workspaceのアカウントで1日6時間です。件数が多い場合は、この枠に収まるかを先に計算してください。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 失注・保留案件 | 案件ID、顧客名、金額、失注日、失注理由の区分、担当者 | CRM |
| 商談メモ | 訪問・電話のたびに書かれた本文 | CRM |
| 提案の内容 | 提案した構成、見積の金額、比較された他社 | CRM/提案書の保管先 |
| その後の接点 | 展示会の来場、資料請求、サイトの閲覧、メールの開封 | マーケティングツール |
| 顧客の現況 | 業種、規模、公開されている動き | 顧客マスタ |
| 除外リスト | 取引停止、与信上の問題、連絡を断られた先 | 営業管理 |
データの取得方法を決める
商談メモ: CRMのAPIで案件IDごとに取得します。1件あたりの文字数が大きいため、全件を毎回渡す設計にしないでください。 機械的な絞り込みを先に通し、残った案件のメモだけを渡します。
接点データ: マーケティングツールから、失注日以降の接点だけを取ります。「失注後に資料請求している」は強い材料です。
除外リスト: これは人が管理します。与信上の問題がある先や、明確に断られた先へ連絡してしまうと、掘り起こしどころではなくなります。
AIへ渡す前に整形する
- 機械的な絞り込み … 経過月数(3か月未満は外す)、案件の規模、除外リストとの突合。AIに渡す件数をここで10分の1にします
- 重複の統合 … 同じ顧客に複数の失注案件があることがあります。顧客単位にまとめ、案件は履歴として持ちます
- メモの整形 … 定型の署名、引用されたメール本文、日程調整のやり取りを落とします。残すのは中身のある記述だけです
- 個人名の扱い … 先方担当者の氏名は、役職と部署に置き換えてから渡します。 誰に当たるかは人が決めます
- 連絡済みの除外 … 直近6か月に掘り起こしの連絡をした先を外します
AIに処理させる
2段階に分けます。
1段目(抽出): 商談メモから、失注理由・そのときの障害・決裁の構図・比較された他社を抜き出します。ここは全件に対して行い、バッチ処理でまとめて投げます。 即時性が要らない処理なので、Claude APIのバッチ(多くが1時間以内に完了、料金は通常の半額)が向きます。
2段目(生成): 順位の上位に残った案件についてだけ、切り口と文面を作ります。
| 処理 | 内容 |
|---|---|
| 失注理由の言い換え | 「他社決定」を、メモの記述から「価格差」「納期」「既存取引」などに分解する |
| 障害の特定 | 決まらなかった直接の原因を、メモの引用付きで示す |
| 解消の見込み | その障害が、時間の経過や自社の変化で解消しうるかを整理する |
| 決裁の構図 | 誰が決め、誰が反対したかをメモから読み取る |
| 切り口の案 | 再提案で何を変えるべきかを、障害に対応づけて挙げる |
AIに点数や順位を出させません。 同じ案件でも実行のたびに揺れるためです。AIには観点ごとの判定と根拠を返させ、加点はプログラムで行います。
加点の例です。
| 観点 | 加点の考え方 |
|---|---|
| 経過月数 | 商談期間の1.5倍から3倍の範囲がもっとも高い |
| 障害の種類 | 予算・時期は高く、機能の不足・既存取引は低い |
| 失注後の接点 | 資料請求や来場があれば大きく加点 |
| 自社側の変化 | 失注理由に当たる改善(価格、納期、機能)があれば加点 |
| 顧客側の変化 | 公開情報で動きがあれば加点 |
この加点の重みは、最初は勘で置いて構いません。 3か月運用して、実際に商談化した案件の特徴を見て直します。
指示内容を固定する
あなたは、過去の商談記録を読んで営業を支援する担当者です。
失注・保留になった案件について、なぜ決まらなかったのかを整理してください。
【厳守事項】
- 記録に書かれていないことを補わないでください。
読み取れない項目は unreadable にしてください。
- 点数、順位、確率を出さないでください。
観点ごとの判定と、その根拠の引用だけを返してください。
- 顧客の現在の状況を推測しないでください。
記録にある時点の事実だけを扱ってください。
- 先方担当者の人物評を書かないでください。
- 判定した項目には、記録本文からの引用を必ず添えてください。
【案件の基本情報】
{deal_summary}
【商談メモ(時系列)】
{activity_notes}
【提案した内容と見積】
{proposal_summary}
【失注後の接点】
{post_loss_touchpoints}
「顧客の現在の状況を推測しない」の1行が重要です。 AIは記録にない現況を、もっともらしく書きます。それを読んだ営業が「もう予算がついているらしい」と思い込むと、初手で失敗します。
出力形式を固定する
{
"deal_id": "",
"customer_id": "",
"lost_reason_detail": {
"category": "budget | timing | price | function | incumbent | internal | other | unreadable",
"quote": ""
},
"blocker": { "description": "", "quote": "" },
"decision_structure": { "decider_role": "", "opponent_role": "", "quote": "" },
"competitor": "",
"resolvable": "likely | unlikely | unknown",
"resolvable_reason": "",
"reapproach_angles": [],
"unreadable": []
}
quote がない判定は、加点の対象から外します。根拠のない材料を順位に反映させると、営業がリストを信用しなくなります。
システムへ連携する
| つなぎ先 | 何をするか |
|---|---|
| CRM | 案件とメモを読む。連絡結果を活動として書き戻す |
| マーケティングツール | 失注後の接点を読む |
| スプレッドシート | 今月のリストを並べ、営業が確認と編集を行う |
| メール | 下書きを担当者のメールに作る。自動送信はしない |
書き戻しを省かないでください。 掘り起こしの連絡をCRMに残さないと、翌月また同じ先が上位に出てきます。
人が確認する
全件、営業が確認してから連絡します。自動送信はしません。
理由は、失注先への連絡が関係の修復を伴う行為だからです。断られた経緯がある相手に、事情を知らない文面を送ると、関係が完全に切れます。この構成で減らしているのは「思い出す時間」であって、「当たり方の判断」ではありません。
確認を速くするための設計が重要です。
- 1行に 顧客名・失注理由・障害・引用・接点・切り口 を並べる
- 引用からCRMの該当メモへリンクする
- 加点の内訳を見せる(なぜ上位なのかが分かる)
- 「読み取れない」が多い案件は別の列にまとめる
例外に対処する
| 起きること | 対応 |
|---|---|
| 失注理由が「他社決定」の一語しかない | unreadable を返す。推測で理由を作らない |
| 商談メモが1件もない | 対象から外し、人が見る列へ回す |
| 同じ顧客に複数の失注案件がある | 顧客単位にまとめ、もっとも新しい案件を主とする |
| 先方担当者が退職している | 分からない前提で、部署宛の切り口を出す |
| 除外リストの先が混ざった | 絞り込みの段階で外す。AIに渡す前に落とす |
| 直近6か月に連絡済み | 対象から外す |
| メモが長すぎて1回で渡せない | 時系列で分割し、要約せずに渡す |
| Apps Scriptが6分で打ち切られた | 件数で区切って複数回に分ける。処理済みの位置を記録する |
| 順位の上位が毎月同じ顔ぶれになる | 連絡結果の書き戻しができていない。ここを先に直す |
記録を残す
- 抽出した失注理由・障害と、その引用
- 加点の内訳と、算出された順位
- 生成した切り口・文面と、営業が実際に使った文面
- 連絡した日、相手、反応
- 再商談になったかどうか、なった場合はその後の結果
最後の項目が、この構成の唯一の答え合わせです。3か月ためると、加点の重みを実績で直せます。 「経過月数より、失注後の資料請求のほうが効く」といったことが分かります。
個人名を含む商談メモそのものは、処理後に保持しないでください。 残すのは抽出結果と引用箇所です。
04実装レベルの3段階
半自動化の時点で、25分が12分程度になります。 探す12分が消えるためです。本格構成にすると8分程度になりますが、接点データの連携とCRMへの書き戻しの実装が必要です。
05工数削減シミュレーション
導入後 120件 × 8分 ÷ 60 = 16 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 過去2年で失注・保留になった案件が300件以上あり、その記録がCRMまたは表計算に残っている企業。検討期間が数か月以上かかる商材で、失注理由の多くが「時期」「予算」である場合。
- 失注理由の記録が「他社決定」の一語しか残っていない場合(先に記録の粒度を上げる必要がある)。単価が低く、取引が一度で完結する商材。案件数が月数件で、担当者が全部覚えている場合。
07最小構成で試す方法
- 過去2年の失注案件から20件を選ぶ(実際に再商談になった案件を5件混ぜる)
- その商談メモを生成AIに渡し、失注理由・障害・解消の見込みを出させる
- 当時の担当者、または現在の担当者が見て、判定が合っているかを確かめる
- 混ぜた5件が上位に来るかを見る
4を必ずやってください。 実際に戻った案件を上位に拾えないなら、加点の考え方が間違っています。AIの精度ではなく、順位の設計の問題です。
判断の目安は次のとおりです。
| 実際に戻った案件の順位 | 判断 |
|---|---|
| 大半が上位半分に入る | 自動化する価値がある |
| ばらける | 加点の重みを見直す。接点データの有無で大きく変わることが多い |
| 記録から理由が読めない案件が半数以上 | 先に記録の書き方を直す。 この構成より効く |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 失注理由が一語しか残っておらず判定できない | unreadable で返させる。記録の書き方を直すほうが先 |
| AIが顧客の現況を推測して書く | プロンプトで禁止し、出力スキーマに現況の欄を作らない |
| 順位がAIの気分で毎回変わる | 点数をAIに出させない。加点はプログラムで行う |
| 上位が毎月同じ | 連絡結果の書き戻しを作る。ここが抜けていることが多い |
| 除外すべき先に連絡してしまう | 除外リストを絞り込みの段階で適用する |
| メモが長くてAPIの上限に当たる | 時系列で分割して渡す。要約して渡すと引用が壊れる |
| 実行が6分で打ち切られる | 件数で区切り、処理済みの位置を記録して続きから動かす |
| 顧客IDが接点データと合わない | 突合の鍵を先に決める。合わない分は接点なしとして扱う |
| リストが長すぎて営業が見ない | 上位30件だけを出す。全件を毎月並べない |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客名、商談の経緯、見積金額、比較された他社、先方の組織の事情。自社の価格情報と、顧客の内部事情の両方が含まれます。
- 見積金額と値引きの記録 … 商談メモには自社の値引き幅が残っています。これは競合に渡ってはならない情報です。 外部サービスへの入力可否を情報管理規程で確認してください
- 顧客の内部事情 … 「◯◯部長が反対した」といった記述が残っていることがあります。渡す範囲を、役職と部署に置き換えてから渡してください
- 先方担当者の氏名 … 判定に使いません。渡す前に落としてください
- 推測の禁止 … 顧客の現況をAIに推測させないでください。推測が営業の口から顧客に伝わると、事実と違う話をしたことになります
- 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます
- メモ本文の保持 … 処理後に本文を残さないでください。残すのは抽出結果と引用箇所です
- 連絡の可否 … 断られた先、与信上の問題がある先への連絡は、除外リストで機械的に止めてください
- 自動実行してよい範囲 … 絞り込み、抽出、加点、下書きの生成までです。連絡は必ず人が行います
誤りが起きた場合のリスクは、事情を知らないまま失注先に連絡し、関係を完全に断たれることです。掘り起こしは、一度しくじると次がありません。順位の根拠を営業が確かめられる形にし、当たり方の判断を人に残してください。
10まず何から始めるか
1週目:失注理由の内訳を数える
過去2年の失注案件を、失注理由の区分で集計してください。「他社決定」や「その他」が半分を超えるなら、この構成より先に記録の書き方を直すほうが効きます。
2週目:戻った案件を5件集める
過去に失注したあと、再び商談になった案件を探してください。この5件が、順位の設計の答えになります。 何がきっかけで戻ったのかを、当時の担当者に聞いてください。
3〜4週目:20件で試す
戻った5件を混ぜた20件で、抽出と加点を試します。5件が上位に来るかを見てください。 来なければ、加点の重みを直します。
2か月目:半自動化を作る
月次の書き出しから、リスト出力までを作ります。営業1名が1か月使い、25分が何分になるかを実測してください。
3か月目以降: 接点データの突合と、CRMへの書き戻しを追加します。あわせて、連絡した案件の3か月後の状態を記録してください。 これがたまると、加点の重みを勘ではなく実績で決められます。
半年後には、失注理由の集計そのものを経営に出してください。 掘り起こしの工数削減より、なぜ負けているかが数字で見えることのほうが大きい効果になることがあります。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Claude APIの構造化出力が、制約付きデコードによりスキーマに沿ったJSONの生成をモデル側で保証すること。列挙・定数・参照は使えるが、再帰スキーマや数値の範囲指定は使えないこと | Claude Docs: Structured outputs | 2026-09-21 |
| Claude APIのバッチ処理が、1バッチあたり10万件または256MBのいずれか先に達するまでを受け付けること。多くのバッチが1時間以内に完了し、24時間で期限切れになること。料金が通常の50%であること | Claude Docs: Batch processing | 2026-09-21 |
| Google Apps Script のスクリプト実行時間の上限が1回あたり6分であること。トリガーの合計実行時間が、Google Workspaceのアカウントで1日6時間、無償のアカウントで1日90分であること。URL Fetch の呼び出し数がWorkspaceで1日10万件、無償で1日2万件であること。割り当ては24時間ごとに戻り、超過すると実行が例外で止まること | Google Apps Script:割り当て | 2026-09-21 |
商談記録には、自社の値引き幅と、顧客の内部事情の両方が含まれます。 外部の生成AIサービスへの入力可否を、自社の情報管理規程と顧客との秘密保持契約の条件で確認してください。先方担当者の氏名は判定に使わないため、渡す前に落とす設計にしてください。 また、この構成が出す順位は過去の記録に基づく整理であり、再商談になる見込みを保証するものではありません。顧客の現在の状況をAIに推測させないでください。 推測が営業の発言として顧客に伝わると、事実と異なる説明をしたことになります。失注先への連絡は関係の修復を伴う行為です。連絡の可否と当たり方の判断を、必ず人に残してください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。CRMからの商談メモの取り出し可否と、その仕様は製品によって異なります。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0132)についてのご相談はこちらから。
