When you schedule a campaign to run in the background using cron
you have a few more options.
- You can define batch settings specifically for this campaign.
- You can set a campaign daily limit.
- You can set the hours and days when you want this campaign to run or leave empty to send 24/7.
Looking your campaigns table you will see a calendar icon
Point your mouse over and you will see a pop-up with information about the campaign.
You may edit, pause/resume a scheduled campaign.
If you are not sure whether your cron job is properly configured, check your activity log :
Menu > Campaigns > Activity log
A recurring campaign is one that runs periodically. E.g. daily, weekly, every few days, once a month etc..
- Auto-responder campaigns. When you want to send a newsletter to new subscribers after X minutes (hours or days).
- Anniversary campaigns like birthdays.
nuevoMailer greatly facilitates the collection of dates from your subscribers by having date-type fields.
- Your weekly, monthly news updates.
- if you define an End date then the campaign recreation process stops at this day.
- After a recurring campaign runs, a new one is created and the task points to this new campaign.
Asking subscribers to confirm
Sometimes your subscribers forget or neglect to confirm their subscription. The idea is to send confirmation reminder campaigns
that start a few days after they subscribed and stop after a point in time.
For this example let's assume that:
- you want to remind them every 3 days
- start from the 10th and stop after 30 days from subscription.
This is your filter:
And your campaign settings:
AND DATEDIFF(CURDATE(), iDate) <30 AND DATEDIFF(CURDATE(), iDate) >10
The concept described above can be applied in several cases.
Instead of a confirmation campaign it can be a simple auto-responder that is sent to your subscribers every week, starts after the 10th,
and stops after X days.
A campaign series is a type of a recurring campaign in which you can load a number of newsletters that will rotate with every next campaign.
Which day of the week? As you can see above we set the activation date on June 15th, 2020 which is a Monday.
Since the campaign repeats weekly it will be sent every Monday.
Sending once a month
To set the day of the month set the activation date to the day you want.
In the special case where you want this campaign to be sent on the last day of the month
choose 31 or 30.
nuevoMailer will always pick the last day of the month whether that is 30 or 31 or 28 or 29.
Sending a series of newsletters with recurring campaigns is optional
You can use only one newsletter in a recurring campaign and,
- Keep the same newsletter and edit its content just before the next campaign starts.
- Edit the campaign and choose a different newsletter.
Changing newsletter by editing the campaign is probably better for archiving reasons, than keeping the same newsletter and replacing its content.
This approach is typical for those publishing newsletters on standard cycles (weekly, bimonthly, monthly etc).
Many authors find it convenient to send a web page as a newsletter.
What they do is to set-up the campaign as above, always use the same URL and just before the campaign starts they update their web page. You have many options.
Life cycle list management
Creating a campaign series is a good way for long term list nurturing. It is usually the first auto-responder emails and
triggers that you will use to engage your subscribers. Then you can just put them in a long term campaign using a newsletter series.
So let's assume that for their first 10 days you have used auto-responders.
Then there is a special filter that you can add to a campaign series so that it will pick subscribers 10 days after subscription
AND DATEDIFF(CURDATE(), iDate) >10
And in case you want to stop mailing them after 90 days
here is how your filter should be:
AND DATEDIFF(CURDATE(), iDate) <90 AND DATEDIFF(CURDATE(), iDate) >10
General date subscribed vs List sign-up date
dateSubscribed - iDate
You have two options for which subscription date to use.
dateSubscribed refers to General subscription date. The first time a subscriber was added to your system.
iDate refers to List sign-up date. The first time a subscriber was added to this list. Occasionally these two are the same.
When working with one list it is better to use the iDate in your filters.
Menu > Campaigns > Autoresponders > Create new
An auto-responder is a series of timely campaigns that are sent automatically to subscribers in the order and frequency you choose.
nuevoMailer supports auto-responders based on subscription date (list sign-up) or a subscriber field of type date.
nuevoMailer auto-responders are fully featured independent recurring campaigns with their own statistics that recycle forever.
Here is an auto-responder that is sent 20 minutes after subscribing to a list:
Here is another example based on a custom subscriber field Wedding date
As you can see we have one more option here: Full date comparison
When checked this auto-responder will fire only once, exactly 7 days after the exact wedding day.
If not checked then it will fire every year, 7 days after the wedding date. In this case the filtering is done by checking only the month and day (and not year).
For birthday newsletters you do not want a "Full date comparison".
If I already have subscribers on my list, what happens for them when I create a new auto-responder for this list?
It depends on when the subscribers were added to your list (the list sing-up date). So if the date condition of the auto-responder is met they will receive the auto-responder.
But you can enhance your auto-responders using a filter so you always exclude subscribers that you manually add as an administrator
(as opposed to those that use the sign-up form). The filter is this:
AND (1_subscribers.ipSubscribed NOT LIKE ‘%admin%’)
When you manually add subscribers the subscription IP takes the value "admin". When they use a sign-up form their real IP is recorded.
With nuevoMailer you can capture (or import) your subscribers birthdays (or other anniversaries).
You create a birthday filter, a "Happy birthday" newsletter and a campaign that uses them.
The birthday campaign must be recurrent and run every day
- Start by setting up a custom subscriber field (of type date) for storing birthdays.
- Then in the same page define this field.
- Refresh your welcome page to verify that your birthday field is active.
Follow the link and explore this page.
- Create an auto-responder
What's described here can also be applied for other anniversaries. E.g. wedding dates.
Set-up another custom field to store these dates.
Birthday reminders for the administrator
These reminders are for you, the administrator.
You can set-up a cron job
to run daily and notify you about this day's or next days birthdays.
To set the number of days in advance open the file inc/settings.php and change this variable.
$bDaysBefore=30; //Enter 0 for same day reminder
You can create follow-up campaigns based on the clicks or views from a previous campaign.
When looking at your “Summary report” you can create a new campaign as a “follow-up campaign”. Your options are shown in the screen shot below:
- You are creating a new campaign identical to the previous one (with the same lists, newsletters and subscriber tags).
- A filter is created in the background and it is added to this new campaign. It is the filter that will make the difference in the selection of subscribers in the new campaign.
- If the old campaign was already already using a filter this will not be appended in the new one.
- Create only a filter
Checking this box will crate only a filter and not a new campaign. You may want to use this filter in another campaign with different parameters.
- If the campaign was sent to all subscribers then you can only create a filter (without a campaign). This is because filters can be used in campaigns to all lists or to selected lists.
In this case you will find the checkbox already checked and disabled.
Email Triggers is another way for following up on an individual basis. See below.
For a very good overview of the triggers functionality in nuevoMailer and implementation ideas see here
This is the button for setting triggers:
Using triggers you can do the following
You can set triggers at
- Update a subscriber field
- Tag or un-tag a subscriber
- Send a single newsletter
- Add the subscriber to other list(s)
- Remove the subscriber from other list(s)
- Campaign-wide level clicks/views (including auto-responder campaigns)
- A specific newsletter (clicks/views)
- A specific hyperlink (click)
- On list opt-in (see also auto-responders here)
Triggers in recurring campaigns
- Recurring campaigns are re-created automatically as soon as the previous one completes. Therefore we have a "parent" which is the first one and "children" which are the ones that follow. This is what we call a branch:
- The triggers set on the parent will also apply to the children.
- When you add new trigger on a child campaign it also updates the parent (and the whole branch).
- If you delete the parent campaign the old trigger will still apply to previous campaigns that were sent (of the same branch).
- But if you create new trigger for a child (after the parent has been deleted) then this will apply to this campaign and its children that will follow it.
Setting an expiration for triggered emails
Assume you create a trigger to send a single email on an action such as a view or a click.
A subscriber may do a view or a click several times as soon as he receives the newsletter or even days or months later.
nuevoMailer can prevent the sending of the triggered email multiple times (with each view/click) by marking the triggered email as processed.
But sometimes it may be useful to fire this trigger again after some time and if the view/click action happens again.
For that reason we can set a trigger expiration period
in the file inc/settings.php:
$triggerExpiry = 10; //Number of days-after to remove a processed trigger from the queue.
So after 10 days the triggered email will be sent again (assuming of course that the action that triggered it is repeated).
Triggered emails are processed by this cron job:
curl -l -s http://www.domain.com/mailer/admin/_sendTr.php?apiKey
Sender settings in triggered emails
By sender settings we mean the <from-email>, <from-name> values in the triggered emails.
Campaign sender settings (if applicable) override list custom settings (if applicable) which override global sender settings.
Building on the email triggers feature you can also send transactional emails from your own CRM/CMS or website using
You only need to "post" a subscriber email and a newsletter ID. If the subscriber exists in your database then the newsletter will be personalized.
If he doesn't exist then you can optionally subscribe him at the same time, in one step.
Filters are extra criteria that you can apply to a campaign and will result in excluding or
including subscribers on the basis of demographic parameters, tracking behavior, subscription dates and more.
You can view your filters under Menu > Filters > View filters
Every filter contains a short description and SQL code. You can edit both if needed. Simply click on the description or the code.
Filters can be used when you send a campaign to All lists or to Selected lists
Menu > Filters > Create new > Based on subscriber properties/data
In this page you can:
- Perform advanced searches on subscribers using any of their available fields and tags.
- See subscribers with soft or hard bounces.
- Preview and export the results to spreadsheets like Excel, CALC/LibreOffice.
- Create filtered lists (sub-lists or list segments) based on the search results. The parent lists remain intact.
- Create filters that you can save, edit, refine and use in your campaigns.
Empty, blank filter
Menu > Filters > Create new > Create a blank filter
You simply create an empty filter and then you can add your own sql code or copy code from another filter.
Refining a filter
If you are familiar with sql syntax you can change the sql code and refine an existing
filter. You can also merge filters or create your own.
Testing a filter
You can test a filter when creating a new campaign. You select the list(s) and the filter(s) and you click “Count”.
Count with and without selecting a filter so you can see the difference.
Examples & tips
Using filters you can find and create a sub-list or a mailing filter or export subscribers who:
- Come from a specific country and subscribed after a certain date.
- Have a specific zip code.
- Have not updated their account since a given date.
- Did not have any activity since a given date.
- Come from the same company.
- Have the same domain in their email address.
- And much more...
Create a new list segment or a mailing filter?
If you need a new list then create a new list segment with the search results.
If you only want to do a few mailings to this subscriber group then it is perhaps better to create a mailing filter. The answer really lies in your subscriber management approach.
A/B split testing
For nuevoMailer v.4 or earlier here is another method for A/B split tests
You can split your list between odd and even records. You will create two campaigns targeting the same lists using different newsletters and different filters.
Here is the SQL code for such filters. Create an empty filter and then change the code and the description. Copy-paste the code from below:
1. Get odd rows: AND MOD(1_subscribers.idEmail,2) = 1
2. Get even rows: AND MOD(1_subscribers.idEmail,2) = 0
If you see that one particular newsletter design or subject line is more attractive you can use it in your future campaigns.
Note that you can use other filters as well to split subscribers. For example you can use subscriber country or zip code or city.
You can merge (add filters together) by putting together the sql code of each filter and using an AND or an
Here is an example. One filter that picks subscribers with Hotmail and Yahoo email accounts.
AND (1_subscribers.email LIKE '%hotmail%' OR 1_subscribers.email LIKE '%yahoo%')
If you are familiar with SQL programming you can do many tricks, use AND, OR, EXISTS statements and
construct complex filters.
A very handy filter idea - Exclude subscribers of a specific list
Attention: since nuevoMailer v.8.6 you can do this directly when you create a campaign without using filters.
Usually there is overlap between lists. Meaning that subscribers belong to more than one list.
: I want to make a campaign to lists A, B, C but I do not want to include anyone on those lists who is also in list D.
: Create a campaign to lists A, B, C and use this filter
AND 1_subscribers.idEmail NOT IN (SELECT idEmail FROM 1_listRecipients WHERE idList=D)
Which means that those who are subscribed in list with id D will not be included in the campaign (no matter if they belong to A or B or C).
Multi-threaded sending plugin
To create a multi-threaded campaign go Menu > Campaigns > Create a multi-threaded campaign
You have all the usual campaign options but with a key difference here:
- The number of emails in a batch
Multi-threaded campaigns are sent in batches. This number refers to each thread.
- Number of threads
you define here how many processes (threads) each cron hit initiates.
- Distance between threads (seconds)
This distance refers to thread start times. So assuming you give a 5 seconds distance, every 5 seconds a new thread will start.
- number of emails in a batch is 5000.
- number of threads is 20.
- distance between threads is 5 seconds.
A cron hit will initiate 20 threads that start every 5 seconds and each thread will send 5k emails.
So each cron hit will process 100k emails.