Delayed Email Action causes a following Email Opened Decision to fail (never triggers).
It took us a long time to figure out what’s going on, we’ve created many scenarios, testing each campaign individually until we’ve realized that our scenario (one that we need to proceed with) can’t be implemented with the current version due to a bug (most likely) in the way Mautic handles “for interval” delay.
Here’s the setup:
- cron job calls the mautic:campaigns:trigger every 2 minutes (for testing purposes it’s set so low)
- campaign has:
Email 1 to be sent immediately (it’s sent just fine)
followed by (linked to) Opened Decision testing for that same Email 1 - if it’s opened (this also works fine, the opening of email is detected)
followed by (from yes/green) another Email 2 to be sent, this time with a “for interval” delay of 1 minute (doesn’t matter how long, any delay is a problem)
followed by another Opened Decision testing for Email 2 (this time, it is never triggered, nothing that follows it is being executed)
followed by Email 3 … which is NEVER sent as long as Email 2 has a “for interval” delay init … if we remove that delay or change it to date/time then it’s fine …
- same issue with any other Action, not just Emails - if it has a “for interval” delay then a following decision that’s linked to it fails (never triggers the yes/green)
BTW, could someone shed some light on the no/red decision output as we can’t figure this one out (doesn’t seem to be of any use as it is ALWAYS triggered as soon as the cron job is run) - the only way we could figure out making it useful (email not opened) is by setting up a special cron job just for that single campaign and triggering a specific mautic:campaign:trigger with this campaign’s id … but that’s quite useless as it requires constant additions to cron jobs that are to be triggered at a given date/time when we consider the email from campaign has not been opened … Another problem with this approach is also the inability to time the not-opening based on the actual email sending time (initially the campaign is sent at a known time but later, if some new lead is created, they do receive the same email at a later time/date … and some of our campaigns are based on the fact that the email sent to the lead has not been opened say for 2 days since it has been SENT not since the Campaign started.
Anyway, just a suggestion how to improve this - the No/Red action should allow to specify a “for interval” delay since the email was sent and then we can have a single cron running every few minutes and triggering all such campaigns.