Hello,
Can someone explain the logic behind this Marketo Boolean Field / Activity log behaviour.
Depending on what changes the value of the field (form fill or smart campaign) for the very first time to [true] the Activity log will show different “Previous Values”.
If value is set to [true] via
1) A form fill (Field Type: Checkbox) … then activity log will state that value was changed “from [null] to [true]”
2) A Smart Campaign with flow step “Change Data Value” to “true” … then activity log will state that value was changed “from [false] to [true]”
Why is that?
I currently have a triggered SC: Data value changes on the boolean field with 2 constraints:
1) New value: true
2) Previous value: false
The different behaviour has caused problems since the form fills does not result in the triggered SC being fired. It’s probably safe to just remove constraint 2 since it seems redundant but I just want to be sure and understand what is going on with this behaviour?
Thanks
Dennis
Solved! Go to Solution.
A Marketo Boolean field is nullable. That is, it has 3 values: true, false, and the special value null, as in JSON null or SQL NULL.
And different Marketo layers have different ways of serializing user input into final Boolean values. For example, form fields always start as Strings (just as with native HTML forms), while the REST API supports, but does not require, Boolean true/false/null from the start.
So what you’re seeing is an artifact of how each layer (though not entirely accurately) represents the original value. As you said, you can just leave out the Old Value constraint.
A Marketo Boolean field is nullable. That is, it has 3 values: true, false, and the special value null, as in JSON null or SQL NULL.
And different Marketo layers have different ways of serializing user input into final Boolean values. For example, form fields always start as Strings (just as with native HTML forms), while the REST API supports, but does not require, Boolean true/false/null from the start.
So what you’re seeing is an artifact of how each layer (though not entirely accurately) represents the original value. As you said, you can just leave out the Old Value constraint.
Thanks for answering Mr. Whiteman.
I find it rather confusing that a previous data value will be logged differently depending on the source of the value change. Another one of those "you just need to know" Marketo quirks I guess.
At least now I know 🤷🏻♂️
🙏 Thanks again
Extending this logic further -- Marketo treats "null" as "false" when used as a filter, since there isn't a null option, right?
Check this post out:
Thanks, that clarifies for triggers -- is it any different for filters?
Does a filter look at a [null] as false?
Or can we safely add a filter looking for "false" and it'll distinguish it from [null]?