The Trick With Decision Diamonds

Decision Right Wrong Sign
Is Your Decision Diamond Logic Broken?

Are you struggling to get your Keap advanced automation (campaign) decision diamonds working when you want to test that a contact doesn’t have either of two or more tags, or field values?

This is caused by a common mistake when translating natural language into logic that Keap understands.

Help is at hand… this article is going to help you understand the problem, so you can get it right from now on in. No more broken decision diamonds, and no more additional decision diamonds when one will do the job (and is easier to debug, change, and document).


Let’s say you have two sequences, and you want to send the contact to one of these based on them having either one of two tags, therefore they go to the other sequence if they don’t have any of the two tags. You might write this like so…

  • If contact has Tag 1 or Tag 2 then go to Sequence A
  • If contact doesn’t have Tag 1 or Tag 2 then go to Sequence B

Ok, that makes sense. We all understand what we want to happen here. So we then create the following decision diamond rules…

Sequence A: If the Contact’s Tags contains Tag 1 or Tag 2

Decision Diamond 1 Tick

Sequence B: If the Contact’s Tags doesn’t contain Tag 1 or Tag 2

BOOM! Right? That will work yeah…


Decision Diamond Logic 2 Cross

This is the common mistake.  The first rule is fine… but the second rule needs to be changed. But why?!? You may ask… well I am glad you asked!

The problem comes down to two things:

  1. The way we express the logic in English is shorthand, and while it makes sense in common language, it’s not mathematically correct.
  2. The “doesn’t contain” qualifier is implied for Tag 2 which, if you read that out in full.

Let’s look at that second one first, if we now write that in English it now says:

If the Contact’s Tags doesn’t contain Tag 1 or doesn’t contain Tag 2.

Already that is starting to sound not quite what we were after, so if we now also consider the first issue above, then how we really should express this logic to make sense is like this:

If the Contact’s Tags doesn’t contain Tag 1 AND doesn’t contain Tag 2

Which we can set up in the Decision Diamond like this…

Decision Diamond 3 Tick

Alternatively, we can also create a rule that is the same thing but in a longer form, that shows the “doesn’t contain” in front of the subsequent tag(s).

Decision Diamond Logic 4 Tick

Still confused? Don’t worry, it can be a tricky thing to get your head around, and we have all made mistakes with decision diamond logic. Just remember that if you are using doesn’t contain with more than one tag, use the AND instead of OR.

When in doubt, use the Test feature from the Actions dropdown in the top right of the window to see what happens based on different criteria. 

I have a video coming out soon that goes into this a little bit deeper, make sure you sign up to get notified when that comes out.

Share the Post:

Related Posts