ブロックリファレンス

BLOCKS Reference

Salesforce

レコードの更新、無ければ追加

概要

このブロックは、変数に格納されたデータ(レコード)をSalesforceオブジェクトへ更新・追加します。レコードが、既存レコードの場合は更新し、新規レコードの場合は追加します。

レコードの更新、無ければ追加ブロックの概念図
(図をクリックすると拡大表示されます。)

レコードは、オブジェクトの配列として準備してください(「変数からAnalyticsへアップロード」ブロックの「アップロードするデータの形式」と同様)。

プロパティ

プロパティ名 説明
ブロック名 ブロックの名前を指定します。ブロックに表示されます。
アカウント

Salesforceアカウントを選択します。

error_outline 備考

Salesforceアカウントは、あらかじめフローデザイナーの設定のSalesforceアカウントで設定を済ませておく必要があります。

オブジェクト名 レコードを更新・追加するSalesforceオブジェクトを指定します。
投入データの変数 Salesforceオブジェクトへ更新・追加するレコード(データ)が格納されたBLOCKSの変数を指定します。
外部ID

この外部IDは、「既存レコードの更新」か「新規レコードの追加」かの判断に使用されます。

判断は、変数に格納されたレコードの外部IDと、更新・追加対象のSalesforceオブジェクトレコードの外部IDとを比較して以下のルールで切り分けられます。

  • 外部IDが一致するレコードがない場合は、新規レコードを追加します。
  • 外部IDが一度だけ一致するレコードがある場合は、その既存レコードを更新します。
  • 外部IDが複数回一致するレコードがある場合は、レコードの更新も追加も行われず、失敗します。

外部IDには、Salesforce上でレコードの主キー(ID)、idLookup項目、または外部ID項目と呼ばれるものが指定できます。

error_outline 備考

外部IDで指定した項目名が、投入データの変数へ格納されたレコードの項目名と違う場合には、「Salesforceオブジェクトレコードの外部ID」と「投入データの変数へ格納されたレコードの項目」とのデータマッピングの設定も必要です。

データマッピング

Salesforceオブジェクトの項目と、BLOCKSの変数に格納されたレコードの項目(キー)の対応付けを定義します。

データマッピング解説図

項目ごとに以下のペアを定義します。

  • Salesforce項目: Salesforceオブジェクトの項目
  • バリュー: BLOCKSの変数に格納されたレコードの項目(キー)
Sandbox レコードを更新・追加する先のSalesforceがSandbox環境かどうかを指定します。
ブロックメモ ブロックに対するコメントを指定します。

使用例

この使用例では、Googleスプレッドシートに保存されたプロジェクトデータをSalesforceのカスタムオブジェクト「プロジェクト(Project__c)」に更新または追加するフローを紹介します。

error_outline 「プロジェクト管理と分析」シナリオについて

この使用例は「プロジェクト管理と分析」シナリオの一部です。このシナリオでは、以下のSalesforce関連ブロックを組み合わせて、プロジェクトデータの取得・更新・分析を行います。

  1. レコードの追加」ブロック:新規プロジェクトデータをSalesforceに登録
  2. 「レコードの更新、無ければ追加」ブロック:既存プロジェクトデータの更新または新規登録(現在のブロック)
  3. SOQLクエリーの実行」ブロック:Salesforceからプロジェクトデータを取得
  4. 変数からAnalyticsへアップロード」ブロック:取得したデータをCRM Analyticsにアップロード

各ブロックの使用例を順に参照することで、Salesforceデータを活用した完全なワークフローを理解できます。

プロジェクトデータの更新を自動化することで、プロジェクトマネージャーが最新のプロジェクト状況を効率的に管理できます。

前提条件
  • Salesforceアカウントが設定済みであること
  • 「プロジェクト管理」カスタムオブジェクト(Project__c)が作成済みで、アクセス権があること
  • GCPサービスアカウントが設定済みであること
  • スプレッドシートがGCPサービスアカウントと共有されていること
カスタムオブジェクトについて

この例では、「プロジェクト管理」というカスタムオブジェクトを使用します。以下の設定でカスタムオブジェクトが作成されていることを前提としています。

項目 設定値 説明
表示ラベル プロジェクト管理 画面に表示される名前
オブジェクト名 Project APIで使用される名前(末尾の__cは自動付与)
レコード名 プロジェクト管理名 各レコードを識別するための項目の名前
データ型 テキスト プロジェクト名を任意のテキストで入力可能

このカスタムオブジェクトには、以下のカスタム項目が設定されているものとします。

表示ラベル データ型 項目名 詳細設定 説明
予算 通貨 Budget 桁数:18
小数点以下の桁数:0
プロジェクトの予算額
開始日 日付 StartDate - プロジェクトの開始日
ステータス 選択リスト Status 選択値:
計画中
進行中
完了
プロジェクトの状態
顧客名 テキスト CustomerName 文字数:80 顧客企業名
説明 ロングテキストエリア Description 文字数:32768
表示行数:6
プロジェクトの説明
スプレッドシートのデータ構造

以下のようなヘッダー付きのスプレッドシートを準備します。

Name Budget__c StartDate__c Status__c CustomerName__c Description__c
新規システム開発プロジェクト 6000000 2023-12-31 計画中 株式会社サンプル 顧客管理システムの新規開発(予算増額)
既存システム保守プロジェクト 1200000 2023-11-15 進行中 テクノ株式会社 年間保守契約の更新(契約完了)
クラウド移行プロジェクト 8000000 2024-03-31 計画中 グローバル商事 オンプレミスからクラウドへの移行

このスプレッドシートのファイル名を「プロジェクトデータ_Salesforce更新用」に設定します。

作成したスプレッドシートをGCPサービスアカウントと共有します。GCPサービスアカウントのメールアドレスは、フローデザイナーの設定のGCPサービスアカウントで確認できます。共有設定では「閲覧者」権限を付与してください。

フローの実装手順
  1. スプレッドシートのデータ取得」ブロックを配置し、以下のように設定します。
    プロパティ名
    ファイル名 https://docs.google.com/spreadsheets/d/1ABC...XYZ/edit(スプレッドシートのURL)
    結果を格納する変数 project_update_data
    ワークシート名 シート1(スプレッドシートのシート名に合わせて変更)
  2. 「レコードの更新、無ければ追加」ブロックを配置し、以下のように設定します。
    プロパティ名
    アカウント 使用するSalesforceアカウントを選択
    オブジェクト名 Project__c
    投入データの変数 project_update_data
    外部ID項目 Name(プロジェクト名を外部IDとして使用)
    データマッピング
    キー バリュー
    Name Name
    Budget__c Budget__c
    StartDate__c StartDate__c
    Status__c Status__c
    CustomerName__c CustomerName__c
    Description__c Description__c
    Sandbox 適宜選択(本番環境の場合はオフ)
実行結果

フローを実行すると、スプレッドシートの各行のデータに基づいて、Salesforceの「プロジェクト管理」カスタムオブジェクト(Project__c)のレコードが更新または追加されます。

次のステップ

この使用例は「プロジェクト管理と分析」シナリオの一部です。次のステップとして、以下のブロックの使用例を参照してください。

この情報は役に立ちましたか?