I'm doing some testing on one of my test leads (using one of my personal email addresses) that has been in Marketo for some time now. But the field in question - a boolean checkbox - has never been checked (has always been "false"). When testing today, I noticed Marketo wasn't updating my lead record after checking the box and submitting the form. I even tried to manually check the box within the lead detail screen. I thought block field updates only affected fields that contained an existing value?
Here are the blocks currently in place:
Solved! Go to Solution.
Well, boolean false is a value.
I think the problem is that unlike strings, the choice was made to have booleans be non-null. It's not necessary from a technical standpoint but it might sound right to (some) marketers.
Well, boolean false is a value.
I think the problem is that unlike strings, the choice was made to have booleans be non-null. It's not necessary from a technical standpoint but it might sound right to (some) marketers.
Well if that's the case, it would be helpful if this was documented somewhere. According to Marketo, "Blocking updates to a field allows you to write to the field once and then retain the original value for the lifetime of the field. This can be useful for a field like Lead Source." The field in question has never been written to.
Oh, I agree.
I just tested this once again - after removing the blocking - and everything works as intended. Another lesson learned today.
Hi Sanford,
I do believe Boolean field contains two values T or F. However, I noticed one thing --> when a new lead came in (let's say this new lead has no value at all associate with opt-in field), it will show on the activity log that update data value from "null" to "false" or "true". How can I better understand it?
Thanks,
Becky
Yes, a nullable Boolean field can be confusing because of the, let's say, overly generous way Boolean values may be interpreted in client apps (which is where it matters most).
In a database itself, a nullable Boolean-type field can have 3 values, let's say
When written as above, the 3 values have clearly different meanings and seem like they could/should be acted on differently (think about opt-in, where not having answered the question is different from having answered with "No").
But in reality, that 3rd value -- the "no value" value -- may be presented to the client app (say, a JavaScript web app) as an empty string, which isn't exactly the same as the literal value false but in a loose comparison it will be considered the same. (We call that a "falsy" value.) When the value is sent this way, there are effectively 2 possible values, not 3.
Or that "no value" value may come into the app as a true null -- which represents its value in the database with total accuracy -- but it still may be used in loose comparisons only, where it is
more like false than true, hence also "falsy." And again, there are effectively 2 possible values, not 3.
Or, most confusingly, "no value" may appear in the app realm as a literal false, because it's been "massaged" on the server side to always be either true or false.
So what you're seeing in the Activity Log is the actual transition of the value in the database from no value to one of the 2 other values. But that doesn't mean that while the value was still at no value that you would've been able to act on it differently from false. In most Marketo contexts it would've been the same as false or no.
Thank you Sanford for always taking your time to response, being very helpful and patient. I can understand the loose comparison. Thank you for clarify what I saw means what. Now I understand more, when eithe lead didn't check the box when filling out the form, or SFDC sync a lead record up to Marketo, didn't check "opt-in", we got a value of "false". "False" is not just a Marketo "default" value for those cases. It just Marketo, or database/app see those empty/null value/string as "no" or "false".
Best regard,
Becky
Totally, exactly right.