Salesforce のケース ルーティング割り当てを自動化する


このチュートリアルでは、Application Integration を使用して Salesforce の顧客のケースのルーティングと割り当てというビジネス プロセスフローを自動化する方法のユースケースについて説明します。

概要

このチュートリアルでは、Salesforce トリガーを使用して Salesforce のケース チャンネルに登録する統合を作成します。Salesforce の新しいケースで統合が呼び出され、ケース ID とケースタイプが抽出されます。ケースタイプに応じて、新しい問題またはインシデントが Jira Cloud または ServiceNow にそれぞれ作成されます。

Salesforce のケースのフロー図 Salesforce のケースのフロー図

目標

このチュートリアルでは、統合で以下のタスクを行う方法について説明します。

  • 統合を呼び出すように Salesforce トリガーを設定する。
  • Salesforce、Jira Cloud、ServiceNow 接続用のコネクタタスクを追加して構成する。
  • ケースの詳細を抽出してマッピングするためのデータ マッピング タスクを追加して構成する。

費用

このチュートリアルでは、Google Cloud の次の課金対象のコンポーネントを使用します。

このチュートリアルの手順は、リソース使用量が Google Cloud の Always Free 階層の制限内に収まるように設計されています。

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. サービス アカウントを作成します。

    1. Google Cloud コンソールで [サービス アカウントの作成] ページに移動します。

      [サービス アカウントの作成] に移動
    2. プロジェクトを選択します。
    3. [サービス アカウント名] フィールドに名前を入力します。Google Cloud コンソールでは、この名前に基づいて [サービス アカウント ID] フィールドに値が設定されます。

      [サービス アカウントの説明] フィールドに説明を入力します。例: Service account for quickstart

    4. [作成して続行] をクリックします。
    5. サービス アカウントに次のロールを付与します: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      ロールを付与するには、[ロールを選択] リストを見つけてロールを選択します。

      追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。

    6. [続行] をクリックします。
    7. [完了] をクリックして、サービス アカウントの作成を完了します。

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. サービス アカウントを作成します。

    1. Google Cloud コンソールで [サービス アカウントの作成] ページに移動します。

      [サービス アカウントの作成] に移動
    2. プロジェクトを選択します。
    3. [サービス アカウント名] フィールドに名前を入力します。Google Cloud コンソールでは、この名前に基づいて [サービス アカウント ID] フィールドに値が設定されます。

      [サービス アカウントの説明] フィールドに説明を入力します。例: Service account for quickstart

    4. [作成して続行] をクリックします。
    5. サービス アカウントに次のロールを付与します: Secret Manager Viewer (roles/secretmanager.viewer), Secret Manager Secret Accessor (roles/secretmanager).

      ロールを付与するには、[ロールを選択] リストを見つけてロールを選択します。

      追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。

    6. [続行] をクリックします。
    7. [完了] をクリックして、サービス アカウントの作成を完了します。

環境を準備する

Salesforce ユーザーの設定を確認する

このチュートリアルでは、必要なユーザー設定と一連の権限を持つ既存の Salesforce デベロッパー アカウントがあることを前提としています。アカウントで変更データ キャプチャ(CDC)が有効になっていることを確認します。新しいアカウントの作成方法については、統合ユーザーを設定するをご覧ください。

Jira Cloud アカウントを確認する

このチュートリアルでは Jira Cloud を使用します。既存の Jira Cloud アカウントを使用することも、新しいアカウントを作成することも可能です。Jira Cloud のプロジェクトとボードが設定されていることを確認します。Jira Cloud の詳細については、Jira ソフトウェアのドキュメントをご覧ください。

ServiceNow インスタンスを確認する

このチュートリアルでは、ServiceNow の無料の Personal Developer Instance(PDI)を使用します。既存の ServiceNow インスタンスを使用することも、新しいインスタンスを作成することも可能です。インスタンスがアクティブであることを確認し、そのインスタンスの URL をメモします。PDI の詳細については、ServiceNow PDI のドキュメントをご覧ください。

接続を設定

このチュートリアルでは、Integration Connectors で次の接続を構成する必要があります。

Salesforce 接続
Integration Connectors で Salesforce 接続を構成します。Salesforce コネクタの構成については、Salesforce コネクタをご覧ください。
Jira Cloud 接続
プロジェクト URL を使用して Integration Connectors の Jira Cloud 接続を構成し、プロジェクトで Jira の問題を作成します。プロジェクト ID と問題 ID をメモします。Jira Cloud コネクタの構成については、Jira Cloud コネクタをご覧ください。
ServiceNow 接続
インスタンス URL を使用して Integration Connectors の ServiceNow 接続を構成し、ServiceNow でインシデントを作成します。ServiceNow コネクタを構成する方法については、ServiceNow コネクタをご覧ください。

統合を作成する

新しい統合を作成するには、次の手順を行います。

  1. Google Cloud コンソールで [Application Integration] ページに移動します。

    Application Integration に移動

  2. ナビゲーション メニューで [統合] をクリックします。[Integrations List] ページが表示されます。
  3. [ 統合を作成] をクリックし、[統合を作成] ページで次の情報を入力します。
    1. 連携名:salesforce-case-integration」と入力します。
    2. 説明:Demo integration created for tutorial」と入力します。
    3. リージョン: サポートされているリージョンのリストから us-central1 を選択します。
    4. [作成] をクリックして統合エディタを開きます。

統合トリガーを設定する

統合が正常に作成されたら、特定されたイベントの統合を呼び出す統合トリガーを追加して構成できます。

このチュートリアルでは、Salesforce トリガーを使用して、Salesforce で新しいケースが作成されるたびに統合を呼び出します。salesforce-case-integration 統合に Salesforce トリガーを追加して構成するには、次の操作を行います。

  1. 統合エディタで [トリガー] をクリックし、使用可能なトリガーのリストを表示します。
  2. 統合エディタで、[Salesforce トリガー] 要素をクリックして配置します。
  3. デザイナー キャンバスで [Salesforce trigger] 要素を選択して、Salesforce トリガーの構成ペインを開きます。
  4. [トリガー入力] で、次の項目を構成します。
    1. Event type: プルダウン リストから [Change Data Capture (CDC)] を選択します。
    2. Salesforce インスタンス構成: プルダウン リストから [+ 新しい Salesforce インスタンス構成の追加] オプションをクリックします。

      [Add Salesforce instance configuration] ダイアログで、次の操作を行います。

      • Salesforce instance connection name: Salesforce インスタンスの接続名を入力します。例: test
      • Salesforce ドメイン: Salesforce のドメイン名を入力します。この情報は、[Salesforce アカウント] > [プロファイルを表示] ページで確認できます。
      • 認証プロファイル: 認証プロファイルを選択します。認証プロファイルが存在しない場合は、新しいプロファイルを作成します。詳細については、新しい認証プロファイルを作成するをご覧ください。
      • [Add] をクリックします。
    3. Salesforce チャネル構成: プルダウン リストから [+ 新しい Salesforce チャネル構成の追加] をクリックします。

      [Add Salesforce channel] ダイアログで、次の操作を行います。

      • Salesforce object name: 「Case」と入力します。
      • [Add] をクリックします。
    4. オペレーション: プルダウン リストから [作成] を選択します。
    5. プロパティへの変更は自動的に保存されます。

トリガー ペイロードを Salesforce コネクタにマッピングする

Salesforce トリガーを使用して統合を呼び出すと、ケース ID が抽出されて Salesforce コネクタにマッピングされ、ケースの詳細情報がさらに取得されます。

Salesforce アカウントに接続する

次の手順で、Connectors タスクを追加して構成し、Salesforce 接続を使用してケースの詳細を取得します。

  1. 統合エディタで、[タスク] をクリックして、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Connectors] 要素をクリックして配置します。
  3. デザイナーで [Connectors] タスク要素を選択して、[Connectors] タスク構成ペインを表示します。
  4. [] をクリックし、Connectors ラベルの名前を Fetch Salesforce Data に変更します。
  5. [コネクタを設定する] をクリックします。
  6. [Connectors Task Editor] ページで、次の操作を行います。
    1. [Select connection] で、us-central1 リージョンを選択します。
    2. 使用可能な接続のリストから、Salesforce 接続を選択します。
    3. [Next] をクリックします。
    4. [タイプ] で [エンティティ] を選択します。
    5. [Set entities/actions] で使用可能なエンティティのリストから [ケース] を選択し、[オペレーション] として [入手] を選択します。
    6. [完了] をクリックして接続の構成を完了し、ペインを閉じます。

ケース ID を抽出してマッピングする

Data Mapping タスクは、その Salesforce トリガーと Salesforce コネクタの間のケースの詳細をマッピングして抽出するために使用されます。

統合でデータ マッピングを追加して構成するには、次の操作を行います。

  1. 統合エディタで、[タスク] をクリックして、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
  3. デザイナーで [Data Mapping] 要素を選択して、タスク構成ペインを表示します。
  4. [] をクリックし、Data Mapping タスクの名前を Get Case ID に変更します。
  5. [Open Data Mapping Editor] をクリックします。

    データ マッピング エディタを使用すると、使用可能な変換関数を使用して、入力変数を目的の出力変数にマッピングできます。 出力は、他の統合タスクまたはトリガーの変数として使用できます。マッピング変数の詳細については、マッピングを追加するをご覧ください。

  6. トリガーの(SalesforceTriggerCdcRecordID)出力変数を自動生成されたコネクタの(entityId(Fetch Salesforce Data))入力変数にマッピングします。

    マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。

  7. Salesforce トリガーから Get Case ID タスクにエッジ接続を追加します。
  8. Get Case ID タスクから Fetch Salesforce Data コネクタにエッジ接続を追加します。

ケースタイプを抽出する

Salesforce コネクタからすべてのケースの詳細を取得すると、ケースタイプが抽出され、Jira Cloud または ServiceNow アプリケーションにルーティングされます。

Salesforce ケースタイプを抽出する手順は次のとおりです。

  1. 統合エディタで、[タスク] をクリックして、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
  3. デザイナーの [Data Mapping] 要素をクリックして、タスク構成ペインを表示します。
  4. [] をクリックし、Data Mapping タスクの名前を Get case type に変更します。
  5. [Open Data Mapping Editor] をクリックします。
  6. [+ 新しい変数を追加] をクリックして、次の出力変数を作成します。
    出力変数名 データ型
    sf_case_type STRING
  7. Salesforce コネクタのペイロード変数とローカル変数の間で次のマッピングを作成します。
    入力 出力
    
    connectorOutputPayload (Fetch Salesforce Data)
    .GET_PROPERTY("Type")
                
    sf_case_type

    マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。

  8. Fetch Salesforce Data コネクタから Get case type タスクにエッジ接続を追加します。

新しい Jira の問題を作成する

Salesforce のケースタイプを抽出した際にケースのタイプが Engineering である場合は、新しい問題として Jira Cloud に転送します。

Jira プロジェクトに接続する

次の手順で、Jira プロジェクトに新しい問題を作成する Connectors タスクを構成します。

  1. 統合エディタで、[タスク] をクリックして、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Connectors] 要素をクリックして配置します。
  3. デザイナーで [Connectors] タスク要素をクリックして、コネクタタスクの構成ペインを表示します。
  4. [] をクリックして Connectors の名前を Create issue in Jira に変更します。
  5. [コネクタを設定する] をクリックします。
  6. [Connectors Task Editor] ページで、次の操作を行います。
    1. [Select connection] で、us-central1 リージョンを選択します。
    2. 使用可能な接続のリストから Jira Cloud 接続を選択します。
    3. [Next] をクリックします。
    4. [タイプ] で [エンティティ] を選択します。
    5. [Set entities/actions] で使用可能なエンティティのリストから [問題] を選択し、[オペレーション] として [作成] を選択します。
    6. [完了] をクリックして接続の構成を完了し、ペインを閉じます。

問題の詳細を変換してマッピングする

ケースの詳細を変換して Jira の問題にマッピングするには、次の手順を行います。

  1. 統合エディタで、[タスク] をクリックして、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
  3. デザイナーの [Data Mapping] 要素をクリックして、タスク構成ペインを表示します。
  4. [] をクリックし、Data Mapping タスクの名前を Mapping for issue creation に変更します。
  5. [Open Data Mapping Editor] をクリックします。
  6. [+ 新しい変数を追加] をクリックして、次の変数を作成します。
    変数名 データ型 デフォルト値
    jira_project-id STRING
    
    JIRA_PROJECT_ID
    JIRA_PROJECT_ID を Jira プロジェクト ID に置き換えます。
    jira_issue_type_id STRING
    
    JIRA_ISSUE_TYPE_ID
    JIRA_ISSUE_TYPE_ID を次のいずれかの問題タイプ ID に置き換えます。
    • 1000 - Epic の場合
    • 1001 - ストーリーの場合
    • 1002 - タスクの場合
    • 1003 - サブタスクの場合
    • 1004 - バグの場合
  7. 次のマッピングを作成します。
    入力 出力
    
    "{ "IssueTypeId": jira_issue_type_id, "ProjectId": jira_project_id }"
    .TO_JSON()
    .SET_PROPERTY(
    connectorOutputPayload.Description (Fetch Salesforce Data),
    "Description"
    )
    .SET_PROPERTY(
    connectorOutputPayload.Subject (Fetch Salesforce Data),
    "Summary"
    )
                 
    connectorInputPayload (Create issue in Jira)

    マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。

  8. Mapping for issue creation タスクから Create issue in Jira コネクタにエッジ接続を追加します。

新しい ServiceNow インシデントを作成する

Salesforce から抽出されたケースのタイプが Sales の場合、新しいインシデントとして ServiceNow に転送します。

ServiceNow に接続する

ServiceNow インスタンスに新しいインシデントを作成する Connectors タスクを構成するには、次の手順を実施します。

  1. 統合エディタで、[タスク] をクリックして、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Connectors] 要素をクリックして配置します。
  3. デザイナーで [Connectors] タスク要素をクリックして、コネクタタスクの構成ペインを表示します。
  4. [] をクリックして Connectors の名前を Create incident in ServiceNow に変更します。
  5. [コネクタを設定する] をクリックします。
  6. [Connectors Task Editor] ページで、次の操作を行います。
    1. [Select connection] で、us-central1 リージョンを選択します。
    2. 使用可能な接続のリストから、ServiceNow 接続を選択します。
    3. [Next] をクリックします。
    4. [タイプ] で [エンティティ] を選択します。
    5. [Set entities/actions] で使用可能なエンティティのリストから [インシデント] を選択し、[オペレーション] として [作成] を選択します。
    6. [完了] をクリックして接続の構成を完了し、ペインを閉じます。

インシデントの詳細を変換してマッピングする

ケースの詳細を変換して ServiceNow インシデントにマッピングするには、次の操作を行います。

  1. 統合エディタで、[タスク] をクリックして、使用可能なタスクのリストを表示します。
  2. 統合エディタで [Data Mapping] 要素をクリックして配置します。
  3. デザイナーの [Data Mapping] 要素をクリックして、タスク構成ペインを表示します。
  4. [] をクリックし、Data Mapping タスクの名前を Mapping for incident creation に変更します。
  5. [Open Data Mapping Editor] をクリックします。
  6. [+ 新しい変数を追加] をクリックして、次の入力変数を作成します。
  7. 次のマッピングを作成します。
    入力 出力
    
    "{}"
    .TO_JSON()
    .SET_PROPERTY(
    connectorOutputPayload.Description (Fetch Salesforce Data),
    "description"
    )
    .SET_PROPERTY(
    connectorOutputPayload.Subject (Fetch Salesforce Data),
    "short_description"
    )
                 
    connectorInputPayload (Create incident in ServiceNow)

    マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。

  8. Mapping for incident creation タスクから Create incident in ServiceNow コネクタにエッジ接続を追加します。

エッジ条件を追加する

エッジ条件を使用すると、統合を制御するために満たされる必要がある条件を指定して、エッジで接続されたタスクに渡すことができます。必要なタスクを追加して構成したので、エッジ条件を追加して統合のフローを定義できます。

次のエッジ条件は、Salesforce のケースのタイプに基づいて統合のフローを制御します。

  1. 次のエッジ条件で、Get case type タスクから Mapping for issue creation タスクにエッジ接続を追加します。
      $sf_case_type$ = "Engineering"
  2. 次のエッジ条件で、Get case type タスクから Mapping for incident creation タスクに別のエッジ接続を追加します。
      $sf_case_type$ = "Sales"

統合フローのサンプル

次の図は、このチュートリアルを使用して作成した統合のサンプル レイアウトを示しています。

統合フローを示すサンプル画像 統合フローを示すサンプル画像

統合を公開してテストする

統合を公開するには、統合デザイナー ツールバーの [公開] をクリックします。

統合が正常に公開されると、公開された統合の実行ログを表示、検査できます。ログを表示するには、[実行ログのアイコンを示す画像この統合の実行ログを表示] をクリックします。実行ログのページが表示されます。

テストケース 1: エンジニアリング ケースで Jira の問題が作成されているかどうかを確認する

Salesforce インスタンスにログインして新しいケースを作成し、統合をテストします。ケースを作成するときに、[タイプ] フィールドに「Engineering」と入力します。

統合が成功したことを確認するには:

Jira Cloud アカウントに移動します。

  • Salesforce のケースの説明とサマリーを含む新しい問題がプロジェクトに作成されているかどうかを確認します。

テストケース 2: セールスケースに対して ServiceNow インシデントが作成されたかどうかを確認する

Salesforce インスタンスにログインして新しいケースを作成し、統合をテストします。ケースを作成するときに、[タイプ] フィールドに「Sales」と入力します。

統合が成功したことを確認するには:

ServiceNow インスタンスに移動します。

  • インスタンスに新しいインシデントが作成され、Salesforce のケースの説明とサマリーが含まれているかどうかを確認します。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、統合の公開を停止して、Integration Connectors で作成した接続を削除します。

  • この統合の公開を停止するには、統合エディタ ツールバーの [公開を停止] をクリックします。詳細については、統合を削除するをご覧ください。
  • 接続を削除する方法については、コネクタを管理するをご覧ください。