見出し画像

Salesforceで特定のフェーズに遷移させる際に、特定の入力項目を必須化させる方法の備忘

2月からマーケティングオペレーションを担当することになり、様々なことをリサーチしたり、考えたり、検証したり、実装したり…忙しくも楽しい日々を過ごしています。

マーケティングオペレーションのミッションの中には、セールスやCSがより成果を出しやすくするための仕組みや基盤作りといったことがあります。

SalesforceやMarketoの管理運用もその中の一つです。今回はCS活動の進捗管理のためのSalesforceアプリの構築中に迷ったことをメモとして残していきます。できる人には当たり前ですが、初めてやる人には手探りのネタが多いので、きっとこういう備忘も誰かの役に立つはずです。

少なくとも忘れっぽい自分には役立つはず。

はじめに

さて、本題です。

Salesforceの商談などの"パス"を利用時に、任意のフェーズから特定のフェーズに遷移させる際に、「あるフィールドへの情報入力が無いと特定のフェーズに遷移させることができない」とか「特定のフェーズに遷移させるためには、あるフィールドの値がXである必要がある」など、条件指定をしたいと思うことはありませんか?

調べたらすぐに出てくるかと思いきや、パッと理解しやすい記事が出てこなかったため、その方法を調べて実装した際の備忘録として、この記事を残します。

てっきり「パス設定」で行えるものかと思って探していましたが、残念ながら「パス設定」では入力規則の指定はできません。
入力規則を適用させたいパスが使われているオブジェクトの「入力規則」で設定するということがわかるまでが一番時間がかかりました…(逆にこれだけわかれば、正直備忘録を残すまでもないかもしれない)


やりたいこと

例えば、①提案中→②契約締結→③導入という商談フェーズ(セールスパス/パス/ビジネスプロセス)があるとした時に、導入フェーズに遷移させる時に、「契約捺印日」の確認をしないと導入フェーズに動かしてはいけないというルールがあるとします。

パスの直下には「重要な項目」として最大5個のフィールドを表示させることができますが、表示させていても入力するのを忘れて遷移させてしまうなんてことは、人間ですので時々あるかと思います。

入力忘れが特にオペレーションを含めた様々なことに影響が無いのであれば問題ないですし、なんならその項目を削除してしまっても良いはずです。しかし、その項目への入力(もしくはその項目を実施したことがわかること、その項目が特定の値であることなど)が重大な影響を及ぼす可能性がある場合は、そういうわけにはいきません。

実際に大きな問題にならなかったとしても、スムーズな業務を行うために必要なことも多かったりします。まさに今回はそういったケースで、社内のSalesforceユーザーからオーダーされて実装を検討しました。

対応方針

実際におきた事象から、フェーズを2段飛ばしのような形でスキップさせる運用は無いことが前提のため、特定のフェーズに遷移させる際に、指定したフィールドの入力内容をチェックし、特定の値でない場合にエラーメッセージを表示させて、フェーズ遷移をさせない仕組みを作るのが良いだろうと考えました。

当初はパスの設定でそれができるはずだとぼんやり理解をしていましたが、実装方法をリサーチしてみると、Salesforceのパスの設定だけではそのような遷移条件を設けることはできないようです。

それではどうするか。

この場合は、入力規則を利用するのが良さそうだとわかりました。

入力規則を利用して、

①特定のフェーズに遷移させる際に
②必要事項が入力されていなければエラーメッセージを表示させ
③該当のステップに遷移できないようにする

これが、簡単な方法かと思います。この方法で実装をしていきます。
※その他の方法があれば、ぜひ教えていただけますと幸いです。

実装手順

  • オブジェクトマネージャーで、必須化など入力制限を行いたい該当のパスがあるオブジェクトを選択します。

  • サイドメニューから入力規則を選択します。

  • 右上の「新規」ボタンを押して、新規の入力規則を作成します。

    1. ルール名を記入します。

    2. 仕様からエラー条件数式を検討します。今回の仕様では、以下の条件を反映させるようにします。

      1. 「特定のフィールドに情報を入力していなければあるフェーズに遷移させることはできない」

      2. そのフェーズをスキップして進めることは運用としては想定しない

      3. アラートメッセージでは、フィールドに情報を入力させることを促すメッセージを表示する

    3. 決めた仕様に沿って、エラー条件数式を入力します。ざっくりとこんな感じの関数ができるので、入力して構文チェックをします。

      • IF( ISPICKVAL(フェーズにあたるフィールドのAPI名, "特定のフェーズのAPI名") , ISBLANK(入力させたいフィールドのAPI名 ) , false)

        •  ISPICKVAL:フェーズは選択リストのため、特定の関数しか使えないため、今回はこの関数で特定のフェーズに向けて更新しているのかどうかの真偽を判定します\

        • ISPICKVALについて利用イメージがわかない場合は、こちらのブログがわかりやすいかと思います。SALES 4 BOX 【数式】IF関数とISPICVAL関数を使用し、選択した値によって返す値を変える方法!

        • エラー表示箇所はオペレーションに合わせて選択してください、パスの遷移に関する入力規則であれば、ページ上部がわかりやすいかと思います。

    4. 設定を保存後、実際にパスの遷移を試します。

      • 問題なければOK

おわりに

Salesforceのドキュメントはとても整備されているし、コミュニティページやヘルプページも充実しています。しかし、上手い具合に検索がヒットしない時の参考になればということと、一度設定しても、しばらく設定しないと忘れてしまいがちなので、備忘ということで今回メモを残しておきます。

今後はマーケティングオペレーションを担うチームとして、商談管理や付随するオペレーションの最適化ができるように、今まで以上にSalesforceの活用をしていきたいと思っています。



この記事が気に入ったらサポートをしてみませんか?