こんにちは、アンダーソンです。
最近ハマった一件をご紹介したいと思います。
Salesforceのキャンペーン周りって結構特殊というかややこしいというか。
色々難しいんですが、今回はキャンペーンメンバーに関する落とし穴にハマったので
それをまとめて行きたいと思います。
キャンペーンメンバーって?
そもそもキャンペーンメンバーってなんだって方のために簡単にご説明しておくと
キャンペーンに属している、人単位のレコードのことです。

キャンペーンに属しているなので、リード、取引先責任者が属することができます。
キャンペーンメンバー自体にLeadId, ContactIdという項目を持っています。
上の画像でいくと、1行目のレコードの種別は取引先責任者になっていて、
2行目はリードになっているので、レコードをみてみるとこんな感じになっています。

ここまでは当然ですよね。
さてここからです。
リードが取引開始されたとき
ここでハマった落とし穴がこれです。
キャンペーンメンバーに取引先責任者が含まれていたら〇〇するという
条件でフローを組んでいたのですが、リードが取引開始されてもフローが動かないということがありました。
実はこのキャンペーンメンバーに含まれているリードが取引開始しても
キャンペーンメンバーの取引先責任者IDに値は入るんですが、最終更新日時は更新されない=updateされてないみたいなんです。
実際にみてみましょう。
さっきのがこちらですね。

で、下のレコードを取引開始してみます。

OKです。
で、再度クエリをしてみると

最終更新日時が2021-02-21T07:32:24.000+0000から変わってませんね。。
回避策は?
困ったってことで、回避策を考えた結果、今回はリードが取引開始されたらでプロセスビルダーで組むことでOKだったんですがこの特殊な仕様なんなんですかね笑
更新されてるはずなのに更新ではなくそのままUpdateされてる感じなんて反則ですよ、Salesforceさん笑
もし同じことでお困りなら参考にいただければと思います!