【Accout Engagement – Salesforce連携】フォームCV後の同期問題を解消!
Accout Engagementのフォームで獲得したリード情報(プロスペクト)をSalesforceに同期し、それをトリガーとしてSalesforce側でフローなどの自動処理を起動することは、多くの企業で実践されている便利な仕組みです。
しかし、この仕組みには「同期タイミング」に起因する見落としがちな問題が存在します。
今回は、この同期問題を解決し、フォーム通過後の処理を確実に実行するためのシンプルかつ効果的な解決策をご紹介します。
発生する同期問題の概要
Account Engagementフォームの完了アクションでプロスペクトの項目を更新し、その項目更新をトリガーにSalesforceのレコードトリガーフローを起動するケース
具体的なケースの例
- AccountEngagementフォームのCV時:プロスペクトのカスタム項目「資料DLチェック」をONにする
- Salesforce同期:プロスペクト(リード/取引先責任者)がSalesforceに同期され、「資料DLチェック」が更新される
- Salesforceフロー起動:項目更新をトリガーにSalesforceフローが起動し、必要な処理(例:通知、別の項目更新など)が実行される
- 項目リセット:フロー内で「資料DLチェック」がOFFに戻され、AccountEngagementに同期される
問題点
上記1と2の間、すなわち項目がONになりSalesforceに同期されるまでの短い時間に、同じリードが再度同じフォームでCV(2回目のCV)を行うとどうなるでしょうか。
2回目のCV時も、AccountEngagementは「資料DLチェック」をONにしようとしますが、SFDC側ではまだ1回目のCVによる更新が処理中か、項目がONの状態です。その結果、Salesforceフローが条件を満たせない(ONからOFFへの変更がない、あるいは既にONである)ため、2回目のCVに対する処理が漏れてしまうリスクが発生します。この問題は、特にフォームの完了アクションからSalesforceフローの完了までに時間差が生じることで顕著になります。
従来の検討事項と解決のヒント
この問題に対して、いくつかの検討事項があります。
- フォームのCV後10分間非表示をオンにする:フォームの再入力による問題を物理的に防げますが、ビジネス要件上、非表示にしたくない場合があります
- 資料ごとのCVフォームを分ける:フォーム毎にフロー起動フラグを分けることで、処理漏れのリスクは下げられますが、フォームの管理が煩雑になります
- フローの処理がAccount Engagementで実装できないか検討する:そもそもSalesforceフローでしかできない処理なのかどうかを再検討します
【解決方法】ToDoを活用した確実なフロー起動
この同期問題を解決する鍵は、「項目の更新」ではなく「レコードの作成」をトリガーにすることです。意外と単純な方法ですが、AccountEngagementの完了アクションでSalesforceのToDoを作成します。
■やり方
- Account Engagementの完了アクション:フォームの完了アクションに「Salesforce ToDoの作成」を追加します
- 件名にトリガー文字列を挿入:ToDoの件名に「資料DL_完了」など、特定のSalesforceフローを起動するための識別文字列を必ず挿入します
- Salesforceフローの起動:Salesforce側で「ToDoの作成」をトリガーとするレコードトリガーフローを設定し、件名に特定の文字列(例:「資料DL_完了」)が含まれていることを条件とします
■この方法のメリット
- 確実なトリガー:ToDoレコードはフォームのCVの度に新しく作成されるため、項目のON/OFFのような同期タイミングに左右される更新トリガーとは異なり、CVのたびに確実にSalesforceフローを起動できます
- 処理の分離:Accout Engagement側はToDoを作成するのみ、Salesforce側はToDoをトリガーに処理を行うため、連携の役割が明確になります
- 可視化:ToDoレコードとしてSalesforceに残るため、連携履歴の確認やデバッグが容易になります
同期問題に悩まされていた方は、ぜひこの「ToDoトリガー」を導入し、フォーム通過後の連携処理をより確実なものにしてください。
注意事項として、ToDoの作成にはプロスペクトがリード or 取引先責任者に連携されている必要があります。プロスペクトの割り当てをお忘れなく。