Salesforce パッケージとレコード変数の使用例

Salesforce オブジェクトにクエリを実行し、CSV ファイルにデータを書き込む Bot をビルドします。また、Bot はレコード変数を使用して、Salesforce から取得した個々のレコードからデータを取得します。

前提条件

  • まだ接続アプリがない場合は、Salesforce で接続アプリを設定します。
  • この BotControl Room OAuth 接続方法を使用します。Bot のビルドを始める前に、Control Room OAuth 接続を作成します。詳細については、「Salesforce の認証アクション」を参照してください。
  • Salesforce にサンプルのオポチュニティとアカウント データを設定します。サンプルデータがない場合は、次の CSV ファイルから Salesforce にデータをインポートできます。
Acme Solutions Pvt Ltd の営業チームが、見込みステータスにあるすべてのオポチュニティ レコードを取得してから、フォローアップする営業担当者に割り当てるプロセスを自動化することに決めたとします。チームは、次のタスクを実行する Bot をビルドします。
  • Salesforce のオポチュニティ オブジェクトから、見込みステータスであるすべてのオポチュニティを取得します。
  • 各オポチュニティ レコードから取得したアカウント ID を使用して、アカウント オブジェクトからアカウント名を取得します。
  • レコードを使用して、個々のオポチュニティ レコードからデータを取得します。
  • レコードを CSV ファイルに書き込みます。このファイルをさらに処理して、営業担当者を割り当てられます。
サンプルの Bot は、Salesforce、レコード、ループデータ テーブル パッケージをレコード変数とともに使用して、次のオートメーション タスクの実行方法を示しています。
  • Salesforce の [SOQL を実行] アクションを使用して、Salesforce オブジェクトにクエリを実行する。
  • Salesforce の [レコードを取得] アクションを使用して、Salesforce オブジェクトから個々のレコードを取得する。
  • レコード変数を更新し、レコード変数をリセットする。
  • データ テーブル変数にレコードを挿入する。
  • データ テーブルを CSV ファイルに書き込む。

手順

  1. Bot を作成します。
    1. 左側のペインで [オートメーション] をクリックします。使用可能な Bot とフォームのリストが表示されます。
    2. [新規作成] > [タスク Bot] をクリックします。
    3. [名前] に、Get Sales Opportunities と入力します。
    4. [作成と編集] をクリックします。
  2. Salesforce で認証します。このチュートリアルでは、[認証タイプ] として [Control Room OAuth 接続] を使用します。OAuth 接続の設定方法は、このチュートリアルでは説明いたしません。OAuth 接続の設定に慣れていない場合は、この「ページ」に記載されている手順に従ってください。また、[認証タイプ] として [OAuth 2 - クライアント資格情報] を使用し、Salesforce 認証アクション内でクライアント ID、クライアント シークレット、Salesforce のユーザー名とパスワードを指定できます。
    1. [アクション] パネルから、[Salesforce] > [認証] アクションを見つけて Bot エディターに追加します。
    2. [認証タイプ] で、[Control Room OAuth 接続] を選択します。
    3. [選択] をクリックし、次の詳細で設定した OAuth 接続を選択します。
      • プロバイダー タイプ: Salesforce
      • 接続名: 設定した接続。
      • トークン タイプ: 共有
    4. [API バージョン] に、Salesforce 接続アプリの API のバージョン番号を入力します。たとえば、50.0 です。
    5. [セッション名] は Default のままにします。
    6. [マップされた変数] で、[変数マッピングを追加] をクリックし、キー IntanceUrlInstanceUrl という名前の文字列変数にマッピングします。
  3. 他のタスクを実行する前に認証エラーをチェックするには、[試行/キャッチ] アクションを使用します。
    1. [アクション] パネルから、[エラー ハンドラー] > [試行] アクションを見つけて Bot エディターに追加します。
    2. [キャッチ ブロック] アイコンをクリックします。
    3. [例外] で、[エラー ハンドラー] を選択します。
    4. [次に例外メッセージを代入します] で、[(x)] をクリックし、ErrorMessage という名前の文字列変数を作成します。
    5. キャッチ ブロック内に [メッセージ ボックス] アクションを追加します。
    6. [表示するメッセージを入力] で、[ErrorMessage] 変数を選択し、変更を保存します。
  4. Salesforce のオポチュニティ オブジェクトにクエリして、見込みステータスのオポチュニティ レコードを取得します。
    1. [アクション] パネルから、[試行] ブロック内で [Salesforce] > [SOQL を実行] アクションを見つけて追加します。
    2. [実行する SOQL クエリ] に次のクエリを入力します。
      SELECT Id, Name, AccountId, Amount, CloseDate, StageName, NextStep FROM Opportunity WHERE StageName = 'Prospecting'
    3. [削除されたレコードを含める] で、[いいえ] をクリックします。
    4. Default が [セッション名] に設定されていることを確認してください。
    5. [結果を変数に保存] で、[(x)] をクリックし、list_records_prospecting という名前のリスト変数を作成します。
    6. 変更を保存します。
  5. 取得したオポチュニティ レコードのリストをループします。
    1. [アクション] パネルから、[試行] ブロック内の [SOQL を実行] アクションの後に [ループ] > [ループ] アクションを見つけて追加します。
    2. [反復子] で、[リストの各項目に対して] を選択します。
    3. [リスト] で、[list_records_prospecting] 変数を選択します。
    4. [現在の値を変数に代入] で、[(x)] をクリックして、[Any] タイプの dict_record_opportunity という名前の変数を作成します。
      次は、ディクショナリとして保存されるレコードの例です。Bot は、名前、アカウント名、量、終了日、ステージ名、次のステップの各フィールドからのみ値を取得し、それ以外のフィールドは除外します。
      {attributes,com.automationanywhere.botcommand.data.impl.DictionaryValue@5d804b9c},{Id,0065j00001Q2ISAAA3},{Name,Opportunity #1},{AccountId,0015j00001BU2hnAAD},{Amount,2000.0},{CloseDate,2023-10-05},{StageName,Prospecting},{NextStep,Call to Discuss}
    5. 変更を保存します。
  6. レコードの各フィールドから値を取得する前に、2 つのレコード変数を作成します。1 つは各オポチュニティ レコードからの値を格納するためのもので、もう 1 つは各反復の終了時に最初のレコード変数をリセットするためのものです。
    1. [変数] パネルで、[変数を作成] をクリックします。
    2. [タイプ] で、[レコード] を選択します。
    3. [名前] に、out_record_prospecting と入力します。
    4. [作成] をクリックします。
    5. ステップ ad を繰り返して、次の詳細を持つ別のレコード変数を作成します。
      タイプ: Record
      名前: record_empty
  7. 現在のレコードのオポチュニティ名でレコード変数を更新します。
    1. [アクション] パネルから、[レコード] > [列を追加] アクションを見つけて、ループ アクション内に追加します。
    2. [送り先のレコード変数] で、[out_record_prospecting] を選択します。
    3. [列タイプ] で [文字列] を選択し、[] で「$dict_record_opportunity{Name}$」と入力します。
    4. [特定のインデックス] をクリックし、「0」と入力します。
    5. [送り先のレコード変数] で、[out_record_prospecting] を選択します。
    6. 変更を保存します。
  8. Salesforce から取得したオポチュニティ レコードには、アカウント ID のみが含まれており、アカウント名は含まれていません。各レコードのアカウント ID を使用してアカウント名を取得します。
    1. [アクション] パネルから、[Salesforce] > [レコードを取得] アクションを見つけて、ループ アクションに追加します。
    2. [オブジェクト名] で、「Account」と入力します。
    3. [レコード ID] を選択し、「$dict_record_opportunity{AccountId}$」と入力します。
    4. [フィールドとデータ] で、[リスト] を選択して [追加] をクリックします。
    5. [タイプ] で、[文字列] を選択します。
    6. [0 の値] に「Name」と入力します。
    7. Default が [Salesforce セッション名] に設定されていることを確認してください。
    8. [マップされた変数] で [変数マッピングを追加] をクリックし、キー Name を文字列変数 AccountName にマッピングします。Get record 呼び出しは、キー「Name」を使用してアカウント名を取得し、AccountName 変数に格納します。
    9. 変更を保存します。
  9. 新しい列を追加し、アカウント名でレコード変数を更新します。
    1. [アクション] パネルから、[レコード] > [列を追加] アクションを見つけて、ループ アクション内に追加します。
    2. [送り先のレコード変数] で、[out_record_prospecting] を選択します。
    3. [列タイプ] で [文字列] を選択し、[] で「$AccountName$」と入力します。
    4. [特定のインデックス] をクリックし、「1」と入力します。
    5. [送り先のレコード変数] で、[out_record_prospecting] を選択します。
    6. 変更を保存します。
  10. 新しい列を追加し、量でレコード変数を更新します。
    1. [アクション] パネルから、[レコード] > [列を追加] アクションを見つけて、ループ アクション内に追加します。
    2. [送り先のレコード変数] で、[out_record_prospecting] を選択します。
    3. [列タイプ] で、[数値] を選択して [] に「$dict_record_opportunity{Amount}$」と入力します。
    4. [特定のインデックス] をクリックし、「2」と入力します。
    5. [送り先のレコード変数] で、[out_record_prospecting] を選択します。
    6. 変更を保存します。
  11. CloseDate、StageName、NextStep を使用して、レコード変数を更新します。
    1. [列を追加] アクションループ アクションに追加し、次の詳細を入力します。
      フィールド
      送り先のレコード変数 out_record_prospecting
      列タイプ String
      $dict_record_opportunity{CloseDate}$
      特定のインデックス 3
    2. [列を追加] アクションループ アクションに追加し、次の詳細を入力します。
      フィールド
      送り先のレコード変数 out_record_prospecting
      列タイプ String
      $dict_record_opportunity{StageName}$
      特定のインデックス 4
    3. [列を追加] アクションループ アクションに追加し、次の詳細を入力します。
      フィールド
      送り先のレコード変数 out_record_prospecting
      列タイプ String
      $dict_record_opportunity{NextStep}$
      特定のインデックス 5
    4. 変更を保存します。
  12. レコードをデータ テーブル変数に挿入します。
    1. 反復を追跡し、行インデックス番号として使用するには、counter という名前の数値変数を作成し、デフォルト値を 0 に設定します。
    2. [アクション] パネルから、[データ テーブル] > [行を挿入] アクションを見つけ、ループ アクション内に追加します。
    3. [データ テーブル名] で、[(x)] をクリックし、table_records という名前のテーブル変数を作成します。
    4. [特定のインデックス] をクリックし、「$counter$」と入力します。
    5. [行レコード名] で、[out_record_prospecting] を選択します。
    6. 変更を保存します。
  13. counter 変数を 1 ずつインクリメントします。
    1. [アクション] パネルから、[数字] > [インクリメント] アクションを見つけ、ループ アクション内に追加します。
    2. [数字を入力] に、「$counter$」と入力します。
    3. [インクリメント値を入力] に「1」と入力します。
    4. [出力を変数に代入] で、[カウンター] を選択します。
    5. 変更を保存します。
  14. 次の反復の前に、out_record_prospecting レコード変数をリセットします。
    1. [アクション] パネルから、[レコード] > [代入] アクションを見つけ、ループ アクション内に追加します。
    2. [送り元のレコード変数を選択] で、[record_empty] を選択します。
    3. [送り元のレコード変数を選択] で、[レコード] をクリックして [out_record_prospecting] を選択します。record_empty 変数には値がないので、out_record_prospecting はリセットされます。
    4. 変更を保存します。
  15. 取得したオポチュニティ レコードを CSV ファイルに書き込みます。
    1. [アクション] パネルから、[データ テーブル] > [ファイルに書き込む] アクションを見つけ、ループ アクションの外に追加します。
    2. [データ テーブル名] で、[table_records] を選択します。
    3. [ファイル名を入力] で、CSV ファイルのパスを指定します。例: C:\bots\opportunities.csv
    4. [フォルダー/ファイルが存在しない場合は作成する] を選択します。
    5. [既存のファイルを上書き] をクリックします。
    6. 変更を保存し、Bot を実行します。