Salesforce の Einstein(生成AI)でフローを自動生成できるようになったので、「商談が失注したときに自動で振り返りタスクを作る」仕組みをつくってみました。
結論
AI にプロンプトを投げただけで、ほぼフローが完成した。あとは小さな調整だけ。めっっちゃ便利。営業現場でありがちな “失注後の振り返り忘れ” をゼロにできます。
💡 背景と課題
営業管理の中心である 商談(Opportunity) は、自社でも主要オブジェクトとして定義されています(業務定義書より)。しかし、失注(Closed Lost)になったときにこんな課題がありました:
- 失注理由を書き忘れる
- 振り返り(敗因分析)を後回しにして忘れる
- 活動(ToDo)が登録されず、レポートにデータが残らない
実際、商談画面から ToDo を登録する導線は定義書にもありますが(※ 商談詳細 → 活動/ToDo)、手動だと漏れやすいのが実情です。さらに、活動データはレポートでも分析対象になっているため、失注案件で ToDo が登録されないと分析が穴だらけになります。
🎯 この記事で実現すること
商談フェーズが Closed Lost に変わったとき、以下のプロセスを“完全自動化”します。
- 失注理由が空ならエラー(=入力規則)
- 失注理由が入力されていれば「振り返りタスク」を自動作成(=AI生成フロー)
これは Phase3 の目的である「AI × Salesforce を使って業務課題を解決する」にも非常に合致した取り組みです。
🔧 Step1:失注理由を必須にする Validation Rule を作る
まず「失注にしたのに理由が空」の状態での保存を禁止します。
- 場所: 設定 → オブジェクトマネージャ → 商談 → 入力規則 → 新規
-
ルール名:
ValidateLostReasonWhenClosedLost -
エラー条件式:
AND( TEXT(StageName) = "Closed Lost", ISBLANK(LostReason__c) ) - エラーメッセージ: 失注理由を入力してください。
- 表示場所: 失注理由
[!NOTE]
※LostReason__cは商談オブジェクトにある標準的なカスタム項目です。このルールにより、失注理由なしで Closed Lost に変更しようとするとガードがかかります。
🤖 Step2:Einstein にフローを作らせる(プロンプト全文)
Flow Builder の「Einstein にフロー生成」をクリックし、次のプロンプトをコピペします。
入力プロンプト:
Create a record-triggered flow for the Opportunity object.
Trigger:
- When an Opportunity is created or updated
- Use "after save"
Criteria:
Run this flow only when StageName changes to "Closed Lost".Logic:
If LostReason__c is blank, do nothing (it will be blocked by validation rules).
If LostReason__c has a value, create a Task:
- Subject: "失注案件の振り返り"
- Description: "失注理由: {!$Record.LostReason__c}"
- OwnerId: {!$Record.OwnerId}
- WhatId: {!$Record.Id}
- ActivityDate: TODAY() + 2
- Priority: Normal
- Status: "Not Started"
すると、フローの骨格が AI によって自動生成されます!
「This flow was created by generative AI」という表示が出るので、AIが作成した証拠もしっかり残ります。
🔧 Step3:AIが生成したフローを微調整する
AI が生成してくれたフローに対し、以下を調整すれば実用レベルになります。
-
条件:StageName = "Closed Lost"
- プロンプト通りなら自動でセットされています。
-
実行タイミング
- 「条件に一致するように更新されたときのみ」に設定し、タスクの無限生成を防止します。
-
タスクの期限
- AI は “今日” を設定しがちなので、数式リソースで
TODAY() + 2を作成して差し替えます。
- AI は “今日” を設定しがちなので、数式リソースで
-
WhatId(関連先)
-
Opportunity.Idを必ず入れます。これにより商談詳細画面の「活動(ToDo)」に正しく表示されます。
-
🧪 Step4:テスト
🔥 テスト1:失注理由なし
- 商談を編集 → フェーズを
Closed Lostに変更 - 保存
- 結果: Validation Rule が動いてエラー(正常)
🔥 テスト2:失注理由あり
-
Closed Lost+ 「失注理由」を入力 - 保存
- 結果: フロー発動!商談の「活動(ToDo)」にタスクが自動生成される。
📌 できたタスクの例
- 件名: 失注案件の振り返り
- 説明: 失注理由:◯◯
- 優先度: Normal
- 期限: Today + 2
- 関連先: 商談名
- 担当者: 商談Owner
完全に意図通りです!
📊 この仕組みで得られるメリット
- 失注理由の未入力がゼロに: 入力規則で必須化しているため、データ品質が劇的に向上します。
- 振り返りタスクを自動作成: 営業側の「振り返り忘れ」を物理的に排除できます。
- レポート分析が正確に: ToDo が自動作成されるので、「失注→振り返り実施率」などの KPI が容易に取得可能です。
- AI × Salesforce を実務活用: Phase3 の目的に合致した、地に足の着いた AI 活用事例となります。
🎉 まとめ
- Validation Rule で失注理由を必須化
- AI(Einstein) にフローを作らせて振り返りタスクを自動化
- 商談 → 活動 の業務導線と完全に一致
生成AIを「実務の穴埋め」用途に使うとここまで便利になるのか……という、非常に実戦的な体験ができました。