Media > AI活用ユースケース > 営業 > 動きの止まった商談を洗い出して、次の一手の案までそろえる

動きの止まった商談を洗い出して、次の一手の案までそろえる

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

営業支援システムの商談データと活動履歴を入力に、過去の受注・失注の実績から「このまま動かなければ失注しやすい」案件の特徴を数値化し、止まりかけている商談を並べます。あわせて、最後のやり取りから止まっている理由の候補と、次の一手の案を出します。

サマリー
利用ツール
ChatGPT/Claude/Gemini/Google Apps Script/Power Automate/Python
対象業界
IT・SaaS/商社/広告/製造
対象部門
営業
対象業務
比較検討/集計・分析
主な課題
データ分析に時間がかかる/営業フォローが追いつかない/属人化している
AIで行う処理
予測
主な効果
判断支援/工数削減/機会損失防止
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
必須
現在工数
48h/月
AI導入後
16h/月
想定削減
67%
年間削減
384h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 週次の営業会議の前に、営業が自分の案件一覧を開く
  2. 更新日の古い順に案件を開き、最後のやり取りを読み返す
  3. 次に何をするかを決める(連絡する、提案を作り直す、いったん保留にする)
  4. 会議で上長に状況を説明する
  5. 上長が「あの案件はどうなった」と個別に確認する
  6. 動きのない案件は、翌週も同じ説明が繰り返される
  7. 数か月経った案件が、期末に失注として処理される
導入後(After)
  1. 毎週月曜の朝、処理が始まる
  2. 自動営業支援システムから進行中の商談と活動履歴を取得する
  3. 自動案件ごとに、停滞を示す特徴を計算する(最終活動からの日数、フェーズの滞留日数、予定の有無、返信の間隔など)
  4. 自動過去の受注・失注の実績から作った基準で、停滞の度合いを点数にする
  5. 自動点数の高い案件について、最後のやり取りを読み、止まっている理由の候補を出す
  6. 自動次の一手の案を、過去に同じ状態から動いた案件のやり方を参考に作る
  7. 自動営業ごとの一覧を作り、本人と上長へ通知する
  8. 営業が一覧を見て、動く案件と保留にする案件を決める
  9. 保留にする場合は理由を入力する
  10. 自動判断の結果を記録し、次回の基準の見直しに使う
各工程の詳しい説明を読む
  1. 週次の営業会議の前に、営業が自分の案件一覧を開く
  2. 更新日の古い順に案件を開き、最後のやり取りを読み返す
  3. 次に何をするかを決める(連絡する、提案を作り直す、いったん保留にする)
  4. 会議で上長に状況を説明する
  5. 上長が「あの案件はどうなった」と個別に確認する
  6. 動きのない案件は、翌週も同じ説明が繰り返される
  7. 数か月経った案件が、期末に失注として処理される

問題は4つあります。

(a)全件を見る時間がない。 1人24件を毎週見直すのは現実的ではなく、結局は動きのある案件だけを見ています。動いていない案件こそ見るべきなのに、後回しになります。

(b)履歴を読み返すのに時間がかかる。 3か月分のやり取りを読み直して、どこで止まったかを思い出す作業が毎回発生します。

(c)止まった理由が記録に残らない。 「先方の稟議待ち」なのか「担当者が異動した」なのか「競合に決まりかけている」のかは、営業の頭の中にしかありません。

(d)自然消滅する。 誰も動かないまま時間が過ぎ、期末に一括して失注処理されます。失注理由は「時期尚早」とだけ記録され、次に活かせません。

  1. 毎週月曜の朝、処理が始まる
  2. 【自動】 営業支援システムから進行中の商談と活動履歴を取得する
  3. 【自動】 案件ごとに、停滞を示す特徴を計算する(最終活動からの日数、フェーズの滞留日数、予定の有無、返信の間隔など)
  4. 【自動】 過去の受注・失注の実績から作った基準で、停滞の度合いを点数にする
  5. 【自動】 点数の高い案件について、最後のやり取りを読み、止まっている理由の候補を出す
  6. 【自動】 次の一手の案を、過去に同じ状態から動いた案件のやり方を参考に作る
  7. 【自動】 営業ごとの一覧を作り、本人と上長へ通知する
  8. 【人】 営業が一覧を見て、動く案件と保留にする案件を決める
  9. 【人】 保留にする場合は理由を入力する
  10. 【自動】 判断の結果を記録し、次回の基準の見直しに使う

自動化されるのは「探す」「読み返す」「並べる」の3つです。残るのは「どうするかを決めて動くこと」です。

02今回想定するシステム構成

構成図
【トリガー】毎週月曜 07:00
   │
   ▼
Python(集計・スコアリング)
   │
   ├──▶ 営業支援システムのAPIから商談・活動履歴を取得
   │       GET /services/data/vXX.X/query/?q=SELECT+...+FROM+Opportunity+WHERE+...
   │
   ├──▶ 停滞の特徴を計算(最終活動からの日数・フェーズ滞留・予定の有無 ほか)
   │
   ├──▶ 停滞スコアの算出(過去実績から作った重み)
   │
   ├──▶ Claude API ── 上位案件の履歴を読み、止まっている理由の候補と次の一手の案
   │
   └──▶ 営業ごとの一覧(スプレッドシート)+ Teams へ通知
   │
   ▼【人が判断】動く/保留にする(保留は理由を入力)
   │
   ▼
判断の結果を記録 → 次回の基準の見直し
役割想定する製品代替候補
実行環境PythonGoogle Apps Script、Power Automate
生成AIClaude APIOpenAI API、Gemini API
連携営業支援システム各社のSFA・CRM
一覧GoogleスプレッドシートMicrosoft Lists
通知Microsoft TeamsSlack、メール

点数の計算に生成AIを使いません。 停滞スコアは、日数や回数といった数値から計算します。なぜその案件が上位に来たのかを説明できることが、営業に使ってもらうための条件です。

03どうやって実装するのか

Step1

処理の起点を決める

週1回の定期実行にします。営業会議の前日か当日の朝に合わせます。

日次にすると通知が日常の雑音になり、月次では手遅れになります。商談期間が3〜6か月の業種では、週1回がちょうど良い間隔です。 商談期間が年単位の業種(大型設備、公共案件)では隔週や月次に落とします。

Step2

入力データを集める

データ中身取得元
進行中の商談案件ID、顧客、金額、フェーズ、確度、作成日、完了予定日、担当者営業支援システム
活動履歴訪問・電話・メールの日時、内容、次回予定営業支援システム
過去の実績直近2年の受注・失注案件と、その経過営業支援システム
商材ごとの基準商材ごとの平均商談期間、正常な間隔設定ファイル
やり取りの本文最後の数回のメール・議事録営業支援システム、メール

4番目が要ります。 消耗品の追加受注で2週間動かないのは異常ですが、基幹システムの更改で2週間動かないのは普通です。商材ごとに基準を変えないと、全部の案件が「停滞」になります。

Step3

データの取得方法を決める

商談と活動履歴: 営業支援システムのAPIから取得します。Salesforce を使う場合、REST API のクエリのリソースにSOQLを渡します。GET /services/data/vXX.X/query/?q=SOQL の形で、クエリ文字列の空白は + に置き換えます。同期のリクエストで一度に返るのは最大2,000件で、超えると done が false になり、続きを取得するための情報が返ります。 クエリが不正な場合は MALFORMED_QUERY が返ります。

商談が数千件ある場合は、この続きの取得を必ず実装してください。最初の2,000件だけを処理して「全件見た」としてしまう誤りが起きやすい箇所です。

やり取りの本文: 停滞スコアの高い案件だけ取得します。全件のメール本文を読み込む必要はありません。費用と処理時間の大半はここで決まります。

Step4

AIへ渡す前に整形する

  1. 対象の絞り込み … 進行中で、金額が一定以上、完了予定日が未来の案件に限ります。既に失注・受注したものは外します
  2. 特徴の計算 … 案件ごとに次を計算します
特徴内容
最終活動からの日数最後の訪問・電話・メールから何日経ったか
フェーズ滞留日数現在のフェーズに入ってから何日か
次回予定の有無未来の予定が入っているか
活動の間隔の変化直近の間隔が、それまでの平均より延びているか
完了予定日の延期回数予定日が何回先送りされたか
相手の反応直近のやり取りで相手からの返信があるか
  1. 商材ごとの正規化 … 平均商談期間で割り、商材が違っても比べられるようにします
  2. 担当者の在籍確認 … 退職・異動した担当者の案件を別枠にします。これは停滞ではなく引き継ぎ漏れです
  3. 長期案件の除外 … もともと年単位の案件は、別の基準で見ます
Step5

AIに処理させる

計算と文章化で役割を分けます。

プログラムにさせること: 特徴の計算と停滞スコアの算出。重みは、過去の実績(同じ状態から受注に至ったか、失注したか)から決めます。複雑な手法は要りません。 どの特徴がどれだけ効いたかを説明できる形にします。

生成AIにさせること:

処理内容
停滞の理由の候補最後のやり取りから、止まっている理由として考えられることを挙げる
引用その根拠になったやり取りの箇所を示す
次の一手の案過去に同じ状態から動いた案件のやり方を参考に、3案程度
確認事項記録からは分からない点(社内の事情、担当者の状況)

受注の可否や確度をAIに書かせないでください。 「この案件は受注可能性が低い」と書かれた一覧が回ると、営業が動く前に諦めます。

Step6

指示内容を固定する

あなたは営業を補佐する担当者です。
止まりかけている商談の記録と、直近のやり取りを渡します。
止まっている理由の候補と、次の一手の案を出してください。

【厳守事項】
- 記録とやり取りに書かれていないことを書かないでください。
  顧客の社内事情を推測して断定しないでください。
- 理由の候補には、根拠になったやり取りの箇所を引用してください。
  引用できない候補は出さないでください。
- 受注できるか、確度が何%かを書かないでください。
- 「この案件は見込みが薄い」といった評価を書かないでください。
- 次の一手は、担当者がすぐ実行できる具体的な行動にしてください。
  「フォローを強化する」ではなく「◯◯について確認の連絡をする」と書いてください。
- 値引きや特別条件の提示を提案しないでください。
- 記録が少なく判断材料がない場合は、その旨を書いてください。
  無理に理由を作らないでください。

【商談の基本情報】
{opportunity}

【停滞の特徴(計算済み)】
{stall_features}

【直近のやり取り】
{recent_activities}

【同じ状態から動いた過去の案件の例】
{similar_cases}

「値引きを提案しない」の1行を入れておいてください。 止まっている案件に対して、生成AIは値引きや特典の提示を提案しがちです。それが一覧に並ぶと、価格で動かす発想が営業に広がります。

Step7

出力形式を固定する

{
  "opportunity_id": "",
  "owner": "",
  "amount": 0,
  "stage": "",
  "stall_score": 0,
  "score_reasons": [
    { "feature": "最終活動からの日数", "value": 0, "contribution": 0 }
  ],
  "possible_causes": [
    { "cause": "", "quote": "" }
  ],
  "next_actions": [],
  "unknowns": [],
  "insufficient_record": false
}

score_reasons に、点数の内訳を入れます。「なぜこの案件が上位なのか」が一覧で分かることが、使われ続けるかどうかを決めます。 点数だけを出すと、営業は納得しません。

insufficient_record が立つ案件が多いなら、それは仕組みの問題ではなく、活動履歴が入力されていないという運用の問題です。

Step8

システムへ連携する

出し先内容
営業ごとの一覧停滞スコアの高い順に、点数の内訳・理由の候補・次の一手
通知本人へは自分の案件、上長へはチーム全体
営業支援システム判断の結果(動く/保留/失注)をメモとして記録

営業支援システムの確度やフェーズを自動で書き換えないでください。 数値は営業が入力するもので、仕組みが書き換えると、システムの数字が誰の判断か分からなくなります。

Step9

人が確認する

全件、営業本人が判断します。

一覧に並ぶのは「見落としているかもしれない案件」であって、「手を打つべき案件」ではありません。顧客の予算時期の都合で意図的に置いている案件もあります。 その判断は営業にしかできません。

判断を速くするための設計が要ります。

  • 点数の内訳を一覧に表示する
  • 「保留」を選ぶときに理由を1つ選ばせる(予算時期/先方都合/優先度が低い/こちらの都合)
  • 保留にした案件は、指定した日まで一覧に出さない
  • 次の一手の案は3つまで。多いと読まれない

「保留」を選びやすくすることが大切です。 保留が選べないと、一覧を無視する習慣がつきます。

Step10

例外に対処する

起きること対応
活動履歴が入力されていないinsufficient_record を立てる。入力不足を停滞と判定しない
担当者が異動・退職した案件別枠で「引き継ぎ確認」として出す
もともと動きの遅い商材商材ごとの基準で正規化する
顧客の予算時期待ちで意図的に置いている保留の理由として記録し、再開予定日まで出さない
取得が2,000件で切れる続きの取得を実装する。件数を必ずログに残す
同じ顧客の複数案件が並ぶ顧客単位でまとめて表示する
一覧に毎週同じ案件が並ぶ3回続けて保留になった案件は、上長のレビュー対象にする
生成AIが理由を作り込みすぎる引用の必須化で抑える。引用のない候補は表示しない
Step11

記録を残す

  • 週ごとの停滞スコアと内訳
  • 生成AIが出した理由の候補と次の一手
  • 営業の判断(動く/保留/失注)と理由
  • その後の結果(受注・失注・継続)

3番目と4番目を突き合わせると、基準の精度が測れます。 「上位に並んだ案件のうち、実際に失注した割合」を見れば、点数の付け方が妥当かが分かります。この検証を四半期に一度行い、重みを見直してください。

04実装レベルの3段階

最小構成:更新日の古い案件を一覧で出す(システムの標準機能) / 並べ替えのみ
半自動化:特徴を計算して停滞スコアを付け、営業ごとの一覧を週次で配る / 抽出と優先順位付け
本格構成:上記+やり取りからの理由の候補と次の一手+判断の記録+基準の見直し / 検討材料の作成まで

半自動化だけでも効果が出ます。 12分が6分程度になります。本格構成にすると4分程度になり、履歴を読み返す時間がほぼ消えます。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
10 名
月間件数
240 件
1件あたり現在時間
12 分
1件あたり導入後時間
4 分
現在  240件 × 12分 ÷ 60 = 48 時間/月
導入後 240件 × 4分 ÷ 60 = 16 時間/月
月間削減時間
32h
削減率
67%
年間削減時間
384h
年間金額換算(時間単価3,500円)
134万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 進行中の商談が常時100件以上あり、営業支援システムに活動履歴が入力されている会社。案件が自然消滅する形の失注が多い場合。
向いていない
  1. 商談の記録が営業の手帳にしかない場合。案件数が少なく、営業が全件を把握できている場合。受注までの期間が数日で、停滞という状態が起きない業種。

07最小構成で試す方法

  1. 過去1年の失注案件から20件を選ぶ
  2. それぞれについて、失注が確定する3か月前の時点のデータを取り出す
  3. 「最終活動からの日数」「次回予定の有無」「完了予定日の延期回数」を手で集計する
  4. 同じ時期に受注した案件20件についても同じ集計をする
  5. 2つのグループで数値に差が出るかを見る

5番で差が出なければ、この構成は機能しません。 差が出る特徴が2つ3つ見つかれば、それが点数の材料になります。

判断の目安は次のとおりです。

40件の比較結果判断
明確な差がある特徴が2つ以上半自動化に進む
差が小さい活動履歴の入力が足りていない可能性がある。入力の運用を先に見直す
そもそもデータが取り出せない営業支援システムの使い方から見直す

生成AIの部分は、この段階では試さなくて構いません。先に「停滞を数字で捉えられるか」を確かめます。

08実装時につまずきやすいポイント

問題対策
全案件が「停滞」と判定される商材ごとの平均商談期間で正規化する
取得件数が上限で切れる続きの取得を実装し、件数をログに残す
活動履歴が少ない営業の案件ばかり上位に来る入力不足を別のフラグにする。停滞と混ぜない
営業が一覧を無視する点数の内訳を見せる。保留を選びやすくする
毎週同じ案件が並ぶ保留の期限を設ける。3回連続は上長レビューへ
生成AIが顧客の事情を推測で書く引用を必須にする。引用のない候補は出さない
値引き提案が並ぶプロンプトで禁じる
確度やフェーズが自動で書き換わる書き込みは判断メモのみ。数値は営業が入力する
評価に使われていると受け取られる目的を明示し、上長への通知範囲を決めておく

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 商談の内容、顧客名、金額、担当者の活動履歴、顧客とのやり取りの本文。顧客の検討状況と、営業個人の活動記録の両方を含みます。

  1. 個人の評価に使わない … 停滞スコアは案件の状態を示すもので、担当者の能力を示すものではありません。活動履歴の入力が丁寧な営業ほど停滞が見えやすくなるため、そのまま評価に使うと入力しないほうが有利になります。 目的を導入時に明示し、評価とは切り離してください
  2. 顧客とのやり取りの本文 … メールの本文には、顧客の社内事情や個人名が含まれます。生成AIへ渡す範囲を、停滞スコアの高い案件の直近数回に絞ってください
  3. 顧客名の扱い … 判断に社名が必要でなければ、案件IDに置き換えて渡す方法も取れます
  4. 学習利用 … 入力を学習に使わない設定または契約のサービスを選びます
  5. アクセス権限 … 一覧の閲覧を、本人・上長・営業企画に限定します。他の営業の案件の停滞スコアが見える設計にするかは、社内で決めてください
  6. 自動実行してよい範囲 … 抽出、点数付け、案の作成までです。顧客への連絡、確度やフェーズの更新、失注処理は人が行います

誤りが起きた場合のリスクは、意図的に置いている案件に不要な連絡をして顧客の心証を損ねること、逆に点数が低いために本当に危ない案件を見落とすことです。一覧は判断の材料であって、指示ではありません。

10まず何から始めるか

1週目:失注案件20件と受注案件20件を比べる

失注が確定する3か月前の時点で、両者の数値に差が出る特徴を探します。差が出る特徴が見つからなければ、この構成は作れません。

2週目:商材ごとの基準を決める

商材ごとの平均商談期間と、「この日数動かなければ確認すべき」という目安を、営業のリーダーと決めます。

3〜4週目:半自動化を1チームで動かす

特徴の計算と停滞スコア、週次の一覧までを作り、営業3名で4週間使います。一覧を見て実際に動いた件数と、保留にした理由を記録します。

2か月目以降: 上位案件についてのみ、やり取りからの理由の候補と次の一手を加えます。四半期後に、上位に並んだ案件の受注・失注の結果を集計し、点数の重みを見直してください。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-15/最終更新:2026-09-15
確認した内容情報源確認日
Salesforce の REST API で、/services/data/vXX.X/query/?q= にSOQLを渡して検索でき、同期のリクエストで一度に返るのは最大2,000件であること。上限を超えると done が false になり、続きを取得するための情報が返ること。クエリ内の空白は + に置き換える必要があり、不正なクエリには MALFORMED_QUERY が返ることSalesforce Developers: Query(REST API Developer Guide)2026-09-15
SOQL が、指定した条件でレコードを検索するためのクエリ言語として提供されていることSalesforce Developers: Salesforce Object Query Language (SOQL)2026-09-15

営業支援システムの種類によって、取得できる項目と上限は異なります。この部分は利用環境に応じた個別確認が必要です。 停滞の判定に使う特徴と基準は、自社の商材と商談の進み方に合わせて決めてください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0087)についてのご相談はこちらから。

AI活用について相談する
目次