Docly Child

salesforceの情報を表計算アプリに転記する

76 views

 Salesforceの情報を取得

AUTOROでSalesforceの情報をスプレッドシートなどに転記する場合、以下2つの方法が考えられます。

  1. SalesforceQuery(クエリを実行)アクションの結果を使用する
  2. SalesfroceGetReport(レポートを取得)アクションの結果を使用する

1のクエリを実行アクションで取得した情報は、そのままでは表計算アプリに書き込めません(画像左側)

表計算アプリに書き込むためには、JSONを2次元配列に変換アクションで変換してあげる必要があります。本ページではこの一連の流れを解説します。

 ワークフローの設定例

下記手順にてワークフローを設定します。

サンプルとして、salesforceの取引先を3件程度取得します。

  • salesforceQueryアクションを設定します。
  • 以下のクエリを入力します。
  • SELECT Id, Name
    FROM Account
    LIMIT 3
    
  • この時点で一旦ワークフローを実行します。

取得された情報はJSONの配列となっています。

シートに書込み可能な形に変換するため、ConvertJsonToArray(JSONを配列に変換)を使用します。

  • ConvertJsonToArrayを設定します
  • JSONインプットに、クエリを実行するのアウトプットを指定します
  • 「出力する配列のヘッダー」をクリックします
  • 表示されたモーダルで、出力したい項目を出力したい列順でクリックします

整形したsalesforceの情報(CSVと同形式)データを書き込むスプレッドシートを呼び出します。

  • GetSpreadsheetアクションを設定します。
  • プロバイダIDを指定します。
  • 書き込みを行うスプレッドシートIDを呼び出します。
    下記の動画を参考に、Google Drive上から作成したスプレッドシートを選択してください。

整形したsalesforceの情報(CSVと同形式)データを呼び出します。

※ここでは、使用するExcelファイルがAUTOROのローカルストレージに保存されている状態を前提として解説しています。
なお、DropBoxやGoogleDriveに保存されているExcelファイルを扱いたい場合は、以下記事をご参照ください。

  • GetFileアクションを設定します。
    ※AUTORO desktopの場合、この設定は不要です(後述)
  • AUTOROローカルストレージに保存されているExcelファイルを呼び出します。
    ※扱うファイルの拡張子が.xlsの場合は、こちらをご参考にご設定ください。

  • SelectSheetアクションを設定します。
  • 「エクセルファイル名」の欄には、先程取得したファイルのアウトプットを再利用してください。
    ※AUTORO desktopの場合、ローカルファイルパスを直接入力してください。
  • 「ワークシート名」には、書き込むシートの名前を入力します。
    ※書き込むシート名が不明である場合の対処は、こちらをご覧ください。
 

※AUTORO desktopの場合

AUTORO desktopの場合は、GetFileアクションが不要となります。SelectSheetアクションの「エクセルファイル名」に、直接ファイルパスを書き込んでください。

整形したsalesforceの情報(CSVと同形式)データを呼び出します。

※ExcelOnlineとは、OneDriveやSharePoint上のxlsxブック対象アクションを指します。AUTOROのローカルストレージやGoogleDrive上のExcelファイルの操作は前項【Excelを使用する場合】をご覧ください。

  • GetWorkbookアクションを設定します。
  • 「プロバイダーID」にコネクション連携済みのIDを指定します。
  • 任意のExcelOnlineファイルを呼び出します。

スプレッドシートに値を書き込むアクションはUpdateCells(セルの値を更新)/AppendValues(末尾に値を追加)の2つあります。今回はUpdateCellsを利用して書き込みを行います。

  • UpdateCellsアクションを設定します。
  • スプレッドシートパラメータにGetSpreadsheetのアウトプットが設定されているか確認します。
    • 空欄になっている場合にはGetSpreadsheetのアウトプットを紐つけてください。
  • 範囲パラメータには「シート1!A1」を設定します。
    • ※シート名が「シート1」ではない場合は正しいシート名に書き換えてください。
  • 値パラメータにはConvertJsonToArrayのアウトプットを設定します。
 

Excelワークシートに値を書き込むアクションはWriteRange/WriteCellの2つがあります。今回はCSVを扱うため、配列を書き込むアクションであるWriteRangeを利用して書き込みを行います。

  • WriteRangeアクションを設定します。
  • ワークシートパラメータにSelectSheetのアウトプットが設定されているか確認します。空欄になっている場合にはSelectSheetのアウトプットを紐つけてください。
  • 2次元配列パラメータにはReadCSVのアウトプットを設定します。
  • 書き込み位置のセルラベルパラメータには「A1」を設定します。
    ※書き込み開始位置が「A1」ではない場合は適宜書き換えてください。

 

書き込みが終了したらSaveFileアクションでシートを保存します。
「ファイル」のパラメータに紐つけるのは直前のWriteRangeのアウトプットではなく、GetFileのアウトプットであるためご注意ください。
※上書き保存はできません。


ここではAUTOROローカルストレージに保存していますが、他のオンラインストレージに保存したい場合は、ストレージプロバイダに他のオンラインストレージのコネクションをご登録ください。

ExcelOnlineワークブックに値を書き込むアクションはUpdateWorksheetCellsがあります。これを利用して書き込みを行います。

  • UpdateWorksheetCellsアクションを設定します。
  • ワークシートパラメータにGetWorkbookのアウトプットが設定されているか確認します。空欄になっている場合にはGetWorkbookのアウトプットを紐つけてください。
  • 範囲パラメータには「Sheet1!A1」を設定します。
    ※シート名、書き込み範囲は適宜書き換えてください。
  •  値パラメータにはReadCSVのアウトプットを設定します。

取得したい情報がsalesforceのレポートにまとまっていれば、SalesforceGetReportアクションで取得したアウトプット(CSVと同形式)を書き込めばよいだけとなります。

これは2000行以内であれば整形不要で書き込めるため、(ConvertJsonToArray)が不要になります。

2001行以上の場合は、余計なヘッダー等が入るため「テーブルデータ変換」アクションなどで余計な行(3列名が空白、など)を削除してください

必要な情報が吐き出されるように整備したレポートがあると非常に便利です

# クエリを実行する
+salesforce_query_1:
  action>: SalesforceQuery
  provider: ''
  query: "SELECT Id, Name\nFROM Account\nLIMIT 3"
  private: false
  meta:
    display: null

# JSONを配列に変換
+convert_j_s_o_n_to_array_1:
  action>: ConvertJSONToArray
  json: +salesforce_query_1
  header: ["Name","Id"]
  unwind: []
  stringify: []
  private: false

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display:

# セルの値を更新
+update_cells_1:
  action>: UpdateCells
  spreadsheet: +get_spreadsheet_1
  range: 'シート1!A1'
  values: +convert_j_s_o_n_to_array_1
  private: false
# クエリを実行する
+salesforce_query_1:
  action>: SalesforceQuery
  provider: ''
  query: "SELECT Id, Name\nFROM Account\nLIMIT 3"
  private: false
  meta:
    display:

# JSONを配列に変換
+convert_j_s_o_n_to_array_1:
  action>: ConvertJSONToArray
  json: +salesforce_query_1
  header: ["Name","Id"]
  unwind: []
  stringify: []
  private: false

# ファイルを取得
+get_file_1:
  action>: GetFile
  provider: local
  filename: ''
  private: false
  meta:
    display:

# ワークシートを選択
+select_sheet_1:
  action>: SelectSheet
  filename: +get_file_1
  sheetname: 'シート1'
  private: false

# 範囲に書き込む
+write_range_1:
  action>: WriteRange
  worksheet: +select_sheet_1
  table: +convert_j_s_o_n_to_array_1
  celllabel: A1
  private: false
# クエリを実行する
+salesforce_query_1:
  action>: SalesforceQuery
  provider: ''
  query: "SELECT Id, Name\nFROM Account\nLIMIT 3"
  private: false
  meta:
    display: null

# JSONを配列に変換
+convert_j_s_o_n_to_array_1:
  action>: ConvertJSONToArray
  json: +salesforce_query_1
  header: ["Name","Id"]
  unwind: []
  stringify: []
  private: false

# ワークブックを取得する
+get_workbook_1:
  action>: GetWorkbook
  provider: ''
  workbook_id: ''
  private: false

# セルの値を更新する
+update_worksheet_cells_1:
  action>: UpdateWorksheetCells
  workbook: +get_workbook_1
  range: 'Sheet1!A1'
  values: +convert_j_s_o_n_to_array_1
  private: false
# レポートを取得する
+salesforce_get_report_1:
  action>: SalesforceGetReport
  provider: ''
  reportId: ''
  outputData: report
  private: false
  meta:
    display:

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display: null

# セルの値を更新
+update_cells_1:
  action>: UpdateCells
  spreadsheet: +get_spreadsheet_1
  range: 'シート1!A1'
  values: +salesforce_get_report_1
  private: false
salesforce セールスフォース

このページは役に立ちましたか?