進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

プロセス条件へのワークフロー条件の対応付け

学習の目的

この単元を完了すると、次のことができるようになります。
  • ワークフロールールの条件のコンポーネントをプロセス条件に変換する方法を説明する。
  • 複数のワークフロールールを 1 つのプロセスに組み合わせる。
  • ワークフロー条件をプロセス条件に変換する計画を立てる。
重要

重要

このモジュールで説明する例には、Trailhead Playground に存在しないカスタム項目とメールテンプレートが含まれています。このモジュールでは、ワークフロールールの移行の概念とベストプラクティスに重点が置かれているため、それらの項目やテンプレートを作成する方法については説明しません。概念を理解するために内容を一読することをお勧めしますが、Playground で演習ステップを実行しようとはしないでください。概念についての知識を適用して、各単元の終わりにある Challenge を実行します。安心してください。Challenge を実行するためにカスタム項目やメールテンプレートを作成する必要はありません。

状況の把握

ワークフロールールを分析して、プロセスに対応付ける方法を見出し始める前に、状況をよく理解しましょう。

ワークフロールールの構造

最初に、ワークフロールールの条件の構造について説明します。(アクションについては後述します)。その途中で、その一部がどのようにプロセスビルダーの広い世界に変換されるかを確認します。

ワークフロールール詳細ページ ルール名 (1): 命名規則が順守されていれば、ワークフロールールの名前は条件ノードの名前として適切です。
ヒント

ヒント

プロセスビルダーでは、アクションが視覚的に表示されます。そこで、条件ノードの名前については、条件のみを要約することをお勧めします。ただし、組織に命名規則がすでにある場合は、それに従ってください。一貫性は大切です。

オブジェクト (2): オブジェクトはプロセスでは常に同一です。対応するワークフロールールでも同一でした。評価条件 (3): 評価条件は少し複雑です。少しだけです。復習になりますが、ワークフロールールの評価条件オプションは次のとおりです。
  • 作成されたとき
  • 作成または編集されたとき
  • 作成されたとき、またはその後の基準を満たすように編集されたとき
プロセスビルダーでの違いは? 最初の 2 つのオプションは、オブジェクトを選択するときに使用でき、プロセスの開始タイミングを指定します。3 番目のオプションは、各条件ノードでの高度な設定になります。
ワークフローの評価条件 プロセスビルダーの値
オブジェクトノード: プロセスを開始 条件ノード: 詳細オプション
作成されたとき レコードを作成したときのみ N/A
作成または編集されたとき レコードを作成または編集したとき 選択されていない
作成されたとき、またはその後の基準を満たすように編集されたとき レコードを作成または編集したとき オン
ルール条件 (4): ルール条件は、ワークフロールールからプロセスに、厳密または完全に対応付けられます。ワークフローと同じように、プロセスビルダーでは絞り込み条件を設定するか、数式を使用することができます。

1 つのプロセスによるすべての管理

ワークフロールールは常に非決定的です。一般的な言葉で言い換えると、Salesforce では、ワークフロールールが評価される順序を保証できません。ワークフロールールを正しい順序で評価するには、創造力を働かせる必要があります。お客様の中には、ある項目を追加して、どのワークフロールールの番であるかを追跡する方もいます。これではいけません。大変な作業のように思えませんか?

プロセスビルダーでは、このような応急措置がまとめられて「不要」というボックスに放り込まれます。1 つのプロセスですべてを自動化している限り、順序が明示的に設定されます。最初の条件ノードは最初に評価され、2 番目の条件ノードは 2 番目に評価されるということになります。条件ノードの順序を正しく決めることは非常に重要なのです。順序付けについては、この後の単元で詳しく説明します。ご安心ください。条件ノードの順序は変更できます。

特定のオブジェクトに複数のプロセスを作成すると、ワークフロールールで発生したものと同じ問題が発生する危険性があります。Salesforce では、どのプロセスが先に評価されるかを保証できません。可能な限り、1 つのプロセスですべてを自動化することをお勧めします。1 つのマスタプロセスへの道を平坦にする、プロセスビルダーの機能をいくつか紹介します。

ISNEW(): 一部の自動化は、作成されたレコードにのみ適用されます。残りの自動化は、作成されたレコードおよび編集されたレコードに適用されます。そのすべてを 1 つのプロセスに組み合わせることなど、どうしたらできるのでしょうか? そこで、評価するレコードが作成されたばかりであるかどうかを判断する数式関数 ISNEW() のご紹介です。作成専用のワークフロールールをプロセスに追加して、レコードが作成されたか編集されたときに開始するには、関連ルールの条件を数式に変換します。次に、&& ISNEW() を数式に追加してください。呼び出し可能なプロセス: フローをプロセスから起動できるのと同じように、その他のプロセスを呼び出すことができます。基本的に、呼び出し可能なプロセスはモジュール形式のプロセスであり、別のプロセスから開始するように指示されたときに限って開始されます。呼び出し可能なプロセスは、あなたとその他のシステム管理者が落ち着いていられるようにする、組織的なツールとお考えください。呼び出し可能なプロセスが役立つ状況の例をいくつか挙げます。
  • 部分一致条件ノード: たとえば、その他の条件に加えていくつかの条件ノードが、取引先が重要であるかどうかを評価するとします。あなたは、呼び出し可能なプロセスを構築してこれらすべての条件ノードを処理し、共通条件は使用しません。最上位プロセスで、取引先が重要である場合に、「主要取引先」プロセスを呼び出します。
  • 複数のアクショングループ間で共通のアクション: たとえば、さまざまな状況になり得るケースの状況について、プロセスで取引先所有者に通知するとします。条件ノードごとに同じアクションを構築する代わりに、呼び出し可能なプロセスでそのアクションを 1 回だけ構築します。そうすることで、メンテナンスコストも削減されます。

プロセス条件へのワークフロー条件の対応付け

ここで、この情報をすべて考慮して、ワークフロールールの条件の移行計画を策定しましょう。

プロセス名の決定

プロセスの範囲は、複数のワークフロールールに相当するものに及ぶため、古いルール名ではわかりにくくなってしまいます。ケースワークフロールールすべてを 1 つのプロセスに組み合わせるため、「ケース管理」と呼ぶことにします。

オブジェクトとルール条件の対応付け

オブジェクトとルール条件は正確に対応付けられます。

評価条件の対応付け

ワークフロールールの評価条件とルール名をプロセス条件に変換する方法について説明します。名前は、条件とアクションではなく条件を要約しています。レコードが作成されたとき、またはその後の基準を満たすように編集されたときに評価されるワークフロールールを変換するには、条件ノードの詳細オプションを選択済みとしてマークします。

ワークフロールール プロセスビルダー
ルール名 評価条件 オブジェクトノード: プロセスを開始するタイミング 条件ノード: 条件名 条件ノード: 詳細オプション
件名または説明のキーワードに基づいてエスカレーション 作成されたとき、またはその後の基準を満たすように編集されたとき レコードを作成または編集したとき エスカレーションキーワード オン
プラチナ契約のケースクローズ時のフォローアップ 作成されたとき、またはその後の基準を満たすように編集されたとき レコードを作成または編集したとき プラチナ契約のケースクローズ オン
営業統括責任者への重要取引先のケースに関する通知 作成されたとき レコードを作成したときのみ 主要取引先 N/A
ベーシックサポートの解決日の設定 作成されたとき レコードを作成したときのみ ベーシックサポート N/A
プレミアムサポートの解決日の設定 作成されたとき レコードを作成したときのみ プレミアムサポート N/A
標準サポートの解決日の設定 作成されたとき レコードを作成したときのみ 標準サポート N/A

条件ノードの評価条件はさまざまです。4 つは、レコードが作成されたときに限って適用可能であり、2 つは、レコードが作成されたか編集されたときに適用可能です。すべてを 1 つのプロセスに組み合わせるには、ISNEW() 関数を使用します。

作成されたレコードにのみ適用される条件ノードごとに、次のことを行います。
  1. 絞り込み条件を数式に変換します。
  2. ISNEW() 関数を数式に追加します。
  3. 詳細オプションを「未選択」にマークします。

このように変更すると、すべてのワークフロールールの条件ノードは、1 つのプロセスに適合します。やりました!

プロセス「ケース管理」
オブジェクトノード 条件ノード
条件名 アクションの実行条件 条件ノード: 詳細オプション
オブジェクト: ケース、プロセスを開始: レコードを作成または編集したとき
エスカレーションキーワード
Contains(LOWER( Subject ),"urgent") ||
Contains(LOWER( Subject ),"password") ||
Contains(LOWER( Subject ),"down") ||
Contains(LOWER( Subject ),"emergency") ||
Contains(LOWER( Subject ),"internal server error") ||
Contains(LOWER( Description ),"urgent") ||
Contains(LOWER( Description ),"password") ||
Contains(LOWER( Description ),"down") ||
Contains(LOWER( Description ),"emergency") ||
Contains(LOWER( Description ),"internal server error")
オン
プラチナ契約のケースクローズ
  • (ケース: 優先度 次の文字列と一致する 高) および
  • (ケース: クローズ 次の文字列と一致する True) および
  • (ケース: 契約種別 次の文字列と一致する プラチナ)
オン
主要取引先
(Account: Top Account equals true) && ISNEW()
N/A
ベーシックサポート
(Case: Support Plan equals Basic) && ISNEW()
N/A
プレミアムサポート
(Case: Support Plan equals Premium) && ISNEW()
N/A
標準サポート
(Case: Support Plan equals Standard) && ISNEW()
N/A

呼び出し可能なプロセスの候補

ここで、呼び出し可能なプロセスに条件ノードを組み合わせることができるかどうかを検討しましょう。

呼び出し可能なプロセスの主な使用事例の 1 つは、複数の条件ノードが条件を共有しているときです。追加した ISNEW() 関数は、共有条件とみなされます。すべての「作成専用」条件ノードを呼び出し可能なプロセスに組み合わせましょう。

共有条件 (ISNEW()) は、最上位プロセスの条件ノードによって評価されます。そのため、前に戻って、これらの条件ノードに絞り込み条件を使用します。

すべてをまとめる: 最終的な条件の計画

呼び出し可能なプロセスのオブジェクトと条件の設定は次のとおりです。呼び出し可能なプロセスでは、オブジェクトノードに [呼び出し可能なプロセス] 項目が含まれず、条件ノードに高度な設定が含まれないため、その情報を追跡する必要はありません。

呼び出し可能なプロセス「新規ケース」
オブジェクトノード 条件ノード
条件名 アクションの実行条件
オブジェクト: ケース 主要取引先 取引先: 主要取引先が true
ベーシックサポート サポートプランがベーシック
プレミアムサポート サポートプランがプレミアム
標準サポート サポートプランが標準

最上位プロセスの計画をもう一度更新します。呼び出し可能なプロセスに移動した、4 つの条件ノードを 1 つの条件ノード (新規ケース) で置き換えます。新しい条件ノードでは数式 (ISNEW()) を使用して、レコードが作成されたばかりかどうかを確認します。

プロセス「ケース管理」
オブジェクトノード 条件ノード
条件名 アクションの実行条件 条件ノード: 詳細オプション
オブジェクト: ケース、プロセスを開始: レコードを作成または編集したとき
エスカレーションキーワード
Contains(LOWER( Subject ),"urgent") ||
Contains(LOWER( Subject ),"password") ||
Contains(LOWER( Subject ),"down") ||
Contains(LOWER( Subject ),"emergency") ||
Contains(LOWER( Subject ),"internal server error") ||
Contains(LOWER( Description ),"urgent") ||
Contains(LOWER( Description ),"password") ||
Contains(LOWER( Description ),"down") ||
Contains(LOWER( Description ),"emergency") ||
Contains(LOWER( Description ),"internal server error")
オン
プラチナ契約のケースクローズ
  • (ケース: 優先度 次の文字列と一致する 高) および
  • (ケース: クローズ 次の文字列と一致する True) および
  • (ケース: 契約種別 次の文字列と一致する プラチナ)
オン
新規ケース
&& ISNEW()
選択されていない

これで条件の計画は完了です。

プロセスの条件の実装

それでは、計画を実行に移しましょう。一部の条件ノードを切り離して呼び出し可能なプロセスにしたため、実際には 2 つのプロセスを作成しています。計画には、各プロセスの作成に必要な情報、およびオブジェクトノードと条件ノードの設定に必要な情報がすべて含まれています。

最上位プロセスを先に作成することも、呼び出し可能なプロセスを先に作成することもできます。条件を設定するとき、順序は問題になりません。どちらを選んでもよいのですが、ここでは呼び出し可能なプロセスを先に作成します。

呼び出し可能なプロセスの条件

呼び出し可能なプロセス「新規ケース」
オブジェクトノード 条件ノード
条件名 アクションの実行条件
オブジェクト: ケース 主要取引先 取引先: 主要取引先が true
ベーシックサポート サポートプランがベーシック
プレミアムサポート サポートプランがプレミアム
標準サポート サポートプランが標準
  1. [設定] から、[クイック検索] ボックスに「ビルダー」と入力し、[プロセスビルダー] をクリックして [新規] をクリックします。
  2. プロセスのプロパティを設定します。
    • 名前: 新規ケース
    • 説明: 作成時のすべてのケースの自動化
    • プロセスを開始するタイミング: 別のプロセスから呼び出されたとき
  3. オブジェクトノードを設定します。
    1. [オブジェクトを追加] をクリックします。
    2. [ケース] を選択し、オブジェクトノードを保存します。
  4. [条件を追加] をクリックし、主要取引先の条件ノードを設定します。
    1. 条件に「Top Account」 (主要取引先) という名前を付けます。
    2. 項目に、関連付けられた取引先から主要取引先を選択します。
      1. [項目を検索...] をクリックします。
      2. [取引先 ID >] をクリックし、関連付けられた取引先の項目から取引先 ID を選択します。
      3. 「Top」と入力して [Top Account (主要取引先)] を選択し、[選択] をクリックします。[主要取引先] 項目の選択
    3. [値] に [True] を選択します。
      主要取引先の条件の最終設定
    4. 条件ノードを保存します。
  5. [条件を追加] をクリックし、ベーシックサポートの条件ノードを設定します。
    1. 条件に「Basic Support」 (ベーシックサポート) という名前を付けます。
    2. [項目] で [サポートプラン] を選択します。
      1. [項目を検索] をクリックします。
      2. 「Support」と入力して [Support Plan (サポートプラン)] を選択し、[選択] をクリックします。プロセスビルダーの項目ピッカーで [サポートプラン] を選択
    3. [値] に [ベーシック] を選択します。ベーシックサポートの条件の最終設定
    4. 条件ノードを保存します。
  6. [条件を追加] をクリックし、プレミアムサポートの条件ノードを設定します。ベーシックサポートに行ったことと同じことを実行しますが、条件ノードの名前は「Premium Support」 (プレミアムサポート) にして、絞り込み条件の値に [プレミアム] を選択します。
  7. [条件を追加] をクリックし、標準サポートの条件ノードを設定します。ベーシックサポートに行ったことと同じことを実行しますが、条件ノードの名前は「Standard Support」 (標準サポート) にして、絞り込み条件の値に [標準] を選択します。
呼び出し可能なプロセスのすべての条件ノード

これで完了です。呼び出し可能なプロセスのすべての条件ノードを設定しました。最上位プロセスに移りましょう。

最上位プロセスの条件

プロセス「ケース管理」
オブジェクトノード 条件ノード
条件名 アクションの実行条件 条件ノード: 詳細オプション
オブジェクト: ケース、プロセスを開始: レコードを作成または編集したとき
エスカレーションキーワード
Contains(LOWER( Subject ),"urgent") ||
Contains(LOWER( Subject ),"password") ||
Contains(LOWER( Subject ),"down") ||
Contains(LOWER( Subject ),"emergency") ||
Contains(LOWER( Subject ),"internal server error") ||
Contains(LOWER( Description ),"urgent") ||
Contains(LOWER( Description ),"password") ||
Contains(LOWER( Description ),"down") ||
Contains(LOWER( Description ),"emergency") ||
Contains(LOWER( Description ),"internal server error")
オン
プラチナ契約のケースクローズ
  • (ケース: 優先度 次の文字列と一致する 高) および
  • (ケース: クローズ 次の文字列と一致する True) および
  • (ケース: 契約種別 次の文字列と一致する プラチナ)
オン
新規ケース
&& ISNEW()
選択されていない
  1. ボタンバーの [すべてのプロセスを表示] をクリックし、プロセス管理ページに戻ります。
  2. [新規] をクリックして、プロセスのプロパティを設定します。
    • 名前: ケース管理
    • 説明: すべてのケースの自動化
    • プロセスを開始するタイミング: レコードが変更されたとき
  3. オブジェクトノードを設定します。
    1. [オブジェクトを追加] をクリックします。
    2. [ケース][レコードを作成または編集したとき] を選択します。
    3. オブジェクトノードを保存します。
  4. [条件を追加] をクリックし、エスカレーションキーワードの条件ノードを設定します。
    1. 条件に「Escalation Keywords」 (エスカレーションキーワード) という名前を付けます。
    2. [数式の評価が true になる] を選択します。
    3. 数式を計画からコピーして、数式エディタに貼り付けます。
    4. プロセスビルダーの構文を使用するように、数式の項目を更新します。項目ピッカーを使用し、数式全体の件名と説明の正しい構文を挿入します。
      関数と演算子の構文はプロセスビルダーでも変わりませんが、項目名の構文は異なります。
      エスカレーションキーワードの最終的な数式
    5. 条件ノードの最下位で [>詳細] を展開し、[はい] を選択します。
    6. 条件ノードを保存します。
  5. [条件を追加] をクリックし、プラチナ契約のケースクローズの条件ノードを設定します。
    1. 条件に「Platinum Contract Case Closes」 (プラチナ契約のケースクローズ) という名前を付けます。
    2. 2 行追加し、3 つの絞り込み条件を設定できるようにします。
    3. 行ごとに項目と値 (優先度、クローズ、契約種別) を選択します。
    4. 行ごとに値を設定し、優先度を高、クローズを True、契約種別をプラチナに設定します。プラチナ契約のケースクローズ条件の最終設定
    5. 条件ノードの最下位で [>詳細] を展開し、[はい] を選択します。
    6. 条件ノードを保存します。
  6. [条件を追加] をクリックし、新規ケースの条件ノードを設定します。
    1. 条件に「New Case」 (新規ケース) という名前を付けます。
    2. [数式の評価が true になる] を選択します。
    3. 数式エディタに「ISNEW()」と入力します。
    4. 詳細オプションは未選択にし、条件ノードを保存します。
最上位プロセスのすべての条件ノード

これで、すべての条件ノードが完了しました。次に、ワークフロールールのアクションをプロセスアクションに変換しましょう。