API マージ処理におけるブール値フィールドの仕様変更について
※この記事は海外コミュニティ記事 API Merge functionality for Boolean fields の日本語抄訳版です。
2026年3月リリース以前は、API によるリードマージ時において、ブール値 (Boolean) フィールドの FALSE は「値なし (No Value)」として扱われていました。そのため、あるブール値型フィールドの値として、マージされる2つのリードのいずれかが TRUE を持っている場合、マージ後の結果は TRUE となっていました。
しかしこの挙動は、FALSE が重要な意味を持つブール値フィールドにおいて、問題を引き起こす可能性がありました。
例えば、あるリードの値が変更された後に古いレコードとマージされた場合、本来更新されたはずの値が意図せず元の値に戻ってしまうことがありました。また、この挙動は他のフィールドタイプの処理とも一貫していませんでした。
2026年3月のリリースで、アドビはこの問題を修正しました。
API によるマージや、AutoMerge (設定済みの場合) でマージが行われ、どのリードから値を取り込むかを決定する際、ブール型フィールドの NULL 値のみが「値なし」として扱われます。
この結果、競合するフィールドの値は、「勝者」となるレコード (最終的に残るリードまたはコンタクト) から取得されるようになります。ただし、勝者となるリードのそのフィールドの値が NULL であり、かつ「敗者」となるレコード (削除されるレコード) に値(TRUE または FALSE)が存在する場合は、その値が引き継がれます。
なお、「Unsubscribed」(購読解除) をはじめとする Marketo 標準のブール型フィールドは、常に値(TRUE または FALSE)を持つため、NULL になる事はありません。そのため、これらの標準ブール値フィールドについては、すべてのケースで勝者レコードの値が保持されます。
