2.16 | Incorrect Conditional Flow Firing

Your software
My Mautic version is: 2.16
My PHP version is:7.2.28

Your problem
My problem is: Sequential Conditionals fire incorrectly

These errors are showing in the log: None

So we have multiple conditions stacked (each fail condition is stacked to the negative path of the previous condition). One thing we are noticing, however, is if a condition further down the line equals TRUE, then all previous conditions also fire, instead of being skipped.

For Example, let’s assume that we have the following Sequence:

We see that we have multiple conditions stacked here.

  • The first condition is checking if a contact field value ‘Day’ is equal to ‘1’
  • The positive branch is set to a Jump event that jumps to an email entitled ‘Email 1’
  • The negative branch is set to another condition that checks if the field value ‘Day’ is equal to ‘2’
  • The positive of that branch is setup to a Jump event that jumps to an email entitled ‘Email 2’, which is linked with a 1 day delay between email 1 and email 2

For example, here is the email branch:

Note here, the email branch isn’t tied to anything except each other. This means that if someone is sent, via jump event, to email 3, for example, email 4, 5, etc, will trigger 1 day later as needed, so that they don’t have to keep going through the filter to get to the proper day.

You get the point for the rest. What happens here is if we send a contact THROUGH the campaign with a ‘Day’ value of ‘1’, it triggers correctly. Fires off the positive branch, sends email 1, schedules email 2, life is good.

If we send someone through with a day value of 2 however, it fires email 1 and fires email 2, and schedules email 2. Meaning it fired both the positive and negative branches of the antecedent condition (first condition).

Imagine if we have this on Email 18?! Someone joins on Day 18, and all 18 emails get sent over?! that’s a huge problem.

Why is it doing this?

@zackrspv, not sure if you ever got this solved or not. If not some solutions:

  1. There is a bug with the jump event, in order to get it working properly, you need to add in an action based on time before adding the jump, so what I have done is add in an action based on 1 minute after each decision (Example between Filter Start: Is Day 1? and Jump acountion Send Day 1) to add a random tag to the contact (in my case I used “random tag”), then immediately after that you do the jump to action, this will work.

  2. As a precaution I would add time based decisions between each day, even if it is a minute or two. This could prevent the DB going a bit crazy.

LMK how things go