Mautic campaigns: how to plan, build and test them
A practical guide to Mautic campaigns: planning, four templates worth building, sources, actions, decisions and conditions, testing and the cron jobs.

Mautic campaigns are how a lead travels from first contact to a salesperson's desk, getting each message at the moment it makes sense, with nobody pressing a button. A campaign in Mautic is a flowchart of four block types (source, action, decision and condition), and it starts with a plan: who enters, what the goal is and what result you expect. The Campaign Builder only executes the strategy you defined beforehand, and none of it moves unless the cron jobs are running on the server.
If you are new to the platform, start with what Mautic is. This guide covers planning, four templates worth building first, the blocks every flow uses, and testing.
Plan your Mautic campaigns before opening the builder
Answer three questions first. Campaigns that skip this step often end up as tidy diagrams that never move a contact.
- Who enters the campaign? Define the entry segment or the form that acts as the trigger.
- What is the goal? Welcome, nurture, re-engagement, sales qualification, upsell?
- What result do you expect? The lead reaches a score, fills in a form, gets handed to sales?
With those answers, sketch the flow on paper before you configure anything. Campaigns with many branches are hard to maintain, so prefer small, modular flows and resist the urge to solve everything in one campaign.
Four templates that cover most Mautic campaigns
Most marketing automation fits into four templates. Pick one and grow from there.
Welcome
It fires when a new contact joins the database, through a form or an import. The goal is to introduce the brand, deliver the promised material and start the relationship. It usually has 3 to 5 emails over two weeks, with an open decision in the middle to separate people who engaged from people who went cold.
Nurture
A sequence of educational content for leads who are not ready to buy yet. The content moves from the top to the bottom of the funnel, and the lead score rises with engagement. It can run for weeks or months, and the guide to drip campaigns in Mautic covers this template in detail.
Re-engagement
Aimed at inactive leads who have not opened an email in 60 to 90 days. The goal is to win back their interest or confirm the unsubscribe and clean the database. Expect 2 to 3 attempts over 30 days, with a final branch that removes non-responders from a segment or marks them as Do Not Contact.
Qualification (demographic lead scoring)
This one scores leads by profile instead of behavior. The campaign checks a Condition on a profile field (job title, company size) and, on the Yes branch, runs the Adjust Contact's Points action. Behavioral Point Actions cannot give these points because they depend on an event, and a job title sitting in a profile is static data. To model your database before scoring it, see the guide to Mautic segments.
| Template | Typical source | Main blocks | Goal |
|---|---|---|---|
| Welcome | Sign-up form | Send Email + Decision (opened?) | Introduce the brand and engage |
| Nurture | Interest segment | Send Email sequence + delays | Warm up the lead with content |
| Re-engagement | Inactive segment | Send Email + Decision + Modify Segments | Reactivate or clean up |
| Qualification | Segment with the field filled in | Condition (field) + Adjust Contact's Points | Demographic lead scoring |
What you need before creating a campaign
Skipping any of these is the most common reason a campaign "does not work":
- A source. A segment (under Contacts > Segments) or a form.
- Campaign emails. Emails sent by a campaign live under Channels > Emails and must be created as a Template Email. A Segment Email is the one-off newsletter send and will not show up in the flow.
- Cron jobs. Mautic processes campaigns through scheduled tasks. If they do not run, the campaign does not run either.
To create the campaign, go to Campaigns > New. Fill in the Name (for example, Lead Nurturing), an optional Description so the team understands the purpose, and a Category if you use them. Leave Published set to No while you build, and switch it to Yes only when the flow is ready. From there you work in the Campaign Builder, the visual editor where you drag blocks onto the canvas and connect them.
The blocks behind all Mautic campaigns
Every template above uses the same blocks, and mixing them up makes a flow behave in ways you did not expect.
Sources
Sources define who enters. There are two: Contact Segments (the contact enters when added to a specific segment) and Contact Forms (the contact enters when submitting a specific Campaign Form). The guide to Mautic forms shows how to build that entry point.
Actions
Actions are what Mautic does to the contact: Send Email, Adjust Contact's Points, Modify Contact's Segments, Modify Contact's Tags, Update Contact, Send user email (to notify a salesperson), Push Contact to Integration (to send it to a connected CRM) and Send a Webhook. Each action has a delay, so it can run right away or wait minutes, hours or days.
Decisions
Decisions hold the flow until the contact does something, then split it into Yes (did it) and No (did not do it within the deadline). Typical ones are opens email, clicks a link in the email, visits a page, submits a form and downloads an asset. They are asynchronous: they wait for the event.
Conditions
Conditions check data the contact already has, such as a field value, a tag or segment membership, and follow Yes or No immediately. They let you personalize the flow with profile data.
The most common mix-up is between Decision and Condition, and the difference is timing:
| Block | What it evaluates | Timing | Paths |
|---|---|---|---|
| Action | Does something to the contact | Immediately or after a delay | Moves on |
| Decision | A future behavior (open, click, visit) | Asynchronous: waits for the event, with a deadline | Yes (did it) and No (did not, within the deadline) |
| Condition | Data the contact already has | Immediate, checked on the spot | Yes and No, resolved right away |
The flow only moves with the cron jobs on. Three matter here: mautic:segments:update refreshes who is in the source segment, mautic:campaigns:rebuild adds and removes contacts from the campaign based on the source, and mautic:campaigns:trigger executes the scheduled events. Timing is only respected if mautic:campaigns:trigger runs often (every 5 to 15 minutes). The full list is in Mautic cron jobs.
Example: a welcome flow
- Source: the "New Leads" segment, or the sign-up Campaign Form.
- Action (Send Email): the welcome email, sent on entry with zero delay.
- Decision (Opens Email): waits 2 days to see whether the contact opened it.
- Yes branch: apply the "Engaged" tag, add some points and add the contact to the "Hot Leads" segment.
- No branch: wait 3 more days and send a second email with a different subject line.
The delay is what spaces the emails out so the contact does not get everything at once. For nurture flows, gaps of 2 to 5 days between messages are typical.
Testing and monitoring Mautic campaigns
Never publish a campaign straight to the whole database. Create a test segment with 2 to 5 internal email addresses, use it as the source, publish and follow the flow event by event for a few hours. Check that the emails arrived, the tags were applied and the decisions and conditions branched as expected. Once it works, swap the test segment for the real one and republish.
By default, each contact goes through a campaign only once, which surprises a lot of people. Even if they leave the source segment and come back, they do not start over. If the flow needs to repeat (a yearly re-engagement, for example), turn on Allow contact to restart the campaign in the campaign settings.
After publishing, open the campaign. The Campaign Builder shows, over each block, how many contacts are pending and how many have already passed through, and the campaign view has a chart of contacts over time. When Mautic campaigns stall, the cause is almost always one of these, in this order: the cron is not running, the source is empty, or the campaign was left as a draft.
Good practices
- Keep flows simple and modular. Long campaigns are hard to audit on one screen.
- Name emails, segments, tags and actions descriptively, so the flow still makes sense when you open it again months later.
- Set up an exclusion segment when it makes sense, for example to leave current customers out.
- Review the numbers often and fix the points where contacts get stuck.
- For seasonal campaigns, set a start date and, when it applies, an end date.
Start with a simple welcome or nurture flow, learn to use decisions and conditions to personalize it, and then move on to qualification and CRM integration. The official reference for every block is in the Mautic campaigns documentation.
Mautic campaigns FAQ
Why is my Mautic campaign not sending emails?
The usual causes, in order: the mautic:campaigns:trigger and mautic:emails:send cron jobs are not running, the campaign is still a draft, the source segment or form is empty, or the email was created as a Segment Email instead of a Template Email. Always check the cron jobs first (that is the reason nine times out of ten), and only then go to the Mautic logs on the server.
Do Mautic campaigns run in real time?
Almost. Processing runs through a queue fired by the cron jobs, so there is always a lag between the trigger and the action equal to the schedule interval. With mautic:campaigns:trigger running every 5 minutes, actions go out with a few minutes of latency. That is close enough to real time for nurturing, but never instant.
How many emails should a nurture campaign have?
It depends on your sales cycle and on how much useful content you have to send. Nurture sequences usually have 3 to 7 emails spaced days or weeks apart, moving from the top to the bottom of the funnel. What matters most is the spacing (use each action's delay so you do not send everything at once) and the behavior decisions that let the flow adapt to who opens and clicks.
Can I run an A/B test inside a Mautic campaign?
Mautic's native A/B testing (email variants with automatic winner selection) was designed for the Segment Email, the one-off send to a segment, and not for the campaign flow. There is no block inside a campaign that splits traffic at random. To compare variations, split the audience into two source segments and run two campaigns or two parallel branches with different emails, then compare the numbers of each.


