The campaign doesn't send to the previous contacts

Your software
My Mautic version is: 4.0.1
My PHP version is: 7.4.18
My Database type and version is: MariaDB 10.5.9

Your problem
My problem is: I created a campaign with one email and it’s worked as expected, but after adding a new email to the campaign after the first one, it’s start sending to the newly added contacts only and ignored the previous/old contacts. I don’t know if it’s the normal behavior of Mauric or it’s a bug.

Hi, this is expected behaviour. The old contacts finished the campaign already. They are still members in the campaign, but they are idle. Since they moved beyond the last step, you can’t add them new actions anymore.

You can start a new campaign for them, or restart this one

Hi @joeyk, is there a way to achieve the same result without creating a new campaign? My goal is to add educational emails to the campaign over time that targets the new and old contacts.
The segment emails will not help in this case, because I need to track the clicks and adjust the points, also trigger the emails with a delay.

1 Like


The short answer: No.

But I’ve seen people solving it creatively maybe someone will step up and create a tutorial.
If noone will be someone, I’ll might be someone later, until then plz anyone should step up to be someone.

1 Like

I tested this solution on my dev env and it works:

  • Enable the “Allow contacts to restart the campaign” option in the campaign.
  • Create a new segment named “Empty”.
  • Remove the main segment and add the “Empty” segment to the campaign.
  • Run “mautic:campaign:update” cron job to update the contacts.
  • Remove the “Empty” segment and add the main segment again to the campaign.

Note: All the emails in the campaign must be “Marketing”.

What did you think @joeyk? Is it safe for prod?

Note: I think the only downside is the number of sent emails will increase by 1 every time the campaign restart.

Well, you’ll contacts will restart the campaign from step one.
If this is what you want, then yes, its good.

I had the impression you wanted them to continue where they left off.

Yes, this is exactly what I want to achieve, but I didn’t find any solution for it, the only way that works for me is to restart the campaign (all the emails must be “Marketing” to prevent sending multiple emails to the same contact), or create multiple campaigns with segments (Campaign chaining).

1 Like

I would proceed as follow:

  1. with current/first campaign:
    1a. I would set the campaign like this: the contacts that finish the campaign => remove them from “first segment” and add them to “another segment
    1b. the action “remove contact from first segment and add them to another segment” I would set a fixed time when this happens (as for example at 6:00)
    1c. also to the current campaign: be sure that you add the minimum waiting time to not send next email inside the campaign, so that any contact that finished the campaign can be send safely any new email, without receiving two consecutive emails at the same time.
  2. Create my new email as template email
  3. Create new campaign: contacts are added from the “another segment” and add:
    3a. condition: check whether new tag “email sent” exists:
    3b. if tag “email sent” exists, then action: remove tag “email sent”
    3c. if tag not exist: Send email and choose your created email
  4. publish the new campaign
  5. change your current/first campaign and add:
    5a. before the action “remove contact from first segment and…”:
    5b. add tag “email sent” to the contact
    5c. send email and choose your created email (on pt. 2)

You should know how long it takes (maximum time) for a contact to finish your current/first campaign => after this time, you can remove the command from pt. 5b. (what I do to “deactivate” it: I add a tag named “nothing” and I do nothing with it :slight_smile: ).

For the next email to come, you start from pt. 1.

Does it makes sense?

Another idea yet to be tested: Always have a condition at the temporary end of the campaign. Like checking for a tag - which none of the contacts have.

Thesis: As long as its not true, existing users will not finish the campaign?

Adding the next mail and new temporary final condition. Now add the tag to the existing users. They should proceed to the next step in the campaign?