Docly Child

Salesforceのレコードを更新

2252 views

この記事では、Salesforceと連携してレコードデータを更新する方法について紹介します。

【できるようになること】

  • SalesforceUpdateRecordを利用
  • Salesforceのレコードを自動で更新

 Salesforceのレコード更新

下記手順にてワークフローを設定します。
今回は「株式会社XXXX」の取引先(Account)レコードの説明(Description)を未入力の状態から「反社チェック済み」と更新する設定をします。

項目名は、設定→オブジェクトマネージャから確認できます。

  • コネクションページからSalesforceのコネクションを登録します。
    連携手順:Salesforceと連携

    • アクション一覧から「SalesforceUpdateRecord」アクションをドラッグ&ドロップします。
    • 設定項目:更新する項目名と値を設定します。設定は以下のようにオブジェクト形式で記述します。(オブジェクト形式とは下記オブジェクト名やオブジェクトIDとは別の用語です。詳細はこちらをご参照ください。)
  • {項目名: 値,項目名: 値}
    • ここではワークフロー内で設定した変数も${変数名}の形式で利用できます。その場合、以下のように記入します。
      例)ワークフロー内で会社名をcompanyNameという変数に設定していた際の呼び出し方
  • {"Name":"${companyName[0]}"}
  • オブジェクト名:更新するオブジェクトの名前を入力します。【例】取引先オブジェクト:Accountレコードの更新には画面に表示されている項目の名前ではなくAPI上の参照名を利用します。

    【例】住所(請求先)の市区郡の場合
    APIの参照名はsalesforceのクエリビルダーから検索することで確認でき、salesforce上の項目をビルダーで検索すると項目名を取得できます。

  • オブジェクトID:更新するレコードのIDを入力します。レコードIDはURLから拾うことができます。【例】https://test.lightning.force.com/lightning/r/Account/【レコードID】/view
  • ※Salesforceのオブジェクト名や項目名は、Salesforceのオブジェクトマネージャーから確認することができます。詳細はこちらの記事をご参照ください。

salesforceの項目の中には住所、名前のように1つのカテゴリーでも複数の項目が存在するケースがあります。

【例】請求先住所


このような場合BillingAddressを
Salesforceのデータを取得で取得すると下記のように住所項目の詳細がでてきますが、

請求先市区郡を更新する場合は以下NGのように「Salesforceのデータを取得」の形式ではなく、OK例のように他の項目同様の形式で指定の項目を入れ更新する必要があります。

失敗する書き方
{"BillingAddress": { "city": "testest", }} 成功する書き方
{"BillingCity":"中央区日本橋"}

NGケースで実行すると下記のようなエラーが出ますが権限上の問題はありませんのでクエリについてご確認ください。

 Error: Unable to create/update fields: BillingAddress. Please check the security settings of this field and verify that it is read/write for your profile or permission set
Salesforceの日付型の項目を更新する場合、更新する値は以下の形式である必要があります。
AUTORO上でのデータ型:文字列
文字列のフォーマット:YYYY-MM-DDTHH:mm:ss.SSS+9:00:00
実際の例
{
"Time__c" : "2022-07-25T18:40:58.346+09:00"
}

ロングテキスト項目に対して、改行が存在する文字列を入れたい場合は、以下の記法を用いる必要があります。
"ロングテキスト項目名": ${JSON.stringify(改行の存在する文字列を格納した変数名)}
※上記は末尾のカンマが抜いてありますのでご注意ください。
※オブジェクトのバリュー側(JSON.stringify())へのダブルクォーテーションは、不要です。

数値項目に対して数値型変数を利用する場合は、以下の形式である必要があります。

  1. 値に指定した変数をダブルクォーテーションで囲う
  2. 数値型であることを明示
    整数を入力したい場合${parseInt(変数名)}
    小数を入力したい場合${Number(変数名)}

    ※小数を格納した変数を設定し、上記の形式で入力しても小数点以下が表示されない場合は、項目の表示設定等をご確認ください。

アクションの実行が成功した場合は「true」と表示されます。

[Salesforceのレコード]

アクションの実行に失敗した場合は、エラー内容が表示されます。

# レコードを更新する
+salesforce_update_record_1:
  action>: SalesforceUpdateRecord
  provider: sfdc_xxxxxxxxxxxxxxxxxxxx
  object: Account
  id: 001100000xxxxxxxx
  data:
    Description: '反社チェック済み'
  meta:
    display:
      provider:
        type: chip
        label: 'Salesforce (xxxxxx@tutorial.co.jp)'
        icon: salesforce

<Saleseforce>セールスフォース

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