「入力規則で商談のフェーズを制御する」 ~シンプルだけど強力な制約の実装~

技術コラム

Akira Hashimoto

入力規則で商談のフェーズを制御する~シンプルだけど強力な制約の実装

Akira Hashimoto

はじめに

Salesforceで商談のフェーズを適切に管理することは、営業プロセスの整備には不可欠です。

ワークフローや承認プロセスを活用する方法もありますが、「入力規則(Validation Rule)」を使うことでシンプルにフェーズの変更ルールを制御することができます。

今回は入力規則を用いてフェーズの変更を制御する方法を考察し、実装のポイントを解説します。

入力規則でフェーズを制御するメリット

1.シンプルな設定で強力な制約が可能

  • ノーコードで実装可能(Apexトリガーやフローよりも設定が容易)
  • 即時にエラーを表示できる(フェーズ変更のミスを事前に防ぐ)

2.柔軟なビジネスルールを適用できる

  • フェーズの逆戻りを防止(例:「Closed Won」→「Negotiation」はNG)
  • 特定の条件下でのみフェーズの変更を許可(例:「見積送付済」のチェックがないと「交渉中」にできない)

入力規則の実装例

ルール1:フェーズの逆戻りを防ぐ

営業プロセスの進行を正しく管理するために、商談のフェーズを過去の段階に戻せないようにする入力規則を設定します。

実装する入力規則

AND(
ISCHANGED(StageName),
CASE(
PRIORVALUE(StageName),
"Closed Won", 1,
"Closed Lost", 1,
0
) = 1
)

このルールの動作

  • 「Closed Won(成約)」や「Closed Lost(失注)」のフェーズから、他のフェーズに戻せなくなる
  • 誤って成約済みの商談を修正しようとするミスを防ぐ

ルール2: 特定の条件下でのみフェーズ変更を許可する

例えば、見積を送付していない状態で「交渉中(Negotiation)」に進めることを禁止するルールを作成します。

実装する入力規則

AND(
ISCHANGED(StageName),
ISPICKVAL(StageName, "Negotiation"),
NOT(Checkbox_Field__c) // ここでは「見積送付済」のチェックボックスを想定
)

このルールの動作

  • 「見積送付済(Checkbox_Field__c)」にチェックが入っていないと「交渉中」フェーズにできない
  • 必要なプロセスを経ていない商談の進行を防ぐ

入力規則を使用する際の注意点

無理に複雑なルールを詰め込まない

  • ルールが複雑になりすぎると管理が困難になる
  • フェーズ変更のたびにエラーが出てしまい、営業担当者が困る可能性がある

フローやApexで制御すべきケースもある

  • 特定のユーザーだけ例外を作る必要がある場合
    • 例: 管理者はフェーズを戻せるが、営業担当は戻せない
      → フローやApexトリガーを使用した方が適切
  • フェーズ変更時に他の項目を自動更新したい場合
    • 例: 「Closed Won」にしたら「契約日」に自動で日付を入れる
      → フローやプロセスビルダーを活用

まとめ見出し

Salesforceの入力規則を使えば、シンプルかつ強力に商談のフェーズを制御できるため、誤った進行を防ぐのに役立ちます。

ただし、すべてを入力規則で制御しようとすると逆に運用の負担が増えるため、フローやApexとの使い分けを意識することが大切です。

適切なルール設計を行い、運用しやすいSalesforceを目指しましょう!

商談フェーズの運用に関するご質問/ご要望がございましたらお気軽に弊社にお問い合わせください!

Salesforce導入・活用支援のご案内

サンブリッジが提供するSalesforce導入・活用支援サービスは、お客様の現状の業務用件や目指すゴールをヒアリングし、システム設計から実装までを行います。
導入後のトレーニングまでを含むきめ細やかなサービスを一貫して実施することにより、Salesforceの活用向上と導入の効果を最大化します。

関連記事