ブログ

ワークフローよりも自由度の高いプロセスビルダーとフローを使用した自動化 Part2

お客さんのカスタマイズをやっていると、プロセスビルダーを使って関連オブジェクトの項目の値を更新することはよくあることで、上手く使うと手間が省けたり作業が効率化されて大変有効です。

商談のフェーズで入金などのステータスを含む場合、入金を含めて完了とかになったら、商談に関連する請求オブジェクトの入金済みにチェックを入れるなどの自動化は簡単に構築可能です。

ただ、プロセスビルダーだけだと関連オブジェクトの項目は更新できるのですが、関連していないオブジェクトのレコードは更新できません。

例えば、リードを取引開始すると、取引先と取引先責任者、商談にコンバートされますが、コンバート後に商談のリードソースを変更しても、リードはコンバート前の状態のままで「リードはリード」として置いておくしかありません。リードと商談は参照関係などの関連オブジェクトになっていないためです。

そこで、ご紹介したいのが「フロー」です。

このフローを使うと上記のように、参照関係や主従関係になっていないオブジェクト間でも自動更新が可能になります。

プロセスビルダーでフローを利用する

動きとしては、次のようなイメージです。

  1. 商談を更新する
  2. プロセスビルダーが働き、商談の商談IDとリードソースを変数として取得する
  3. フローでその商談IDの変数とリードの取引開始後の商談IDが同じリードのレコードを検索する
  4. 該当するリードがあった場合、そのリードのリードソースを商談と同じリードソースに書き換える

1と2をプロセスビルダーで担当し、3と4をフローが担当します。

では、手順に進みましょう。

商談の更新時にリードのリードソースを更新するフローを作成する

設定>プロセスの自動化>フロー をクリックします。

新規フローをクリックします。

フローの作成にはAdbe Flush Playerが有効化されていることが必要になります。

有効化されていない場合はメッセージが表示されるので、「こちらからダウンロード」をクリックして有効化してください。

フローの編集画面が開きました。

フローの編集画面の左のパレットの中から、「レコードの更新」をドラッグして、右のスペースに移動します。

更新フローの名前と一意の名前を入力し、更新対象としてLeadを選択します。

 

更新レコードの一致条件を指定します。

今回は、リードソースを更新した商談のIDとConvertedOpportunityIDが同じリードレコードを更新しますので、図のように条件を設定します。

リードソースを更新した商談のIDはプロセスビルダーから変数としてセットされれますので、値の右にある▼をクリックして、新規作成>変数 をクリックします。

 

変数の名前(一意の名前)を適当に入力し、図の通りの設定でOKをクリックします。

 

次に、先の条件にヒットしたレコードを更新しますので、更新内容を図の通り設定します。

こちらでもプロセスビルダーから取得した商談のリードソースを更新の値にしますので、値の右にある▼をクリックします。

 

同様に、適当な変数の名前を付けて、図の設定の通りでOKをクリックします。

 

フローのスタートを決めるための緑の矢印をクリックします。

 

これで、フローは完成です。保存をクリックします。

適当にフローの名前を付けて、その他の設定はデフォルトのままでOKをクリックします。

 

警告が出ますが、今回こちらは無視していただいて大丈夫です。OKを押してください。

 

フローを有効化します。

 

プロセスビルダーを作成する

新規ボタンをクリックします。

 

プロセス名などにわかりやすい名前を付けてSaveをクリックします。

プロセスを開始するタイミングは「レコードが変更されたとき」です。

 

オブジェクトには商談を選択します。プロセスを開始するタイミングは、「レコードを作成または編集した時」です。

 

更新条件を設定します。

今回は、商談のリードソースを変更したときなので、図の通り項目を選択して、保存をクリックします。

項目が途中で切れていますが、[Opportunity].LeadSource です。

 

ルール適用時のアクションの下の「+アクションを追加」をクリックして、アクション種別に「フロー」を選択し、わかりやすいアクション名を入力して、フローの箇所で先ほど作成したフローを選択します。

 

先に作成したフローで作成した2つの変数をセットします。

SalectedOpportunityIDには商談IDを、SelectedOpportunityLeadSourceに商談のリードソースをセットして保存をクリックします。

 

プロセスビルダーの有効化をクリックします。

 

バージョン有効化の確認メッセージが出ますが、Confirmを押して有効化します。

 

作成したフローを確認してみましょう

開発環境に登録されていたこちらのサンプルレコードを取引開始してみます。

 

次の画面では特に変更する必要はないので、そのまま取引の開始をクリックします。

取引開始後の商談を開いて、リードソースを変更してみましょう。

 

取引開始済みのリードの詳細画面を確認すると、商談で選択したOtherに変わっていました。

※取引開始済みのリードの詳細画面を開くには「取引開始済みのリードの表示および編集」権限が付与されている必要があります。その場合は「取引開始済みのリード情報が関連するリード」のレポートタイプでレポートを作成すると確認することができます。

 

取引開始後のリードに限ってご留意いただきたいこと

このプロセスビルダーを実行してちょっと気になったのが、取引開始後のリードは通常は編集できないようになっていること。なので正式には推奨されないんじゃないかと思います。気になったきっかけは、このプロセスビルダーを有効化した状態でData Loaderを使用して商談を一括更新してやろうとしたら、エラーではじかれました。

つまり、Data Loaderだと今回作成したフローを使ったプロセスビルダーは動きません。1件1件保存しなおす方法なら動くけど、一括更新は許してくれない。

…なぜなのかは謎ですが、おそらく取引開始後のリードを触らせたくないというSalesforceの意図かなと今のところ思っています。また何かわかったら、追記させていただきます。

けれど、リード更新に限らず、カスタムオブジェクトなどいろんなところで応用の聞くフローですので、ぜひ活用してください。

PAGE TOP