Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

Salesforce の自動更新が Account Engagement で取得されない

公開日: Sep 30, 2025
説明
この状況は、データベーストランザクションと、Apex 実行順序に関連して発生します。

シナリオの例:
  • Account Engagement が新しい情報を取得します。
  • Account Engagement は、この情報を Salesforce と同期します。
  • 新しい情報により、Salesforce のオートメーションは項目の値を変更します。
  • この変更は、Salesforce 側にセットされたのち、 Account Engagement には反映されません。

同期が実行されると、Account Engagement はトランザクションを開始しますが Account Engagement の同期処理は、APEX 実行順序に従い他の処理が行われるかなり前に更新が行われます。​よって、Account Engagement の同期処理が完了した時点で、Account Engagement の同期処理自体は完了となります。ですが、APEXトランザクション自体は終了にはほど遠い状況です。トランザクション全体が 1 秒も掛からずに完了した場合でも、Account Engagement の同期処理後に多くの処理が行われています。

処理の後半では、ワークフローやトリガが呼び出されて、項目が変更されることがあります。Account Engagement は、自分で変更を行った後に何が行われるかについては監視していません。また、LastModifiedDate のタイムスタンプが、Account Engagement が同期を開始した時点のタイムスタンプと一致しているため、Account Engagement は Salesforce に対して再びクエリを実行することもありません。Salesforce のレコードが最後に更新されたタイムスタンプが、同じレコードを最後に同期したタイムスタンプと一致する場合、Account Engagement は再同期は不要と判断します。そうしないと、無限の同期ループに陥ってしまいます。

最終結果: Account Engagementは、トランザクションでさらなる変更が行われたことを知らないため、トランザクションの終了後には最新のデータを保持していると判断します。 
解決策
回避策は、Account Engagement とのトランザクションが完全に完了してから新たな更新を実行するように、Salesforce オートメーションを遅延させることです。こうすることで、Salesforce から新しい情報が渡されると、Account Engagement との新たな同期がトリガされます。

この設定は、プロセスビルダーのスケジュール済みアクション で行います。または、Apex の @futureメソッド を使用します。
 
ナレッジ記事番号

000381069

 
読み込み中
Salesforce Help | Article