SOLVED

Block field updates is preventing a checkbox from being checked (has never contained a value)

Go to solution
Highlighted
Level 10 - Champion Alumni

Block field updates is preventing a checkbox from being checked (has never contained a value)

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:

  • Import list
  • Untrusted Import list
  • Form fillout
  • Flow change data value
  • Lead detail update
Tags (1)
1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Level 10 - Community Moderator

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

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.

View solution in original post

8 REPLIES 8
Highlighted
Level 10 - Community Moderator

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

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.

View solution in original post

Highlighted
Level 10 - Champion Alumni

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

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.

Highlighted
Level 10 - Community Moderator

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

Oh, I agree.

Highlighted
Level 10 - Champion Alumni

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

I just tested this once again - after removing the blocking - and everything works as intended.  Another lesson learned today.

Highlighted
Level 4

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

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

Highlighted
Level 10 - Community Moderator

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

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

  • something representing true
  • something representing false
  • something representing no value yet or value unknown

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.

Highlighted
Level 4

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

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

Highlighted
Level 10 - Community Moderator

Re: Block field updates is preventing a checkbox from being checked (has never contained a value)

Totally, exactly right.