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

商談へのテリトリーの割り当て

学習の目的

この単元を完了すると、次のことができるようになります。
  • 手動で商談にテリトリーを割り当てる方法を説明する。
  • 検索条件に基づく商談テリトリー割り当てが、どのように機能するのかを説明する。
  • 検索条件に基づく商談テリトリー割り当てを設定、リリース、実行する方法を説明する。
  • 検索条件に基づくテリトリー割り当てから商談を手動で除外する方法を説明する。

はじめに

Ursa Major の Salesforce システム管理者である Maria Jimenez は、営業チームの Lance Park と連携して、エンタープライズテリトリー管理機能の設定に取り組んでいます。エンタープライズテリトリー管理では、どの営業担当がどの取引先や商談に割り当てられているのかを簡単に追跡し、効率的にリソースを割り振ることができます。

Ursa Major の取引先のテリトリー管理に必要なものはほぼすべて揃っているので、Maria はテリトリーと商談の関連付けという次の段階に進むことができます。

Maria はまず最初に Salesforce ヘルプで商談へのテリトリーの手動割り当てについて調べました。簡単にできそうです。では Maria が調べた内容を見てみましょう。

始める前に

必ず前のモジュールを完了してください。ここでの作業は、前のモジュールでの概念や作業に基づいて行います。

このモジュールの手順を試す準備ができたら、ハンズオン Challenge までスクロールダウンし、[起動] をクリックして Trailhead Playground を開きます。また、ハンズオン Challenge を実行するときにも Playground を使用します。

商談へのテリトリーの手動割り当て

商談レコードで商談にテリトリーを手動で割り当てることができます。これを行った場合、テリトリーモデルの階層でそのテリトリーより上位のテリトリーに割り当てられているすべてのユーザにその商談が共有されます。商談の取引先に割り当てられたテリトリーを割り当てることをお勧めしますが、取引先へのフルアクセス権がある場合は、有効なテリトリーモデルの任意のテリトリーを割り当てることができます。

Maria は Northern California テリトリーを Dickenson Mobile Generators という商談に割り当てたいと考えていますが、その前にまず重要なことがあります。商談ページレイアウトに [テリトリー] 項目を追加する必要があります。その手順は次のとおりです。
  1. [設定] から、[オブジェクトマネージャ] タブをクリックして、[商談] を選択します。
  2. [ページレイアウト] を選択して、[Opportunity (Marketing) Layout (商談 (マーケティング) レイアウト)] を選択します。
  3. 上部ペインで、[テリトリー] 項目を [商談の詳細] の [商談情報] 領域にドラッグします。
  4. このときに「テリトリー割り当て検索条件ロジックから除外」という項目も [商談の詳細] 領域にドラッグします。このチェックボックスは、後で検索条件に基づく商談テリトリー割り当てを行うときに使用します。
  5. [保存] をクリックします。
  6. Maria は次に商談のテリトリーを定義します。アプリケーションランチャーから、[商談] を見つけて選択して、Dickenson Mobile Generators という商談を開きます。(Trailhead Playground で作業している場合、最初にすべての商談が表示されるようにリストビューを変更する必要があります)。
  7. [編集] をクリックし、[テリトリー] 項目で選択リストから [Northan California (北カルフォルニア)] を選択します。
  8. [保存] をクリックします。

    Northern California テリトリーが割り当てられた Dickenson Mobile Generators 商談

これで、Northern California テリトリーが Dickenson Mobile Generators という商談に割り当てられました。ここまでは問題ありません。ただし Lance は、Maria がプロセスを自動化してテリトリーを同時に多数の商談に割り当てることができないだろうかと考えています。できます! そこで役に立つのが、検索条件に基づく商談テリトリー割り当てです。

検索条件に基づく商談テリトリー割り当てのしくみ

検索条件に基づく商談テリトリー割り当てでは、ジョブを使用して商談にテリトリーを割り当てることができます。そのまま使用したり、必要に応じてガイドラインに、基づいて変更したりできる、Apex クラスのコードが用意されています。
ヒント

ヒント

コードは『Apex 開発者ガイド』に記載されています。「リソース」セクションにそのリンクがあります。Apex クラスに独自のコードを使用する場合は、OpportunityTerritory2AssignmentFilter インターフェースを実装する必要があります。

クラスを作成してリリースしたら、割り当てプロセスを完了するジョブを実行します。ジョブのオプションには、日付範囲内の割り当て、および進行中の商談のみへのテリトリーの割り当てが含まれます。商談が作成されるたびにジョブを実行するように設定できます。

これで、Maria の準備が整いました。

検索条件に基づく商談テリトリー割り当ての Apex クラスの定義

Maria は次の手順を実行して、Apex クラスのサンプルコードを使用します。
  1. [設定] から、[クイック検索] ボックスに「Apex クラス」と入力し、[Apex クラス] を選択して、[新規] をクリックします。

    [設定] の [Apex Class Edit (Apex クラスの編集)] ページ

  2. [Apex Class (Apex クラス)] タブのテキスト項目に、サンプルコードを貼り付けます。Maria は『Apex 開発者ガイド』からコードをコピーしました。Trailhead Playground で作業している場合、この手順は実行できませんが、各自の組織では実行できます。独自の Apex コードを使用する場合は、次のタスクで使用できるようクラス名をメモしてください。
  3. [保存] をクリックします。
Maria は次に検索条件に基づく商談テリトリー割り当てを有効化します。

検索条件に基づく商談テリトリー割り当ての有効化

Maria は次の手順を実行して、検索条件に基づく商談テリトリー割り当てます。
  1. [設定] から、[クイック検索] ボックスに「テリトリー」と入力し、[テリトリーの設定] を選択します。
  2. 検索条件に基づく商談テリトリー割り当てを有効化するチェックボックスをオンにします。
  3. クラスには「OppTerrAssignDefaultLogicFilter」と入力します。(Trailhead Playground で作業している場合、この手順は実行できませんが、各自の組織では実行できます)。
  4. Maria は、検索条件に基づく商談テリトリー割り当てを商談の作成時に実行したいので、そのオプションを選択します。
  5. [保存] をクリックします。

    検索条件に基づく商談テリトリー割り当てが有効化された、テリトリーの設定ページ

Maria の作業はもう少しで完了します。次は、テリトリー優先度値の割り当てです。

テリトリー優先度値の決定と手動割り当て

サンプル Apex コードでは、テリトリー種別の優先度値を使用して、テリトリーを商談に割り当てます。サンプル Apex コードを使用する、または優先度値を使用する独自のクラスを作成する場合は、拡張可能な優先度値スキームを決めます。優先度の割り当てを行うユーザに、決定したスキームを伝えることが重要です。

Territory2Type オブジェクトの [優先度] 項目で受け入れられるのは数値のみです。サンプル Apex コード (OppTerrAssignDefaultLogicFilter クラス用) を使用する場合は、数値が大きいほど優先度が高くなります。

Territory2Type オブジェクトの [優先度] 項目を更新して、API を使用してテリトリー種別の優先度を割り当てることができます。または、テリトリー種別レコードの個々のテリトリー種別に優先度を手動で割り当てることができます。

テリトリー種別の最も高い優先度を 500、その下を 400、300 などとし、後から必要に応じてそれらの間に値 (350 や 475 など) を入力できるようにします。

Maria は Ursa Major の Named Accounts (指定取引先) というテリトリー種別に高い優先度を設定し、さらに調整の余地を残しておきたいと考えています。次の手順を実行して、400 という優先度を手動で割り当てます。
  1. Named Accounts (指定取引先) というテリトリー種別を開きます。
  2. [編集] をクリックします。
  3. [優先度] 項目に「400」と入力します。
  4. [保存] をクリックします。

    [優先度] 値が 400 に編集された Named Accounts (指定取引先) テリトリー種別

これで、Named Accounts (指定取引先) というテリトリー種別の [優先度] 値が 400 になりました。テリトリー割り当てを行う検索条件を実行する準備はほぼ整いましたが、Maria は Burlington Textiles Weaving Plant Generator という商談をテリトリーに割り当てたくありません。どうしたらよいでしょうか? 調べてみましょう。

検索条件に基づくテリトリー割り当てから商談の手動による除外

API を使用するか、商談レコードを手動で操作して、検索条件に基づくテリトリー割り当てから特定の商談を除外することができます。そのためには、商談ページレイアウトにチェックボックスが必要です。Maria が商談ページレイアウトに「テリトリー割り当て検索条件ロジックから除外」という項目を追加したのは、このためです。Maria は次の手順を実行して、テリトリー割り当てから Burlington Textiles Weaving Plant Generator を除外します。(Trailhead Playground で作業している場合、この手順を実行できませんが、必要であれば各自の組織で商談を除外できます)。
  1. Burlington Textiles Weaving Plant Generator という商談を開きます。
  2. [編集] をクリックし、[テリトリー割り当て検索条件ロジックから除外] を選択します。(Trailhead Playground で作業している場合、Maria の商談詳細は表示されません)。

    [テリトリー割り当て検索条件ロジックから除外] がオンになっている商談の編集ページ

  3. [保存] をクリックします。

商談テリトリー割り当て検索条件の実行

商談テリトリー割り当て検索条件では、Apex クラスの検索条件ロジックに基づいてテリトリーが商談に割り当てられます。

Maria は検索条件を設定し、商談を 1 つ除外しました。次は割り当てを行います。Maria は次の手順を実行して、進行中の商談のみを対象に検索条件を実行します。
  1. [設定] から、[クイック検索] ボックスに「テリトリーモデル」と入力し、[テリトリーモデル] を選択します。
  2. Northern California (北カリフォルニア) テリトリーモデルの階層を表示します。
  3. [商談検索条件の実行] をクリックします。(Trailhead Playground で作業している場合はこのタスクを完了できませんが、各自の組織では完了できます)。
  4. [進行中の商談のみを含む] を選択します。

    進行中の商談のみを対象に実行する準備が整った商談テリトリー検索条件

  5. [商談検索条件の実行] をクリックします。
ジョブが完了すると、メールで通知されます。これで、Maria が除外した Burlington Textiles Weaving Plant Generator を除いて、検索条件パラメータで指定したすべての商談にテリトリーが割り当てられました。とても簡単にできましたね。

次は、ここまで学んだことをあなたが復習する番です。次の Challenge を始める前に、まだであれば前のモジュールを完了してください。