I'm setting up a smart list that is trying to pull anyone who is in list A but "not in" smart list list B or C, and I'm applying "or" filters between B & C. In my logic I would say 1 and (2 or 3). However, when I run it, it's not excluding the leads properly -- I'm getting tied up in the "not in"/negative logic. Has anyone else encountered this scenario? Is "and" the right way to go instead of or -- why? I would think it needs to be "or" because I'm trying to pull anyone who matches any of these "not in" criteria, not matching all of the criteria.
How sure are you that this isn't working? Did you check people you know across these lists?
To me, this looks correct, however, there could be some logical issues if Marketo, for some reason, runs it differently than expected.
But did you try the other combinations?
But think about it a bit:
Now if we run these separately
And if we use AND:
Which may actually be what you want.
We've had trouble with our smart lists when we have multiple not-ins enclosed in parenthesis, so we create a separate exclusion smart list of ins (per Marketo support's suggestion).
To make this more clear, we need to exclude specific states in our emails on occasion. Here is a basic example:
We may want to create a list where SFDC type is contact and (billing state is not CA or state is not CA). Marketo will look for the first thing that applies in the parenthesis. Someone may be a contact and not have a billing state of CA, but the state might be CA. These people were ending up in our lists.
To prevent this, we created an exclusion list. We said billing state is CA or state is CA. What we then do for our final smart list is SFDC type is contact and member of smart list not in exclusion list. Hopefully this makes sense.
We may want to create a list where SFDC type is contact and (billing state is not CA or state is not CA). Marketo will look for the first thing that applies in the parenthesis. Someone may be a contact and not have a billing state of CA, but the state might be CA. These people were ending up in our lists.
To be fair, this is the way a boolean comparison expressed this way always works, in any language.
true && (!false || !true) --> true
true && !(false || true) --> false
Yep, I agree with Sara Greaves That's exactly the way we've had to do it in order to exclude everyone we want. Create a Smart List that was specifically used for exclusions.